Scripts/Spells: Implement death knight talent Blooddrinker (#30956)

This commit is contained in:
Aqua Deus
2025-05-20 10:42:48 +02:00
committed by GitHub
parent 4653638e18
commit 4be26bcadd
2 changed files with 31 additions and 0 deletions

View File

@@ -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);