fix(Core/Spells): fix PPM proc chance calculation for healing spells (#24761)

Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
This commit is contained in:
blinkysc
2026-02-19 12:58:17 -06:00
committed by GitHub
parent 42ba48a9a9
commit ab29745d6a
4 changed files with 53 additions and 8 deletions

View File

@@ -2280,13 +2280,14 @@ float Aura::CalcProcChance(SpellProcEntry const& procEntry, ProcEventInfo& event
if (Unit* caster = GetCaster())
{
// If PPM exists calculate chance from PPM
if (eventInfo.GetDamageInfo() && procEntry.ProcsPerMinute != 0)
if ((eventInfo.GetDamageInfo() || eventInfo.GetHealInfo()) && procEntry.ProcsPerMinute != 0)
{
SpellInfo const* procSpell = eventInfo.GetSpellInfo();
uint32 attackSpeed = 0;
if (!procSpell || procSpell->DmgClass == SPELL_DAMAGE_CLASS_MELEE || procSpell->IsRangedWeaponSpell())
{
attackSpeed = caster->GetAttackTime(eventInfo.GetDamageInfo()->GetAttackType());
if (eventInfo.GetDamageInfo())
attackSpeed = caster->GetAttackTime(eventInfo.GetDamageInfo()->GetAttackType());
}
else // spells use their cast time for PPM calculations
{