Core/Spells: Fixed Prayer of Mending (#27105)

Closes #3770
This commit is contained in:
Lucas Nascimento
2021-10-25 19:31:58 -03:00
committed by GitHub
parent b0eaa938c9
commit 1403de8daf
3 changed files with 77 additions and 6 deletions

View File

@@ -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();