aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index f6fd56d1541..55b41c3e63c 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -63,6 +63,7 @@ enum PriestSpells
SPELL_PRIEST_PENANCE = 47540,
SPELL_PRIEST_PENANCE_CHANNEL_DAMAGE = 47758,
SPELL_PRIEST_PENANCE_CHANNEL_HEALING = 47757,
+ SPELL_PRIEST_POWER_WORD_SHIELD = 17,
SPELL_PRIEST_POWER_WORD_SOLACE_ENERGIZE = 129253,
SPELL_PRIEST_PRAYER_OF_HEALING = 596,
SPELL_PRIEST_RAPTURE = 47536,
@@ -937,7 +938,7 @@ class spell_pri_prayer_of_mending_aura : public AuraScript
}
};
-// 155793 - prayer of mending (Jump) - SPELL_PRIEST_PRAYER_OF_MENDING_JUMP
+// 155793 - Prayer of Mending (Jump) - SPELL_PRIEST_PRAYER_OF_MENDING_JUMP
class spell_pri_prayer_of_mending_jump : public spell_pri_prayer_of_mending_SpellScriptBase
{
PrepareSpellScript(spell_pri_prayer_of_mending_jump);
@@ -983,6 +984,41 @@ class spell_pri_prayer_of_mending_jump : public spell_pri_prayer_of_mending_Spel
}
};
+// 47536 - Rapture
+class spell_pri_rapture : public SpellScript
+{
+ PrepareSpellScript(spell_pri_rapture);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_PRIEST_POWER_WORD_SHIELD });
+ }
+
+ void HandleEffectDummy(SpellEffIndex /*effIndex*/)
+ {
+ _raptureTarget = GetHitUnit()->GetGUID();
+ }
+
+ void HandleAfterCast()
+ {
+ Unit* caster = GetCaster();
+
+ if (Unit* target = ObjectAccessor::GetUnit(*caster, _raptureTarget))
+ caster->CastSpell(target, SPELL_PRIEST_POWER_WORD_SHIELD,
+ CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_POWER_AND_REAGENT_COST | TRIGGERED_IGNORE_CAST_IN_PROGRESS))
+ .SetTriggeringSpell(GetSpell()));
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_pri_rapture::HandleEffectDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ AfterCast += SpellCastFn(spell_pri_rapture::HandleAfterCast);
+ }
+
+private:
+ ObjectGuid _raptureTarget;
+};
+
// 20711 - Spirit of Redemption
class spell_pri_spirit_of_redemption : public AuraScript
{
@@ -1487,6 +1523,7 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_prayer_of_mending);
RegisterSpellScript(spell_pri_prayer_of_mending_aura);
RegisterSpellScript(spell_pri_prayer_of_mending_jump);
+ RegisterSpellScript(spell_pri_rapture);
RegisterSpellScript(spell_pri_spirit_of_redemption);
RegisterSpellScript(spell_pri_shadow_mend);
RegisterSpellScript(spell_pri_shadow_mend_periodic_damage);