aboutsummaryrefslogtreecommitdiff
path: root/src/game/BattleGround.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/BattleGround.cpp')
-rw-r--r--src/game/BattleGround.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp
index 7f5a1182cdc..acb3f25ae31 100644
--- a/src/game/BattleGround.cpp
+++ b/src/game/BattleGround.cpp
@@ -410,7 +410,11 @@ void BattleGround::Update(uint32 diff)
Unit::AuraMap & aurMap = plr->GetAuras();
for(Unit::AuraMap::iterator iter = aurMap.begin(); iter != aurMap.end();)
{
- if (iter->second->GetAuraDuration()<=30*IN_MILISECONDS)
+ if (!iter->second->IsPermanent()
+ && iter->second->GetAuraDuration()<=30*IN_MILISECONDS
+ && iter->second->IsPositive()
+ && (!(iter->second->GetSpellProto()->Attributes & SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY))
+ && (!iter->second->IsAuraType(SPELL_AURA_MOD_INVISIBILITY)))
{
plr->RemoveAura(iter);
}