Scripts/Spells: Implement warlock talent "Shadow Invocation" (#30561)

This commit is contained in:
Muru
2025-01-03 13:02:58 +07:00
committed by GitHub
parent a3d29b4597
commit 000e4e9970
2 changed files with 24 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
DELETE FROM `spell_proc` WHERE `SpellId` IN (422054);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(422054,0x00,5,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x403,0x0,0x0,0,20,0,0); -- Shadow Invocation
DELETE FROM `spell_script_names` WHERE `spell_id` = 422054;
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(422054, 'spell_warl_shadow_invocation');

View File

@@ -1175,6 +1175,22 @@ class spell_warl_shadow_bolt : public SpellScript
}
};
// 422054 - Shadow Invocation
class spell_warl_shadow_invocation : public AuraScript
{
void HandleProc(ProcEventInfo& eventInfo)
{
Unit* caster = eventInfo.GetActor();
Unit* target = eventInfo.GetActionTarget();
caster->m_Events.AddEventAtOffset(new BilescourgeBombersEvent(caster, caster->GetPosition(), target->GetPosition()), 500ms);
}
void Register() override
{
OnProc += AuraProcFn(spell_warl_shadow_invocation::HandleProc);
}
};
// 452999 - Siphon Life
class spell_warl_siphon_life : public AuraScript
{
@@ -1601,6 +1617,7 @@ void AddSC_warlock_spell_scripts()
RegisterSpellAndAuraScriptPair(spell_warl_seed_of_corruption_dummy, spell_warl_seed_of_corruption_dummy_aura);
RegisterSpellScript(spell_warl_seed_of_corruption_generic);
RegisterSpellScript(spell_warl_shadow_bolt);
RegisterSpellScript(spell_warl_shadow_invocation);
RegisterSpellScript(spell_warl_siphon_life);
RegisterSpellScript(spell_warl_soul_swap);
RegisterSpellScript(spell_warl_soul_swap_dot_marker);