summaryrefslogtreecommitdiff
path: root/npc/019-1
diff options
context:
space:
mode:
Diffstat (limited to 'npc/019-1')
-rw-r--r--npc/019-1/well.txt73
1 files changed, 71 insertions, 2 deletions
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: