summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/026-5/ctrl.c2
-rw-r--r--npc/026-6/_mobs.txt2
-rw-r--r--npc/026-6/_warps.txt1
-rw-r--r--npc/026-6/ctrl.c65
-rw-r--r--npc/026-7/_config.txt9
-rw-r--r--npc/026-7/_import.txt1
-rw-r--r--npc/026-7/boss.txt5
7 files changed, 76 insertions, 9 deletions
diff --git a/npc/026-5/ctrl.c b/npc/026-5/ctrl.c
index 2ae7acd85..1be780311 100644
--- a/npc/026-5/ctrl.c
+++ b/npc/026-5/ctrl.c
@@ -149,7 +149,7 @@ L_Warp:
mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B6F), 1;
close;
}
- //warp "026-6", X, Y; // TODO: These coords actually NOT OK
+ //warp "026-6", 100, 90; // TODO: These coords actually NOT OK
dispbottom l("Coming Soon, in Moubootaur Legends!");
end;
diff --git a/npc/026-6/_mobs.txt b/npc/026-6/_mobs.txt
index 8d2c57e65..a7b32b253 100644
--- a/npc/026-6/_mobs.txt
+++ b/npc/026-6/_mobs.txt
@@ -1,3 +1,3 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
// Map 026-6: The Impregnable Fortress (B6F) mobs
-026-6,26,89,0,0 monster Jack.O 1120,1,10000,10000
+026-6,26,89,0,0 monster Jack.O 1120,1,10000,10000,#026-6Gate::OnGoto
diff --git a/npc/026-6/_warps.txt b/npc/026-6/_warps.txt
index 4569456d1..cbfb4fac2 100644
--- a/npc/026-6/_warps.txt
+++ b/npc/026-6/_warps.txt
@@ -1,5 +1,6 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
// Map 026-6: The Impregnable Fortress (B6F) warps
+026-6,88,94,0 warp #026-6_88_94 0,0,025-2,100,25
026-6,95,121,0 script #026-6_95_121 NPC_HIDDEN,0,0,{
end;
OnTouch:
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
+
diff --git a/npc/026-7/_config.txt b/npc/026-7/_config.txt
new file mode 100644
index 000000000..a1e5a12ff
--- /dev/null
+++ b/npc/026-7/_config.txt
@@ -0,0 +1,9 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 026-7: Boss Chamber conf
+
+026-7,21,28,0 script #026-7_21_28 NPC_HIDDEN,0,2,{
+ end;
+OnTouch:
+ doevent "#DungeonCore::OnBleed";
+ end;
+}
diff --git a/npc/026-7/_import.txt b/npc/026-7/_import.txt
index c79c41acd..5bfd1d477 100644
--- a/npc/026-7/_import.txt
+++ b/npc/026-7/_import.txt
@@ -1,4 +1,5 @@
// Map 026-7: Boss Chamber
// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/026-7/_config.txt",
"npc/026-7/_warps.txt",
"npc/026-7/boss.txt",
diff --git a/npc/026-7/boss.txt b/npc/026-7/boss.txt
index 6eae36cf3..f01effecd 100644
--- a/npc/026-7/boss.txt
+++ b/npc/026-7/boss.txt
@@ -40,9 +40,8 @@ function _moveNpc {
} // _moveNpc
// Controls the Event
-// TODO: Autostart
+// TODO: Intro Cutscene
OnBegin:
- $@MK_CHALLENGE=true;
// Initial assortment of monsters
siege_cast("026-7", .name$, 15, TP_TULIM|TP_HURNS|TP_NIVAL);
// Spawn the boss himself
@@ -484,7 +483,7 @@ OnInit:
.@x = rand2(21, 60);
.@y = rand2(21, 60);
.@e+=1;
- } while (!checknpccell("026-6", .@x, .@y, cell_chkpass));
+ } while (!checknpccell("026-7", .@x, .@y, cell_chkpass));
movenpc .name$, .@x, .@y;
end;
}