aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_priest.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp
index 9347c26bb7d..6fc5d456f0b 100644
--- a/src/server/scripts/Spells/spell_priest.cpp
+++ b/src/server/scripts/Spells/spell_priest.cpp
@@ -60,6 +60,7 @@ enum PriestSpells
SPELL_PRIEST_BODY_AND_SOUL = 64129,
SPELL_PRIEST_BODY_AND_SOUL_SPEED = 65081,
SPELL_PRIEST_CIRCLE_OF_HEALING = 204883,
+ SPELL_PRIEST_DARK_INDULGENCE = 372972,
SPELL_PRIEST_DARK_REPRIMAND = 400169,
SPELL_PRIEST_DARK_REPRIMAND_CHANNEL_DAMAGE = 373129,
SPELL_PRIEST_DARK_REPRIMAND_CHANNEL_HEALING = 400171,
@@ -152,6 +153,8 @@ enum PriestSpells
SPELL_PRIEST_RENEWED_HOPE_EFFECT = 197470,
SPELL_PRIEST_REVEL_IN_PURITY = 373003,
SPELL_PRIEST_SAY_YOUR_PRAYERS = 391186,
+ SPELL_PRIEST_SCHISM = 424509,
+ SPELL_PRIEST_SCHISM_AURA = 214621,
SPELL_PRIEST_SEARING_LIGHT = 196811,
SPELL_PRIEST_SHADOW_MEND_DAMAGE = 186439,
SPELL_PRIEST_SHADOW_WORD_DEATH = 32379,
@@ -677,6 +680,30 @@ class spell_pri_circle_of_healing : public SpellScript
}
};
+// 8092 - Mind Blast
+class spell_pri_dark_indulgence : public SpellScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellEffect({ { SPELL_PRIEST_DARK_INDULGENCE, EFFECT_0 } });
+ }
+
+ void HandleEffectHit(SpellEffIndex /*effIndex*/) const
+ {
+ AuraEffect const* aurEff = GetCaster()->GetAuraEffect(SPELL_PRIEST_DARK_INDULGENCE, EFFECT_0);
+ if (!aurEff)
+ return;
+
+ if (roll_chance_i(aurEff->GetAmount()))
+ GetCaster()->CastSpell(GetCaster(), SPELL_PRIEST_POWER_OF_THE_DARK_SIDE, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHit += SpellEffectFn(spell_pri_dark_indulgence::HandleEffectHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+};
+
namespace DivineImageHelpers
{
Unit* GetSummon(Unit const* owner)
@@ -2441,6 +2468,30 @@ private:
ObjectGuid _raptureTarget;
};
+// 8092 - Mind Blast
+class spell_pri_schism : public SpellScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo
+ ({
+ SPELL_PRIEST_SCHISM,
+ SPELL_PRIEST_SCHISM_AURA
+ });
+ }
+
+ void HandleEffectHitTarget(SpellEffIndex /*effIndex*/)
+ {
+ if (GetCaster()->HasAura(SPELL_PRIEST_SCHISM))
+ GetCaster()->CastSpell(GetHitUnit(), SPELL_PRIEST_SCHISM_AURA, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_pri_schism::HandleEffectHitTarget, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
+ }
+};
+
// 280391 - Sins of the Many
class spell_pri_sins_of_the_many : public AuraScript
{
@@ -2871,6 +2922,7 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_benediction);
RegisterSpellScript(spell_pri_blaze_of_light);
RegisterSpellScript(spell_pri_circle_of_healing);
+ RegisterSpellScript(spell_pri_dark_indulgence);
RegisterSpellScript(spell_pri_divine_image);
RegisterSpellScript(spell_pri_divine_image_spell_triggered);
RegisterSpellScript(spell_pri_divine_image_stack_timer);
@@ -2917,6 +2969,7 @@ void AddSC_priest_spell_scripts()
RegisterSpellScript(spell_pri_purge_the_wicked);
RegisterSpellScript(spell_pri_purge_the_wicked_dummy);
RegisterSpellScript(spell_pri_rapture);
+ RegisterSpellScript(spell_pri_schism);
RegisterSpellScript(spell_pri_sins_of_the_many);
RegisterSpellScript(spell_pri_spirit_of_redemption);
RegisterSpellScript(spell_pri_shadow_covenant);