mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-27 22:16:11 +00:00
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:
@@ -0,0 +1,2 @@
|
||||
-- Blood Presence (63611): rename script to match new class name
|
||||
UPDATE `spell_script_names` SET `ScriptName` = 'spell_dk_improved_blood_presence_triggered' WHERE `spell_id` = 63611;
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user