Core/Spells: Allow proc from periodic crits
This commit is contained in:
@@ -1390,7 +1390,7 @@ void AuraEffect::PeriodicTick(AuraApplication * aurApp, Unit * caster) const
|
|||||||
// Set trigger flag
|
// Set trigger flag
|
||||||
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
|
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
|
||||||
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
|
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
|
||||||
uint32 procEx = PROC_EX_NORMAL_HIT | PROC_EX_INTERNAL_DOT;
|
uint32 procEx = (crit ? PROC_EX_CRITICAL_HIT : PROC_EX_NORMAL_HIT) | PROC_EX_INTERNAL_DOT;
|
||||||
damage = (damage <= absorb+resist) ? 0 : (damage-absorb-resist);
|
damage = (damage <= absorb+resist) ? 0 : (damage-absorb-resist);
|
||||||
if (damage)
|
if (damage)
|
||||||
procVictim|=PROC_FLAG_TAKEN_DAMAGE;
|
procVictim|=PROC_FLAG_TAKEN_DAMAGE;
|
||||||
@@ -1472,7 +1472,7 @@ void AuraEffect::PeriodicTick(AuraApplication * aurApp, Unit * caster) const
|
|||||||
// Set trigger flag
|
// Set trigger flag
|
||||||
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
|
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
|
||||||
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
|
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
|
||||||
uint32 procEx = PROC_EX_NORMAL_HIT | PROC_EX_INTERNAL_DOT;
|
uint32 procEx = (crit ? PROC_EX_CRITICAL_HIT : PROC_EX_NORMAL_HIT) | PROC_EX_INTERNAL_DOT;
|
||||||
damage = (damage <= absorb+resist) ? 0 : (damage-absorb-resist);
|
damage = (damage <= absorb+resist) ? 0 : (damage-absorb-resist);
|
||||||
if (damage)
|
if (damage)
|
||||||
procVictim|=PROC_FLAG_TAKEN_DAMAGE;
|
procVictim|=PROC_FLAG_TAKEN_DAMAGE;
|
||||||
@@ -1629,7 +1629,7 @@ void AuraEffect::PeriodicTick(AuraApplication * aurApp, Unit * caster) const
|
|||||||
|
|
||||||
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
|
uint32 procAttacker = PROC_FLAG_DONE_PERIODIC;
|
||||||
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
|
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
|
||||||
uint32 procEx = PROC_EX_NORMAL_HIT | PROC_EX_INTERNAL_HOT;
|
uint32 procEx = (crit ? PROC_EX_CRITICAL_HIT : PROC_EX_NORMAL_HIT) | PROC_EX_INTERNAL_HOT;
|
||||||
// ignore item heals
|
// ignore item heals
|
||||||
if (!haveCastItem)
|
if (!haveCastItem)
|
||||||
caster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, damage, BASE_ATTACK, GetSpellProto());
|
caster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, damage, BASE_ATTACK, GetSpellProto());
|
||||||
|
|||||||
Reference in New Issue
Block a user