diff options
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Spells/spell_paladin.cpp | 634 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_shaman.cpp | 911 |
2 files changed, 1 insertions, 1544 deletions
diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 5150b674434..53cda732603 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -172,32 +172,6 @@ class spell_pal_ardent_defender : public AuraScript } }; -// 267344 - Art of War -class spell_pal_art_of_war : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_ART_OF_WAR_TRIGGERED, SPELL_PALADIN_BLADE_OF_JUSTICE }); - } - - bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) - { - return roll_chance_i(aurEff->GetAmount()); - } - - void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/) - { - GetTarget()->GetSpellHistory()->ResetCooldown(SPELL_PALADIN_BLADE_OF_JUSTICE, true); - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_ART_OF_WAR_TRIGGERED, TRIGGERED_IGNORE_CAST_IN_PROGRESS); - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_art_of_war::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_pal_art_of_war::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - // 19042 - Ashen Hallow struct areatrigger_pal_ashen_hallow : AreaTriggerAI { @@ -253,47 +227,7 @@ private: Milliseconds _period; }; -// 248033 - Awakening -class spell_pal_awakening : public AuraScript -{ - bool Validate(SpellInfo const* spellInfo) override - { - return ValidateSpellInfo({ SPELL_PALADIN_AVENGING_WRATH }) - && ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 } }); - } - - bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/) - { - return roll_chance_i(aurEff->GetAmount()); - } - - void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo) - { - Milliseconds extraDuration = 0ms; - if (AuraEffect const* durationEffect = GetEffect(EFFECT_1)) - extraDuration = Seconds(durationEffect->GetAmount()); - - if (Aura* avengingWrath = GetTarget()->GetAura(SPELL_PALADIN_AVENGING_WRATH)) - { - avengingWrath->SetDuration(avengingWrath->GetDuration() + extraDuration.count()); - avengingWrath->SetMaxDuration(avengingWrath->GetMaxDuration() + extraDuration.count()); - } - else - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_AVENGING_WRATH, - CastSpellExtraArgs(TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD) - .SetTriggeringSpell(eventInfo.GetProcSpell()) - .AddSpellMod(SPELLVALUE_DURATION, extraDuration.count())); - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_awakening::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_pal_awakening::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - // 1022 - Blessing of Protection -// 204018 - Blessing of Spellwarding class spell_pal_blessing_of_protection : public SpellScript { bool Validate(SpellInfo const* spellInfo) override @@ -331,26 +265,6 @@ class spell_pal_blessing_of_protection : public SpellScript } }; -// 115750 - Blinding Light -class spell_pal_blinding_light : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_BLINDING_LIGHT_EFFECT }); - } - - void HandleDummy(SpellEffIndex /*effIndex*/) - { - if (Unit* target = GetHitUnit()) - GetCaster()->CastSpell(target, SPELL_PALADIN_BLINDING_LIGHT_EFFECT, true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_pal_blinding_light::HandleDummy, EFFECT_0, SPELL_EFFECT_APPLY_AURA); - } -}; - // 26573 - Consecration class spell_pal_consecration : public AuraScript { @@ -407,80 +321,6 @@ struct areatrigger_pal_consecration : AreaTriggerAI } }; -// 196926 - Crusader Might -class spell_pal_crusader_might : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_HOLY_SHOCK }); - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/) - { - GetTarget()->GetSpellHistory()->ModifyCooldown(SPELL_PALADIN_HOLY_SHOCK, Seconds(aurEff->GetAmount())); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_pal_crusader_might::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - -// 406833 - Crusading Strikes -class spell_pal_crusading_strikes : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_CRUSADING_STRIKES_ENERGIZE }); - } - - void HandleEffectProc(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) - { - if (GetStackAmount() == 2) - { - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_CRUSADING_STRIKES_ENERGIZE, aurEff); - - // this spell has weird proc order dependency set up in db2 data so we do removal manually - Remove(); - } - } - - void Register() override - { - AfterEffectApply += AuraEffectApplyFn(spell_pal_crusading_strikes::HandleEffectProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); - } -}; - -// 223817 - Divine Purpose -class spell_pal_divine_purpose : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_DIVINE_PURPOSE_TRIGGERED }); - } - - bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) - { - Spell const* procSpell = eventInfo.GetProcSpell(); - if (!procSpell) - return false; - - return roll_chance_i(aurEff->GetAmount()); - } - - void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo) - { - eventInfo.GetActor()->CastSpell(eventInfo.GetActor(), SPELL_PALADIN_DIVINE_PURPOSE_TRIGGERED, - CastSpellExtraArgs(TRIGGERED_IGNORE_CAST_IN_PROGRESS).SetTriggeringSpell(eventInfo.GetProcSpell())); - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_divine_purpose::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_pal_divine_purpose::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - // 642 - Divine Shield class spell_pal_divine_shield : public SpellScript { @@ -525,68 +365,6 @@ class spell_pal_divine_shield : public SpellScript } }; -// 190784 - Divine Steed -class spell_pal_divine_steed : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo( - { - SPELL_PALADIN_DIVINE_STEED_HUMAN, - SPELL_PALADIN_DIVINE_STEED_DWARF, - SPELL_PALADIN_DIVINE_STEED_DRAENEI, - SPELL_PALADIN_DIVINE_STEED_DARK_IRON_DWARF, - SPELL_PALADIN_DIVINE_STEED_BLOODELF, - SPELL_PALADIN_DIVINE_STEED_TAUREN, - SPELL_PALADIN_DIVINE_STEED_ZANDALARI_TROLL, - SPELL_PALADIN_DIVINE_STEED_LF_DRAENEI - }); - } - - void HandleOnCast() - { - Unit* caster = GetCaster(); - - uint32 spellId = SPELL_PALADIN_DIVINE_STEED_HUMAN; - switch (caster->GetRace()) - { - case RACE_HUMAN: - spellId = SPELL_PALADIN_DIVINE_STEED_HUMAN; - break; - case RACE_DWARF: - spellId = SPELL_PALADIN_DIVINE_STEED_DWARF; - break; - case RACE_DRAENEI: - spellId = SPELL_PALADIN_DIVINE_STEED_DRAENEI; - break; - case RACE_LIGHTFORGED_DRAENEI: - spellId = SPELL_PALADIN_DIVINE_STEED_LF_DRAENEI; - break; - case RACE_DARK_IRON_DWARF: - spellId = SPELL_PALADIN_DIVINE_STEED_DARK_IRON_DWARF; - break; - case RACE_BLOODELF: - spellId = SPELL_PALADIN_DIVINE_STEED_BLOODELF; - break; - case RACE_TAUREN: - spellId = SPELL_PALADIN_DIVINE_STEED_TAUREN; - break; - case RACE_ZANDALARI_TROLL: - spellId = SPELL_PALADIN_DIVINE_STEED_ZANDALARI_TROLL; - break; - default: - break; - } - - caster->CastSpell(caster, spellId, true); - } - - void Register() override - { - OnCast += SpellCastFn(spell_pal_divine_steed::HandleOnCast); - } -}; - // 53385 - Divine Storm class spell_pal_divine_storm : public SpellScript { @@ -606,46 +384,6 @@ class spell_pal_divine_storm : public SpellScript } }; -// 205191 - Eye for an Eye -class spell_pal_eye_for_an_eye : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_EYE_FOR_AN_EYE_TRIGGERED }); - } - - void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo) - { - GetTarget()->CastSpell(eventInfo.GetActor(), SPELL_PALADIN_EYE_FOR_AN_EYE_TRIGGERED, true); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_pal_eye_for_an_eye::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - -// 234299 - Fist of Justice -class spell_pal_fist_of_justice : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_HAMMER_OF_JUSTICE }); - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*procInfo*/) - { - int32 value = aurEff->GetAmount() / 10; - - GetTarget()->GetSpellHistory()->ModifyCooldown(SPELL_PALADIN_HAMMER_OF_JUSTICE, Seconds(-value)); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_pal_fist_of_justice::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - // -85043 - Grand Crusader class spell_pal_grand_crusader : public AuraScript { @@ -789,26 +527,7 @@ class spell_pal_infusion_of_light : public AuraScript } }; -// 327193 - Moment of Glory -class spell_pal_moment_of_glory : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_AVENGERS_SHIELD }); - } - - void HandleOnHit() - { - GetCaster()->GetSpellHistory()->ResetCooldown(SPELL_PALADIN_AVENGERS_SHIELD); - } - - void Register() override - { - OnHit += SpellHitFn(spell_pal_moment_of_glory::HandleOnHit); - } -}; - -// 20271/275779/275773 - Judgement (Retribution/Protection/Holy) +// 20271 - Judgement (Retribution/Protection/Holy) class spell_pal_judgment : public SpellScript { bool Validate(SpellInfo const* /*spellInfo*/) override @@ -839,91 +558,6 @@ class spell_pal_judgment : public SpellScript } }; -// 114165 - Holy Prism -class spell_pal_holy_prism : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo ({ SPELL_PALADIN_HOLY_PRISM_TARGET_ALLY, SPELL_PALADIN_HOLY_PRISM_TARGET_ENEMY, SPELL_PALADIN_HOLY_PRISM_TARGET_BEAM_VISUAL }); - } - - void HandleDummy(SpellEffIndex /*effIndex*/) - { - if (GetCaster()->IsFriendlyTo(GetHitUnit())) - GetCaster()->CastSpell(GetHitUnit(), SPELL_PALADIN_HOLY_PRISM_TARGET_ALLY, true); - else - GetCaster()->CastSpell(GetHitUnit(), SPELL_PALADIN_HOLY_PRISM_TARGET_ENEMY , true); - - GetCaster()->CastSpell(GetHitUnit(), SPELL_PALADIN_HOLY_PRISM_TARGET_BEAM_VISUAL, true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_pal_holy_prism::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } -}; - -// 114852 - Holy Prism (Damage) -// 114871 - Holy Prism (Heal) -class spell_pal_holy_prism_selector : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo ({ SPELL_PALADIN_HOLY_PRISM_TARGET_ALLY, SPELL_PALADIN_HOLY_PRISM_AREA_BEAM_VISUAL }); - } - - void SaveTargetGuid(SpellEffIndex /*effIndex*/) - { - _targetGUID = GetHitUnit()->GetGUID(); - } - - void FilterTargets(std::list<WorldObject*>& targets) - { - uint8 const maxTargets = 5; - - if (targets.size() > maxTargets) - { - if (GetSpellInfo()->Id == SPELL_PALADIN_HOLY_PRISM_TARGET_ALLY) - { - targets.sort(Trinity::HealthPctOrderPred()); - targets.resize(maxTargets); - } - else - Trinity::Containers::RandomResize(targets, maxTargets); - } - - _sharedTargets = targets; - } - - void ShareTargets(std::list<WorldObject*>& targets) - { - targets = _sharedTargets; - } - - void HandleScript(SpellEffIndex /*effIndex*/) - { - if (Unit* initialTarget = ObjectAccessor::GetUnit(*GetCaster(), _targetGUID)) - initialTarget->CastSpell(GetHitUnit(), SPELL_PALADIN_HOLY_PRISM_AREA_BEAM_VISUAL, true); - } - - void Register() override - { - if (m_scriptSpellId == SPELL_PALADIN_HOLY_PRISM_TARGET_ENEMY) - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pal_holy_prism_selector::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ALLY); - else if (m_scriptSpellId == SPELL_PALADIN_HOLY_PRISM_TARGET_ALLY) - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pal_holy_prism_selector::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY); - - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pal_holy_prism_selector::ShareTargets, EFFECT_2, TARGET_UNIT_DEST_AREA_ENTRY); - - OnEffectHitTarget += SpellEffectFn(spell_pal_holy_prism_selector::SaveTargetGuid, EFFECT_0, SPELL_EFFECT_ANY); - OnEffectHitTarget += SpellEffectFn(spell_pal_holy_prism_selector::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT); - } - -private: - std::list<WorldObject*> _sharedTargets; - ObjectGuid _targetGUID; -}; - // 20473 - Holy Shock class spell_pal_holy_shock : public SpellScript { @@ -1175,174 +809,6 @@ class spell_pal_light_s_beacon : public AuraScript } }; -// 122773 - Light's Hammer -class spell_pal_light_hammer_init_summon : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo - ({ - SPELL_PALADIN_LIGHT_HAMMER_COSMETIC, - SPELL_PALADIN_LIGHT_HAMMER_PERIODIC - }); - } - - void InitSummon() - { - for (SpellLogEffectGenericVictimParams const& summonedObject : GetSpell()->GetExecuteLogEffectTargets(SPELL_EFFECT_SUMMON, &SpellLogEffect::GenericVictimTargets)) - { - if (Unit* hammer = ObjectAccessor::GetUnit(*GetCaster(), summonedObject.Victim)) - { - hammer->CastSpell(hammer, SPELL_PALADIN_LIGHT_HAMMER_COSMETIC, - CastSpellExtraArgs(TRIGGERED_IGNORE_CAST_IN_PROGRESS).SetTriggeringSpell(GetSpell())); - hammer->CastSpell(hammer, SPELL_PALADIN_LIGHT_HAMMER_PERIODIC, - CastSpellExtraArgs(TRIGGERED_IGNORE_CAST_IN_PROGRESS).SetTriggeringSpell(GetSpell())); - } - } - } - - void Register() override - { - AfterCast += SpellCastFn(spell_pal_light_hammer_init_summon::InitSummon); - } -}; - -// 114918 - Light's Hammer (Periodic) -class spell_pal_light_hammer_periodic : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo - ({ - SPELL_PALADIN_LIGHT_HAMMER_HEALING, - SPELL_PALADIN_LIGHT_HAMMER_DAMAGE - }); - } - - void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) - { - Unit* lightHammer = GetTarget(); - if (Unit* originalCaster = lightHammer->GetOwner()) - { - originalCaster->CastSpell(lightHammer->GetPosition(), SPELL_PALADIN_LIGHT_HAMMER_DAMAGE, TRIGGERED_IGNORE_CAST_IN_PROGRESS); - originalCaster->CastSpell(lightHammer->GetPosition(), SPELL_PALADIN_LIGHT_HAMMER_HEALING, TRIGGERED_IGNORE_CAST_IN_PROGRESS); - } - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_pal_light_hammer_periodic::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); - } -}; - -// 204074 - Righteous Protector -class spell_pal_righteous_protector : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_AVENGING_WRATH, SPELL_PALADIN_GUARDIAN_OF_ANCIENT_KINGS }); - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/) - { - int32 value = aurEff->GetAmount() * 100 * _baseHolyPowerCost->Amount; - - GetTarget()->GetSpellHistory()->ModifyCooldown(SPELL_PALADIN_AVENGING_WRATH, Milliseconds(-value)); - GetTarget()->GetSpellHistory()->ModifyCooldown(SPELL_PALADIN_GUARDIAN_OF_ANCIENT_KINGS, Milliseconds(-value)); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_pal_righteous_protector::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } - - Optional<SpellPowerCost> _baseHolyPowerCost; -}; - -// 267610 - Righteous Verdict -class spell_pal_righteous_verdict : public AuraScript -{ - bool Validate(SpellInfo const* /*spellEntry*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_RIGHTEOUS_VERDICT_AURA }); - } - - void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& procInfo) - { - procInfo.GetActor()->CastSpell(procInfo.GetActor(), SPELL_PALADIN_RIGHTEOUS_VERDICT_AURA, true); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_pal_righteous_verdict::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - -// 85804 - Selfless Healer -class spell_pal_selfless_healer : public AuraScript -{ - bool CheckEffectProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) - { - return false; - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_selfless_healer::CheckEffectProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); - } -}; - -// 184662 - Shield of Vengeance -class spell_pal_shield_of_vengeance : public AuraScript -{ - bool Validate(SpellInfo const* spellInfo) override - { - return ValidateSpellInfo({ SPELL_PALADIN_SHIELD_OF_VENGEANCE_DAMAGE }) && ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 } }); - } - - void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) - { - amount = CalculatePct(GetUnitOwner()->GetMaxHealth(), GetEffectInfo(EFFECT_1).CalcValue()); - //if (Player const* player = GetUnitOwner()->ToPlayer()) - // AddPct(amount, player->GetRatingBonusValue(CR_VERSATILITY_DAMAGE_DONE) + player->GetTotalAuraModifier(SPELL_AURA_MOD_VERSATILITY)); - - _initialAmount = amount; - } - - void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) - { - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_SHIELD_OF_VENGEANCE_DAMAGE, - CastSpellExtraArgs(TRIGGERED_FULL_MASK).AddSpellMod(SPELLVALUE_BASE_POINT0, _initialAmount - aurEff->GetAmount())); - } - - void Register() override - { - DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_pal_shield_of_vengeance::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB); - OnEffectRemove += AuraEffectApplyFn(spell_pal_shield_of_vengeance::HandleRemove, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB, AURA_EFFECT_HANDLE_REAL); - } - - int32 _initialAmount = 0; -}; - -// 85256 - Templar's Verdict -class spell_pal_templar_s_verdict : public SpellScript -{ - bool Validate(SpellInfo const* /*spellEntry*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_TEMPLAR_VERDICT_DAMAGE }); - } - - void HandleHitTarget(SpellEffIndex /*effIndex*/) - { - GetCaster()->CastSpell(GetHitUnit(), SPELL_PALADIN_TEMPLAR_VERDICT_DAMAGE, true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_pal_templar_s_verdict::HandleHitTarget, EFFECT_0, SPELL_EFFECT_DUMMY); - } -}; - // 28789 - Holy Power class spell_pal_t3_6p_bonus : public AuraScript { @@ -1433,109 +899,21 @@ class spell_pal_t8_2p_bonus : public AuraScript } }; -// 405547 - Paladin Protection 10.1 Class Set 2pc -class spell_pal_t30_2p_protection_bonus : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_T30_2P_HEARTFIRE_DAMAGE }); - } - - void HandleProc(AuraEffect* aurEff, ProcEventInfo& procInfo) - { - PreventDefaultAction(); - - Unit* caster = procInfo.GetActor(); - uint32 ticks = sSpellMgr->AssertSpellInfo(SPELL_PALADIN_T30_2P_HEARTFIRE_DAMAGE, DIFFICULTY_NONE)->GetMaxTicks(); - uint32 damage = CalculatePct(procInfo.GetDamageInfo()->GetOriginalDamage(), aurEff->GetAmount()) / ticks; - - caster->CastSpell(procInfo.GetActionTarget(), SPELL_PALADIN_T30_2P_HEARTFIRE_DAMAGE, CastSpellExtraArgs(aurEff) - .SetTriggeringSpell(procInfo.GetProcSpell()) - .AddSpellMod(SPELLVALUE_BASE_POINT0, damage)); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_pal_t30_2p_protection_bonus::HandleProc, EFFECT_1, SPELL_AURA_DUMMY); - } -}; - -// 408461 - Heartfire -class spell_pal_t30_2p_protection_bonus_heal : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_T30_2P_HEARTFIRE_HEAL }); - } - - bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo& procInfo) - { - return procInfo.GetDamageInfo() && procInfo.GetSpellInfo() && procInfo.GetSpellInfo()->HasLabel(SPELL_LABEL_PALADIN_T30_2P_HEARTFIRE); - } - - void HandleProc(AuraEffect* aurEff, ProcEventInfo& procInfo) - { - GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_T30_2P_HEARTFIRE_HEAL, CastSpellExtraArgs(aurEff) - .SetTriggeringSpell(procInfo.GetProcSpell()) - .AddSpellMod(SPELLVALUE_BASE_POINT0, procInfo.GetDamageInfo()->GetOriginalDamage())); - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_t30_2p_protection_bonus_heal::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_pal_t30_2p_protection_bonus_heal::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - -// 269569 - Zeal -class spell_pal_zeal : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_PALADIN_ZEAL_AURA }); - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*procInfo*/) - { - Unit* target = GetTarget(); - target->CastSpell(target, SPELL_PALADIN_ZEAL_AURA, CastSpellExtraArgs(TRIGGERED_FULL_MASK).AddSpellMod(SPELLVALUE_AURA_STACK, aurEff->GetAmount())); - - PreventDefaultAction(); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_pal_zeal::HandleEffectProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); - } -}; - void AddSC_paladin_spell_scripts() { RegisterSpellScript(spell_pal_ardent_defender); - RegisterSpellScript(spell_pal_art_of_war); RegisterAreaTriggerAI(areatrigger_pal_ashen_hallow); - RegisterSpellScript(spell_pal_awakening); RegisterSpellScript(spell_pal_blessing_of_protection); - RegisterSpellScript(spell_pal_blinding_light); - RegisterSpellScript(spell_pal_crusader_might); - RegisterSpellScript(spell_pal_crusading_strikes); RegisterSpellScript(spell_pal_consecration); RegisterAreaTriggerAI(areatrigger_pal_consecration); - RegisterSpellScript(spell_pal_divine_purpose); RegisterSpellScript(spell_pal_divine_shield); - RegisterSpellScript(spell_pal_divine_steed); RegisterSpellScript(spell_pal_divine_storm); - RegisterSpellScript(spell_pal_eye_for_an_eye); - RegisterSpellScript(spell_pal_fist_of_justice); RegisterSpellScript(spell_pal_glyph_of_holy_light); RegisterSpellScript(spell_pal_grand_crusader); RegisterSpellScript(spell_pal_hammer_of_the_righteous); RegisterSpellScript(spell_pal_hand_of_sacrifice); RegisterSpellScript(spell_pal_infusion_of_light); - RegisterSpellScript(spell_pal_moment_of_glory); RegisterSpellScript(spell_pal_judgment); - RegisterSpellScript(spell_pal_holy_prism); - RegisterSpellScript(spell_pal_holy_prism_selector); RegisterSpellScript(spell_pal_holy_shock); RegisterSpellScript(spell_pal_holy_shock_damage_visual); RegisterSpellScript(spell_pal_holy_shock_heal_visual); @@ -1543,16 +921,6 @@ void AddSC_paladin_spell_scripts() RegisterSpellScript(spell_pal_item_t6_trinket); RegisterSpellScript(spell_pal_lay_on_hands); RegisterSpellScript(spell_pal_light_s_beacon); - RegisterSpellScript(spell_pal_light_hammer_init_summon); - RegisterSpellScript(spell_pal_light_hammer_periodic); - RegisterSpellScript(spell_pal_righteous_protector); - RegisterSpellScript(spell_pal_righteous_verdict); - RegisterSpellScript(spell_pal_selfless_healer); - RegisterSpellScript(spell_pal_shield_of_vengeance); - RegisterSpellScript(spell_pal_templar_s_verdict); RegisterSpellScript(spell_pal_t3_6p_bonus); RegisterSpellScript(spell_pal_t8_2p_bonus); - RegisterSpellScript(spell_pal_t30_2p_protection_bonus); - RegisterSpellScript(spell_pal_t30_2p_protection_bonus_heal); - RegisterSpellScript(spell_pal_zeal); } diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index 408c3b71319..8d4bdfe0540 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -133,149 +133,6 @@ enum MiscNpcs NPC_HEALING_RAIN_INVISIBLE_STALKER = 73400 }; -// 273221 - Aftershock -class spell_sha_aftershock : public AuraScript -{ - bool Validate(SpellInfo const* /*spellEntry*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_AFTERSHOCK_ENERGIZE }); - } - - bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) - { - return false; - } - - void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo) - { - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_sha_aftershock::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_sha_aftershock::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - -// 108281 - Ancestral Guidance -class spell_sha_ancestral_guidance : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_ANCESTRAL_GUIDANCE_HEAL }); - } - - bool CheckProc(ProcEventInfo& eventInfo) - { - if (eventInfo.GetHealInfo() && eventInfo.GetSpellInfo() && eventInfo.GetSpellInfo()->Id == SPELL_SHAMAN_ANCESTRAL_GUIDANCE_HEAL) - return false; - - if (!eventInfo.GetHealInfo() && !eventInfo.GetDamageInfo()) - return false; - - return true; - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& eventInfo) - { - PreventDefaultAction(); - int32 bp0 = CalculatePct(int32(eventInfo.GetDamageInfo() ? eventInfo.GetDamageInfo()->GetDamage() : eventInfo.GetHealInfo()->GetHeal()), aurEff->GetAmount()); - if (bp0) - { - CastSpellExtraArgs args(aurEff); - args.AddSpellMod(SPELLVALUE_BASE_POINT0, bp0); - eventInfo.GetActor()->CastSpell(eventInfo.GetActor(), SPELL_SHAMAN_ANCESTRAL_GUIDANCE_HEAL, args); - } - } - - void Register() override - { - DoCheckProc += AuraCheckProcFn(spell_sha_ancestral_guidance::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_sha_ancestral_guidance::HandleEffectProc, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); - } -}; - -// 114911 - Ancestral Guidance Heal -class spell_sha_ancestral_guidance_heal : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_ANCESTRAL_GUIDANCE }); - } - - static void ResizeTargets(std::list<WorldObject*>& targets) - { - Trinity::SelectRandomInjuredTargets(targets, 3, true); - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_ancestral_guidance_heal::ResizeTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ALLY); - } -}; - -// 114052 - Ascendance (Restoration) -class spell_sha_ascendance_restoration : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_RESTORATIVE_MISTS }); - } - - bool CheckProc(ProcEventInfo& procInfo) - { - return procInfo.GetHealInfo() && procInfo.GetHealInfo()->GetOriginalHeal() && procInfo.GetSpellInfo()->Id != SPELL_SHAMAN_RESTORATIVE_MISTS_INITIAL; - } - - void OnProcHeal(AuraEffect* /*aurEff*/, ProcEventInfo& procInfo) - { - _healToDistribute += procInfo.GetHealInfo()->GetOriginalHeal(); - } - - void HandleEffectPeriodic(AuraEffect const* aurEff) - { - if (!_healToDistribute) - return; - - CastSpellExtraArgs args(aurEff); - args.AddSpellBP0(_healToDistribute); - GetTarget()->CastSpell(nullptr, SPELL_SHAMAN_RESTORATIVE_MISTS, args); - _healToDistribute = 0; - } - - void Register() override - { - DoCheckProc += AuraCheckProcFn(spell_sha_ascendance_restoration::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_sha_ascendance_restoration::OnProcHeal, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY); - OnEffectPeriodic += AuraEffectPeriodicFn(spell_sha_ascendance_restoration::HandleEffectPeriodic, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY); - } - -private: - uint32 _healToDistribute = 0; -}; - -// 188443 - Chain Lightning -class spell_sha_chain_lightning : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_CHAIN_LIGHTNING_ENERGIZE, SPELL_SHAMAN_MAELSTROM_CONTROLLER }) - && ValidateSpellEffect({ { SPELL_SHAMAN_MAELSTROM_CONTROLLER, EFFECT_4 } }); - } - - void HandleScript(SpellEffIndex /*effIndex*/) - { - if (AuraEffect const* energizeAmount = GetCaster()->GetAuraEffect(SPELL_SHAMAN_MAELSTROM_CONTROLLER, EFFECT_4)) - GetCaster()->CastSpell(GetCaster(), SPELL_SHAMAN_CHAIN_LIGHTNING_ENERGIZE, CastSpellExtraArgs(energizeAmount) - .AddSpellMod(SPELLVALUE_BASE_POINT0, energizeAmount->GetAmount() * GetUnitTargetCountForEffect(EFFECT_0))); - } - - void Register() override - { - OnEffectLaunch += SpellEffectFn(spell_sha_chain_lightning::HandleScript, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); - } -}; - // 45297 - Chain Lightning Overload class spell_sha_chain_lightning_overload : public SpellScript { @@ -298,203 +155,6 @@ class spell_sha_chain_lightning_overload : public SpellScript } }; -// 187874 - Crash Lightning -class spell_sha_crash_lightning : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_CRASH_LIGHTNING_CLEAVE, SPELL_SHAMAN_GATHERING_STORMS, SPELL_SHAMAN_GATHERING_STORMS_BUFF }); - } - - void CountTargets(std::list<WorldObject*>& targets) - { - _targetsHit = targets.size(); - } - - void TriggerCleaveBuff() - { - if (_targetsHit >= 2) - GetCaster()->CastSpell(GetCaster(), SPELL_SHAMAN_CRASH_LIGHTNING_CLEAVE, true); - - if (AuraEffect const* gatheringStorms = GetCaster()->GetAuraEffect(SPELL_SHAMAN_GATHERING_STORMS, EFFECT_0)) - { - CastSpellExtraArgs args(TRIGGERED_FULL_MASK); - args.AddSpellMod(SPELLVALUE_BASE_POINT0, int32(gatheringStorms->GetAmount() * _targetsHit)); - GetCaster()->CastSpell(GetCaster(), SPELL_SHAMAN_GATHERING_STORMS_BUFF, args); - } - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_crash_lightning::CountTargets, EFFECT_0, TARGET_UNIT_CONE_CASTER_TO_DEST_ENEMY); - AfterCast += SpellCastFn(spell_sha_crash_lightning::TriggerCleaveBuff); - } - - size_t _targetsHit = 0; -}; - -// 378270 - Deeply Rooted Elements -class spell_sha_deeply_rooted_elements : public AuraScript -{ - bool Validate(SpellInfo const* spellInfo) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_LAVA_BURST, SPELL_SHAMAN_STORMSTRIKE, SPELL_SHAMAN_RIPTIDE, - SPELL_SHAMAN_ASCENDANCE_ELEMENTAL, SPELL_SHAMAN_ASCENDANCE_ENHANCEMENT, SPELL_SHAMAN_ASCENDANCE_RESTORATION }) - && ValidateSpellEffect({ { spellInfo->Id, EFFECT_0 } }) - && spellInfo->GetEffect(EFFECT_0).IsAura(); - } - - bool Load() override - { - return GetUnitOwner()->IsPlayer(); - } - - template<uint32 requiredSpellId> - bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo& procInfo) - { - if (!procInfo.GetSpellInfo()) - return false; - - if (procInfo.GetSpellInfo()->Id != requiredSpellId) - return false; - - return roll_chance_i(_procAttempts++ - 2); - } - - template<uint32 ascendanceSpellId> - void HandleProc(AuraEffect* aurEff, ProcEventInfo& eventInfo) - { - _procAttempts = 0; - - Unit* target = eventInfo.GetActor(); - - int32 duration = GetEffect(EFFECT_0)->GetAmount(); - if (Aura const* ascendanceAura = target->GetAura(ascendanceSpellId)) - duration += ascendanceAura->GetDuration(); - - target->CastSpell(target, ascendanceSpellId, - CastSpellExtraArgs(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD | TRIGGERED_IGNORE_CAST_IN_PROGRESS) - .SetTriggeringAura(aurEff) - .SetTriggeringSpell(eventInfo.GetProcSpell()) - .AddSpellMod(SPELLVALUE_DURATION, duration)); - } - - void Register() override - { - if (!GetAura() || GetUnitOwner()->ToPlayer()->GetPrimarySpecialization() == ChrSpecialization::ShamanElemental) - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_sha_deeply_rooted_elements::CheckProc<SPELL_SHAMAN_LAVA_BURST>, EFFECT_1, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_sha_deeply_rooted_elements::HandleProc<SPELL_SHAMAN_ASCENDANCE_ELEMENTAL>, EFFECT_1, SPELL_AURA_DUMMY); - } - - if (!GetAura() || GetUnitOwner()->ToPlayer()->GetPrimarySpecialization() == ChrSpecialization::ShamanEnhancement) - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_sha_deeply_rooted_elements::CheckProc<SPELL_SHAMAN_STORMSTRIKE>, EFFECT_2, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_sha_deeply_rooted_elements::HandleProc<SPELL_SHAMAN_ASCENDANCE_ENHANCEMENT>, EFFECT_2, SPELL_AURA_DUMMY); - } - - if (!GetAura() || GetUnitOwner()->ToPlayer()->GetPrimarySpecialization() == ChrSpecialization::ShamanRestoration) - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_sha_deeply_rooted_elements::CheckProc<SPELL_SHAMAN_RIPTIDE>, EFFECT_3, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_sha_deeply_rooted_elements::HandleProc<SPELL_SHAMAN_ASCENDANCE_RESTORATION>, EFFECT_3, SPELL_AURA_DUMMY); - } - } - - int32 _procAttempts = 0; -}; - -// 335902 - Doom Winds -class spell_sha_doom_winds_legendary : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_DOOM_WINDS_LEGENDARY_COOLDOWN }); - } - - bool CheckProc(AuraEffect const* /*aurEff*/, ProcEventInfo& procInfo) - { - if (GetTarget()->HasAura(SPELL_SHAMAN_DOOM_WINDS_LEGENDARY_COOLDOWN)) - return false; - - SpellInfo const* spellInfo = procInfo.GetSpellInfo(); - if (!spellInfo) - return false; - - return spellInfo->HasLabel(SPELL_LABEL_SHAMAN_WINDFURY_TOTEM); - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_sha_doom_winds_legendary::CheckProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL); - } -}; - -// 207778 - Downpour -class spell_sha_downpour : public SpellScript -{ - bool Validate(SpellInfo const* spellInfo) override - { - return ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 } }); - } - - void FilterTargets(std::list<WorldObject*>& targets) - { - Trinity::SelectRandomInjuredTargets(targets, 6, true); - } - - void CountEffectivelyHealedTarget() - { - // Cooldown increased for each target effectively healed - if (GetHitHeal()) - ++_healedTargets; - } - - void HandleCooldown() - { - SpellHistory::Duration cooldown = Milliseconds(GetSpellInfo()->RecoveryTime) + Seconds(GetEffectInfo(EFFECT_1).CalcValue() * _healedTargets); - GetCaster()->GetSpellHistory()->StartCooldown(GetSpellInfo(), 0, GetSpell(), false, cooldown); - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_downpour::FilterTargets, EFFECT_0, TARGET_UNIT_DEST_AREA_ALLY); - AfterHit += SpellHitFn(spell_sha_downpour::CountEffectivelyHealedTarget); - AfterCast += SpellCastFn(spell_sha_downpour::HandleCooldown); - } - - int32 _healedTargets = 0; -}; - -// 204288 - Earth Shield -class spell_sha_earth_shield : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_EARTH_SHIELD_HEAL }); - } - - bool CheckProc(ProcEventInfo& eventInfo) - { - if (!eventInfo.GetDamageInfo() || !HasEffect(EFFECT_1) || eventInfo.GetDamageInfo()->GetDamage() < GetTarget()->CountPctFromMaxHealth(GetEffect(EFFECT_1)->GetAmount())) - return false; - return true; - } - - void HandleProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/) - { - PreventDefaultAction(); - - GetTarget()->CastSpell(GetTarget(), SPELL_SHAMAN_EARTH_SHIELD_HEAL, CastSpellExtraArgs(aurEff) - .SetOriginalCaster(GetCasterGUID())); - } - - void Register() override - { - DoCheckProc += AuraCheckProcFn(spell_sha_earth_shield::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_sha_earth_shield::HandleProc, EFFECT_1, SPELL_AURA_DUMMY); - } -}; - // 8042 - Earth Shock class spell_sha_earth_shock : public SpellScript { @@ -518,64 +178,6 @@ class spell_sha_earth_shock : public SpellScript } }; -// 170374 - Earthen Rage (Passive) -class spell_sha_earthen_rage_passive : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_EARTHEN_RAGE_PERIODIC, SPELL_SHAMAN_EARTHEN_RAGE_DAMAGE }); - } - - bool CheckProc(ProcEventInfo& procInfo) - { - return procInfo.GetSpellInfo() && procInfo.GetSpellInfo()->Id != SPELL_SHAMAN_EARTHEN_RAGE_DAMAGE; - } - - void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo) - { - PreventDefaultAction(); - _procTargetGuid = eventInfo.GetProcTarget()->GetGUID(); - eventInfo.GetActor()->CastSpell(eventInfo.GetActor(), SPELL_SHAMAN_EARTHEN_RAGE_PERIODIC, true); - } - - void Register() override - { - DoCheckProc += AuraCheckProcFn(spell_sha_earthen_rage_passive::CheckProc); - OnEffectProc += AuraEffectProcFn(spell_sha_earthen_rage_passive::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } - - ObjectGuid _procTargetGuid; - -public: - ObjectGuid const& GetProcTargetGuid() const - { - return _procTargetGuid; - } -}; - -// 170377 - Earthen Rage (Proc Aura) -class spell_sha_earthen_rage_proc_aura : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_EARTHEN_RAGE_PASSIVE, SPELL_SHAMAN_EARTHEN_RAGE_DAMAGE }); - } - - void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) - { - PreventDefaultAction(); - if (Aura const* aura = GetCaster()->GetAura(SPELL_SHAMAN_EARTHEN_RAGE_PASSIVE)) - if (spell_sha_earthen_rage_passive* script = aura->GetScript<spell_sha_earthen_rage_passive>()) - if (Unit* procTarget = ObjectAccessor::GetUnit(*GetCaster(), script->GetProcTargetGuid())) - GetTarget()->CastSpell(procTarget, SPELL_SHAMAN_EARTHEN_RAGE_DAMAGE, true); - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_sha_earthen_rage_proc_aura::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); - } -}; - // 61882 - Earthquake // 8382 - AreaTriggerId struct areatrigger_sha_earthquake : AreaTriggerAI @@ -691,119 +293,6 @@ class spell_sha_earthquake_tick : public SpellScript } }; -// 117014 - Elemental Blast -// 120588 - Elemental Blast Overload -class spell_sha_elemental_blast : public SpellScript -{ - static constexpr uint32 BuffSpells[] = { SPELL_SHAMAN_ELEMENTAL_BLAST_CRIT, SPELL_SHAMAN_ELEMENTAL_BLAST_HASTE, SPELL_SHAMAN_ELEMENTAL_BLAST_MASTERY }; - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo( - { - SPELL_SHAMAN_ELEMENTAL_BLAST_CRIT, - SPELL_SHAMAN_ELEMENTAL_BLAST_HASTE, - SPELL_SHAMAN_ELEMENTAL_BLAST_MASTERY, - SPELL_SHAMAN_ELEMENTAL_BLAST_ENERGIZE, - SPELL_SHAMAN_MAELSTROM_CONTROLLER - }) && ValidateSpellEffect({ - { SPELL_SHAMAN_MAELSTROM_CONTROLLER, EFFECT_10 }, - { SPELL_SHAMAN_T29_2P_ELEMENTAL_DAMAGE_BUFF, EFFECT_0 } - }); - } - - void HandleEnergize(SpellEffIndex /*effIndex*/) - { - if (AuraEffect const* energizeAmount = GetCaster()->GetAuraEffect(SPELL_SHAMAN_MAELSTROM_CONTROLLER, GetSpellInfo()->Id == SPELL_SHAMAN_ELEMENTAL_BLAST ? EFFECT_9 : EFFECT_10)) - GetCaster()->CastSpell(GetCaster(), SPELL_SHAMAN_ELEMENTAL_BLAST_ENERGIZE, CastSpellExtraArgs(energizeAmount) - .AddSpellMod(SPELLVALUE_BASE_POINT0, energizeAmount->GetAmount())); - } - - void TriggerBuff() - { - Unit* caster = GetCaster(); - uint32 spellId = *Trinity::Containers::SelectRandomWeightedContainerElement(BuffSpells, [caster](uint32 buffSpellId) - { - return !caster->HasAura(buffSpellId) ? 1.0 : 0.0; - }); - - GetCaster()->CastSpell(GetCaster(), spellId, TRIGGERED_FULL_MASK); - } - - void AddScriptedDamageMods() - { - if (AuraEffect* t29 = GetCaster()->GetAuraEffect(SPELL_SHAMAN_T29_2P_ELEMENTAL_DAMAGE_BUFF, EFFECT_0)) - { - SetHitDamage(CalculatePct(GetHitDamage(), 100 + t29->GetAmount())); - t29->GetBase()->Remove(); - } - } - - void Register() override - { - OnEffectLaunch += SpellEffectFn(spell_sha_elemental_blast::HandleEnergize, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); - AfterCast += SpellCastFn(spell_sha_elemental_blast::TriggerBuff); - OnHit += SpellHitFn(spell_sha_elemental_blast::AddScriptedDamageMods); - } -}; - -// 318038 - Flametongue Weapon -class spell_sha_flametongue_weapon : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_FLAMETONGUE_WEAPON_ENCHANT }); - } - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; - } - - void HandleEffectHitTarget(SpellEffIndex /*effIndex*/) - { - Player* player = GetCaster()->ToPlayer(); - uint8 slot = EQUIPMENT_SLOT_MAINHAND; - if (player->GetPrimarySpecialization() == ChrSpecialization::ShamanEnhancement) - slot = EQUIPMENT_SLOT_OFFHAND; - - Item* targetItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot); - if (!targetItem || !targetItem->GetTemplate()->IsWeapon()) - return; - - player->CastSpell(targetItem, SPELL_SHAMAN_FLAMETONGUE_WEAPON_ENCHANT, true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_sha_flametongue_weapon::HandleEffectHitTarget, EFFECT_0, SPELL_EFFECT_DUMMY); - } -}; - -// 319778 - Flametongue - SPELL_SHAMAN_FLAMETONGUE_WEAPON_AURA -class spell_sha_flametongue_weapon_aura : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_FLAMETONGUE_ATTACK }); - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& eventInfo) - { - PreventDefaultAction(); - - Unit* attacker = eventInfo.GetActor(); - CastSpellExtraArgs args(aurEff); - args.AddSpellMod(SPELLVALUE_BASE_POINT0, std::max(1, int32(attacker->GetTotalAttackPowerValue(BASE_ATTACK) * 0.0264f))); - attacker->CastSpell(eventInfo.GetActionTarget(), SPELL_SHAMAN_FLAMETONGUE_ATTACK, args); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_sha_flametongue_weapon_aura::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - // 73920 - Healing Rain (Aura) class spell_sha_healing_rain_aura : public AuraScript { @@ -892,26 +381,6 @@ class spell_sha_healing_stream_totem_heal : public SpellScript } }; -// 210714 - Icefury -class spell_sha_icefury : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_FROST_SHOCK_ENERGIZE }); - } - - void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/) - { - if (Unit* caster = GetCaster()) - caster->CastSpell(caster, SPELL_SHAMAN_FROST_SHOCK_ENERGIZE, TRIGGERED_IGNORE_CAST_IN_PROGRESS); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_sha_icefury::HandleEffectProc, EFFECT_1, SPELL_AURA_ADD_PCT_MODIFIER); - } -}; - // 23551 - Lightning Shield T2 Bonus class spell_sha_item_lightning_shield : public AuraScript { @@ -1064,22 +533,6 @@ class spell_sha_item_t10_elemental_2p_bonus : public AuraScript } }; -// 189063 - Lightning Vortex (proc 185881 Item - Shaman T18 Elemental 4P Bonus) -class spell_sha_item_t18_elemental_4p_bonus : public AuraScript -{ - void DiminishHaste(AuraEffect const* aurEff) - { - PreventDefaultAction(); - if (AuraEffect* hasteBuff = GetEffect(EFFECT_0)) - hasteBuff->ChangeAmount(hasteBuff->GetAmount() - aurEff->GetAmount()); - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_sha_item_t18_elemental_4p_bonus::DiminishHaste, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY); - } -}; - // 51505 - Lava burst class spell_sha_lava_burst : public SpellScript { @@ -1119,33 +572,6 @@ class spell_sha_lava_burst : public SpellScript } }; -// 285452 - Lava Burst damage -// 285466 - Lava Burst Overload damage -class spell_sha_lava_crit_chance : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_FLAME_SHOCK }); - } - - void CalcCritChance(Unit const* victim, float& chance) - { - Unit* caster = GetCaster(); - - if (!caster || !victim) - return; - - if (victim->HasAura(SPELL_SHAMAN_FLAME_SHOCK, caster->GetGUID())) - if (victim->GetTotalAuraModifier(SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE) > -100) - chance = 100.f; - } - - void Register() override - { - OnCalcCritChance += SpellOnCalcCritChanceFn(spell_sha_lava_crit_chance::CalcCritChance); - } -}; - // 77756 - Lava Surge class spell_sha_lava_surge : public AuraScript { @@ -1200,28 +626,6 @@ class spell_sha_lava_surge_proc : public SpellScript } }; -// 188196 - Lightning Bolt -class spell_sha_lightning_bolt : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_LIGHTNING_BOLT_ENERGIZE, SPELL_SHAMAN_MAELSTROM_CONTROLLER }) - && ValidateSpellEffect({ { SPELL_SHAMAN_MAELSTROM_CONTROLLER, EFFECT_0 } }); - } - - void HandleScript(SpellEffIndex /*effIndex*/) - { - if (AuraEffect const* energizeAmount = GetCaster()->GetAuraEffect(SPELL_SHAMAN_MAELSTROM_CONTROLLER, EFFECT_0)) - GetCaster()->CastSpell(GetCaster(), SPELL_SHAMAN_LIGHTNING_BOLT_ENERGIZE, CastSpellExtraArgs(energizeAmount) - .AddSpellMod(SPELLVALUE_BASE_POINT0, energizeAmount->GetAmount())); - } - - void Register() override - { - OnEffectLaunch += SpellEffectFn(spell_sha_lightning_bolt::HandleScript, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); - } -}; - // 45284 - Lightning Bolt Overload class spell_sha_lightning_bolt_overload : public SpellScript { @@ -1244,133 +648,8 @@ class spell_sha_lightning_bolt_overload : public SpellScript } }; -// 192223 - Liquid Magma Totem (erupting hit spell) -class spell_sha_liquid_magma_totem : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_LIQUID_MAGMA_HIT }); - } - - void HandleEffectHitTarget(SpellEffIndex /*effIndex*/) - { - if (Unit* hitUnit = GetHitUnit()) - GetCaster()->CastSpell(hitUnit, SPELL_SHAMAN_LIQUID_MAGMA_HIT, true); - } - - void HandleTargetSelect(std::list<WorldObject*>& targets) - { - // choose one random target from targets - if (targets.size() > 1) - { - WorldObject* selected = Trinity::Containers::SelectRandomContainerElement(targets); - targets.clear(); - targets.push_back(selected); - } - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_liquid_magma_totem::HandleTargetSelect, EFFECT_0, TARGET_UNIT_DEST_AREA_ENEMY); - OnEffectHitTarget += SpellEffectFn(spell_sha_liquid_magma_totem::HandleEffectHitTarget, EFFECT_0, SPELL_EFFECT_DUMMY); - } -}; - -// 168534 - Mastery: Elemental Overload (passive) -class spell_sha_mastery_elemental_overload : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo - ({ - SPELL_SHAMAN_LIGHTNING_BOLT, - SPELL_SHAMAN_LIGHTNING_BOLT_OVERLOAD, - SPELL_SHAMAN_ELEMENTAL_BLAST, - SPELL_SHAMAN_ELEMENTAL_BLAST_OVERLOAD, - SPELL_SHAMAN_ICEFURY, - SPELL_SHAMAN_ICEFURY_OVERLOAD, - SPELL_SHAMAN_LAVA_BURST, - SPELL_SHAMAN_LAVA_BURST_OVERLOAD, - SPELL_SHAMAN_CHAIN_LIGHTNING, - SPELL_SHAMAN_CHAIN_LIGHTNING_OVERLOAD, - SPELL_SHAMAN_LAVA_BEAM, - SPELL_SHAMAN_LAVA_BEAM_OVERLOAD, - SPELL_SHAMAN_STORMKEEPER - }); - } - - bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) - { - SpellInfo const* spellInfo = eventInfo.GetSpellInfo(); - if (!spellInfo || !eventInfo.GetProcSpell()) - return false; - - if (!GetTriggeredSpellId(spellInfo->Id)) - return false; - - float chance = aurEff->GetAmount(); // Mastery % amount - - if (spellInfo->Id == SPELL_SHAMAN_CHAIN_LIGHTNING) - chance /= 3.0f; - - if (Aura* stormkeeper = eventInfo.GetActor()->GetAura(SPELL_SHAMAN_STORMKEEPER)) - if (eventInfo.GetProcSpell()->m_appliedMods.find(stormkeeper) != eventInfo.GetProcSpell()->m_appliedMods.end()) - chance = 100.0f; - - return roll_chance_f(chance); - } - - void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& procInfo) - { - PreventDefaultAction(); - - Unit* caster = procInfo.GetActor(); - - caster->m_Events.AddEventAtOffset([caster, - targets = CastSpellTargetArg(procInfo.GetProcTarget()), - overloadSpellId = GetTriggeredSpellId(procInfo.GetSpellInfo()->Id), - originalCastId = procInfo.GetProcSpell()->m_castId]() mutable - { - if (!targets.Targets) - return; - - targets.Targets->Update(caster); - - CastSpellExtraArgs args; - args.OriginalCastId = originalCastId; - caster->CastSpell(targets, overloadSpellId, args); - }, 400ms); - } - - void Register() override - { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_sha_mastery_elemental_overload::CheckProc, EFFECT_0, SPELL_AURA_DUMMY); - OnEffectProc += AuraEffectProcFn(spell_sha_mastery_elemental_overload::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } - - uint32 GetTriggeredSpellId(uint32 triggeringSpellId) - { - switch (triggeringSpellId) - { - case SPELL_SHAMAN_LIGHTNING_BOLT: return SPELL_SHAMAN_LIGHTNING_BOLT_OVERLOAD; - case SPELL_SHAMAN_ELEMENTAL_BLAST: return SPELL_SHAMAN_ELEMENTAL_BLAST_OVERLOAD; - case SPELL_SHAMAN_ICEFURY: return SPELL_SHAMAN_ICEFURY_OVERLOAD; - case SPELL_SHAMAN_LAVA_BURST: return SPELL_SHAMAN_LAVA_BURST_OVERLOAD; - case SPELL_SHAMAN_CHAIN_LIGHTNING: return SPELL_SHAMAN_CHAIN_LIGHTNING_OVERLOAD; - case SPELL_SHAMAN_LAVA_BEAM: return SPELL_SHAMAN_LAVA_BEAM_OVERLOAD; - default: - break; - } - return 0; - } -}; - // 45284 - Lightning Bolt Overload // 45297 - Chain Lightning Overload -// 114738 - Lava Beam Overload -// 120588 - Elemental Blast Overload -// 219271 - Icefury Overload -// 285466 - Lava Burst Overload class spell_sha_mastery_elemental_overload_proc : public SpellScript { bool Validate(SpellInfo const* /*spellInfo*/) override @@ -1404,72 +683,7 @@ class spell_sha_natures_guardian : public AuraScript } }; -// 210621 - Path of Flames Spread -class spell_sha_path_of_flames_spread : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_FLAME_SHOCK }); - } - - void FilterTargets(std::list<WorldObject*>& targets) - { - targets.remove(GetExplTargetUnit()); - Trinity::Containers::RandomResize(targets, [this](WorldObject* target) - { - return target->GetTypeId() == TYPEID_UNIT && !target->ToUnit()->HasAura(SPELL_SHAMAN_FLAME_SHOCK, GetCaster()->GetGUID()); - }, 1); - } - - void HandleScript(SpellEffIndex /*effIndex*/) - { - if (Unit* mainTarget = GetExplTargetUnit()) - { - if (Aura* flameShock = mainTarget->GetAura(SPELL_SHAMAN_FLAME_SHOCK, GetCaster()->GetGUID())) - { - if (Aura* newAura = GetCaster()->AddAura(SPELL_SHAMAN_FLAME_SHOCK, GetHitUnit())) - { - newAura->SetDuration(flameShock->GetDuration()); - newAura->SetMaxDuration(flameShock->GetDuration()); - } - } - } - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_path_of_flames_spread::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY); - OnEffectHitTarget += SpellEffectFn(spell_sha_path_of_flames_spread::HandleScript, EFFECT_1, SPELL_EFFECT_DUMMY); - } -}; - -// 114083 - Restorative Mists -// 294020 - Restorative Mists -class spell_sha_restorative_mists : public SpellScript -{ - void FilterTargets(std::list<WorldObject*>& targets) - { - _targetCount = uint32(targets.size()); - } - - void HandleHeal(SpellEffIndex /*effIndex*/) - { - if (_targetCount) - SetHitHeal(GetHitHeal() / _targetCount); - } - - void Register() override - { - OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_sha_restorative_mists::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY); - OnEffectHitTarget += SpellEffectFn(spell_sha_restorative_mists::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL); - } - -private: - uint32 _targetCount = 0; -}; - // 2645 - Ghost Wolf -// 260878 - Spirit Wolf class spell_sha_spirit_wolf : public AuraScript { bool Validate(SpellInfo const* /*spellInfo*/) override @@ -1733,54 +947,6 @@ class spell_sha_t10_restoration_4p_bonus : public AuraScript } }; -// 260895 - Unlimited Power -class spell_sha_unlimited_power : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_UNLIMITED_POWER_BUFF }); - } - - void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& procInfo) - { - Unit* caster = procInfo.GetActor(); - if (Aura* aura = caster->GetAura(SPELL_SHAMAN_UNLIMITED_POWER_BUFF)) - aura->SetStackAmount(aura->GetStackAmount() + 1); - else - caster->CastSpell(caster, SPELL_SHAMAN_UNLIMITED_POWER_BUFF, procInfo.GetProcSpell()); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_sha_unlimited_power::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - -// 200071 - Undulation -class spell_sha_undulation_passive : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_UNDULATION_PROC }); - } - - void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& /*eventInfo*/) - { - if (++_castCounter == 3) - { - GetTarget()->CastSpell(GetTarget(), SPELL_SHAMAN_UNDULATION_PROC, true); - _castCounter = 0; - } - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_sha_undulation_passive::HandleProc, EFFECT_0, SPELL_AURA_DUMMY); - } - - uint8 _castCounter = 1; // first proc happens after two casts, then one every 3 casts -}; - // 33757 - Windfury Weapon class spell_sha_windfury_weapon : public SpellScript { @@ -1808,56 +974,6 @@ class spell_sha_windfury_weapon : public SpellScript } }; -// 319773 - Windfury Weapon (proc) -class spell_sha_windfury_weapon_proc : public AuraScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_WINDFURY_ATTACK }); - } - - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& eventInfo) - { - PreventDefaultAction(); - - for (uint32 i = 0; i < 2; ++i) - eventInfo.GetActor()->CastSpell(eventInfo.GetProcTarget(), SPELL_SHAMAN_WINDFURY_ATTACK, aurEff); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_sha_windfury_weapon_proc::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); - } -}; - -// 378269 - Windspeaker's Lava Resurgence -class spell_sha_windspeakers_lava_resurgence : public SpellScript -{ - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_SHAMAN_VOLCANIC_SURGE }); - } - - void PreventLavaSurge(SpellEffIndex effIndex) - { - if (GetCaster()->HasAura(SPELL_SHAMAN_VOLCANIC_SURGE)) - PreventHitDefaultEffect(effIndex); - } - - void PreventVolcanicSurge(SpellEffIndex effIndex) - { - if (!GetCaster()->HasAura(SPELL_SHAMAN_VOLCANIC_SURGE)) - PreventHitDefaultEffect(effIndex); - } - - void Register() override - { - OnEffectLaunch += SpellEffectFn(spell_sha_windspeakers_lava_resurgence::PreventLavaSurge, EFFECT_1, SPELL_EFFECT_TRIGGER_SPELL); - OnEffectLaunch += SpellEffectFn(spell_sha_windspeakers_lava_resurgence::PreventVolcanicSurge, EFFECT_2, SPELL_EFFECT_TRIGGER_SPELL); - } -}; - -// 192078 - Wind Rush Totem (Spell) // 12676 - AreaTriggerId struct areatrigger_sha_wind_rush_totem : AreaTriggerAI { @@ -1903,48 +1019,25 @@ private: void AddSC_shaman_spell_scripts() { - RegisterSpellScript(spell_sha_aftershock); - RegisterSpellScript(spell_sha_ancestral_guidance); - RegisterSpellScript(spell_sha_ancestral_guidance_heal); - RegisterSpellScript(spell_sha_ascendance_restoration); - RegisterSpellScript(spell_sha_chain_lightning); RegisterSpellScript(spell_sha_chain_lightning_overload); - RegisterSpellScript(spell_sha_crash_lightning); - RegisterSpellScript(spell_sha_deeply_rooted_elements); - RegisterSpellScript(spell_sha_doom_winds_legendary); - RegisterSpellScript(spell_sha_downpour); - RegisterSpellScript(spell_sha_earth_shield); RegisterSpellScript(spell_sha_earth_shock); - RegisterSpellScript(spell_sha_earthen_rage_passive); - RegisterSpellScript(spell_sha_earthen_rage_proc_aura); RegisterAreaTriggerAI(areatrigger_sha_earthquake); RegisterSpellScript(spell_sha_earthquake); RegisterSpellScript(spell_sha_earthquake_tick); - RegisterSpellScript(spell_sha_elemental_blast); - RegisterSpellScript(spell_sha_flametongue_weapon); - RegisterSpellScript(spell_sha_flametongue_weapon_aura); RegisterSpellAndAuraScriptPair(spell_sha_healing_rain, spell_sha_healing_rain_aura); RegisterSpellScript(spell_sha_healing_rain_target_limit); RegisterSpellScript(spell_sha_healing_stream_totem_heal); - RegisterSpellScript(spell_sha_icefury); RegisterSpellScript(spell_sha_item_lightning_shield); RegisterSpellScript(spell_sha_item_lightning_shield_trigger); RegisterSpellScript(spell_sha_item_mana_surge); RegisterSpellScript(spell_sha_item_t6_trinket); RegisterSpellScript(spell_sha_item_t10_elemental_2p_bonus); - RegisterSpellScript(spell_sha_item_t18_elemental_4p_bonus); RegisterSpellScript(spell_sha_lava_burst); - RegisterSpellScript(spell_sha_lava_crit_chance); RegisterSpellScript(spell_sha_lava_surge); RegisterSpellScript(spell_sha_lava_surge_proc); - RegisterSpellScript(spell_sha_lightning_bolt); RegisterSpellScript(spell_sha_lightning_bolt_overload); - RegisterSpellScript(spell_sha_liquid_magma_totem); - RegisterSpellScript(spell_sha_mastery_elemental_overload); RegisterSpellScript(spell_sha_mastery_elemental_overload_proc); RegisterSpellScript(spell_sha_natures_guardian); - RegisterSpellScript(spell_sha_path_of_flames_spread); - RegisterSpellScript(spell_sha_restorative_mists); RegisterSpellScript(spell_sha_spirit_wolf); RegisterSpellScript(spell_sha_tidal_waves); RegisterSpellScript(spell_sha_t3_6p_bonus); @@ -1953,10 +1046,6 @@ void AddSC_shaman_spell_scripts() RegisterSpellScript(spell_sha_t9_elemental_4p_bonus); RegisterSpellScript(spell_sha_t10_elemental_4p_bonus); RegisterSpellScript(spell_sha_t10_restoration_4p_bonus); - RegisterSpellScript(spell_sha_unlimited_power); - RegisterSpellScript(spell_sha_undulation_passive); RegisterSpellScript(spell_sha_windfury_weapon); - RegisterSpellScript(spell_sha_windfury_weapon_proc); - RegisterSpellScript(spell_sha_windspeakers_lava_resurgence); RegisterAreaTriggerAI(areatrigger_sha_wind_rush_totem); } |
