aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_warlock.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp
index 59df174b3a0..2b131d686f2 100644
--- a/src/server/scripts/Spells/spell_warlock.cpp
+++ b/src/server/scripts/Spells/spell_warlock.cpp
@@ -41,6 +41,7 @@ enum WarlockSpells
SPELL_WARLOCK_DEMONIC_CIRCLE_SUMMON = 48018,
SPELL_WARLOCK_DEMONIC_CIRCLE_TELEPORT = 48020,
SPELL_WARLOCK_DEVOUR_MAGIC_HEAL = 19658,
+ SPELL_WARLOCK_DOOM_ENERGIZE = 193318,
SPELL_WARLOCK_DRAIN_SOUL_ENERGIZE = 205292,
SPELL_WARLOCK_GLYPH_OF_DEMON_TRAINING = 56249,
SPELL_WARLOCK_GLYPH_OF_SOUL_SWAP = 56226,
@@ -340,6 +341,26 @@ class spell_warl_devour_magic : public SpellScript
}
};
+// 603 - Doom
+class spell_warl_doom : public AuraScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo ({ SPELL_WARLOCK_DOOM_ENERGIZE });
+ }
+
+ void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)
+ {
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(caster, SPELL_WARLOCK_DOOM_ENERGIZE, true);
+ }
+
+ void Register() override
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_warl_doom::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
+ }
+};
+
// 198590 - Drain Soul
class spell_warl_drain_soul : public AuraScript
{
@@ -1014,6 +1035,7 @@ void AddSC_warlock_spell_scripts()
RegisterSpellScript(spell_warl_demonic_circle_summon);
RegisterSpellScript(spell_warl_demonic_circle_teleport);
RegisterSpellScript(spell_warl_devour_magic);
+ RegisterSpellScript(spell_warl_doom);
RegisterSpellScript(spell_warl_drain_soul);
RegisterSpellScript(spell_warl_haunt);
RegisterSpellScript(spell_warl_health_funnel);