summaryrefslogtreecommitdiff
path: root/npc/015-3
diff options
context:
space:
mode:
Diffstat (limited to 'npc/015-3')
-rw-r--r--npc/015-3/_import.txt6
-rw-r--r--npc/015-3/_mobs.txt27
-rw-r--r--npc/015-3/_warps.txt3
-rw-r--r--npc/015-3/barrier.txt29
-rw-r--r--npc/015-3/katze.txt207
-rw-r--r--npc/015-3/pot.txt111
6 files changed, 383 insertions, 0 deletions
diff --git a/npc/015-3/_import.txt b/npc/015-3/_import.txt
new file mode 100644
index 00000000..ad76971d
--- /dev/null
+++ b/npc/015-3/_import.txt
@@ -0,0 +1,6 @@
+map: 015-3.gat
+npc: npc/015-3/_mobs.txt
+npc: npc/015-3/_warps.txt
+npc: npc/015-3/barrier.txt
+npc: npc/015-3/katze.txt
+npc: npc/015-3/pot.txt
diff --git a/npc/015-3/_mobs.txt b/npc/015-3/_mobs.txt
new file mode 100644
index 00000000..7ed7bc67
--- /dev/null
+++ b/npc/015-3/_mobs.txt
@@ -0,0 +1,27 @@
+// 015-3 mobs
+
+015-3.gat,21,25,3,4 monster Bats 1017,2,0,0,Mob015-3::On1017
+015-3.gat,29,31,2,2 monster Maggots 1002,2,0,0,Mob015-3::On1002
+015-3.gat,23,19,1,1 monster Maggots 1002,1,0,0,Mob015-3::On1002
+015-3.gat,40,19,1,1 monster Spider 1012,1,0,0,Mob015-3::On1012
+015-3.gat,29,35,2,1 monster Spider 1012,1,0,0,Mob015-3::On1012
+
+
+015-3.gat,0,0,0 script Mob015-3 -1,{
+On1002:
+ set @mobID, 1002;
+ callfunc "MobPoints";
+ break;
+
+On1012:
+ set @mobID, 1012;
+ callfunc "MobPoints";
+ break;
+
+On1017:
+ set @mobID, 1017;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/npc/015-3/_warps.txt b/npc/015-3/_warps.txt
new file mode 100644
index 00000000..90107d63
--- /dev/null
+++ b/npc/015-3/_warps.txt
@@ -0,0 +1,3 @@
+// 015-3 warps
+
+015-3.gat,31,37 warp to 015-1 -1,-1,015-1.gat,59,32
diff --git a/npc/015-3/barrier.txt b/npc/015-3/barrier.txt
new file mode 100644
index 00000000..d532a473
--- /dev/null
+++ b/npc/015-3/barrier.txt
@@ -0,0 +1,29 @@
+// You can only enter the cat cave naked, otherwise the cat's reaction scares
+// you away. Wearing a ring or amulet should be ok, but no checks are in for
+// that yet.
+
+015-3.gat,31,36,0 script #CatCaveBarrier 127,1,1,{
+
+ if ((getequipid(equip_head) > 0 && getequipid(equip_head) != 1217) ||
+ getequipid(equip_shield) > 0 ||
+ getequipid(equip_hand1) > 0 ||
+ getequipid(equip_hand2) > 0 ||
+ getequipid(equip_gloves) > 0 ||
+ getequipid(equip_shoes) > 0 ||
+ getequipid(equip_misc1) > 0 ||
+ getequipid(equip_misc2) > 0 ||
+ getequipid(equip_torso) > 0 ||
+ getequipid(equip_legs) > 0) goto L_Not_Naked;
+
+ if (LastHiss != 2) mes "\"Hissss...\"";
+ set LastHiss, 2;
+ close;
+
+L_Not_Naked:
+ warp "015-1.gat", 60, 32;
+ set LastHiss, 1;
+ mes "\"GRAAUWL! Hissss...\"";
+ mes "Scared of what you hear, you flee back outside.";
+ next;
+ close;
+}
diff --git a/npc/015-3/katze.txt b/npc/015-3/katze.txt
new file mode 100644
index 00000000..c24a9f80
--- /dev/null
+++ b/npc/015-3/katze.txt
@@ -0,0 +1,207 @@
+// Katze doesn't like the player at first, needs following:
+//
+// 1. Some milk
+// 2. Some steak or chicken leg
+// 3. Some fur
+//
+// Now the cat starts to speak, still needs:
+//
+// 4. Some wood for scratching
+// 5. Some stuff for making somethings nice for the player:
+//
+// * 2 Snake skins
+// * 2 Snake tongues
+// * 2 Maggot slimes
+// * 2 White furs
+// * 2 Hard spikes
+// * 2 Tiny potions
+
+015-3.gat,32,25,0 script Katze 172, {
+
+ if (Katze == 1 && KatzeBeenOutside == 1) goto L_NeedsFood;
+ if (Katze == 1) goto L_PreNeedsFood;
+
+ if (Katze == 2 && KatzeBeenOutside == 1) goto L_NeedsFur;
+ if (Katze == 2) goto L_PreNeedsFur;
+
+ if (Katze == 3) goto L_NeedsWood;
+
+ if (Katze == 4 && KatzeBeenOutside == 1) goto L_NeedsStuff;
+ if (Katze == 4) goto L_PreNeedsStuff;
+
+ if (Katze == 5) goto L_NeedsStuff2;
+
+ if (Katze == 6 && KatzeBeenOutside == 1) goto L_GainEars;
+ if (Katze == 6) goto L_PreGainEars;
+
+ if (Katze == 7) goto L_Finished;
+
+L_NeedsMilk:
+ mes "[Katze]";
+ mes "\"Meow.\"";
+ next;
+ menu "Throw a stone at the cat", L_ThrowStone,
+ "Leave the cat alone", -;
+ close;
+
+L_ThrowStone:
+ set Katze, 0;
+ // Maybe make sure not to kill the player, since this has an issue. The
+ // text below will remain in the NPC dialog until it is used again.
+ heal -100,0;
+ warp "015-1.gat", 60, 32;
+ mes "\"GRAAUWL! Hissss...\"";
+ mes "Yikes, the cat attacked you! Your whole body is scratched. Maybe throwing a stone wasn't such a great idea...";
+ next;
+ close;
+
+L_PreNeedsFood:
+L_NeedsFood:
+ mes "[Katze]";
+ mes "\"Meow, prrrr...\"";
+ next;
+ menu "Throw a stone at the cat", L_ThrowStone,
+ "Leave the cat alone", -;
+ close;
+
+L_PreNeedsFur:
+L_NeedsFur:
+ mes "[Katze]";
+ mes "\"Prrr. Meow, prrr...\"";
+ next;
+
+ if (countitem(611) > 0) // White Fur
+ menu "Make funny movements with the fur near the ground", L_MoveFur,
+ "Throw a stone at the cat", L_ThrowStone,
+ "Leave the cat alone", -;
+ if (countitem(611) == 0)
+ menu "Throw a stone at the cat", L_ThrowStone,
+ "Leave the cat alone", -;
+ close;
+
+L_MoveFur:
+ delitem 611, 1; // Cat takes the white fur
+ set Katze, 3;
+ mes "The cat jumps at the fur! You quickly let go of it. The cat happily returns to its spot, carrying the fur in its mouth.";
+ next;
+ mes "The cat drops the fur and looks at you with half opened eyes. Suddenly she starts talking, and says: \"That was very kind of you.\" She seems to be smiling.";
+ next;
+ close;
+
+L_NeedsWood:
+ mes "[Katze]";
+ mes "\"Prrrr, now I'd like something to sharpen my claws on.\"";
+ next;
+
+ if (countitem(569) > 0) // Raw log
+ menu "Want this piece of wood?", L_GiveWood,
+ "Ok, see you later", -;
+ close;
+
+L_GiveWood:
+ mes "[Katze]";
+ mes "\"Sure! Please put it next to the pot.\"";
+ next;
+ close;
+
+L_PreNeedsStuff:
+ mes "The cat is still eyeing the piece of wood. She probably needs to be left alone for a bit again.";
+ next;
+ close;
+
+L_NeedsStuff:
+ set Katze, 5;
+ mes "[Katze]";
+ mes "\"You've been really kind to me. I can make you something nice, but I will need";
+ mes "2 snake skins,";
+ mes "2 snake tongues,";
+ mes "2 maggot slimes,";
+ mes "2 white furs,";
+ mes "2 hard spikes and";
+ mes "2 tiny healing potions.\"";
+ next;
+ close;
+
+L_NeedsStuff2:
+ mes "[Katze]";
+ mes "\"Did you bring what I asked you for?\"";
+ next;
+ menu "Look here", L_CatChecksStuff,
+ "What do you need again?", L_WhatsNeeded,
+ "No, I haven't got everything yet", -;
+ close;
+
+L_WhatsNeeded:
+ mes "[Katze]";
+ mes "\"Actually, you should have remembered yourself.\"";
+ next;
+ menu "Please tell me", L_Please,
+ "Never mind", -;
+ close;
+
+L_Please:
+ mes "[Katze]";
+ mes "\"Alright... [the cat glares at you] it was";
+ mes "2 snake skins,";
+ mes "2 snake tongues,";
+ mes "2 maggot slimes,";
+ mes "2 white furs,";
+ mes "2 hard spikes and";
+ mes "2 tiny healing potions.\"";
+ next;
+ close;
+
+L_CatChecksStuff:
+ if (countitem(641) > 1 && // Snake skin
+ countitem(710) > 1 && // Snake tongue
+ countitem(505) > 1 && // Maggot slime
+ countitem(611) > 1 && // White fur
+ countitem(613) > 1 && // Hard spike
+ countitem(684) > 1) // Tiny healing potion
+ goto L_GiveStuff;
+ mes "[Katze]";
+ mes "\"You don't seem to have everything yet. Come back later when you do.\"";
+ next;
+ close;
+
+L_GiveStuff:
+ delitem 641, 2;
+ delitem 710, 2;
+ delitem 505, 2;
+ delitem 611, 2;
+ delitem 613, 2;
+ delitem 684, 2;
+ set Katze, 6;
+ set KatzeBeenOutside, 0;
+ mes "[Katze]";
+ mes "\"Nicely done! Now leave me alone for a while, I need some time to prepare your present.\"";
+ next;
+ close;
+
+L_PreGainEars:
+ mes "[Katze]";
+ mes "\"Please leave me alone for a while, so I can prepare your present.\"";
+ next;
+ close;
+
+L_GainEars:
+ getitem 1217, 1; // Cat ears
+ set @xpval, 5000;
+ getexp @xpval, 0;
+ set Katze, 7;
+ mes "[Katze]";
+ mes "\"Look what I made for you! It makes you look a bit like me! Maybe it will give you a feeling of what it is like to be a cat.\"";
+ mes "The cat winks at you.";
+ mes "[You gain " + @xpval + " experience points]";
+ next;
+ close;
+
+L_Finished:
+ mes "[Katze]";
+ if (getequipid(equip_head) == 1217) // Cat ears
+ mes "\"Meow, fellow cat.\"";
+ if (getequipid(equip_head) != 1217)
+ mes "\"Meow. Lost your ears?\"";
+ next;
+ close;
+}
diff --git a/npc/015-3/pot.txt b/npc/015-3/pot.txt
new file mode 100644
index 00000000..bf3bd945
--- /dev/null
+++ b/npc/015-3/pot.txt
@@ -0,0 +1,111 @@
+// The pot where the player can deposit stuff for the cat.
+
+015-3.gat,37,29,0 script Pot 127, {
+
+ if (Katze > 0)
+ mes "It's that old pot again.";
+ if (Katze == 0)
+ mes "It's a pot.";
+ next;
+
+ if (Katze == 1 && KatzeBeenOutside == 1) goto L_NeedsFood;
+ if (Katze == 1) goto L_HasMilk;
+
+ if (Katze == 2 && KatzeBeenOutside == 1) goto L_NeedsFur;
+ if (Katze == 2) goto L_HasFood;
+
+ if (Katze == 3) goto L_NeedsWood;
+
+ if (Katze == 4 && KatzeBeenOutside == 0) goto L_HasWood;
+ if (Katze >= 4) goto L_Finished;
+
+L_NeedsMilk:
+ if (countitem(527) > 0)
+ menu
+ "Pour in some milk", L_GiveMilk,
+ "Leave it alone", -;
+ close;
+
+L_GiveMilk:
+ delitem 527, 1;
+ set Katze, 1;
+ set KatzeBeenOutside, 0;
+ close;
+
+L_HasMilk:
+ mes "There is milk in it.";
+ next;
+ close;
+
+L_NeedsFood:
+ mes "The milk is gone!";
+ next;
+
+ if (countitem(562) > 0 && countitem(676) > 0)
+ menu
+ "Put in a chicken leg", L_GiveChicken,
+ "Put in a steak", L_GiveSteak,
+ "Leave it alone", -;
+ if (countitem(562) > 0 && countitem(676) == 0)
+ menu
+ "Put in a chicken leg", L_GiveChicken,
+ "Leave it alone", -;
+ if (countitem(562) == 0 && countitem(676) > 0)
+ menu
+ "Put in a steak", L_GiveSteak,
+ "Leave it alone", -;
+ close;
+
+L_GiveChicken:
+ delitem 562, 1;
+ set Katze, 2;
+ set KatzeBeenOutside, 0;
+ close;
+
+L_GiveSteak:
+ delitem 676, 1;
+ set Katze, 2;
+ set KatzeBeenOutside, 0;
+ close;
+
+L_HasFood:
+ mes "There is some food in it.";
+ next;
+ close;
+
+L_NeedsFur:
+ mes "And it's empty!";
+ next;
+
+ if (countitem(611) > 0) // White Fur
+ menu "Put a white fur next to the pot", L_GiveFur,
+ "Leave it alone", -;
+ close;
+
+L_GiveFur:
+ mes "You put down the fur, but the cat doesn't seem to take any notice. Maybe there's something else you could do. You pick the fur up again.";
+ next;
+ close;
+
+L_NeedsWood:
+ if (countitem(569) > 0) // Raw log
+ menu "Put a wooden log next to the pot", L_GiveWood,
+ "Leave it alone", -;
+ close;
+
+L_GiveWood:
+ delitem 569, 1;
+ set Katze, 4;
+ set KatzeBeenOutside, 0;
+ mes "You put the wooden log next to the pot. The cat eyes it suspiciously, but remains on her spot.";
+ next;
+ close;
+
+L_HasWood:
+ mes "A wooden log is patiently lying next to it.";
+ next;
+ close;
+
+L_Finished:
+ close;
+}