diff options
-rw-r--r-- | sql/updates/world/master/2025_05_20_00_world.sql | 3 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_dk.cpp | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/sql/updates/world/master/2025_05_20_00_world.sql b/sql/updates/world/master/2025_05_20_00_world.sql new file mode 100644 index 00000000000..fd2161e56da --- /dev/null +++ b/sql/updates/world/master/2025_05_20_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_dk_blooddrinker'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(206931, 'spell_dk_blooddrinker'); 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); |