Scripts/Spells: Implemented Mind Blast procs (#29641)

* Schism
* Dark Indulgence
This commit is contained in:
Mematoru23
2024-02-05 18:44:00 +02:00
committed by GitHub
parent e42cd2ffcc
commit faf7ce0910
2 changed files with 57 additions and 0 deletions

View File

@@ -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');

View File

@@ -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);