From 1cd181f9234dfd4c666dcccf1a051978e73a78f4 Mon Sep 17 00:00:00 2001 From: Maria-sequel <20357406+Maria-sequel@users.noreply.github.com> Date: Wed, 9 Aug 2023 05:44:44 +0200 Subject: [PATCH] feat(Core/Config): Add Legacy Arena Points config option (#16940) * feat:(Core/Config): Add legacy Arena points option * Update IWorld.h * Update World.cpp * Update World.cpp * typo * Update worldserver.conf.dist * Update worldserver.conf.dist * Update World.cpp * Update World.cpp * defaults to true Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com> * config text Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com> * Update src/server/apps/worldserver/worldserver.conf.dist * Update src/server/apps/worldserver/worldserver.conf.dist * Update src/server/game/World/World.cpp --------- Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Co-authored-by: Gultask <100873791+Gultask@users.noreply.github.com> Co-authored-by: Skjalf <47818697+Nyeriah@users.noreply.github.com> --- src/server/apps/worldserver/worldserver.conf.dist | 8 ++++++++ src/server/game/Battlegrounds/ArenaTeam.cpp | 2 +- src/server/game/World/IWorld.h | 1 + src/server/game/World/World.cpp | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 4efa2d5db..9d809be86 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -948,6 +948,14 @@ MaxArenaPoints = 10000 StartArenaPoints = 0 +# +# Arena.LegacyArenaPoints +# Description: Use arena point calculation from TBC for season 1 - 5 when rating is less or equal to 1500 +# Default: 1 - (Enabled) +# 0 - (Disabled) + +Arena.LegacyArenaPoints = 0 + # # RecruitAFriend.MaxLevel # Description: Highest level up to which a character can benefit from the Recruit-A-Friend diff --git a/src/server/game/Battlegrounds/ArenaTeam.cpp b/src/server/game/Battlegrounds/ArenaTeam.cpp index fdcf3924a..a115b8fa8 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.cpp +++ b/src/server/game/Battlegrounds/ArenaTeam.cpp @@ -658,7 +658,7 @@ uint32 ArenaTeam::GetPoints(uint32 memberRating) if (rating <= 1500) { - if (sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) < 6) + if (sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) < 6 && sWorld->getIntConfig(CONFIG_LEGACY_ARENA_POINTS_CALC)) points = (float)rating * 0.22f + 14.0f; else points = 344; diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index 8e2a2f6a3..49c43555e 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -326,6 +326,7 @@ enum WorldIntConfigs CONFIG_ARENA_GAMES_REQUIRED, CONFIG_ARENA_SEASON_ID, CONFIG_ARENA_START_RATING, + CONFIG_LEGACY_ARENA_POINTS_CALC, CONFIG_ARENA_START_PERSONAL_RATING, CONFIG_ARENA_START_MATCHMAKER_RATING, CONFIG_HONOR_AFTER_DUEL, diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 655b16cf5..9cb7fb937 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1179,6 +1179,7 @@ void World::LoadConfigSettings(bool reload) _int_configs[CONFIG_ARENA_GAMES_REQUIRED] = sConfigMgr->GetOption("Arena.GamesRequired", 10); _int_configs[CONFIG_ARENA_SEASON_ID] = sConfigMgr->GetOption("Arena.ArenaSeason.ID", 1); _int_configs[CONFIG_ARENA_START_RATING] = sConfigMgr->GetOption("Arena.ArenaStartRating", 0); + _int_configs[CONFIG_LEGACY_ARENA_POINTS_CALC] = sConfigMgr->GetOption("Arena.LegacyArenaPoints", 0); _int_configs[CONFIG_ARENA_START_PERSONAL_RATING] = sConfigMgr->GetOption("Arena.ArenaStartPersonalRating", 1000); _int_configs[CONFIG_ARENA_START_MATCHMAKER_RATING] = sConfigMgr->GetOption("Arena.ArenaStartMatchmakerRating", 1500); _bool_configs[CONFIG_ARENA_SEASON_IN_PROGRESS] = sConfigMgr->GetOption("Arena.ArenaSeason.InProgress", true);