From e6f7144c50e5ffa640e0b7aaf3a3bfcaa861a0d2 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Tue, 11 Sep 2018 10:51:29 -0300 Subject: Nivalis Well Quest (complete) --- npc/019-1/well.txt | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) (limited to 'npc/019-1/well.txt') diff --git a/npc/019-1/well.txt b/npc/019-1/well.txt index b21a37f24..fff9efc07 100644 --- a/npc/019-1/well.txt +++ b/npc/019-1/well.txt @@ -7,8 +7,9 @@ // TODO: We could also throw random stuff (dig script), and use makeitem() to // make it pop at Terranite Cave, near the lake, suggesting that's where the water // comes from. -// TODO: We also need to figure out who was there, and why to save that person. -// Is it related to the episode? +// TODO: Yeti related to Angela quest. Ever-cicle logic - sep 11st. +// Friendly, safe because water on Terranite Cave is too cold, but aware of +// Terranite. 019-1,110,101,0 script Well#Nivalis NPC_SWORDS_SIGN,{ mesc l("ERROR, missing sprite: Snowland.Well"), 1; @@ -22,6 +23,11 @@ mesc l("You are allowed to fill your bottles, but BE SURE TO PAY!"); mesc l("Otherwise, ##BYOU'LL DIE.##b Have a nice day!"); next; + if (.@q == 1) { + mesn l("???"); + mesq l("Hey, is somebody over there?"); + mes ""; + } menu l("Fill Water Bottles"), L_Bottle, @@ -55,6 +61,69 @@ L_Bucket: // Main Quest L_Throw: + mes "##B" + l("Drag and drop an item from your inventory.") + "##b"; + + .@id = requestitem(); + + // If ID is invalid, there's not enough items, it is bound = Cannot bury + if (.@id < 1 || countitem(.@id) < 1 || checkbound(.@id) || !getiteminfo(.@id, ITEMINFO_MAXCHANCE)) { + if (checkbound(.@id)) + mesc l("You cannot bury this item!"); + else if (!getiteminfo(.@id, ITEMINFO_MAXCHANCE)) + mesc l("This item is too precious, you cannot part with it!"); + else + mesc l("You give up."); + return; + } + // Delete item and spawn it at Terranite Cave (an Angry Yellow Slime might steal it) + delitem .@id, 1; + makeitem .@id, 1, "015-6", any(362,363), any(110, 112, 114); + // Now we check if quest must start + if (!.@q) + goto L_Quest; + close; + +// Quest Node +L_Quest: + mesn l("???"); + if (getiteminfo(.@id, ITEMINFO_WEIGHT) > 1000) + mesq l("Ouch! That's heavy!"); + else if (getiteminfo(.@id, ITEMINFO_TYPE) == IT_HEALING) + mesq l("Mhm, this looks healthy."); + else if (getiteminfo(.@id, ITEMINFO_TYPE) == IT_AMMO) + mesq l("This is useless for me!"); + else + mesq l("Who is throwing stuff at me?!"); + next; + select + l("Who are you?"), + l("How did you get down there?"), + l("Do you need help?"), + menuaction(l("Leave.")); + mes ""; + mesn; + switch (@menu) { + case 1: mesq l("I'll talk about who I am after leaving the well."); break; + case 2: mesq l("I don't remember. I guess somebody threw me here!"); break; + case 3: mesq l("I certainly can't get out on my own."); break; + default: mesq l("..Anyone there?"); close; break; + } + next; + do { + select + l("I'll call someone to aid you."), + l("Is it too deep?"), + l("Couldn't you climb the rope?"), + menuaction(l("Leave.")); + mes ""; + mesn; + switch (@menu) { + case 1: mesq l("Please do, my friend."); setq NivalisQuest_Well, 1; break; + case 2: mesq l("It's over a hundred meters in depth. There is some land here, but I'm afraid of Terranite."); break; + case 3: mesq l("I'm not crazy, the bucket is vicious and the rope won't withstand my weight."); break; + default: mesq l("..Anyone there?"); close; break; + } + } while (@menu != 1); close; OnInit: -- cgit v1.2.3-60-g2f50