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.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp
index 034182bdcc9..43c3516722b 100644
--- a/src/game/BattleGround.cpp
+++ b/src/game/BattleGround.cpp
@@ -736,9 +736,19 @@ void BattleGround::EndBattleGround(uint32 winner)
if (isArena() && isRated() && winner_arena_team && loser_arena_team)
{
if (team == winner)
+ {
+ // update achievement BEFORE personal rating update
+ plr->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA, winner_arena_team->GetMember(plr->GetGUID())->personal_rating);
+
winner_arena_team->MemberWon(plr,loser_rating);
+ }
else
+ {
loser_arena_team->MemberLost(plr,winner_rating);
+
+ // Arena lost => reset the win_rated_arena having the "no_loose" condition
+ plr->GetAchievementMgr().ResetAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA, ACHIEVEMENT_CRITERIA_CONDITION_NO_LOOSE);
+ }
}
if (team == winner)