aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index 4c7415a4119..288fbe91bf2 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -47,6 +47,7 @@ enum PriestSpells
SPELL_PRIEST_ANSWERED_PRAYERS = 394289,
SPELL_PRIEST_APOTHEOSIS = 200183,
SPELL_PRIEST_ARMOR_OF_FAITH = 28810,
+ SPELL_PRIEST_ASSURED_SAFETY = 440766,
SPELL_PRIEST_ATONEMENT = 81749,
SPELL_PRIEST_ATONEMENT_EFFECT = 194384,
SPELL_PRIEST_ATONEMENT_HEAL = 81751,
@@ -2352,7 +2353,6 @@ public:
bool Load() override
{
_spellInfoHeal = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_PRAYER_OF_MENDING_HEAL, DIFFICULTY_NONE);
- _healEffectDummy = &_spellInfoHeal->GetEffect(EFFECT_0);
return true;
}
@@ -2363,7 +2363,8 @@ public:
args.AddSpellMod(SPELLVALUE_AURA_STACK, stack);
// Note: this line's purpose is to show the correct amount in Points field in SMSG_AURA_UPDATE.
- uint32 basePoints = caster->SpellHealingBonusDone(target, _spellInfoHeal, _healEffectDummy->CalcValue(caster), HEAL, *_healEffectDummy);
+ SpellEffectInfo const* healEffectDummy = &_spellInfoHeal->GetEffect(EFFECT_0);
+ uint32 basePoints = caster->SpellHealingBonusDone(target, _spellInfoHeal, healEffectDummy->CalcValue(caster), HEAL, *healEffectDummy);
args.AddSpellMod(SPELLVALUE_BASE_POINT0, basePoints);
// Note: Focused Mending talent.
@@ -2377,7 +2378,6 @@ public:
protected:
SpellInfo const* _spellInfoHeal = nullptr;
- SpellEffectInfo const* _healEffectDummy = nullptr;
};
// 33076 - Prayer of Mending (Dummy)
@@ -2637,6 +2637,32 @@ class spell_pri_holy_10_1_class_set_4pc_aura : public AuraScript
}
};
+// 17 - Power Word: Shield
+class spell_pri_assured_safety : public spell_pri_prayer_of_mending_SpellScriptBase
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellEffect({ { SPELL_PRIEST_ASSURED_SAFETY, EFFECT_0 } });
+ }
+
+ bool Load() override
+ {
+ return GetCaster()->HasAura(SPELL_PRIEST_ASSURED_SAFETY);
+ }
+
+ void HandleEffectHitTarget(SpellEffIndex /*effIndex*/) const
+ {
+ Unit* caster = GetCaster();
+ if (AuraEffect const* effect = caster->GetAuraEffect(SPELL_PRIEST_ASSURED_SAFETY, EFFECT_0))
+ CastPrayerOfMendingAura(caster, GetHitUnit(), caster, effect->GetAmount(), false);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_pri_assured_safety::HandleEffectHitTarget, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
+ }
+};
+
// 204197 - Purge the Wicked
// Called by Penance - 47540, Dark Reprimand - 400169
class spell_pri_purge_the_wicked : public SpellScript
@@ -3569,6 +3595,7 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_abyssal_reverie);
RegisterSpellScript(spell_pri_answered_prayers);
RegisterSpellScript(spell_pri_aq_3p_bonus);
+ RegisterSpellScript(spell_pri_assured_safety);
RegisterSpellScript(spell_pri_atonement);
RegisterSpellScript(spell_pri_atonement_effect);
RegisterSpellScript(spell_pri_atonement_effect_aura);