diff --git a/src/game/Object/Unit.cpp b/src/game/Object/Unit.cpp index ce08e801..af01e84e 100644 --- a/src/game/Object/Unit.cpp +++ b/src/game/Object/Unit.cpp @@ -2644,7 +2644,7 @@ SpellMissInfo Unit::SpellHitResult(Unit* pVictim, SpellEntry const* spell, bool { return SPELL_MISS_EVADE; } // Check for immune - if (pVictim->IsImmuneToSpell(spell, this == pVictim)) + if (pVictim->IsImmuneToSpell(spell, this == pVictim) && !spell->HasAttribute(SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY)) { return SPELL_MISS_IMMUNE; } // All positive spells can`t miss @@ -2653,7 +2653,7 @@ SpellMissInfo Unit::SpellHitResult(Unit* pVictim, SpellEntry const* spell, bool { return SPELL_MISS_NONE; } // Check for immune (use charges) - if (pVictim->IsImmunedToDamage(GetSpellSchoolMask(spell))) + if (pVictim->IsImmunedToDamage(GetSpellSchoolMask(spell)) && !spell->HasAttribute(SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY)) { return SPELL_MISS_IMMUNE; } // Try victim reflect spell