summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/026-7/boss.txt23
1 files changed, 22 insertions, 1 deletions
diff --git a/npc/026-7/boss.txt b/npc/026-7/boss.txt
index 47667cfb0..532876000 100644
--- a/npc/026-7/boss.txt
+++ b/npc/026-7/boss.txt
@@ -15,6 +15,7 @@ OnInit:
.immortal = true; // Set to FALSE when all four guardians are defeated
.memohp = 999; // Memorand HP, controls spawns
.mou = 0; // Temporary for Cutscene
+ .start_time = gettimetick(2); // Controls Death Touch
end;
// Maybe not OnTouch, but OnSit?
@@ -22,7 +23,7 @@ OnTouch:
if (strcharinfo(2) == "Monster King") end;
slide 39, 35;
percentheal -15,0;
- dispbottom l("The throne is cursed, only the Monster King may seat on it.");
+ dispbottom l("The throne is cursed, only the Monster King may sit on it.");
end;
function _moveNpc {
@@ -203,6 +204,7 @@ OnTimer10000:
setunitdata(.MK, UDT_HP, .maxhp);
setunitdata(.MK, UDT_MAXHP, .maxhp);
.mana += 25;
+ .start_time = gettimetick(2);
}
}
@@ -214,6 +216,13 @@ OnTimer10000:
.mana += 25;
siege_cast("026-7", .name$, 35, TP_TULIM|TP_HURNS|TP_NIVAL);
}
+ // If Monster King is taking too much damage and too fast, throttle players
+ // Aegis Shield, however, provides immunity to this
+ if (.@hp <= 2 && .start_time < gettimetick(2) + 180) {
+ unittalk(.MK, "Death touch!");
+ maptimer2("026-7", 10, "Impregnable#B7F::OnDeathTouch");
+ .start_time = gettimetick(2) + 180; // This only happens once
+ }
}
/* Decide whenever the Monster King will use a skill. */
@@ -450,6 +459,18 @@ OnTimer10000:
initnpctimer;
end;
+OnDeathTouch:
+ if (strcharinfo(0) == $AEGIS_HOLDER$) end;
+ SC_Bonus(30, SC_BLIND, 1);
+ SC_Bonus(20, SC_SILENCE, 1);
+ SC_Bonus(10, SC_CURSE, 1);
+ // Consume some mana
+ if (islegendary())
+ percentheal 0, -10;
+ else
+ percentheal 0, -25;
+ end;
+
// Monster King was defeated - game won
L_NextAct:
$@MK_SCENE=MK_CUTSCENE;