From 8a6628c11c04179a7738c3d60b606d38bf567ab2 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 29 Jul 2019 20:10:13 -0300 Subject: Monster King Challenge - minimal logic --- npc/boss/throne.txt | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'npc/boss') diff --git a/npc/boss/throne.txt b/npc/boss/throne.txt index e8f375bff..d44a63c99 100644 --- a/npc/boss/throne.txt +++ b/npc/boss/throne.txt @@ -14,4 +14,51 @@ OnTouch: dispbottom "The throne is cursed, only the Monster King may seat on it."; end; +// Controls the Event +OnBegin: + .MK=monster("boss", 45, 45, "The Monster King", MonsterKing, 1, .name$+"::OnVictory"); + .@bhp=getunitdata(.MK, UDT_MAXHP); + setunitdata(.MK, UDT_MAXHP, .@bhp+50000+2000*.FAILS); + setunitdata(.MK, UDT_HP, .@bhp+50000+2000*.FAILS); + + initnpctimer; + end; + +function CheckFinalAssault { + if (!siege_calcdiff(5)) { + kamibroadcast("You noobs, you all deserve to die!", "Monster King"); + stopnpctimer; + // Clean Up + mapwarp("boss", "017-1", 120, 88); + killmonsterall("boss"); + // Raise difficulty + .FAILS+=1; + // Halt execution + end; + } + return; +} + +OnTimer60000: + initnpctimer; +OnTimer15000: + // Each fail raise curse duration in 0.1s - chance of curse is 15% each 15s + if (rand2(100) <= 15) { + areasc2("boss", 45, 45, 25, 3000+(.FAILS*100), SC_CURSE, BL_PC | BL_HOM | BL_MER); + //globalmes("MSG"); + unittalk(.MK, "Be cursed, you fools! I am the mighty Monster King!!"); + } +OnTimer5000: +OnTimer10000: +OnTimer20000: +OnTimer25000: +OnTimer30000: +OnTimer35000: +OnTimer40000: +OnTimer45000: +OnTimer50000: +OnTimer55000: + CheckFinalAssault(); + end; + } -- cgit v1.2.3-70-g09d2