summaryrefslogblamecommitdiff
path: root/world/map/npc/024-1/tinris.txt
blob: 34352a74925747ab3669cc0b5dad4e88d3356a11 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

















                                                                                                                      
 

                                    





























                                                                                                                


                                                                                                            














                                                                                                                                                   
                                             
                                       

            







                                         
                                                                   
         

                    

                  



                                                                                                                                                                                          
                                
                                          

           











                                                                                                                                                                                               
                                                                                       
                                       
                                                                                                                                              







                                                                          


                                                             

                          

                     

                  
                   
                                                         

                                                                                                                                                                                                                      
                                 
                                          

           











                                                                                                                                                                                                                                                
                                  



                                                                 
                   
                                                                                                                                                                           


                                                             

                              
                   
                                                                                                                                                 

                 

                  
                   
                                                                                                                         

                 

                   


                                                    
                                                                                                            
                           

               









                                                           

                   
                   

                                                                                                                                      



















                                 
          



                                                                                                                 
 
// Anwar needs a magic fertilizer for his field
// Quest uses Nibble 3 of QUEST_NorthTulimshar
// Author: Jenalya
// state 1: Anwar sent to Tinris for help to get a magic fertilizer
// state 2: Tinris asked for chocolate cake as present for his girlfriend
// state 3: Tinris asked for ingredients for the fertilizer
// state 4: Tinris gave you the fertilizer
// state 5: Anwar tried it out and it doesn't work well, sent you back to Tinris
// state 6: Tinris asked for more ingredients for a new try
// state 7: Tinris says it's really hard, gives you the fertilizer and tells you to ask Eomie to cast a spell on it
// state 8: Eomie sends you to get some stuff so she can interrupt her spell on the spot of grass
// state 9: Eomie casted a spell on the fertilizer
// state 10: Anwar used it and it worked. he asks you to help him preparing a thank-you-gift for each Tinris and Eomis
// state 11: Anwar asked to bring present to Tinris
// state 12: gave present to Tinris
// state 13: Anwar asked to bring present to Eomie
// state 14: gave present to Eomie
// state 15: reported back to Anwar and done

