Core/Spell: do positivity spell checks only against actually hitted effects instead of the whole spell

Closes #18097
This commit is contained in:
ariel-
2016-10-18 21:00:17 -03:00
parent 0285486603
commit 5c1dfce168

View File

@@ -2352,7 +2352,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)
{