Merge pull request #16483 from Treeston/3.3.5-debuffimmunity

[3.3.5] Make Web Wrap / Mutating Injection (and others) properly cancel on immunity (Divine Shield/Ice Block)
(cherry picked from commit d67e87733b2e258dc4f5613ee7fa40445e3b215f)
This commit is contained in:
Treeston
2016-04-05 19:56:26 +02:00
committed by Shauren
parent 73b917e122
commit ac034a51da
2 changed files with 9 additions and 5 deletions
@@ -3568,7 +3568,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint
&& !iter->second->IsPositive() //Don't remove positive spells
&& spell->Id != GetId()) //Don't remove self
{
target->RemoveAura(iter);
target->RemoveAura(iter, AURA_REMOVE_BY_ENEMY_SPELL);
}
else
++iter;
+8 -4
View File
@@ -1578,14 +1578,18 @@ bool SpellInfo::CanDispelAura(SpellInfo const* aura) const
if (Attributes & SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY && !aura->IsDeathPersistent())
return true;
// These auras (like Divine Shield) can't be dispelled
if (aura->HasAttribute(SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY))
return false;
// These auras (Cyclone for example) are not dispelable
if (aura->HasAttribute(SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE))
return false;
// Divine Shield etc can dispel auras if they don't ignore school immunity
if (HasAttribute(SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY) && !aura->IsDeathPersistent())
return true;
// These auras (like Divine Shield) can't be dispelled
if (aura->HasAttribute(SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY))
return false;
return true;
}