[7934] Implement ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also added ACHIEVEMENT_CRITERIA_DATA_TYPE_VALUE and support
this criteira special cases base at `achievement_criteria_data`
that required DB support.
This commit is contained in:
Trazom 2009-06-01 07:29:51 +04:00 committed by VladimirMangos
parent bfafee5263
commit 626553c9ee
4 changed files with 58 additions and 8 deletions

View file

@ -697,9 +697,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)