summaryrefslogblamecommitdiff
path: root/world/map/npc/001-1/bernard.txt
blob: 0d65e6d2a1dc7afd527df5a664861ac1599b4bdf (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
                                                   
 
                                      









                                                                           
 


                                   

           



                                                                                                 

           



                                                                                                                         

      

                      
                       

      


                               

       



                                                           

       



                                                                             

      

                         

                                     
                 

           








                                                                                                                        



                               
                 

            








                                                                                                                   

                         
                 

            

                                                                                             
                 

             

                                                                                     
                 

        





                                                                    

                         
                 

        



                                                                                                                                     
                 
 

                 
                  
          

          


                                                                          
                 



                                                                                                     
 
// Variables used: nibble 0 of QUEST_SouthTulimshar

001-1.gat,37,44,0|script|Bernard|117,{

    // This NPC previously used the variable TMW_Quest
    callfunc "ClearVarTMW_Quest";

    set @state, ((QUEST_SouthTulimshar & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);

    if(@state >= 4) goto L_Done2;
    if(@state == 3) goto L_Progress2;
    if(@state == 2) goto L_Done1;
    if(@state == 1) goto L_Progress;

    set @TEMP, rand(2);
    if(@TEMP == 0) goto L_Opening0;
    if(@TEMP == 1) goto L_Opening1;

L_Opening0:
    mes "[Bernard]";
    mes "\"Tulimshar is crawling with maggots.  Hey, I need a favor, could you help me a bit?\"";
    next;
    goto L_Ask;

L_Opening1:
    mes "[Bernard]";
    mes "\"The taste of maggots in soup is...  unforgettable, they taste simply divine!  Would you help me kill some?\"";
    next;
    goto L_Ask;

L_Ask:
    menu
        "Yes.", L_Yes,
        "No.", L_Close;

L_Yes:
    set @TEMP, rand(2);
    if(@TEMP == 0) goto L_Req0;
    if(@TEMP == 1) goto L_Req1;

L_Req0:
    mes "[Bernard]";
    mes "\"Great!  I need a Roasted Maggot for my soup.\"";
    next;
    goto L_Set;

L_Req1:
    mes "[Bernard]";
    mes "\"Bring me a Roasted Maggot.  I'll give you something if you do.\"";
    next;
    goto L_Set;

L_Set:
    set @state, 1;
    callsub S_Update_Var;
    mes "[Bernard]";
    mes "\"Please bring it to me!\"";
    goto L_Close;

L_Progress:
    if (countitem("RoastedMaggot") < 1) goto L_NotEnough;
    mes "[Bernard]";
    mes "\"Oooh, perfect! It's perfect!";
    mes "You brought me my Roasted Maggot!  Here, have some cake for your troubles.\"";
    getinventorylist;
    if (@inventorylist_count - (countitem("RoastedMaggot") == 1) > 99 - (countitem("CherryCake") == 0) ) goto L_TooMany;
    delitem "RoastedMaggot", 1;
    getexp 100, 0;
    getitem "CherryCake", 5;
    set @state, 2;
    callsub S_Update_Var;
    next;
    mes "\"Now let's see...\"";
    goto L_Close;

L_Progress2:
    if (countitem("MaggotSlime") < 3) goto L_NotEnough1;
    mes "[Bernard]";
    mes "\"Nice!  They're perfect, just perfect!";
    mes "You brought me the 3 Maggot Slimes!  Here, have some beer as reward.\"";
    getinventorylist;
    if ((@inventorylist_count - (countitem("MaggotSlime") == 3) > 99  - (countitem("Beer") == 0) )) goto L_TooMany;
    delitem "MaggotSlime", 3;
    getexp 100, 0;
    getitem "Beer", 3;
    set @state, 4;
    callsub S_Update_Var;
    goto L_Close;

L_NotEnough:
    mes "[Bernard]";
    mes "\"Oh, please hurry and bring me a Roasted Maggot.  I'm yearning for maggot soup!\"";
    goto L_Close;

L_NotEnough1:
    mes "[Bernard]";
    mes "\"Please do hurry and bring me 3 Maggot Slimes, so I can finish my soup!\"";
    goto L_Close;

L_Done1:
    mes "[Bernard]";
    mes "\"Thank you so much!\"";
    mes "\"But...  something is missing to make the soup creamy.\"";
    next;
    mes "\"I need 3 Maggot Slimes for that.\"";
    mes "\"Bring them to me, and I'll give you something nice.\"";
    set @state, 3;
    callsub S_Update_Var;
    goto L_Close;

L_Done2:
    mes "[Bernard]";
    mes "\"I didn't mention it before, but I also put beer in my soup.  I hope you like beer as much as I do, because, you see...\"";
    next;
    mes "\"Beer is life!\"";
    goto L_Close;

L_Close:
    set @TEMP, 0;
    set @state, 0;
    close;

L_TooMany:
    next;
    mes "[Bernard]";
    mes "\"You don't have room for my reward.  I'll wait until you do.\"";
    goto L_Close;

S_Update_Var:
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_0_MASK) | (@state << NIBBLE_0_SHIFT));
    return;
}