diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_warlock.cpp | 63 |
1 files changed, 47 insertions, 16 deletions
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp index 7a4f0e57f79..c7e41790d4b 100644 --- a/src/server/scripts/Spells/spell_warlock.cpp +++ b/src/server/scripts/Spells/spell_warlock.cpp @@ -41,6 +41,8 @@ enum WarlockSpells { SPELL_WARLOCK_ABSOLUTE_CORRUPTION = 196103, SPELL_WARLOCK_AGONY = 980, + SPELL_WARLOCK_BACKDRAFT = 196406, + SPELL_WARLOCK_BACKDRAFT_PROC = 117828, SPELL_WARLOCK_CONFLAGRATE_DEBUFF = 265931, SPELL_WARLOCK_CONFLAGRATE_ENERGIZE = 245330, SPELL_WARLOCK_CORRUPTION_DAMAGE = 146739, @@ -53,6 +55,7 @@ enum WarlockSpells SPELL_WARLOCK_DEVOUR_MAGIC_HEAL = 19658, SPELL_WARLOCK_DOOM_ENERGIZE = 193318, SPELL_WARLOCK_DRAIN_SOUL_ENERGIZE = 205292, + SPELL_WARLOCK_FLAMESHADOW = 37379, SPELL_WARLOCK_GLYPH_OF_DEMON_TRAINING = 56249, SPELL_WARLOCK_GLYPH_OF_SOUL_SWAP = 56226, SPELL_WARLOCK_GLYPH_OF_SUCCUBUS = 56250, @@ -61,33 +64,32 @@ enum WarlockSpells SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_BUFF_R2 = 60956, SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R1 = 18703, SPELL_WARLOCK_IMPROVED_HEALTH_FUNNEL_R2 = 18704, - SPELL_WARLOCK_PERPETUAL_UNSTABILITY_TALENT = 459376, + SPELL_WARLOCK_INCUBUS_PACT = 365355, SPELL_WARLOCK_PERPETUAL_UNSTABILITY_DAMAGE = 459461, + SPELL_WARLOCK_PERPETUAL_UNSTABILITY_TALENT = 459376, SPELL_WARLOCK_RAIN_OF_FIRE = 5740, SPELL_WARLOCK_RAIN_OF_FIRE_DAMAGE = 42223, SPELL_WARLOCK_ROARING_BLAZE = 205184, SPELL_WARLOCK_SEED_OF_CORRUPTION_DAMAGE = 27285, SPELL_WARLOCK_SEED_OF_CORRUPTION_GENERIC = 32865, SPELL_WARLOCK_SHADOW_BOLT_ENERGIZE = 194192, + SPELL_WARLOCK_SHADOWFLAME = 37378, SPELL_WARLOCK_SIPHON_LIFE_HEAL = 453000, - SPELL_WARLOCK_SOULSHATTER_EFFECT = 32835, SPELL_WARLOCK_SOUL_SWAP_CD_MARKER = 94229, - SPELL_WARLOCK_SOUL_SWAP_OVERRIDE = 86211, - SPELL_WARLOCK_SOUL_SWAP_MOD_COST = 92794, SPELL_WARLOCK_SOUL_SWAP_DOT_MARKER = 92795, - SPELL_WARLOCK_UNSTABLE_AFFLICTION_DAMAGE = 196364, - SPELL_WARLOCK_UNSTABLE_AFFLICTION_ENERGIZE = 31117, - SPELL_WARLOCK_SHADOWFLAME = 37378, - SPELL_WARLOCK_FLAMESHADOW = 37379, - SPELL_WARLOCK_SUMMON_SUCCUBUS = 712, - SPELL_WARLOCK_SUMMON_INCUBUS = 365349, - SPELL_WARLOCK_STRENGTHEN_PACT_SUCCUBUS = 366323, + SPELL_WARLOCK_SOUL_SWAP_MOD_COST = 92794, + SPELL_WARLOCK_SOUL_SWAP_OVERRIDE = 86211, + SPELL_WARLOCK_SOULSHATTER_EFFECT = 32835, SPELL_WARLOCK_STRENGTHEN_PACT_INCUBUS = 366325, + SPELL_WARLOCK_STRENGTHEN_PACT_SUCCUBUS = 366323, SPELL_WARLOCK_SUCCUBUS_PACT = 365360, - SPELL_WARLOCK_INCUBUS_PACT = 365355, + SPELL_WARLOCK_SUMMON_INCUBUS = 365349, + SPELL_WARLOCK_SUMMON_SUCCUBUS = 712, + SPELL_WARLOCK_UNSTABLE_AFFLICTION_DAMAGE = 196364, + SPELL_WARLOCK_UNSTABLE_AFFLICTION_ENERGIZE = 31117, SPELL_WARLOCK_VILE_TAINT_DAMAGE = 386931, - SPELL_WARLOCK_VOLATILE_AGONY_TALENT = 453034, - SPELL_WARLOCK_VOLATILE_AGONY_DAMAGE = 453035 + SPELL_WARLOCK_VOLATILE_AGONY_DAMAGE = 453035, + SPELL_WARLOCK_VOLATILE_AGONY_TALENT = 453034 }; enum MiscSpells @@ -129,6 +131,34 @@ class spell_warl_absolute_corruption : public SpellScript } }; +// Called by 17962 - Conflagrate +class spell_warl_backdraft : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo ({ SPELL_WARLOCK_BACKDRAFT, SPELL_WARLOCK_BACKDRAFT_PROC }); + } + + bool Load() override + { + return GetCaster()->HasAura(SPELL_WARLOCK_BACKDRAFT); + } + + void HandleAfterCast() const + { + Unit* caster = GetCaster(); + caster->CastSpell(caster, SPELL_WARLOCK_BACKDRAFT_PROC, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringSpell = GetSpell() + }); + } + + void Register() override + { + AfterCast += SpellCastFn(spell_warl_backdraft::HandleAfterCast); + } +}; + // 710 - Banish class spell_warl_banish : public SpellScript { @@ -1415,12 +1445,13 @@ class spell_warl_volatile_agony : public SpellScript void AddSC_warlock_spell_scripts() { + RegisterSpellScript(spell_warl_absolute_corruption); + RegisterSpellScript(spell_warl_backdraft); RegisterSpellScript(spell_warl_banish); RegisterSpellAndAuraScriptPair(spell_warl_burning_rush, spell_warl_burning_rush_aura); RegisterSpellScript(spell_warl_cataclysm); RegisterSpellScript(spell_warl_chaos_bolt); RegisterSpellScript(spell_warl_chaotic_energies); - RegisterSpellScript(spell_warl_absolute_corruption); RegisterSpellScript(spell_warl_conflagrate); RegisterSpellScript(spell_warl_create_healthstone); RegisterSpellScript(spell_warl_dark_pact); @@ -1452,8 +1483,8 @@ void AddSC_warlock_spell_scripts() RegisterSpellScript(spell_warl_soul_swap_exhale); RegisterSpellScript(spell_warl_soul_swap_override); RegisterSpellScript(spell_warl_soulshatter); - RegisterSpellScript(spell_warl_strengthen_pact_succubus); RegisterSpellScript(spell_warl_strengthen_pact_incubus); + RegisterSpellScript(spell_warl_strengthen_pact_succubus); RegisterSpellScript(spell_warl_summon_sayaad); RegisterSpellScriptWithArgs(spell_warl_t4_2p_bonus<SPELL_WARLOCK_FLAMESHADOW>, "spell_warl_t4_2p_bonus_shadow"); RegisterSpellScriptWithArgs(spell_warl_t4_2p_bonus<SPELL_WARLOCK_SHADOWFLAME>, "spell_warl_t4_2p_bonus_fire"); |