diff options
-rw-r--r-- | sql/updates/world/master/2024_02_05_02_world.sql | 4 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 53 |
2 files changed, 57 insertions, 0 deletions
diff --git a/sql/updates/world/master/2024_02_05_02_world.sql b/sql/updates/world/master/2024_02_05_02_world.sql new file mode 100644 index 00000000000..3357e0926ed --- /dev/null +++ b/sql/updates/world/master/2024_02_05_02_world.sql @@ -0,0 +1,4 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_dark_indulgence', 'spell_pri_schism'); +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(8092, 'spell_pri_dark_indulgence'), +(8092, 'spell_pri_schism'); 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); |