aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2025_05_20_00_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp28
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);