diff options
-rw-r--r-- | npc/018-2-2/main.txt | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/npc/018-2-2/main.txt b/npc/018-2-2/main.txt index 14be06d3c..62d4dfbd6 100644 --- a/npc/018-2-2/main.txt +++ b/npc/018-2-2/main.txt @@ -8,15 +8,53 @@ 018-2-2,0,0,0 script #HH_CONTROLLER01 NPC_HIDDEN,{ end; +// Boss-Slaying related + function DungeonClear { + getmapxy(.@ms$, .@x, .@y, 0); + areatimer(.@m$, .@x-15, .@y-15, .@x+15, .@y+15, 100, "#HH_CONTROLLER01::OnFinish"); + } + +OnFinish: + warp "018-2-1", 0, 0; + .@g=getq2(LoFQuest_HH); + setq2 LoFQuest_HH, .@g|@HH_LEVEL; + dispbottom l("Novice Dungeon cleared!"); + getitem HeroCoin, @HH_LEVEL; + end; + +OnNoviceBossKilled: + DungeonClear(); + monster "018-2-2@No", 188, 29, "Novice Dungeon Boss", AlphaMouboo, 1, "#HH_CONTROLLER01::OnNoviceBossKilled"; + end; + +OnIntermedBossKilled: + DungeonClear(); + monster "018-2-3@In", 52, 196, "Intermediary Dungeon Boss", FafiDragon, 1, "#HH_CONTROLLER01::OnIntermedBossKilled"; + end; + +OnAdvancedBossKilled: + DungeonClear(); + monster "018-2-2@Ad", 52, 29, "Advanced Dungeon Boss", GiantMutatedBat, 1, "#HH_CONTROLLER01::OnAdvancedBossKilled"; + end; + +OnExpertBossKilled: + DungeonClear(); + monster "018-2-3@Ex", 188, 196, "Expert Dungeon Boss", FallenKing1, 1, "#HH_CONTROLLER01::OnExpertBossKilled"; + end; + +OnMasterBossKilled: + DungeonClear(); + monster "018-2-3", any(52,188), any(29,196), "Master Dungeon Boss", MonsterKing, 1, "#HH_CONTROLLER01::OnMasterBossKilled"; + end; + + +// Everytime loop OnPlayerCycle: @HH_TIMER+=1; // 20 minutes have passed. This should be 40 minutes, but the HH is not finished yet if (@HH_TIMER >= 2400) { warp "018-2-1", 0, 0; dispbottom l("You were rescued by DUSTMAN."); - // TODO FIXME - the only current way to win is wait 20 minutes - .@g=getq2(LoFQuest_HH); - setq2 LoFQuest_HH, .@g|@HH_LEVEL; end; } // TODO: Handle traps (We'll use isin() command because you can give 3~4 steps each counter) @@ -110,6 +148,13 @@ OnTimer7000: } freeloop(false); + // Boss for each dungeon + monster "018-2-2@No", 188, 29, "Novice Dungeon Boss", AlphaMouboo, 1, "#HH_CONTROLLER01::OnNoviceBossKilled"; + monster "018-2-3@In", 52, 196, "Intermediary Dungeon Boss", FafiDragon, 1, "#HH_CONTROLLER01::OnIntermedBossKilled"; + monster "018-2-2@Ad", 52, 29, "Advanced Dungeon Boss", GiantMutatedBat, 1, "#HH_CONTROLLER01::OnAdvancedBossKilled"; + monster "018-2-3@Ex", 188, 196, "Expert Dungeon Boss", FallenKing1, 1, "#HH_CONTROLLER01::OnExpertBossKilled"; + monster "018-2-3", any(52,188), any(29,196), "Master Dungeon Boss", MonsterKing, 1, "#HH_CONTROLLER01::OnMasterBossKilled"; + // TODO: We still need the main logic for this. I mean, what is the objective on each floor of Master Dungeon? debugmes "Heroes Hold Monsters: Success"; end; |