fix(Scripts/Spells): fix Blood Presence not healing for damage dealt (#24765)

Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
Co-authored-by: mik1893 <michele.roscelli@gmail.com>
This commit is contained in:
blinkysc
2026-02-19 14:29:08 -06:00
committed by GitHub
parent 082147fc47
commit e135e83183
2 changed files with 25 additions and 6 deletions

View File

@@ -60,6 +60,7 @@ enum DeathKnightSpells
SPELL_DK_IMPROVED_BLOOD_PRESENCE_R1 = 50365,
SPELL_DK_IMPROVED_FROST_PRESENCE_R1 = 50384,
SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1 = 50391,
SPELL_DK_IMPROVED_BLOOD_PRESENCE_HEAL = 50475,
SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED = 63611,
SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED = 63622,
SPELL_DK_ITEM_SIGIL_VENGEFUL_HEART = 64962,
@@ -492,19 +493,35 @@ class spell_dk_summon_gargoyle : public SpellScript
}
};
// 63611 - Improved Blood Presence
class spell_dk_improved_blood_presence_proc : public AuraScript
// 63611 - Improved Blood Presence Triggered
class spell_dk_improved_blood_presence_triggered : public AuraScript
{
PrepareAuraScript(spell_dk_improved_blood_presence_proc);
PrepareAuraScript(spell_dk_improved_blood_presence_triggered);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_DK_IMPROVED_BLOOD_PRESENCE_HEAL });
}
bool CheckProc(ProcEventInfo& eventInfo)
{
return eventInfo.GetDamageInfo() && eventInfo.GetDamageInfo()->GetDamage();
return eventInfo.GetActor()->IsPlayer();
}
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
{
PreventDefaultAction();
if (DamageInfo* dmgInfo = eventInfo.GetDamageInfo())
{
int32 bp0 = CalculatePct(static_cast<int32>(dmgInfo->GetDamage()), aurEff->GetAmount());
eventInfo.GetActor()->CastCustomSpell(SPELL_DK_IMPROVED_BLOOD_PRESENCE_HEAL, SPELLVALUE_BASE_POINT0, bp0, eventInfo.GetActor(), true, nullptr, aurEff);
}
}
void Register() override
{
DoCheckProc += AuraCheckProcFn(spell_dk_improved_blood_presence_proc::CheckProc);
DoCheckProc += AuraCheckProcFn(spell_dk_improved_blood_presence_triggered::CheckProc);
OnEffectProc += AuraEffectProcFn(spell_dk_improved_blood_presence_triggered::HandleProc, EFFECT_1, SPELL_AURA_PROC_TRIGGER_SPELL);
}
};
@@ -2995,7 +3012,7 @@ void AddSC_deathknight_spell_scripts()
RegisterSpellAndAuraScriptPair(spell_dk_chains_of_ice, spell_dk_chains_of_ice_aura);
RegisterSpellScript(spell_dk_bloodworms);
RegisterSpellScript(spell_dk_summon_gargoyle);
RegisterSpellScript(spell_dk_improved_blood_presence_proc);
RegisterSpellScript(spell_dk_improved_blood_presence_triggered);
RegisterSpellScript(spell_dk_wandering_plague_aura);
RegisterSpellScript(spell_dk_rune_of_the_fallen_crusader);
RegisterSpellScript(spell_dk_bone_shield);