diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/026-0/ctrl.c | 9 | ||||
-rw-r--r-- | npc/026-1/ctrl.c | 9 | ||||
-rw-r--r-- | npc/026-2/ctrl.c | 9 | ||||
-rw-r--r-- | npc/026-3/ctrl.c | 9 | ||||
-rw-r--r-- | npc/026-4/ctrl.c | 9 | ||||
-rw-r--r-- | npc/026-5/ctrl.c | 9 | ||||
-rw-r--r-- | npc/026-6/ctrl.c | 1 | ||||
-rw-r--r-- | npc/functions/goodbye.txt | 31 |
8 files changed, 38 insertions, 48 deletions
diff --git a/npc/026-0/ctrl.c b/npc/026-0/ctrl.c index ea7233278..fe853aa65 100644 --- a/npc/026-0/ctrl.c +++ b/npc/026-0/ctrl.c @@ -19,14 +19,7 @@ OnTouch: close; L_Warp: - // Not unlocked - if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B1F) { - mesc l("The gate is sealed shut."), 1; - mesc l("The monster army is still strong on this floor!"), 1; - mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B1F), 1; - close; - } - warp "026-1", 29, 94; + fortwarp(MKIF_LV_B1F, "026-1", 29, 94); end; } diff --git a/npc/026-1/ctrl.c b/npc/026-1/ctrl.c index e5cc71480..db859266f 100644 --- a/npc/026-1/ctrl.c +++ b/npc/026-1/ctrl.c @@ -19,14 +19,7 @@ OnTouch: close; L_Warp: - // Not unlocked - if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B2F) { - mesc l("The gate is sealed shut."), 1; - mesc l("The monster army is still strong on this floor!"), 1; - mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B2F), 1; - close; - } - warp "026-2", 32, 96; + fortwarp(MKIF_LV_B2F, "026-2", 32, 96); end; // Disarm & reset everything diff --git a/npc/026-2/ctrl.c b/npc/026-2/ctrl.c index 0864d3265..dbff5ff3e 100644 --- a/npc/026-2/ctrl.c +++ b/npc/026-2/ctrl.c @@ -69,14 +69,7 @@ OnTouch: close; L_Warp: - // Not unlocked - if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B3F) { - mesc l("The gate is sealed shut."), 1; - mesc l("The monster army is still strong on this floor!"), 1; - mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B3F), 1; - close; - } - warp "026-3", 82, 19; + fortwarp(MKIF_LV_B3F, "026-3", 82, 19); end; OnTalkNearby: diff --git a/npc/026-3/ctrl.c b/npc/026-3/ctrl.c index 059b903b6..c2fd79423 100644 --- a/npc/026-3/ctrl.c +++ b/npc/026-3/ctrl.c @@ -39,13 +39,6 @@ OnTouch: close; L_Warp: - // Not unlocked - if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B4F) { - mesc l("The gate is sealed shut."), 1; - mesc l("The monster army is still strong on this floor!"), 1; - mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B4F), 1; - close; - } // This is a more complex warp .@e = 0; do { @@ -54,7 +47,7 @@ L_Warp: .@y = rand2(20, 40); .@e+=1; } while (!checknpccell("026-4", .@x, .@y, cell_chkpass)); - warp "026-4", .@x, .@y; + fortwarp(MKIF_LV_B4F, "026-4", .@x, .@y); end; // Reset the switches diff --git a/npc/026-4/ctrl.c b/npc/026-4/ctrl.c index 72520315f..73914ac31 100644 --- a/npc/026-4/ctrl.c +++ b/npc/026-4/ctrl.c @@ -140,13 +140,6 @@ OnTouch: close; L_Warp: - // Not unlocked - if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B5F) { - mesc l("The gate is sealed shut."), 1; - mesc l("The monster army is still strong on this floor!"), 1; - mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B5F), 1; - close; - } // This is a more complex warp .@e = 0; do { @@ -155,7 +148,7 @@ L_Warp: .@y = rand2(20, 40); .@e+=1; } while (!checknpccell("026-5", .@x, .@y, cell_chkpass)); - warp "026-5", .@x, .@y; + fortwarp(MKIF_LV_B5F, "026-5", .@x, .@y); end; OnInit: diff --git a/npc/026-5/ctrl.c b/npc/026-5/ctrl.c index 939bd5ae5..53445f9d8 100644 --- a/npc/026-5/ctrl.c +++ b/npc/026-5/ctrl.c @@ -142,14 +142,7 @@ OnTouch: close; L_Warp: - // Not unlocked - if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B6F) { - mesc l("The gate is sealed shut."), 1; - mesc l("The monster army is still strong on this floor!"), 1; - mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B6F), 1; - close; - } - warp "026-6", 100, 90; + fortwarp(MKIF_LV_B6F, "026-6", 100, 90); end; OnInit: diff --git a/npc/026-6/ctrl.c b/npc/026-6/ctrl.c index 9e961ba56..10539b0d0 100644 --- a/npc/026-6/ctrl.c +++ b/npc/026-6/ctrl.c @@ -54,6 +54,7 @@ OnInit: 026-6,22,40,0, script #MKBossFightFire NPC_HIDDEN,0,0,{ end; OnTouch: + // NOT a fortwarp() - there is no Barbara Bonus for the Showdown! warp "026-7", 21, 28; if (!$@MK_CHALLENGE) { $@MK_CHALLENGE=true; diff --git a/npc/functions/goodbye.txt b/npc/functions/goodbye.txt index b52146188..07697885f 100644 --- a/npc/functions/goodbye.txt +++ b/npc/functions/goodbye.txt @@ -150,3 +150,34 @@ function script goodbye2 { end; } + + + +// fortwarp(floor ID, dest map, dest x, dest y) +// warps player along the Fortress + +function script fortwarp { + // Not unlocked + if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < getarg(0)) { + mesc l("The gate is sealed shut."), 1; + mesc l("The monster army is still strong on this floor!"), 1; + mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, getarg(0)), 1; + close; + } + + // If you pledged for Barbara's life, your invincibility timer is vastly better + if (BARBARA_STATE == 3) { + if (!@barb) + percentheal 100, 100; + else if ((@barb + 180) < gettimetick(2)) + percentheal 5, 5; + if (@barb < gettimetick(2)) + sc_start SC_PRESTIGE, 4500, 3500, 5000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK|SCFLAG_FIXEDRATE, getcharid(3); // 4.5 seconds duration + @barb = gettimetick(2) + 15; + } + + // The actual warp within the Impregnable Fortress + warp getarg(1), getarg(2), getarg(3); + return; +} + |