diff options
Diffstat (limited to 'src/game/BattleGround.cpp')
-rw-r--r-- | src/game/BattleGround.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index b76e0c7835c..7f5a1182cdc 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -404,7 +404,20 @@ void BattleGround::Update(uint32 diff) for(BattleGroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr) if (Player *plr = objmgr.GetPlayer(itr->first)) + { plr->RemoveAurasDueToSpell(SPELL_ARENA_PREPARATION); + // remove auras with duration lower than 30s + Unit::AuraMap & aurMap = plr->GetAuras(); + for(Unit::AuraMap::iterator iter = aurMap.begin(); iter != aurMap.end();) + { + if (iter->second->GetAuraDuration()<=30*IN_MILISECONDS) + { + plr->RemoveAura(iter); + } + else + ++iter; + } + } CheckArenaWinConditions(); } @@ -1109,7 +1122,7 @@ void BattleGround::AddPlayer(Player *plr) { plr->RemoveArenaSpellCooldowns(); plr->RemoveArenaAuras(); - plr->RemoveAllEnchantments(TEMP_ENCHANTMENT_SLOT); + plr->RemoveArenaEnchantments(TEMP_ENCHANTMENT_SLOT); if(team == ALLIANCE) // gold { if (plr->GetTeam() == HORDE) |