Core/Arena: Fixes the Config option for the start rating of personal rating.

Add a Config option for the start rating of matchmaker rating.
Personal rating now resets when joining a new team.
Fixes the strange behaviour Personal rating gain/loss can have opposing to team rating,
by using a better way of calculating the personal rating gain.
Fixes issue #3871
Fixes issue #3847
Fixes issue #3843
Fixes issue #3839

--HG--
branch : trunk
This commit is contained in:
Liberate
2010-09-10 23:08:49 +02:00
parent 320929ff40
commit 50a90522f9
6 changed files with 49 additions and 40 deletions
+4 -3
View File
@@ -198,12 +198,13 @@ class ArenaTeam
uint32 GetPoints(uint32 MemberRating);
int32 GetRatingMod(uint32 own_rating, uint32 enemy_rating, bool won, bool calculating_mmr = false);
int32 GetPersonalRatingMod(int32 base_rating, uint32 own_rating, uint32 enemy_rating);
float GetChanceAgainst(uint32 own_rating, uint32 enemy_rating);
int32 WonAgainst(uint32 againstRating);
void MemberWon(Player * plr, uint32 againstMatchmakerRating);
void MemberWon(Player * plr, uint32 againstMatchmakerRating, int32 teamratingchange = 12);
int32 LostAgainst(uint32 againstRating);
void MemberLost(Player * plr, uint32 againstMatchmakerRating);
void OfflineMemberLost(uint64 guid, uint32 againstMatchmakerRating);
void MemberLost(Player * plr, uint32 againstMatchmakerRating, int32 teamratingchange = 12);
void OfflineMemberLost(uint64 guid, uint32 againstMatchmakerRating, int32 teamratingchange = 12);
void UpdateArenaPointsHelper(std::map<uint32, uint32> & PlayerPoints);