aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas <lucas__jensen@hotmail.com>2014-04-27 22:45:17 +0200
committerUnholychick <lucas__jensen@hotmail.com>2014-04-27 22:47:54 +0200
commit1719e19572bc22463edbcbe4089e68a97019e787 (patch)
tree3a67ecd24263d15628e0a91364f52699730468b7
parentc7221536ded8b43baacad2d320f5b9cc979f52f9 (diff)
Fix percentage HOTs proccing everything
Unforeseen sideeffect of 057169c21c141f690891c908b8f09e63d917289d Percentage HOTs are not supposed to proc anything at all. Closes: https://github.com/TrinityCore/TrinityCore/issues/11914
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp2
-rw-r--r--src/server/game/Spells/SpellMgr.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index b87524357d2..0175c685076 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -6099,7 +6099,7 @@ void AuraEffect::HandlePeriodicHealAurasTick(Unit* target, Unit* caster) const
uint32 procVictim = PROC_FLAG_TAKEN_PERIODIC;
uint32 procEx = (crit ? PROC_EX_CRITICAL_HIT : PROC_EX_NORMAL_HIT) | PROC_EX_INTERNAL_HOT;
// ignore item heals
- if (!haveCastItem)
+ if (!haveCastItem && GetAuraType() != SPELL_AURA_OBS_MOD_HEALTH)
caster->ProcDamageAndSpell(target, procAttacker, procVictim, procEx, damage, BASE_ATTACK, GetSpellInfo());
}
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 0342b22d735..548685b9bb6 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -813,7 +813,7 @@ bool SpellMgr::IsSpellProcEventCanTriggeredBy(SpellProcEventEntry const* spellPr
return true;
/// Any aura that has only PROC_FLAG_DONE_PERIODIC or PROC_FLAG_TAKEN_PERIODIC should always proc, if procSpell is correct or not is checked in Unit::HandleAuraProc
- if (EventProcFlag == PROC_FLAG_DONE_PERIODIC || EventProcFlag == PROC_FLAG_TAKEN_PERIODIC)
+ if ((EventProcFlag == PROC_FLAG_DONE_PERIODIC && procFlags == PROC_FLAG_DONE_PERIODIC) || (EventProcFlag == PROC_FLAG_TAKEN_PERIODIC && procFlags == PROC_FLAG_TAKEN_PERIODIC))
return true;
if (procFlags & PROC_FLAG_DONE_PERIODIC && EventProcFlag & PROC_FLAG_DONE_PERIODIC)