aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-03-13 01:02:48 +0100
committerShauren <shauren.trinity@gmail.com>2021-03-13 01:02:48 +0100
commitb94851b824f6e4d7f7a7cd01a4c99e02b1e86b97 (patch)
tree8a2008c279230ec0ae0a8074e23b64b97efdeb39 /src
parentdeed58f080fe11cfdeb7623b4ed577d062456702 (diff)
Scripts/Spells: Fixed Fingers of Frost proc passive
Closes #19589
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index 5e0cd6e682b..8dc3e31f781 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -278,6 +278,42 @@ class spell_mage_conjure_refreshment : public SpellScript
}
};
+// 112965 - Fingers of Frost
+class spell_mage_fingers_of_frost : public AuraScript
+{
+ PrepareAuraScript(spell_mage_fingers_of_frost);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_MAGE_FINGERS_OF_FROST });
+ }
+
+ bool CheckFrostboltProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ return eventInfo.GetSpellInfo() && eventInfo.GetSpellInfo()->IsAffected(SPELLFAMILY_MAGE, flag128(0, 0x2000000, 0, 0))
+ && roll_chance_i(aurEff->GetAmount());
+ }
+
+ bool CheckFrozenOrbProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
+ {
+ return eventInfo.GetSpellInfo() && eventInfo.GetSpellInfo()->IsAffected(SPELLFAMILY_MAGE, flag128(0, 0, 0x80, 0))
+ && roll_chance_i(aurEff->GetAmount());
+ }
+
+ void Trigger(AuraEffect* aurEff, ProcEventInfo& eventInfo)
+ {
+ eventInfo.GetActor()->CastSpell(GetTarget(), SPELL_MAGE_FINGERS_OF_FROST, true, nullptr, aurEff);
+ }
+
+ void Register() override
+ {
+ DoCheckEffectProc += AuraCheckEffectProcFn(spell_mage_fingers_of_frost::CheckFrostboltProc, EFFECT_0, SPELL_AURA_DUMMY);
+ DoCheckEffectProc += AuraCheckEffectProcFn(spell_mage_fingers_of_frost::CheckFrozenOrbProc, EFFECT_1, SPELL_AURA_DUMMY);
+ AfterEffectProc += AuraEffectProcFn(spell_mage_fingers_of_frost::Trigger, EFFECT_0, SPELL_AURA_DUMMY);
+ AfterEffectProc += AuraEffectProcFn(spell_mage_fingers_of_frost::Trigger, EFFECT_1, SPELL_AURA_DUMMY);
+ }
+};
+
// 11426 - Ice Barrier
class spell_mage_ice_barrier : public AuraScript
{
@@ -831,6 +867,7 @@ void AddSC_mage_spell_scripts()
RegisterSpellScript(spell_mage_cold_snap);
RegisterSpellScript(spell_mage_cone_of_cold);
RegisterSpellScript(spell_mage_conjure_refreshment);
+ RegisterAuraScript(spell_mage_fingers_of_frost);
RegisterAuraScript(spell_mage_ice_barrier);
RegisterSpellScript(spell_mage_ice_lance);
RegisterSpellScript(spell_mage_ice_lance_damage);