diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/026-7/boss.txt | 23 |
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; |