From 1403de8dafbadb92dfd16c47b63156f9216a2bdd Mon Sep 17 00:00:00 2001 From: Lucas Nascimento Date: Mon, 25 Oct 2021 19:31:58 -0300 Subject: Core/Spells: Fixed Prayer of Mending (#27105) Closes #3770 --- src/server/scripts/Spells/spell_priest.cpp | 37 ++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'src/server/scripts/Spells') diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index e6e743c5d8f..ba55c1cbc7a 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -74,6 +74,9 @@ enum PriestSpells SPELL_PRIEST_LIGHTWELL_RENEW_R4 = 28276, SPELL_PRIEST_LIGHTWELL_RENEW_R5 = 48084, SPELL_PRIEST_LIGHTWELL_RENEW_R6 = 48085, + SPELL_PRIEST_TWIN_DISCIPLINE_R1 = 47586, + SPELL_PRIEST_SPIRITUAL_HEALING_R1 = 14898, + SPELL_PRIEST_DIVINE_PROVIDENCE_R1 = 47562 }; enum PriestSpellIcons @@ -953,22 +956,41 @@ class spell_pri_prayer_of_mending_heal : public SpellScript { PrepareSpellScript(spell_pri_prayer_of_mending_heal); + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_PRIEST_T9_HEALING_2P, + SPELL_PRIEST_TWIN_DISCIPLINE_R1, + SPELL_PRIEST_SPIRITUAL_HEALING_R1, + SPELL_PRIEST_DIVINE_PROVIDENCE_R1 + }); + } + void HandleHeal(SpellEffIndex /*effIndex*/) { if (Unit* caster = GetOriginalCaster()) { + int32 heal = GetEffectValue(); if (AuraEffect* aurEff = caster->GetAuraEffect(SPELL_PRIEST_T9_HEALING_2P, EFFECT_0)) - { - int32 heal = GetHitHeal(); AddPct(heal, aurEff->GetAmount()); - SetHitHeal(heal); - } + + if (AuraEffect* aurEff = caster->GetAuraEffectOfRankedSpell(SPELL_PRIEST_TWIN_DISCIPLINE_R1, EFFECT_0)) + AddPct(heal, aurEff->GetAmount()); + + if (AuraEffect* aurEff = caster->GetAuraEffectOfRankedSpell(SPELL_PRIEST_SPIRITUAL_HEALING_R1, EFFECT_0)) + AddPct(heal, aurEff->GetAmount()); + + if (AuraEffect* aurEff = caster->GetAuraEffectOfRankedSpell(SPELL_PRIEST_DIVINE_PROVIDENCE_R1, EFFECT_0)) + AddPct(heal, aurEff->GetAmount()); + + SetEffectValue(heal); } } void Register() override { - OnEffectHitTarget += SpellEffectFn(spell_pri_prayer_of_mending_heal::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL); + OnEffectLaunchTarget += SpellEffectFn(spell_pri_prayer_of_mending_heal::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL); } }; @@ -982,6 +1004,11 @@ class spell_pri_renew : public AuraScript return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER; } + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_PRIEST_EMPOWERED_RENEW }); + } + void HandleApplyEffect(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) { Unit* caster = GetCaster(); -- cgit v1.2.3