Scripts/Spells: Implement warlock talent Siphon Life (#30159)

This commit is contained in:
Aqua Deus
2024-09-06 19:05:36 +02:00
committed by GitHub
parent b8b8c0cc2f
commit 0f23815ff7
2 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
DELETE FROM `spell_proc` WHERE `SpellId` IN (452999);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(452999,0x0,5,0x00000002,0x00000000,0x00000000,0x00000000,0x0,0x0,0x1,0x2,0x0,0x0,0x0,0,0,0,0); -- Siphon Life
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_warl_siphon_life';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(452999, 'spell_warl_siphon_life');

View File

@@ -63,6 +63,7 @@ enum WarlockSpells
SPELL_WARLOCK_SEED_OF_CORRUPTION_DAMAGE = 27285,
SPELL_WARLOCK_SEED_OF_CORRUPTION_GENERIC = 32865,
SPELL_WARLOCK_SHADOW_BOLT_ENERGIZE = 194192,
SPELL_WARLOCK_SIPHON_LIFE_HEAL = 453000,
SPELL_WARLOCK_SOULSHATTER_EFFECT = 32835,
SPELL_WARLOCK_SOUL_SWAP_CD_MARKER = 94229,
SPELL_WARLOCK_SOUL_SWAP_OVERRIDE = 86211,
@@ -824,6 +825,31 @@ class spell_warl_shadow_bolt : public SpellScript
}
};
// 452999 - Siphon Life
class spell_warl_siphon_life : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_WARLOCK_SIPHON_LIFE_HEAL });
}
void HandleProc(AuraEffect const* aurEff, ProcEventInfo const& eventInfo) const
{
DamageInfo const* damageInfo = eventInfo.GetDamageInfo();
if (!damageInfo || !damageInfo->GetDamage())
return;
Unit* caster = GetTarget();
caster->CastSpell(caster, SPELL_WARLOCK_SIPHON_LIFE_HEAL, CastSpellExtraArgs(aurEff)
.AddSpellMod(SPELLVALUE_BASE_POINT0, CalculatePct(damageInfo->GetDamage(), aurEff->GetAmount())));
}
void Register() override
{
OnEffectProc += AuraEffectProcFn(spell_warl_siphon_life::HandleProc, EFFECT_1, SPELL_AURA_DUMMY);
}
};
// 86121 - Soul Swap
class spell_warl_soul_swap : public SpellScript
{
@@ -1180,6 +1206,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_siphon_life);
RegisterSpellScript(spell_warl_soul_swap);
RegisterSpellScript(spell_warl_soul_swap_dot_marker);
RegisterSpellScript(spell_warl_soul_swap_exhale);