summaryrefslogtreecommitdiff
path: root/world/map/npc/001-1/tinris.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/001-1/tinris.txt')
-rw-r--r--world/map/npc/001-1/tinris.txt219
1 files changed, 219 insertions, 0 deletions
diff --git a/world/map/npc/001-1/tinris.txt b/world/map/npc/001-1/tinris.txt
new file mode 100644
index 00000000..c2b52d85
--- /dev/null
+++ b/world/map/npc/001-1/tinris.txt
@@ -0,0 +1,219 @@
+// 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
+
+001-1.gat,69,29,0|script|Tinris|160
+{
+ set @state, ((QUEST_NorthTulimshar & NIBBLE_3_MASK) >> NIBBLE_3_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 & ~(NIBBLE_3_MASK)) | (@state << NIBBLE_3_SHIFT);
+ return;
+}