From 4be26bcadd443b358ef025a2bead54967a3fb659 Mon Sep 17 00:00:00 2001 From: Aqua Deus <95978183+aquadeus@users.noreply.github.com> Date: Tue, 20 May 2025 10:42:48 +0200 Subject: Scripts/Spells: Implement death knight talent Blooddrinker (#30956) --- src/server/scripts/Spells/spell_dk.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src') 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); -- cgit v1.2.3