Scripts/Spells: Fixed Infusion of Light (#27723)

This commit is contained in:
Teleqraph
2022-02-13 19:00:59 +01:00
committed by GitHub
parent 439b027d48
commit 0a923c7bf1
2 changed files with 50 additions and 1 deletions

View File

@@ -0,0 +1,8 @@
DELETE FROM `spell_proc` WHERE `SpellId` IN (53576,54149);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(53576,0x00,10,0x00200000,0x00010000,0x00000000,0x00000000,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0,0,0,0), -- Infusion of Light (proc from holy shock)
(54149,0x00,10,0x40000000,0x00000000,0x00000400,0x00000000,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0,0,0,0); -- Infusion of Light (buff)
DELETE FROM `spell_script_names` WHERE `spell_id`=54149 AND `ScriptName`='spell_pal_infusion_of_light';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(54149, 'spell_pal_infusion_of_light');

View File

@@ -82,6 +82,8 @@ enum PaladinSpells
SPELL_PALADIN_HOLY_SHOCK = 20473,
SPELL_PALADIN_HOLY_SHOCK_DAMAGE = 25912,
SPELL_PALADIN_HOLY_SHOCK_HEALING = 25914,
SPELL_PALADIN_HOLY_LIGHT = 82326,
SPELL_PALADIN_INFUSION_OF_LIGHT_ENERGIZE = 356717,
SPELL_PALADIN_IMMUNE_SHIELD_MARKER = 61988,
SPELL_PALADIN_ITEM_HEALING_TRANCE = 37706,
SPELL_PALADIN_JUDGMENT_GAIN_HOLY_POWER = 220637,
@@ -96,7 +98,7 @@ enum PaladinSpells
SPELL_PALADIN_RIGHTEOUS_VERDICT_AURA = 267611,
SPELL_PALADIN_SEAL_OF_RIGHTEOUSNESS = 25742,
SPELL_PALADIN_TEMPLAR_VERDICT_DAMAGE = 224266,
SPELL_PALADIN_ZEAL_AURA = 269571,
SPELL_PALADIN_ZEAL_AURA = 269571
};
enum PaladinCovenantSpells
@@ -821,6 +823,44 @@ class spell_pal_hand_of_sacrifice : public SpellScriptLoader
}
};
// 54149 - Infusion of Light
class spell_pal_infusion_of_light : public AuraScript
{
PrepareAuraScript(spell_pal_infusion_of_light);
static constexpr flag128 HolyLightSpellClassMask = { 0, 0, 0x400 };
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_PALADIN_INFUSION_OF_LIGHT_ENERGIZE });
}
bool CheckFlashOfLightProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
{
return eventInfo.GetProcSpell() && eventInfo.GetProcSpell()->m_appliedMods.find(GetAura()) != eventInfo.GetProcSpell()->m_appliedMods.end();
}
bool CheckHolyLightProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
{
return eventInfo.GetSpellInfo() && eventInfo.GetSpellInfo()->IsAffected(SPELLFAMILY_PALADIN, HolyLightSpellClassMask);
}
void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo)
{
eventInfo.GetActor()->CastSpell(eventInfo.GetActor(), SPELL_PALADIN_INFUSION_OF_LIGHT_ENERGIZE,
CastSpellExtraArgs(TRIGGERED_FULL_MASK).SetTriggeringSpell(eventInfo.GetProcSpell()));
}
void Register() override
{
DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_infusion_of_light::CheckFlashOfLightProc, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER);
DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_infusion_of_light::CheckFlashOfLightProc, EFFECT_2, SPELL_AURA_ADD_FLAT_MODIFIER);
DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_infusion_of_light::CheckHolyLightProc, EFFECT_1, SPELL_AURA_DUMMY);
OnEffectProc += AuraEffectProcFn(spell_pal_infusion_of_light::HandleProc, EFFECT_1, SPELL_AURA_DUMMY);
}
};
// 327193 - Moment of Glory
class spell_pal_moment_of_glory : public SpellScript
{
@@ -1563,6 +1603,7 @@ void AddSC_paladin_spell_scripts()
new spell_pal_grand_crusader();
new spell_pal_hand_of_sacrifice();
RegisterSpellScript(spell_pal_hammer_of_the_righteous);
RegisterSpellScript(spell_pal_infusion_of_light);
RegisterSpellScript(spell_pal_moment_of_glory);
RegisterSpellScript(spell_pal_judgment);
RegisterSpellScript(spell_pal_holy_prism);