diff options
Diffstat (limited to 'npc/012-1')
-rw-r--r-- | npc/012-1/_import.txt | 8 | ||||
-rw-r--r-- | npc/012-1/_mobs.txt | 74 | ||||
-rw-r--r-- | npc/012-1/_warps.txt | 14 | ||||
-rw-r--r-- | npc/012-1/amrak.txt | 10 | ||||
-rw-r--r-- | npc/012-1/injured-mouboo.txt | 231 | ||||
-rw-r--r-- | npc/012-1/shops.txt | 3 |
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 |