diff options
Diffstat (limited to 'src/game/BattleGround.cpp')
| -rw-r--r-- | src/game/BattleGround.cpp | 10 |
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) |
