diff options
Diffstat (limited to 'npc/026-6/ctrl.c')
-rw-r--r-- | npc/026-6/ctrl.c | 65 |
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 + |