aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp
index 5ac5c91c318..b988b506c2b 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -45,6 +45,7 @@ enum DeathKnightSpells
SPELL_DK_ARMY_SUPER_ZOMBIE_TRANSFORM = 127526,
SPELL_DK_BLINDING_SLEET_SLOW = 317898,
SPELL_DK_BLOOD = 137008,
+ SPELL_DK_BLOODDRINKER_DEBUFF = 458687,
SPELL_DK_BLOOD_PLAGUE = 55078,
SPELL_DK_BLOOD_SHIELD_ABSORB = 77535,
SPELL_DK_BLOOD_SHIELD_MASTERY = 77513,
@@ -290,6 +291,32 @@ class spell_dk_blinding_sleet : public AuraScript
}
};
+// 206931 - Blooddrinker
+class spell_dk_blooddrinker : public AuraScript
+{
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo({ SPELL_DK_BLOODDRINKER_DEBUFF });
+ }
+
+ void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) const
+ {
+ if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
+ return;
+
+ if (Unit* caster = GetCaster())
+ caster->CastSpell(GetTarget(), SPELL_DK_BLOODDRINKER_DEBUFF, CastSpellExtraArgsInit{
+ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
+ .TriggeringAura = aurEff
+ });
+ }
+
+ void Register() override
+ {
+ AfterEffectRemove += AuraEffectRemoveFn(spell_dk_blooddrinker::AfterRemove, EFFECT_0, SPELL_AURA_PERIODIC_LEECH, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
// 50842 - Blood Boil
class spell_dk_blood_boil : public SpellScript
{
@@ -1331,6 +1358,7 @@ void AddSC_deathknight_spell_scripts()
RegisterSpellScriptWithArgs(spell_dk_apply_bone_shield, "spell_dk_deaths_caress_apply_bone_shield", EFFECT_2);
RegisterSpellScript(spell_dk_army_transform);
RegisterSpellScript(spell_dk_blinding_sleet);
+ RegisterSpellScript(spell_dk_blooddrinker);
RegisterSpellScript(spell_dk_blood_boil);
RegisterSpellScript(spell_dk_brittle);
RegisterSpellScript(spell_dk_dancing_rune_weapon);