summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-25 13:27:13 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-25 13:27:13 -0300
commitc15028d7caf4025f9d247044703c94e750e764e9 (patch)
tree341c0da80f1e491616535a219b4206b7397ca979
parentc62b1528b982bdb9d397c393d35ff68ecb7bd88b (diff)
downloadserverdata-c15028d7caf4025f9d247044703c94e750e764e9.tar.gz
serverdata-c15028d7caf4025f9d247044703c94e750e764e9.tar.bz2
serverdata-c15028d7caf4025f9d247044703c94e750e764e9.tar.xz
serverdata-c15028d7caf4025f9d247044703c94e750e764e9.zip
The primary magic skill from the Icicle is now ready
-rw-r--r--npc/006-7/ctrl.txt57
1 files changed, 53 insertions, 4 deletions
diff --git a/npc/006-7/ctrl.txt b/npc/006-7/ctrl.txt
index a8c58dd89..72f3ec0f0 100644
--- a/npc/006-7/ctrl.txt
+++ b/npc/006-7/ctrl.txt
@@ -27,7 +27,7 @@ OnRw:
mesn;
mesq l("With Magic and Blades, The Icicle shall break. Do you undertake the challenge?");
mesc l("Advised: 6+ players"), 1;
- mesc l("Advised: 1+ mage, 1+ tanker, 2+ healer"), 1;
+ mesc l("Advised: 1+ mage, 1+ tanker, 2+ healers"), 1;
mesc l("Time Limit: 90 minutes"), 1;
mesc l("Enter/Leave after start: %s", b(l("NO"))), 1;
next;
@@ -95,6 +95,7 @@ OnTimer5000:
if (.ticks < gettimetick(2) || !mobcount("006-7", "all") || !getmapusers("006-7")) {
killmonsterall("006-7");
enablenpc .name$;
+ npctalk "The battle is over!";
.ticks = min(.ticks, gettimetick(2) + 1800); // Min. Cooldown: 30 min
.beats = 0;
$@ICICLE_CHALLENGE = false;
@@ -127,16 +128,64 @@ OnTimer5000:
/* Decide the skill to use based on ~5s beats over 3 minutes */
switch (.beats % 18) {
- // Summon Reinforcements (every 60s)
+ // (1/6) Summon Reinforcements (every 60s)
case 0:
case 6:
case 12:
unittalk(.BOSS, "Come forth, ##Bsnow army##b, for the Icicle shall live forever!");
specialeffect(64, AREA, .BOSS);
- sleep(500);
+ 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)
+ case 1:
+ case 4:
+ case 7:
+ case 10:
+ case 13:
+ case 16:
+ if (.@hp <= 3) {
+ // Third Attack Pattern: Judgment
+ unittalk(.BOSS, "%s cannot stop me! ##BJudgment##b!", strcharinfo(0, "cursed player", .@mvp));
+ .@PW=250; .@SPW=60; .@RG=3;
+ } else if (.@hp <= 7) {
+ // Second Attack Pattern: Holy Light
+ unittalk(.BOSS, "%s, I'll show you no mercy! ##BHoly Light##b!", strcharinfo(0, "cursed player", .@mvp));
+ .@PW=125; .@SPW=25; .@RG=1;
+ } else {
+ // First Attack Pattern: Napalm Beat
+ unittalk(.BOSS, "This battle is over, %s! ##BNapalm Beat##b!", strcharinfo(0, "cursed player", .@mvp));
+ .@PW=35; .@SPW=5; .@RG=2;
+ }
+ .@mtk = calcdmg(.BOSS, .@mvp, HARM_MAGI) * 2;
+ .@dmg = .@mtk * .@PW / 100;
+ .@dsb = .@mtk * .@SPW / 100;
+ sleep(1000);
+ areaharm(.@mvp, .@RG, .@dsb, HARM_MAGI, Ele_Holy);
+ harm(.@mvp, .@dmg, HARM_MAGI, Ele_Holy);
+ break;
}
initnpctimer;