summaryrefslogtreecommitdiff
path: root/npc/functions/hub.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/functions/hub.txt')
-rw-r--r--npc/functions/hub.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index fde9e3604..144ae2270 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -450,6 +450,44 @@ function script HUB_SkillInvoke {
.@val = 15+(@skillLv * 10);
sc_start SC_INCFLEE, .@t, .@val, 10000, SCFLAG_NOAVOID, @skillCaster;
break;
+ case TMW2_POISONMIST:
+ // SC_BLIND
+ .@ak1 = max(getunitdata(.@gid, UDT_MATKMIN), getunitdata(.@gid, UDT_INT) * 4 / 3);
+ .@ak2 = max(getunitdata(.@gid, UDT_MATKMAX), .@ak1 * 12 / 10);
+ .@dmg = rand2(.@ak1, .@ak2) + gethominfo(6);
+ .@dmg += .@dmg * @skillLv * 2 / 3; // +67% DMG per level
+ .@dur = (3 + (@skillLv * 2)) * 1000;
+ .@cth = 2000 + (1000 * @skillLv);
+
+ /* First strike (magic) */
+ areaharm(@skillTarget, 7, .@dmg, HARM_MAGI, Ele_Earth);
+ areasc(7, .@dur, SC_BLIND, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
+
+ sleep2(500);
+
+ /* Delayed strike (physical) */
+ areaharm(@skillTarget, 7, .@dmg, HARM_PHYS, Ele_Wind);
+ areasc(7, .@dur, SC_BLIND, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
+ break;
+ case TMW2_GOLDENFERSE:
+ // SC_GOLDENE_FERSE (val1, % MaxHP, % Aspd, % Holy Cth)
+ .@t = (50 + (@skillLv * 10)) * 1000;
+ .@mhp = @skillLv;
+ .@asp = 6 + (4 * @skillLv);
+ .@hol = 40 + (10 * @skillLv);
+ sc_start4 SC_GOLDENE_FERSE, .@t, .@mhp, .@asp, .@hol, 0, 10000, SCFLAG_NOAVOID, @skillCaster;
+ break;
+ case TMW2_STAHLHORN:
+ .@ak1 = max(getunitdata(.@gid, UDT_ATKMIN), getunitdata(.@gid, UDT_STR) * 3);
+ .@ak2 = max(getunitdata(.@gid, UDT_ATKMAX), .@ak1 * 12 / 10);
+ .@dmg = rand2(.@ak1, .@ak2) * 2; // 200% DMG
+ .@dmg += rand2(.@ak1, .@ak2) * @skillLv; // +100% per level
+ .@rng = 5 + (@skillLv / 2);
+ .@dur = 500 * @skillLv;
+ .@cth = 500 + (400 * @skillLv); // 5% + 4% per level (starts at 9%)
+ areaharm(@skillTarget, .@rng, .@dmg, HARM_MAGI, Ele_Holy);
+ areasc(.@rng, .@dur, SC_STUN, BL_MOB|BL_PC|BL_HOM|BL_MER, 1, "filter_hostile", @skillTarget, .@cth);
+ break;
}
return;
}