summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2023-10-15 10:43:10 -0300
committerJesusaves <cpntb1@ymail.com>2023-10-15 10:43:10 -0300
commitf20882e9778e589add9997282d8fa0df176fabc9 (patch)
tree4aa60e059ab7aff13693f94c14bb03757b4136bb
parenta9c30a8762e2894b96bc3259d40ccba7ceb40f40 (diff)
downloadserverdata-f20882e9778e589add9997282d8fa0df176fabc9.tar.gz
serverdata-f20882e9778e589add9997282d8fa0df176fabc9.tar.bz2
serverdata-f20882e9778e589add9997282d8fa0df176fabc9.tar.xz
serverdata-f20882e9778e589add9997282d8fa0df176fabc9.zip
MK Showdown is now tested. It is... Easier than I had hoped for, but should be fun.
-rw-r--r--npc/026-6/ctrl.c31
-rw-r--r--npc/026-7/boss.txt83
2 files changed, 64 insertions, 50 deletions
diff --git a/npc/026-6/ctrl.c b/npc/026-6/ctrl.c
index cdf64f0f9..9e961ba56 100644
--- a/npc/026-6/ctrl.c
+++ b/npc/026-6/ctrl.c
@@ -13,6 +13,7 @@
// TODO: The main NPC which lets you get out of the platform
026-6,21,70,0, script #026-6Gate NPC_FANCY_CIRCLE,1,0,{
if (getq(General_Fortress) < 6) { die(); end; }
+ if ($MK_TEMPVAR >= MKIF_LV_B7F) goto L_Warp;
mesc l(".:: Impregnable Fortress, %sF ::.", "B6"), 3;
msObjective($MK_TEMPVAR >= MKIF_LV_B7F, l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B7F));
mes "";
@@ -20,8 +21,8 @@
close;
L_Warp:
- // Not unlocked
- if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B7F) {
+ // Not unlocked (this time, require Andrei Sakar mission completion)
+ if ($GAME_STORYLINE < 4 || $MK_TEMPVAR < MKIF_LV_B7F) {
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_B7F), 1;
@@ -37,7 +38,7 @@ L_Warp:
dispbottom l("I should wait for %s or one of the heroes to challenge the Monster King.", $MOST_HEROIC$);
end;
}
- doevent "#DungeonCore::OnBlood";
+ doevent "#DungeonCore::OnBleed";
slide any(21, 22), 63;
end;
@@ -83,8 +84,8 @@ OnInit:
do {
if (.@e >= 30)
break;
- .@x = rand2(21, 60);
- .@y = rand2(21, 60);
+ .@x = rand2(21, 140);
+ .@y = rand2(21, 120);
.@e+=1;
} while (!checknpccell("026-6", .@x, .@y, cell_chkpass));
movenpc .name$, .@x, .@y;
@@ -92,12 +93,20 @@ OnInit:
}
// 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
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap02 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap03 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap04 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap05 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap06 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap07 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap08 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap09 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap10 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap11 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap12 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap13 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap14 NPC_TRAP_ONLINE,0,0
+026-6,0,0,0 duplicate(#0266_Trap01) #0266_Trap15 NPC_TRAP_ONLINE,0,0
// Storage master (18, 57), healer (25, 57), etc. (125, 66)
026-6,18,57,0 script Barzil#FT NPC_LLOYD,{
diff --git a/npc/026-7/boss.txt b/npc/026-7/boss.txt
index 85950e090..2f6da9220 100644
--- a/npc/026-7/boss.txt
+++ b/npc/026-7/boss.txt
@@ -14,6 +14,7 @@ OnInit:
.mana = 0; // More mana = more likely to cast skills
.immortal = true; // Set to FALSE when all four guardians are defeated
.memohp = 999; // Memorand HP, controls spawns
+ .mou = 0; // Temporary for Cutscene
end;
// Maybe not OnTouch, but OnSit?
@@ -48,7 +49,7 @@ OnBegin:
// Lock the MK in the showdown
$@MK_SCENE=MK_SHOWDOWN;
// Initial assortment of monsters
- siege_cast("026-7", .name$, 15, TP_TULIM|TP_HURNS|TP_NIVAL);
+ //siege_cast("026-7", .name$, 15, TP_TULIM|TP_HURNS|TP_NIVAL);
// Spawn the boss himself
.MK=monster("026-7", 39, 34, "The Monster King", MonsterKing, 1);
immortal(.MK); // Immortal until conditions are met
@@ -127,7 +128,7 @@ OnTimer15000:
consolewarn("Warning, fail-safe mechanism triggered to Monster King.");
OnTimer10000:
maptimer2("026-7", 10, "Impregnable#B7F::OnMFDispose");
- .mana += 1; // Recover mana
+ .mana += (.immortal ? 1 : 2); // Recover mana
/* Regeneration & Defeat Loop */
.@end = false;
@@ -210,12 +211,12 @@ OnTimer10000:
if (.@hp < .memohp) {
.memohp = .@hp;
.mana += 25;
- siege_cast("026-7", .name$, 15, TP_TULIM|TP_HURNS|TP_NIVAL);
+ siege_cast("026-7", .name$, 35, TP_TULIM|TP_HURNS|TP_NIVAL);
}
}
/* Decide whenever the Monster King will use a skill. */
- // Each Mana point is worth 1% chance. He gains 6 points per minute.
+ // Each Mana point is worth 1% chance. He gains 6 points per minute. (12 later)
// (While immortal, each mana point is worth 0.5% chance)
if (rand2(.immortal ? 200 : 100) <= .mana) {
.mana -= 5; // Mana cost for skill use. It can go negative
@@ -455,56 +456,60 @@ L_NextAct:
$MANA_BLVL-=10; // Set base level to 5~15
$MANA_BLVL=max(0, $MANA_BLVL);
// XXX Cutscene
- .@mou = monster("026-7", 39, 35, "Moubootaur", MobMoubootaur, 1);
- immortal(.@mou);
- sc_start(SC_STUN, 90000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@mou);
+ sleep(3000);
+ .mou = monster("026-7", 39, 37, "Moubootaur", MobMoubootaur, 1);
+ immortal(.mou);
+ sc_start(SC_STUN, 90000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .mou);
maptimer2("026-7", 30, "Book#FoS::OnMFShake");
- sleep(1000);
- unittalk(.@mou, "##1I'm free... At least!");
- sleep(2500);
- unittalk(.@mou, "##1The blood in the Heart, as the prophecy foretold!");
- sleep(2500);
+ sleep(3000);
+ unittalk(.mou, "##1I'm free... At least!");
+ sleep(6500);
+ unittalk(.mou, "##1The blood in the Heart, as the prophecy foretold!");
+ sleep(4500);
maptimer2("026-7", 30, "Book#FoS::OnMFShake");
sleep(30);
- unittalk(.@mou, "##1All monsters, heed my command! ##BHostile Takeover!##b");
- sleep(1000);
+ unittalk(.mou, "##1All monsters, heed my command! ##BHostile Takeover!##b");
+ sleep(1500);
freeloop(true);
- for (.@i=0; .@i < 50; .@i++) {
+ for (.@i=0; .@i < 25; .@i++) {
.@m = areamonster("026-7", 20, 20, 55, 55, "Subjugated Monster", any(PinkieEmperor, PanthomLord, TerraniteKing, YetiKing, PsiConscience, DemureSecondForm, Luvia, Birb, MonsterGeneral, MonsterColonel, LavaSlimeMother, BlackSlimeMother, WanderingShadow, BanditLord, HoodedAssassin, SpiderQueen, NightScorpion, SaxsoGhost, GiantMutatedBat), 1);
immortal(.@m);
sc_start(SC_STUN, 90000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@m);
- sleep(50); // 2.5 s
+ sleep(200); // 5 s
}
freeloop(false);
- unittalk(.@mou, "##1My children, ##BArise!##b");
- sleep(1000);
+ sleep(3000);
+ unittalk(.mou, "##1My children, ##BArise!##b");
+ sleep(1500);
freeloop(true);
- for (.@i=0; .@i < 50; .@i++) {
+ for (.@i=0; .@i < 25; .@i++) {
.@m = areamonster("026-7", 20, 20, 55, 55, "Subjugated Monster", any(Moubi, Moubi, Moubi, MoubooSlime, GreatMoubooSlime, Mouboo, Mouboo, EasterMouboo, AlphaMouboo, Shrewboo, BloodyMouboo), 1);
immortal(.@m);
sc_start(SC_STUN, 90000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@m);
- sleep(40); // 2 s
+ sleep(160); // 4 s
}
freeloop(false);
- unittalk(.@mou, "##1I have taken over the World Heart... Your chances are forfeit.");
- sleep(4000);
- unittalk(.@mou, "##1But first, I'll make a Monster King puppet.");
- sleep(1000);
+ sleep(3000);
+ unittalk(.mou, "##1I have taken over the World Heart... Your chances are forfeit.");
+ sleep(6000);
+ unittalk(.mou, "##1But first, I'll make a Monster King puppet.");
+ sleep(2000);
.@m = monster("026-7", 39, 34, "Monster King (puppet)", MonsterKing, 1);
immortal(.@m);
sc_start(SC_STUN, 90000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .@m);
- sleep(2000);
- unittalk(.@mou, "##1Now, it would be inconvenient if you were to disturb me while I work...");
- sleep(4000);
- unittalk(.@mou, "##1It'll take several days or even months to corrupt the Heart. Can't be bothered.");
+ sleep(3000);
+ unittalk(.mou, "##1Now, it would be inconvenient if you were to disturb me while I work...");
+ sleep(6000);
+ unittalk(.mou, "##1It'll take several days or even months to corrupt the Heart. Can't be bothered.");
+ sleep(8000);
+ unittalk(.mou, "##1Enjoy your final days while you can. The day on which everything will be a Mouboo is upon us!");
sleep(5000);
- unittalk(.@mou, "##1Enjoy your final days while you can. The day on which everything will be a Mouboo is upon us!");
maptimer2("026-7", 10, "Impregnable#B7F::OnVictory");
// Cleanup
sleep(10000);
$@MK_SCENE=MK_NONE;
killmonsterall("026-7");
-
+ .mou = 0;
// This disables all mosnters :<
//setbattleflag("monster_ai", 0x209);
@@ -568,13 +573,13 @@ OnInit:
}
// Create more traps
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap02 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap03 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap04 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap05 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap06 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap07 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap08 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap09 NPC_TRAP,0,0
-026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap10 NPC_TRAP,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap02 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap03 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap04 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap05 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap06 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap07 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap08 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap09 NPC_TRAP_ONLINE,0,0
+026-7,0,0,0 duplicate(#MKBossTrap01) #MKBossTrap10 NPC_TRAP_ONLINE,0,0