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.cpp15
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)