diff options
| author | joschiwald <joschiwald.trinity@gmail.com> | 2014-07-03 22:32:41 +0200 | 
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2014-07-03 22:32:41 +0200 | 
| commit | 7b74a725c89cca383acab8a002c162fc7ff1e0ac (patch) | |
| tree | a7f0d360ab8b737625660896d1db3ffc07ba680e /src/server/game/Spells/Spell.cpp | |
| parent | 37f7cc4615163ae9a4800af211a9423774bf8223 (diff) | |
Core/Spells: fixed Deep Freeze after 2a3546ca36468b81d673bdb27315006144af3165
Closes #12424
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 14 | 
1 files changed, 3 insertions, 11 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 814ae4d24c1..0e0443cc675 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2265,7 +2265,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)      m_spellAura = NULL; // Set aura to null for every target-make sure that pointer is not used for unit without aura applied                              //Spells with this flag cannot trigger if effect is cast on self -    bool canEffectTrigger = !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_CANT_TRIGGER_PROC) && unitTarget->CanProc() && CanExecuteTriggersOnHit(mask); +    bool canEffectTrigger = !(m_spellInfo->AttributesEx3 & SPELL_ATTR3_CANT_TRIGGER_PROC) && unitTarget->CanProc() && (CanExecuteTriggersOnHit(mask) || missInfo == SPELL_MISS_IMMUNE || missInfo == SPELL_MISS_IMMUNE2);      Unit* spellHitTarget = NULL;      if (missInfo == SPELL_MISS_NONE)                          // In case spell hit target, do all effect on that target @@ -2311,15 +2311,8 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)          if (m_damage > 0)              positive = false;          else if (!m_healing) -        { -            for (uint8 i = 0; i< MAX_SPELL_EFFECTS; ++i) -                // If at least one effect negative spell is negative hit -                if (mask & (1<<i) && !m_spellInfo->IsPositiveEffect(i)) -                { -                    positive = false; -                    break; -                } -        } +            positive = m_spellInfo->IsPositive(); +          switch (m_spellInfo->DmgClass)          {              case SPELL_DAMAGE_CLASS_MAGIC: @@ -2397,7 +2390,6 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)                  caster->ToPlayer()->CastItemCombatSpell(unitTarget, m_attackType, procVictim, procEx);          } -          m_damage = damageInfo.damage;          caster->DealSpellDamage(&damageInfo, true);  | 
