diff options
Diffstat (limited to 'src/game/Spell.cpp')
| -rw-r--r-- | src/game/Spell.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 378e6f0b2bc..07a70f6bc17 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -671,11 +671,6 @@ void Spell::prepareDataForTriggerSystem() // Create base triggers flags for Attacker and Victim ( m_procAttacker and m_procVictim) //========================================================================================== - m_canTrigger = true; - - if (m_CastItem && m_spellInfo->SpellFamilyName != SPELLFAMILY_POTION) - m_canTrigger = false; // Do not trigger from item cast spell(except potions) - // Get data for type of attack and fill base info for trigger switch (m_spellInfo->DmgClass) { @@ -958,7 +953,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) procEx |= PROC_EX_NORMAL_HIT; // Do triggers for unit (reflect triggers passed on hit phase for correct drop charge) - if (m_canTrigger && missInfo != SPELL_MISS_REFLECT) + if (missInfo != SPELL_MISS_REFLECT) caster->ProcDamageAndSpell(unitTarget, procAttacker, procVictim, procEx, addhealth, m_attackType, m_spellInfo); if (m_spellAura) @@ -983,7 +978,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) procVictim |= PROC_FLAG_TAKEN_ANY_DAMAGE; // Do triggers for unit (reflect triggers passed on hit phase for correct drop charge) - if (m_canTrigger && missInfo != SPELL_MISS_REFLECT) + if (missInfo != SPELL_MISS_REFLECT) caster->ProcDamageAndSpell(unitTarget, procAttacker, procVictim, procEx, damageInfo.damage, m_attackType, m_spellInfo); if (m_spellAura) @@ -1005,7 +1000,7 @@ void Spell::DoAllEffectOnTarget(TargetInfo *target) SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo->Id, m_spellSchoolMask); procEx |= createProcExtendMask(&damageInfo, missInfo); // Do triggers for unit (reflect triggers passed on hit phase for correct drop charge) - if (m_canTrigger && missInfo != SPELL_MISS_REFLECT) + if (missInfo != SPELL_MISS_REFLECT) caster->ProcDamageAndSpell(unit, procAttacker, procVictim, procEx, 0, m_attackType, m_spellInfo); } @@ -1039,8 +1034,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask) // Recheck immune (only for delayed spells) if( m_spellInfo->speed && - !(m_spellInfo->Attributes & SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY) - && (unit->IsImmunedToDamage(GetSpellSchoolMask(m_spellInfo)) || + (unit->IsImmunedToDamage(m_spellInfo) || unit->IsImmunedToSpell(m_spellInfo))) { m_caster->SendSpellMiss(unit, m_spellInfo->Id, SPELL_MISS_IMMUNE); |
