summaryrefslogtreecommitdiff
path: root/npc/018-2-2
diff options
context:
space:
mode:
Diffstat (limited to 'npc/018-2-2')
-rw-r--r--npc/018-2-2/main.txt51
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;