aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorLucas Nascimento <keader.android@gmail.com>2021-10-25 19:31:58 -0300
committerGitHub <noreply@github.com>2021-10-25 19:31:58 -0300
commit1403de8dafbadb92dfd16c47b63156f9216a2bdd (patch)
treef423f497baa5ce56b24f6a07672fa8b6b429d709 /src/server/scripts/Spells
parentb0eaa938c9fcbbd5ec16a564b8bc2e2a5570f7de (diff)
Core/Spells: Fixed Prayer of Mending (#27105)
Closes #3770
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp37
1 files changed, 32 insertions, 5 deletions
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();