summaryrefslogtreecommitdiff
path: root/npc/012-1
diff options
context:
space:
mode:
Diffstat (limited to 'npc/012-1')
-rw-r--r--npc/012-1/_import.txt8
-rw-r--r--npc/012-1/_mobs.txt74
-rw-r--r--npc/012-1/_warps.txt14
-rw-r--r--npc/012-1/amrak.txt10
-rw-r--r--npc/012-1/injured-mouboo.txt231
-rw-r--r--npc/012-1/shops.txt3
6 files changed, 340 insertions, 0 deletions
diff --git a/npc/012-1/_import.txt b/npc/012-1/_import.txt
new file mode 100644
index 00000000..095de153
--- /dev/null
+++ b/npc/012-1/_import.txt
@@ -0,0 +1,8 @@
+// Map 012-1: Woodland Hills
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+map: 012-1.gat
+npc: npc/012-1/_mobs.txt
+npc: npc/012-1/_warps.txt
+npc: npc/012-1/amrak.txt
+npc: npc/012-1/injured-mouboo.txt
+npc: npc/012-1/shops.txt
diff --git a/npc/012-1/_mobs.txt b/npc/012-1/_mobs.txt
new file mode 100644
index 00000000..0cfb2c14
--- /dev/null
+++ b/npc/012-1/_mobs.txt
@@ -0,0 +1,74 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Woodland Hills mobs
+
+012-1.gat,0,0,0,0 monster PinkFlower 1014,13,0,100,Mob012-1::On1014
+012-1.gat,0,0,0,0 monster SpikyMushroom 1019,25,0,10,Mob012-1::On1019
+012-1.gat,0,0,0,0 monster Mouboo 1028,20,0,10,Mob012-1::On1028
+012-1.gat,0,0,0,0 monster Mauve 1029,5,2700000,1800000,Mob012-1::On1029
+012-1.gat,0,0,0,0 monster Cobalt 1030,2,2700000,1800000,Mob012-1::On1030
+012-1.gat,0,0,0,0 monster Gamboge 1031,2,2700000,1800000,Mob012-1::On1031
+012-1.gat,0,0,0,0 monster Alizarin 1032,2,2700000,1800000,Mob012-1::On1032
+012-1.gat,0,0,0,0 monster SilkWorm 1035,5,60000,30000,Mob012-1::On1035
+012-1.gat,0,0,0,0 monster Clover 1037,2,0,1000,Mob012-1::On1037
+012-1.gat,0,0,0,0 monster Squirrel 1038,25,30,20,Mob012-1::On1038
+012-1.gat,0,0,0,0 monster Butterfly 1055,20,30,20,Mob012-1::On1055
+
+
+012-1.gat,0,0,0 script Mob012-1 -1,{
+On1014:
+ set @mobID, 1014;
+ callfunc "MobPoints";
+ break;
+
+On1019:
+ set @mobID, 1019;
+ callfunc "MobPoints";
+ break;
+
+On1028:
+ set @mobID, 1028;
+ callfunc "MobPoints";
+ break;
+
+On1029:
+ set @mobID, 1029;
+ callfunc "MobPoints";
+ break;
+
+On1030:
+ set @mobID, 1030;
+ callfunc "MobPoints";
+ break;
+
+On1031:
+ set @mobID, 1031;
+ callfunc "MobPoints";
+ break;
+
+On1032:
+ set @mobID, 1032;
+ callfunc "MobPoints";
+ break;
+
+On1035:
+ set @mobID, 1035;
+ callfunc "MobPoints";
+ break;
+
+On1037:
+ set @mobID, 1037;
+ callfunc "MobPoints";
+ break;
+
+On1038:
+ set @mobID, 1038;
+ callfunc "MobPoints";
+ break;
+
+On1055:
+ set @mobID, 1055;
+ callfunc "MobPoints";
+ break;
+
+ end;
+}
diff --git a/npc/012-1/_warps.txt b/npc/012-1/_warps.txt
new file mode 100644
index 00000000..de7ffc77
--- /dev/null
+++ b/npc/012-1/_warps.txt
@@ -0,0 +1,14 @@
+// This file is generated automatically. All manually changes will be removed when running the Converter.
+// Woodland Hills warps
+
+012-1.gat,51,39 warp ToCaves -1,-1,012-3.gat,370,45
+012-1.gat,147,67 warp ToCaves -1,-1,012-3.gat,474,103
+012-1.gat,41,48 warp ToCaves -1,-1,012-3.gat,353,78
+012-1.gat,44,88 warp ToCaves -1,-1,012-3.gat,354,187
+012-1.gat,92,104 warp ToCaves -1,-1,012-3.gat,270,111
+012-1.gat,98,99 warp ToCaves -1,-1,012-3.gat,36,81
+012-1.gat,109,92 warp ToCaves -1,-1,012-3.gat,79,73
+012-1.gat,123,90 warp ToCaves -1,-1,012-3.gat,38,156
+012-1.gat,150,61 warp ToWoodlandHills -1,2,013-1.gat,21,75
+012-1.gat,132,163 warp ToWoodland 0,-1,011-1.gat,72,16
+012-1.gat,65,126 warp ToCaves -1,-1,012-3.gat,176,139
diff --git a/npc/012-1/amrak.txt b/npc/012-1/amrak.txt
new file mode 100644
index 00000000..5a2a547a
--- /dev/null
+++ b/npc/012-1/amrak.txt
@@ -0,0 +1,10 @@
+//
+
+012-1.gat,137,104,0 script Amrak 103, {
+ mes "[Amrak]";
+ mes "\"I'm studying this waterfall. The water seems to flow from it like magic.\"";
+ next;
+ mes "[Amrak]";
+ mes "\"Unfortunately, I've had trouble getting up there. The monsters in these caves scare me.\"";
+ close;
+}
diff --git a/npc/012-1/injured-mouboo.txt b/npc/012-1/injured-mouboo.txt
new file mode 100644
index 00000000..1aa780f5
--- /dev/null
+++ b/npc/012-1/injured-mouboo.txt
@@ -0,0 +1,231 @@
+// The following auxiliary function is used both by appropriate magic and within the regular script:
+
+function script QuestMoubooHeal {
+ set @Q_MASK, NIBBLE_2_MASK;
+ set @Q_SHIFT, NIBBLE_2_SHIFT;
+
+ set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;
+ set @Q_status_upper, @Q_status & 12;
+ set @Q_status, @Q_status & 3;
+
+ set @STATE_INITIAL, 0;
+ set @STATE_HEALED_MOUBOO, 3;
+
+ if (@Q_status != @STATE_INITIAL)
+ goto L_nothing;
+
+ set @Q_status, @STATE_HEALED_MOUBOO;
+ callsub S_update_var;
+ mes "[Injured Mouboo]";
+ mes "A soft white glow surrounds the mouboo's leg, which slowly shifts back into place.";
+ mes "As the glow subsides, the mouboo gets up, carefully, and takes a few steps. It seems to be fully healed!";
+ mes "[5000 experience points]";
+ getexp 5000, 0;
+ next;
+
+ mes "[Injured Mouboo]";
+ mes "Visibly happy, the mouboo lies down on the ground and snuggles with a black piece of cloth it had been lying on.";
+ mes "The healing process must have been exhausting, for it is asleep in an instant.";
+ next;
+ set @value, 15;
+ callfunc "QuestSagathaHappy";
+ close;
+
+L_nothing:
+ mes "Your spell has no effect.";
+ close;
+
+S_update_var:
+ set @Q_wr_status, @Q_status | @Q_status_upper;
+ set QUEST_MAGIC,
+ (QUEST_MAGIC & ~(@Q_MASK)
+ | (@Q_wr_status << @Q_SHIFT));
+ return;
+}
+
+
+
+012-1.gat,57,153,0 script Mouboo 171,{
+ set @Q_MASK, NIBBLE_2_MASK;
+ set @Q_SHIFT, NIBBLE_2_SHIFT;
+
+ set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;
+ set @Q_status_upper, @Q_status & 12;
+ set @Q_status, @Q_status & 3;
+
+ set @STATE_INITIAL, 0;
+ set @STATE_KILLED_MOUBOO, 1;
+ set @STATE_TOOK_KILL_REWARD, 2;
+ set @STATE_HEALED_MOUBOO, 3;
+
+ if (@Q_status == @STATE_KILLED_MOUBOO)
+ goto L_dead;
+ if (@Q_status == @STATE_TOOK_KILL_REWARD)
+ goto L_took_reward;
+ if (@Q_status == @STATE_HEALED_MOUBOO)
+ goto L_healed;
+
+ mes "[Injured Mouboo]";
+ mes "You notice a mouboo lying on the ground, groaning, as if in pain.";
+ next;
+
+L_menu:
+ menu
+ "Examine the mouboo", L_examine,
+ "Give the mouboo something", L_give,
+ "Kill the mouboo", L_kill,
+ "Leave", -;
+ close;
+
+L_examine:
+ mes "[Injured Mouboo]";
+ mes "Looking closer, you notice that the mouboo's left hind leg is bent at a very unnatural angle-- that seems to be the cause for its pain.";
+ next;
+ mes "[Injured Mouboo]";
+ mes "You also notice that the mouboo is lying on top of what appears to be a black turtleneck sweater.";
+ mes "Do you want to pick up the sweater?";
+ next;
+ menu
+ "Yes.", L_pickup_alive,
+ "No.", L_menu;
+ goto L_menu;
+
+L_pickup_alive:
+ mes "[Injured Mouboo]";
+ mes "The Mouboo groans and pushes your hand away. It seems to be rather fond of the sweater.";
+ next;
+ goto L_menu;
+
+L_give:
+ set @items_nr, 12;
+ setarray @items$, "CactusDrink", "CactusPotion", "ChocolateBar", "Milk", "OrangeCupcake", "RedApple", "Beer", "BottleOfWater", "TinyHealingPotion", "SmallHealingPotion", "MediumHealingPotion", "LargeHealingPotion";
+ setarray @itemeat, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0;
+
+ setarray @menuItems$, "", "", "", "", "", "", "", "", "", "", "", "", "";
+ set @choices_nr, 0;
+ setarray @menuNames$, "", "", "", "", "", "", "", "", "", "", "", "", "";
+ setarray @choice_eat, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
+
+ set @n, 0;
+ set @ct, 0;
+L_nloop:
+ set @k$, @items$[@n];
+ if (countitem(@k$) == 0)
+ goto L_nloop_skip;
+
+ set @name$, getitemname(@k$);
+ set @menuItems$[@ct], @name$;
+ set @menuNames$[@ct], @k$;
+ set @choice_eat[@ct], @itemeat[@n];
+ set @ct, @ct + 1;
+
+L_nloop_skip:
+
+ set @n, @n+1;
+ if (@n < @items_nr)
+ goto L_nloop;
+
+ set @menuItems$[@ct], "Nevermind";
+
+ menu @menuItems$[0], -,
+ @menuItems$[1], -,
+ @menuItems$[2], -,
+ @menuItems$[3], -,
+ @menuItems$[4], -,
+ @menuItems$[5], -,
+ @menuItems$[6], -,
+ @menuItems$[7], -,
+ @menuItems$[8], -,
+ @menuItems$[9], -,
+ @menuItems$[10], -,
+ @menuItems$[11], -,
+ @menuItems$[12], -;
+
+ set @menu, @menu - 1;
+
+ if (@menu == @ct) goto L_menu;
+
+ set @choice$, @menuNames$[@menu];
+ set @verb$, "drinks";
+ if (@choice_eat[@menu])
+ set @verb$, "eats";
+
+ if (@choice$ != "" && countitem(@choice$))
+ goto L_consume;
+
+ goto L_menu;
+
+L_consume:
+ mes "[Injured Mouboo]";
+ mes "The mouboo " + @verb$ + " your " + getitemname(@choice$) + ".";
+ delitem @choice$, 1;
+ next;
+
+ if (@choice$ == "LargeHealingPotion")
+ goto L_do_heal;
+
+
+ mes "[Injured Mouboo]";
+ mes "Unfortunately, it seems to have had no effect.";
+ next;
+ goto L_menu;
+
+L_do_heal:
+ callfunc "QuestMoubooHeal";
+
+L_kill:
+ mes "[Injured Mouboo]";
+ if (BaseLevel > 44)
+ goto L_kill_success;
+ mes "The mouboo deflects your attack and counterattacks!";
+ mes "It misses you only barely.";
+ mes "Injured though it may be, this mouboo is still more than a match for you!";
+ next;
+ goto L_menu;
+
+L_kill_success:
+ mes "After some wrestling, the mouboo succumbs to your attacks.";
+ mes "[100 experience points]";
+ getexp 100, 0;
+
+ set @Q_status, @STATE_KILLED_MOUBOO;
+ callsub S_update_var;
+
+ next;
+
+L_dead:
+ mes "[Dead Mouboo]";
+ mes "The dead mouboo is lying on top of a black T-neck sweater.";
+
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_nopickup;
+
+ getitem "BlackTurtleneckSweater", 1;
+ mes "You pull out the sweater and stuff it into your backpack.";
+
+ set @Q_status, @STATE_TOOK_KILL_REWARD;
+ callsub S_update_var;
+ close;
+
+L_took_reward:
+ mes "[Dead Mouboo]";
+ mes "You see a dead mouboo.";
+ close;
+
+L_nopickup:
+ mes "Unfortunately, you can't carry any more.";
+ close;
+
+L_healed:
+ mes "[Mouboo]";
+ mes "The mouboo is sleeping soundly, smiling in its dreams.";
+ close;
+
+S_update_var:
+ set @Q_wr_status, @Q_status | @Q_status_upper;
+ set QUEST_MAGIC,
+ (QUEST_MAGIC & ~(@Q_MASK)
+ | (@Q_wr_status << @Q_SHIFT));
+ return;
+}
diff --git a/npc/012-1/shops.txt b/npc/012-1/shops.txt
new file mode 100644
index 00000000..b29e5542
--- /dev/null
+++ b/npc/012-1/shops.txt
@@ -0,0 +1,3 @@
+//
+
+012-1.gat,36,99,0 shop Blossom 163,661:100,664:100,665:50,662:100,667:50,663:100,671:75,673:25,669:75,672:25,674:25