summaryrefslogblamecommitdiff
path: root/world/map/npc/functions/soul_menhir.txt
blob: e047e928b351842ecaa9346bba9e8de7a687a205 (plain) (tree)
1
2
3
4
5
6
7
8
                          
 


                                                                                                                                          
 
        
                            



                                      

                                                
                              



                                                                                             

                                  
 
       

                              
 
                        
                                                                                             
         
 


                                                                                                                                     
 


                                                                                                                                                                      
 

                            

               
                        
                                                                                                                                                                         
         
                

       

                           
                   
 



                                                                                                  
          

                            

            



                                    

         
           
 
function|script|SoulMenhir
{
    mes "[Soul Menhir]";
    mes "(A mystical aura surrounds this stone. You feel mysteriously attracted to it. Something tells you to touch it. What do you do?)";
    next;

    menu
        "Touch it.", L_Bind,
        "Leave it alone.", L_Return,
        "I lost my towel...", L_Towel;

L_Towel:
    if (TowelLastUsed > (gettimetick(2) - 1800))
        goto L_DontPanic;
    callfunc "MultiWarpTowel";
    set TowelLastUsed, gettimetick(2);
    mes "[Soul Menhir]";
    mes "(You touch the mysterious stone. Somehow it feels hard and soft at the same time.)";
    next;
    getitem "HitchhikersTowel", 1;
    goto L_Return;

L_Bind:
    if (Menhir_Activated == 1)
        goto L_Shortversion;

    mes "[Soul Menhir]";
    mes "(You touch the mysterious stone. Somehow it feels warm and cold at the same time.)";
    next;

    mes "[Soul Menhir]";
    mes "(Suddenly a strange sensation flows through you. It feels like your soul leaves your body and becomes one with the stone.)";
    next;

    mes "[Soul Menhir]";
    mes "(As suddenly as the feeling started it stops. The strange attraction is away from one moment to the next and the menhir feels like just an ordinary stone.)";
    next;

    set Menhir_Activated, 1;
    goto L_Save;

L_Shortversion:
    mes "[Soul Menhir]";
    mes "(A strange sensation flows through you. It feels like your soul leaves your body and becomes one with the stone. As suddenly as the feeling started it stops.)";
    next;
    goto L_Save;

L_Save:
    if (@x == 0 && @y == 0)
        goto L_FindPoint;
    goto L_Do_Save;

L_DontPanic:
    message strcharinfo(0), "(A strange barrier keeps you from touching the stone at this time.)";
    goto L_Return;

L_Do_Save:
    savepoint @map$, @x, @y;
    goto L_Return;

L_FindPoint:
    set @n, rand(getarraysize(@Xs));
    set @x, @Xs[@n];
    set @y, @Ys[@n];
    goto L_Do_Save;

L_Return:
    return;
}