From 135098962897553406db38f8d7b2d615a813d830 Mon Sep 17 00:00:00 2001 From: ariel- Date: Tue, 18 Oct 2016 21:00:17 -0300 Subject: Core/Spell: do positivity spell checks only against actually hitted effects instead of the whole spell Closes #18097 (cherry picked from commit 5c1dfce168e31f473418930fdd09eb800c64c44c) --- src/server/game/Spells/Spell.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/server/game/Spells/Spell.cpp') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 92faf274ee5..64e2a2814c9 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2415,7 +2415,19 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target) if (m_damage > 0) positive = false; else if (!m_healing) - positive = m_spellInfo->IsPositive(); + { + for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) + { + if (!(target->effectMask & (1 << i))) + continue; + + if (!m_spellInfo->IsPositiveEffect(i)) + { + positive = false; + break; + } + } + } switch (m_spellInfo->DmgClass) { -- cgit v1.2.3