From 8fe0ac3cd15985cf2bb3acc5b20460728bbf581c Mon Sep 17 00:00:00 2001 From: Ovah Date: Tue, 22 Feb 2022 17:58:41 +0100 Subject: Core/Spells: removed hackfix for Elemental Oath and replaced it with a proper implementation (#27812) --- src/server/scripts/Spells/spell_shaman.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/server/scripts/Spells') diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index a7b6fe71ece..eff59f64966 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -41,6 +41,7 @@ enum ShamanSpells SPELL_SHAMAN_CLEANSING_TOTEM_EFFECT = 52025, SPELL_SHAMAN_EARTH_SHIELD_HEAL = 379, SPELL_SHAMAN_ELEMENTAL_MASTERY = 16166, + SPELL_SHAMAN_ELEMENTAL_OATH = 51466, SPELL_SHAMAN_EXHAUSTION = 57723, SPELL_SHAMAN_FIRE_NOVA_R1 = 1535, SPELL_SHAMAN_FIRE_NOVA_TRIGGERED_R1 = 8349, @@ -342,6 +343,30 @@ class spell_sha_cleansing_totem_pulse : public SpellScript } }; +// 16246 - Clearcasting +class spell_sha_clearcasting : public AuraScript +{ + PrepareAuraScript(spell_sha_clearcasting); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_SHAMAN_ELEMENTAL_OATH }); + } + + // Elemental Oath bonus + void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + Unit const* owner = GetUnitOwner(); + if (Aura const* aura = owner->GetAuraOfRankedSpell(SPELL_SHAMAN_ELEMENTAL_OATH, owner->GetGUID())) + amount = aura->GetSpellInfo()->GetEffect(EFFECT_1).CalcValue(); + } + + void Register() override + { + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_sha_clearcasting::CalculateAmount, EFFECT_1, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE); + } +}; + // -974 - Earth Shield class spell_sha_earth_shield : public AuraScript { @@ -1890,6 +1915,7 @@ void AddSC_shaman_spell_scripts() RegisterSpellScript(spell_sha_bloodlust); RegisterSpellScript(spell_sha_chain_heal); RegisterSpellScript(spell_sha_cleansing_totem_pulse); + RegisterSpellScript(spell_sha_clearcasting); RegisterSpellScript(spell_sha_earth_shield); RegisterSpellScript(spell_sha_earthbind_totem); RegisterSpellScript(spell_sha_earthen_power); -- cgit v1.2.3