summaryrefslogtreecommitdiff
path: root/npc/006-7
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-25 13:58:44 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-25 13:58:44 -0300
commita2ecf9e627f23fe76eb3a95bc50c7ddd3af80196 (patch)
treee0a58356020c6f9f9bddad99e2d9729a5e20f9ce /npc/006-7
parentc15028d7caf4025f9d247044703c94e750e764e9 (diff)
downloadserverdata-a2ecf9e627f23fe76eb3a95bc50c7ddd3af80196.tar.gz
serverdata-a2ecf9e627f23fe76eb3a95bc50c7ddd3af80196.tar.bz2
serverdata-a2ecf9e627f23fe76eb3a95bc50c7ddd3af80196.tar.xz
serverdata-a2ecf9e627f23fe76eb3a95bc50c7ddd3af80196.zip
It needed some tweaks. Note nothing was tested yet
Diffstat (limited to 'npc/006-7')
-rw-r--r--npc/006-7/ctrl.txt96
1 files changed, 72 insertions, 24 deletions
diff --git a/npc/006-7/ctrl.txt b/npc/006-7/ctrl.txt
index 72f3ec0f0..0ddaca185 100644
--- a/npc/006-7/ctrl.txt
+++ b/npc/006-7/ctrl.txt
@@ -133,39 +133,19 @@ OnTimer5000:
case 6:
case 12:
unittalk(.BOSS, "Come forth, ##Bsnow army##b, for the Icicle shall live forever!");
- specialeffect(64, AREA, .BOSS);
+ specialeffect(65, AREA, .BOSS); // Actually 64, but won't do well here
sleep(1000);
monster("006-7", 44, 22, strmobinfo(1, Snowman), Snowman, max(1, (11 - .@hp) / 10));
break;
- // (2/6) Random Target (~30s)
- case 2:
- case 5:
- case 8:
- case 11:
- case 14:
- case 17:
- .@time=rand2(18000, 36000) + 10000 - (.@hp * 1000);
- // Switch between curse and disable
- if (any(true,false)) {
- unittalk(.BOSS, "I hereby ##Bcurse##b you, %s!", strcharinfo(0, "cursed player", .@rnd));
- sc_start(SC_CURSE, .@time, 1, 10000, SCFLAG_FIXEDRATE, .@rnd);
- } else {
- unittalk(.BOSS, "I shall ##Bdisable##b you, %s!", strcharinfo(0, "cursed player", .@rnd));
- sc_start(SC_BLIND, .@time / 2, 1, 10000, SCFLAG_FIXEDRATE, .@rnd);
- sc_start(SC_SILENCE, .@time / 2, 1, 10000, SCFLAG_FIXEDRATE, .@rnd);
- }
- // Second pattern: Bleeding ON
- if (.@hp <= 7) {
- sc_start(SC_BLOODING, 10000, 1, 9000-(.@hp*1000), SCFLAG_FIXEDRATE, .@rnd);
- }
- break;
- // (3/6) Tanker (~30s)
+ // (2/6) Tanker (~30s)
case 1:
case 4:
case 7:
case 10:
case 13:
case 16:
+ specialeffect(702, AREA, .BOSS);
+ sleep(1000);
if (.@hp <= 3) {
// Third Attack Pattern: Judgment
unittalk(.BOSS, "%s cannot stop me! ##BJudgment##b!", strcharinfo(0, "cursed player", .@mvp));
@@ -186,6 +166,74 @@ OnTimer5000:
areaharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Holy);
harm(.@mvp, .@dmg, HARM_MAGI, Ele_Holy);
break;
+ // (3/6) Random Target (~60s)
+ case 2:
+ case 8:
+ case 14:
+ specialeffect(50, AREA, .BOSS);
+ sleep(1000);
+ .@time=rand2(18000, 36000) + 10000 - (.@hp * 1000);
+ // Switch between curse and disable
+ if (any(true,false)) {
+ unittalk(.BOSS, "I hereby ##Bcurse##b you, %s!", strcharinfo(0, "cursed player", .@rnd));
+ sc_start(SC_CURSE, .@time, 1, 10000, SCFLAG_FIXEDRATE, .@rnd);
+ } else {
+ unittalk(.BOSS, "I shall ##Bdisable##b you, %s!", strcharinfo(0, "cursed player", .@rnd));
+ sc_start(SC_BLIND, .@time / 2, 1, 10000, SCFLAG_FIXEDRATE, .@rnd);
+ sc_start(SC_SILENCE, .@time / 2, 1, 10000, SCFLAG_FIXEDRATE, .@rnd);
+ }
+ // Second pattern: Bleeding ON
+ if (.@hp <= 7) {
+ sc_start(SC_BLOODING, 10000, 1, 9000-(.@hp*1000), SCFLAG_FIXEDRATE, .@rnd);
+ }
+ break;
+ // (4/6) Traps (~60s)
+ case 3:
+ case 9:
+ case 15:
+ .@x1=rand2(31, 58); .@x2=rand2(31, 58); .@x3=rand2(31, 58);
+ .@y1=rand2(23, 49); .@y2=rand2(23, 49); .@y3=rand2(23, 49);
+ break;
+ // (5/6) Weak AOE (~60s)
+ case 5:
+ case 11:
+ case 17:
+ break;
+ }
+ // Strong AOE: Every 3 minutes (case = 0)
+ // Stalls all other skills for a while
+ if (.beats % 18 == 0) {
+ specialeffect(66, AREA, .BOSS);
+ unittalk(.BOSS, "I am the Icicle, the immortal.");
+ sleep(1500);
+ specialeffect(700, AREA, .BOSS);
+ unittalk(.BOSS, "You're no match for me, so...");
+ sleep(1500);
+ specialeffect(700, AREA, .BOSS);
+ if (.@hp <= 3) {
+ unittalk(.BOSS, "Perish! ##BSnowstorm##b!");
+ .@dmg=rand2(750, 1000);
+ areasc(3, 5000, SC_FREEZE, BL_PC|BL_HOM|BL_MER, 1, "filter_always", .BOSS, 2000);
+ areasc(6, 10000, SC_BLIND, BL_PC|BL_HOM|BL_MER, 1, "filter_always", .BOSS, 2000);
+ } else if (.@hp <= 7) {
+ unittalk(.BOSS, "Perish! ##BBlizzard##b!");
+ .@dmg=rand2(500, 750);
+ areasc(3, 5000, SC_FREEZE, BL_PC|BL_HOM|BL_MER, 1, "filter_always", .BOSS, 1500);
+ } else {
+ unittalk(.BOSS, "Perish! ##BShattering Winds##b!");
+ .@dmg=rand2(350, 500);
+ }
+ /* Three blocks */
+ specialeffect(66, AREA, .BOSS);
+ areaharm(.BOSS, 6, .@dmg, HARM_MAGI, Ele_Neutral);
+ sleep(500);
+ specialeffect(66, AREA, .BOSS);
+ areaharm(.BOSS, 12, .@dmg, HARM_MAGI, Ele_Water);
+ sleep(500);
+ specialeffect(66, AREA, .BOSS);
+ specialeffect(312, AREA, .BOSS);
+ areaharm(.BOSS, 18, .@dmg, HARM_MAGI, Ele_Holy);
+ areasc(18, .@dmg*rand2(50, 100), SC_COLD, BL_PC|BL_HOM|BL_MER, 1, "filter_always", .BOSS, 10001 - (.@hp * 1000));
}
initnpctimer;