mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +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_BLOOD_PRESENCE_R1 = 50365,
|
||||||
SPELL_DK_IMPROVED_FROST_PRESENCE_R1 = 50384,
|
SPELL_DK_IMPROVED_FROST_PRESENCE_R1 = 50384,
|
||||||
SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1 = 50391,
|
SPELL_DK_IMPROVED_UNHOLY_PRESENCE_R1 = 50391,
|
||||||
|
SPELL_DK_IMPROVED_BLOOD_PRESENCE_HEAL = 50475,
|
||||||
SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED = 63611,
|
SPELL_DK_IMPROVED_BLOOD_PRESENCE_TRIGGERED = 63611,
|
||||||
SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED = 63622,
|
SPELL_DK_IMPROVED_UNHOLY_PRESENCE_TRIGGERED = 63622,
|
||||||
SPELL_DK_ITEM_SIGIL_VENGEFUL_HEART = 64962,
|
SPELL_DK_ITEM_SIGIL_VENGEFUL_HEART = 64962,
|
||||||
@@ -492,19 +493,35 @@ class spell_dk_summon_gargoyle : public SpellScript
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 63611 - Improved Blood Presence
|
// 63611 - Improved Blood Presence Triggered
|
||||||
class spell_dk_improved_blood_presence_proc : public AuraScript
|
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)
|
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
|
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);
|
RegisterSpellAndAuraScriptPair(spell_dk_chains_of_ice, spell_dk_chains_of_ice_aura);
|
||||||
RegisterSpellScript(spell_dk_bloodworms);
|
RegisterSpellScript(spell_dk_bloodworms);
|
||||||
RegisterSpellScript(spell_dk_summon_gargoyle);
|
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_wandering_plague_aura);
|
||||||
RegisterSpellScript(spell_dk_rune_of_the_fallen_crusader);
|
RegisterSpellScript(spell_dk_rune_of_the_fallen_crusader);
|
||||||
RegisterSpellScript(spell_dk_bone_shield);
|
RegisterSpellScript(spell_dk_bone_shield);
|
||||||
|
|||||||
Reference in New Issue
Block a user