024-1.gat,82,64,0|script|Tinris|160,
{
    set @state, ((QUEST_NorthTulimshar & $@magicfieldNT_MASK) >> $@magicfieldNT_SHIFT);

    set @cake_exp, 50;
    set @sweater_exp, 400;

    set @slime_amount1, 6;
    set @slime_amount2, 4;
    set @bugleg_amount1, 4;
    set @bugleg_amount2, 5;
    set @stinger_amount1, 3;
    set @stinger_amount2, 2;
    set @ash_amount1, 1;
    set @ash_amount2, 2;
    set @cactusp_amount, 1;

    if (@state >= 12) goto L_Done;
    if (@state == 11) goto L_GiveGift;
    if (@state == 9) goto L_FertilizerDone;
    if (@state >= 7) goto L_Eomie;
    if (@state == 6) goto L_SecondTry;
    if (@state >= 4) goto L_FirstTryDone;
    if (@state == 3) goto L_FirstTry;
    if (@state == 2) goto L_Annual;

    mes "[Tinris]";
    mes "\"This is a magic school. I'm a student here and focus on ways to magically enhance growth of plants.";
    mes "That topic is very important in a desert area.\"";
    if (@state != 1)
        goto L_Close;
    menu
        "The farmer Anwar sent me to ask for exactly that! Can you give me something for his field?",L_Next;

L_Next:
    mes "[Tinris]";
    mes "\"Well... in principle yes. I can try to prepare something for him. But...\"";
    next;
    mes "\"The thing is, my girlfriend and I have our anniversary today. And the teachers won't let me leave the campus to get something for her!";
    mes "Please go to the bakery and buy a Chocolate Cake for me. She loves Chocolate Cakes.\"";
    next;
    mes "\"When I have a present for her I can focus on creating some magic fertilizer.\"";
    set @state, 2;
    callsub S_Update_Mask;
    goto L_Close;

L_Annual: // @state == 2
    mes "[Tinris]";
    mes "\"Hello, did you get the Chocolate Cake for my girlfriend? After that I can focus on creating some magic fertilizer for you.\"";
    menu
        "Fresh from the bakery!",L_FreshFrom,
        "I didn't get it yet.",L_Close;

L_FreshFrom:
    if (countitem("ChocolateCake") < 1)
        goto L_NoItem;
    delitem "ChocolateCake", 1;
    getexp @cake_exp, 0;
    set @state, 3;
    callsub S_Update_Mask;
    mes "[Tinris]";
    mes "\"Oh, thank you! You saved me!";
    mes "All right, now we can start with the magic fertilizer.\"";
    next;
    goto L_FirstTry;

L_FirstTry:
    // @state == 3
    mes "[Tinris]";
    mes "\"You need to bring me some ingredients.";
    mes "The ingredients are " + @slime_amount1 + " Maggot Slimes, " + @bugleg_amount1 + " Bug Legs, " + @stinger_amount1 + " Scorpion Stingers and " + @ash_amount1 + " Piles of Ash.\"";
    menu
        "I have it.",L_Continue,
        "Ok, I'll go and get it.",L_Close;

L_Continue:
    if ((countitem("MaggotSlime") < @slime_amount1) || (countitem("BugLeg") < @bugleg_amount1) || (countitem("ScorpionStinger") < @stinger_amount1) || (countitem("PileOfAsh") < @ash_amount1))
        goto L_NoItem;
    delitem "MaggotSlime", @slime_amount1;
    delitem "BugLeg", @bugleg_amount1;
    delitem "ScorpionStinger", @stinger_amount1;
    delitem "PileOfAsh", @ash_amount1;
    set @state, 4;
    callsub S_Update_Mask;
    mes "Tinris takes the things and starts to mix them together while mumbling some invocations.";
    misceffect sfx_magic_nature;
    next;
    mes "[Tinris]";
    mes "\"Ok. This should do it. But I'm not sure. I'm still researching this topic.";
    mes "Here, bring this to Anwar.\"";
    mes "He gives you a bottle with the magic fertilizer. You put it away in a separate pocket, so it doesn't get mixed with your inventory.";
    goto L_Close;

L_FirstTryDone: // @state >= 4 but below 6
    mes "[Tinris]";
    mes "\"Bring the fertilizer to Anwar and let me know if it worked.\"";
    if (@state != 5)
        goto L_Close;
    menu
        "I did, the plants went brown and shriveled.",L_More;

L_More:
    set @state, 6;
    callsub S_Update_Mask;
    goto L_SecondTry;

L_SecondTry:
    // @state == 6
    mes "[Tinris]";
    mes "\"Oh no! All right, we need to do another try.";
    mes "Bring me " + @slime_amount2 + " Maggot Slimes, " + @bugleg_amount2 + " Bug Legs, " + @stinger_amount2 + " Scorpion Stingers, " + @ash_amount2 + " Piles of Ash and " + @cactusp_amount + " Cactus Potion.\"";
    menu
        "Here it is.",L_HereItIs,
        "Ok, I'll go and get it.",L_Close;

L_HereItIs:
    if ((countitem("MaggotSlime") < @slime_amount2) || (countitem("BugLeg") < @bugleg_amount2) || (countitem("ScorpionStinger") < @stinger_amount2) || (countitem("PileOfAsh") < @ash_amount2) || (countitem("CactusPotion") < @cactusp_amount))
        goto L_NoItem;
    delitem "MaggotSlime", @slime_amount2;
    delitem "BugLeg", @bugleg_amount2;
    delitem "ScorpionStinger", @stinger_amount2;
    delitem "PileOfAsh", @ash_amount2;
    delitem "CactusPotion", @cactusp_amount;
    set @state, 7;
    callsub S_Update_Mask;
    mes "Tinris takes the things and starts to mix and mumble again.";
    misceffect sfx_magic_nature;
    next;
    mes "It takes quite a while.";
    next;
    mes "He looks rather stressed while working on the mixture.";
    next;
    mes "He sighs.";
    mes "[Tinris]";
    mes "\"Mh, I think the mixture itself is good. But I can't get the spells right. Maybe you should ask Professor Eomie to cast it; she's a genius with nature magic.\"";
    mes "He gives you the bottle with the magic fertilizer.";
    goto L_Close;

L_Eomie:
    // @state >= 7 but below 9
    mes "[Tinris]";
    mes "\"I did the best I could, but it seems I'm not experienced enough to cast the spells correctly. Better ask Professor Eomie for help.\"";
    goto L_Close;

L_FertilizerDone:
    // @state == 9
    mes "[Tinris]";
    mes "\"I heard Eomie cast the spell? I really hope it'll work this time. Bring the magic fertilizer to Anwar now.\"";
    goto L_Close;

L_GiveGift:
    // @state == 11
    mes "[Tinris]";
    mes "\"Ah, did Anwar try the new fertilizer?\"";
    menu
        "Yes, it works great and he asked me to give you this Green V-Neck Sweater he made.",L_ItWorksGreat,
        "Not yet.",L_Close;

L_ItWorksGreat:
    if (countitem("GreenVNeckSweater") < 1)
        goto L_NoItem;
    delitem "GreenVNeckSweater", 1;
    getexp @sweater_exp, 0;
    set @state, 12;
    callsub S_Update_Mask;
    mes "[Tinris]";
    mes "\"Hey, that's really nice. Tell him my thanks.\"";
    goto L_Close;

L_Done:
    // @state >= 12
    mes "[Tinris]";
    mes "\"My girlfriend was delighted with the Chocolate Cake and Professor Eomie was happy with my work on the magic fertilizer.\"";
    mes "He twinkles.";
    mes "[Tinris]";
    mes "\"We're a good team.\"";
    goto L_Close;

L_NoItem:
    mes "[Tinris]";
    mes "\"You don't have it!\"";
    goto L_Close;

L_Close:
    set @state, 0;
    set @slime_amount1, 0;
    set @slime_amount2, 0;
    set @bugleg_amount1, 0;
    set @bugleg_amount2, 0;
    set @stinger_amount1, 0;
    set @stinger_amount2, 0;
    set @ash_amount1, 0;
    set @ash_amount2, 0;
    set @cactusp_amount, 0;
    close;

S_Update_Mask:
    set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~($@magicfieldNT_MASK)) | (@state << $@magicfieldNT_SHIFT);
    return;
}