summaryrefslogtreecommitdiff
path: root/npc/006-7
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-25 12:14:54 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-25 12:14:54 -0300
commit4475fbe47c2ac50706656fc772aae863a6f40932 (patch)
tree490c6cbfbfc9ff85db23e1fa3f6763845e9c610e /npc/006-7
parent90f8941def4b977e65bd0f441aab526333736a11 (diff)
downloadserverdata-4475fbe47c2ac50706656fc772aae863a6f40932.tar.gz
serverdata-4475fbe47c2ac50706656fc772aae863a6f40932.tar.bz2
serverdata-4475fbe47c2ac50706656fc772aae863a6f40932.tar.xz
serverdata-4475fbe47c2ac50706656fc772aae863a6f40932.zip
The boss will now summon reinforcements every 60 seconds.
I'm afraid we'll run out of effects, though
Diffstat (limited to 'npc/006-7')
-rw-r--r--npc/006-7/ctrl.txt25
1 files changed, 23 insertions, 2 deletions
diff --git a/npc/006-7/ctrl.txt b/npc/006-7/ctrl.txt
index 1a89b35ca..3217e432e 100644
--- a/npc/006-7/ctrl.txt
+++ b/npc/006-7/ctrl.txt
@@ -18,6 +18,7 @@ OnRw:
}
006-7,44,50,0 script Ice Lord NPC_YETIFLY,{
+ if ($@ICICLE_CHALLENGE) end;
if (.ticks > gettimetick(2)) {
mesn;
mesq l("This challenge will be available in %s. Please wait until then.", FuzzyTime(.ticks));
@@ -44,7 +45,7 @@ OnRw:
.BOSS = monster("006-7", 44, 36, "Der Schneemann", SnowmanBoss, 1);
.@mlt = (@menu == 2 ? 10 : 15);
- setunitdata(.BOSS, UDT_MAXHP, 1000000 * .@mlt / 10);
+ setunitdata(.BOSS, UDT_MAXHP, 1000000 * .@mlt / 10); // 1M ~ 1.5M
setunitdata(.BOSS, UDT_HP, 1000000 * .@mlt / 10);
// Reconfigure the AI
.@opt=getunitdata(.BOSS, UDT_MODE);
@@ -68,7 +69,7 @@ OnRw:
setunitdata(.BOSS, UDT_MODE, .@opt);
// Nerf the damage, but never miss a hit
- setunitdata(.BOSS, UDT_ATKMIN, 60 * .@mlt / 10);
+ setunitdata(.BOSS, UDT_ATKMIN, 60 * .@mlt / 10); // 60~90 dmg
setunitdata(.BOSS, UDT_ATKMAX, 60 * .@mlt / 10);
setunitdata(.BOSS, UDT_ADELAY, 2220 / .@mlt * 10); // 2220 or 1480ms
setunitdata(.BOSS, UDT_HIT, 2400);
@@ -80,6 +81,7 @@ OnRw:
// And weak against Fire (snow) and Wind (100% dmg)
// Otherwise, behave as Ghost element
+ $@ICICLE_CHALLENGE = true;
disablenpc .name$;
initnpctimer;
closeclientdialog;
@@ -87,6 +89,7 @@ OnRw:
// Heart
OnTimer5000:
+ /* Maybe the fight is over */
if (!mobcount("006-7", "all"))
maptimer2("006-7", 10, "#OutOf0067::OnRw");
if (.ticks < gettimetick(2) || !mobcount("006-7", "all") || !getmapusers("006-7")) {
@@ -94,10 +97,28 @@ OnTimer5000:
enablenpc .name$;
.ticks = min(.ticks, gettimetick(2) + 1800); // Min. Cooldown: 30 min
.beats = 0;
+ $@ICICLE_CHALLENGE = false;
stopnpctimer;
end;
}
+
+ /* Prepare some data */
+ .@hp = getunitdata(.BOSS, UDT_HP) * 100 / getunitdata(.BOSS, UDT_MAXHP);
.beats += 1;
+
+ /* Decide the skill to use based on ~5s beats over 3 minutes */
+ switch (.beats % 18) {
+ // Summon Reinforcements (every 60s)
+ case 0:
+ case 6:
+ case 12:
+ unittalk(.BOSS, "Come forth, snow army, for the Icicle shall live forever!");
+ specialeffect(64, AREA, .BOSS);
+ sleep(500);
+ monster("006-7", 44, 22, strmobinfo(1, Snowman), Snowman, max(1, (11 - .@hp) / 10));
+ break;
+ }
+
initnpctimer;
end;