summaryrefslogtreecommitdiff
path: root/npc/026-6/ctrl.c
diff options
context:
space:
mode:
Diffstat (limited to 'npc/026-6/ctrl.c')
-rw-r--r--npc/026-6/ctrl.c65
1 files changed, 61 insertions, 4 deletions
diff --git a/npc/026-6/ctrl.c b/npc/026-6/ctrl.c
index f443e331a..ba8399923 100644
--- a/npc/026-6/ctrl.c
+++ b/npc/026-6/ctrl.c
@@ -10,10 +10,9 @@
// effect, it only has some support NPCs (banker and healer) if you completed the
// Moubootaur Showdown earlier.
-// TODO: Validate the use of MKIF_LV_BXF
-// TODO: The main NPC which lets you out of here
-// TODO: The traps
+// TODO: The main NPC which lets you get in here
// TODO: The boss chamber (also, are mapflags working? This should be a Blood Pact)
+// TODO: Storage master, healer, etc.
026-6,21,70,0, script #026-6Gate NPC_FANCY_CIRCLE,1,0,{
if (getq(General_Fortress) < 6) { die(); end; }
mesc l(".:: Impregnable Fortress, %sF ::.", "B6"), 3;
@@ -30,7 +29,16 @@ L_Warp:
mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B7F), 1;
close;
}
- //warp "026-7", X, Y; // Or maybe just a slide
+ if (!$@MK_CHALLENGE && !islegendary() && strcharinfo(0) != $MOST_HEROIC$) {
+ dispbottom l("I should wait for %s or one of the heroes to challenge the Monster King.", $MOST_HEROIC$);
+ end;
+ }
+ doevent "#DungeonCore::OnBlood";
+ slide any(21, 22), 63;
+ end;
+
+OnGoto:
+ slide 46, 114;
end;
OnInit:
@@ -38,3 +46,52 @@ OnInit:
end;
}
+026-6,22,40,0, script #MKBossFightFire NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ warp "026-7", 21, 28;
+ if (!$@MK_CHALLENGE) {
+ $@MK_CHALLENGE=true;
+ kamibroadcast(strcharinfo(0)+" has CHALLENGED the MONSTER KING to a SHOWDOWN!", "WORLD HEART");
+ sleep(2500);
+ kamibroadcast("The teleporter is now enabled... Get to positions!", "WORLD HEART");
+ sleep(5000);
+ kamibroadcast("It is... SHOWDOWN TIME!", "WORLD HEART");
+ sleep(2500);
+ donpcevent "Impregnable#B7F::OnBegin";
+ }
+ end;
+}
+
+// Room Traps, only against players
+026-6,0,0,0 script #0266_Trap01 NPC_TRAP_ONLINE,0,0,{
+ end;
+
+OnTouch:
+OnTouchNPC:
+ WorldHeartTrap();
+ sleep(500); // Wait 500ms for animation
+ setnpcdisplay .name$, NPC_TRAP_ONLINE;
+ // Move the trap away after it disarms (up to 30 attempts)
+
+OnInit:
+ .@e=0;
+ do {
+ if (.@e >= 30)
+ break;
+ .@x = rand2(21, 60);
+ .@y = rand2(21, 60);
+ .@e+=1;
+ } while (!checknpccell("026-6", .@x, .@y, cell_chkpass));
+ movenpc .name$, .@x, .@y;
+ end;
+}
+
+// Create more traps
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap02 NPC_TRAP,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap03 NPC_TRAP,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap04 NPC_TRAP,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap05 NPC_TRAP,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap06 NPC_TRAP,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap07 NPC_TRAP,0,0
+