Core/Auras: fix periodic ticks proc after previous commit
Port From (https://github.com/TrinityCore/TrinityCore/commit/c21dc3c1b7985cbffaaf1cd17a48bddd2106154d)
This commit is contained in:
@@ -5020,7 +5020,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
Unit.DealDamage(caster, target, damage, cleanDamage, DamageEffectType.DOT, GetSpellInfo().GetSchoolMask(), GetSpellInfo(), true);
|
Unit.DealDamage(caster, target, damage, cleanDamage, DamageEffectType.DOT, GetSpellInfo().GetSchoolMask(), GetSpellInfo(), true);
|
||||||
|
|
||||||
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, ProcFlagsSpellType.Damage, ProcFlagsSpellPhase.None, hitMask, null, damageInfo, null);
|
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, ProcFlagsSpellType.Damage, ProcFlagsSpellPhase.Hit, hitMask, null, damageInfo, null);
|
||||||
target.SendPeriodicAuraLog(pInfo);
|
target.SendPeriodicAuraLog(pInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5104,7 +5104,7 @@ namespace Game.Spells
|
|||||||
}
|
}
|
||||||
|
|
||||||
int new_damage = (int)Unit.DealDamage(caster, target, damage, cleanDamage, DamageEffectType.DOT, GetSpellInfo().GetSchoolMask(), GetSpellInfo(), false);
|
int new_damage = (int)Unit.DealDamage(caster, target, damage, cleanDamage, DamageEffectType.DOT, GetSpellInfo().GetSchoolMask(), GetSpellInfo(), false);
|
||||||
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, ProcFlagsSpellType.Damage, ProcFlagsSpellPhase.None, hitMask, null, damageInfo, null);
|
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, ProcFlagsSpellType.Damage, ProcFlagsSpellPhase.Hit, hitMask, null, damageInfo, null);
|
||||||
|
|
||||||
// process caster heal from now on (must be in world)
|
// process caster heal from now on (must be in world)
|
||||||
if (!caster || !caster.IsAlive())
|
if (!caster || !caster.IsAlive())
|
||||||
@@ -5119,7 +5119,7 @@ namespace Game.Spells
|
|||||||
caster.HealBySpell(healInfo);
|
caster.HealBySpell(healInfo);
|
||||||
|
|
||||||
caster.GetThreatManager().ForwardThreatForAssistingMe(caster, healInfo.GetEffectiveHeal() * 0.5f, GetSpellInfo());
|
caster.GetThreatManager().ForwardThreatForAssistingMe(caster, healInfo.GetEffectiveHeal() * 0.5f, GetSpellInfo());
|
||||||
Unit.ProcSkillsAndAuras(caster, caster, ProcFlags.DonePeriodic, ProcFlags.TakenPeriodic, ProcFlagsSpellType.Heal, ProcFlagsSpellPhase.None, hitMask, null, null, healInfo);
|
Unit.ProcSkillsAndAuras(caster, caster, ProcFlags.DonePeriodic, ProcFlags.TakenPeriodic, ProcFlagsSpellType.Heal, ProcFlagsSpellPhase.Hit, hitMask, null, null, healInfo);
|
||||||
|
|
||||||
caster.SendSpellNonMeleeDamageLog(log);
|
caster.SendSpellNonMeleeDamageLog(log);
|
||||||
}
|
}
|
||||||
@@ -5151,7 +5151,7 @@ namespace Game.Spells
|
|||||||
|
|
||||||
HealInfo healInfo = new(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetSchoolMask());
|
HealInfo healInfo = new(caster, target, damage, GetSpellInfo(), GetSpellInfo().GetSchoolMask());
|
||||||
caster.HealBySpell(healInfo);
|
caster.HealBySpell(healInfo);
|
||||||
Unit.ProcSkillsAndAuras(caster, target, ProcFlags.DonePeriodic, ProcFlags.TakenPeriodic, ProcFlagsSpellType.Heal, ProcFlagsSpellPhase.None, ProcFlagsHit.Normal, null, null, healInfo);
|
Unit.ProcSkillsAndAuras(caster, target, ProcFlags.DonePeriodic, ProcFlags.TakenPeriodic, ProcFlagsSpellType.Heal, ProcFlagsSpellPhase.Hit, ProcFlagsHit.Normal, null, null, healInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandlePeriodicHealAurasTick(Unit target, Unit caster)
|
void HandlePeriodicHealAurasTick(Unit target, Unit caster)
|
||||||
@@ -5213,7 +5213,7 @@ namespace Game.Spells
|
|||||||
ProcFlagsHit hitMask = crit ? ProcFlagsHit.Critical : ProcFlagsHit.Normal;
|
ProcFlagsHit hitMask = crit ? ProcFlagsHit.Critical : ProcFlagsHit.Normal;
|
||||||
// ignore item heals
|
// ignore item heals
|
||||||
if (GetBase().GetCastItemGUID().IsEmpty())
|
if (GetBase().GetCastItemGUID().IsEmpty())
|
||||||
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, ProcFlagsSpellType.Heal, ProcFlagsSpellPhase.None, hitMask, null, null, healInfo);
|
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, ProcFlagsSpellType.Heal, ProcFlagsSpellPhase.Hit, hitMask, null, null, healInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandlePeriodicManaLeechAuraTick(Unit target, Unit caster)
|
void HandlePeriodicManaLeechAuraTick(Unit target, Unit caster)
|
||||||
@@ -5375,7 +5375,7 @@ namespace Game.Spells
|
|||||||
caster.DealSpellDamage(damageInfo, true);
|
caster.DealSpellDamage(damageInfo, true);
|
||||||
|
|
||||||
DamageInfo dotDamageInfo = new(damageInfo, DamageEffectType.DOT, WeaponAttackType.BaseAttack, hitMask);
|
DamageInfo dotDamageInfo = new(damageInfo, DamageEffectType.DOT, WeaponAttackType.BaseAttack, hitMask);
|
||||||
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, spellTypeMask, ProcFlagsSpellPhase.None, hitMask, null, dotDamageInfo, null);
|
Unit.ProcSkillsAndAuras(caster, target, procAttacker, procVictim, spellTypeMask, ProcFlagsSpellPhase.Hit, hitMask, null, dotDamageInfo, null);
|
||||||
|
|
||||||
caster.SendSpellNonMeleeDamageLog(damageInfo);
|
caster.SendSpellNonMeleeDamageLog(damageInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user