Skip to content

Commit 8b10c5d

Browse files
authored
Merge pull request #91 from B3none/force-even-teams-config
Force even teams config
2 parents 03515df + 0584f70 commit 8b10c5d

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

RetakesPlugin/Modules/Configs/RetakesConfigData.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public class RetakesConfigData
44
{
5-
public static int CurrentVersion = 6;
5+
public static int CurrentVersion = 7;
66

77
public int Version { get; set; } = CurrentVersion;
88
public int MaxPlayers { get; set; } = 9;
@@ -17,4 +17,5 @@ public class RetakesConfigData
1717
public bool IsAutoPlantEnabled { get; set; } = true;
1818
public string QueuePriorityFlag { get; set; } = "@css/vip";
1919
public bool IsDebugMode { get; set; } = false;
20+
public bool ShouldForceEvenTeamsWhenPlayerCountIsMultipleOf10 { get; set; } = true;
2021
}

RetakesPlugin/Modules/Managers/QueueManager.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,29 @@ public class QueueManager
1010
private readonly int _maxRetakesPlayers;
1111
private readonly float _terroristRatio;
1212
private readonly string _queuePriorityFlag;
13+
private readonly bool _shouldForceEvenTeamsWhenPlayerCountIsMultipleOf10;
1314

1415
public HashSet<CCSPlayerController> QueuePlayers = new();
1516
public HashSet<CCSPlayerController> ActivePlayers = new();
1617

17-
public QueueManager(Translator translator, int? retakesMaxPlayers, float? retakesTerroristRatio,
18-
string? queuePriorityFlag)
19-
{
18+
public QueueManager(
19+
Translator translator,
20+
int? retakesMaxPlayers,
21+
float? retakesTerroristRatio,
22+
string? queuePriorityFlag,
23+
bool? shouldForceEvenTeamsWhenPlayerCountIsMultipleOf10
24+
) {
2025
_translator = translator;
2126
_maxRetakesPlayers = retakesMaxPlayers ?? 9;
2227
_terroristRatio = retakesTerroristRatio ?? 0.45f;
2328
_queuePriorityFlag = queuePriorityFlag ?? "@css/vip";
29+
_shouldForceEvenTeamsWhenPlayerCountIsMultipleOf10 = shouldForceEvenTeamsWhenPlayerCountIsMultipleOf10 ?? true;
2430
}
2531

2632
public int GetTargetNumTerrorists()
2733
{
28-
// TODO: Add a config option for this logic
29-
var ratio = (ActivePlayers.Count > 9 ? 0.5 : _terroristRatio) * ActivePlayers.Count;
34+
var shouldForceEvenTeams = _shouldForceEvenTeamsWhenPlayerCountIsMultipleOf10 && ActivePlayers.Count % 10 == 0;
35+
var ratio = (shouldForceEvenTeams ? 0.5 : _terroristRatio) * ActivePlayers.Count;
3036
var numTerrorists = (int)Math.Round(ratio);
3137

3238
// Ensure at least one terrorist if the calculated number is zero

RetakesPlugin/RetakesPlugin.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace RetakesPlugin;
2020
[MinimumApiVersion(180)]
2121
public class RetakesPlugin : BasePlugin
2222
{
23-
private const string Version = "1.4.1";
23+
private const string Version = "1.4.2";
2424

2525
#region Plugin info
2626
public override string ModuleName => "Retakes Plugin";
@@ -480,7 +480,8 @@ private void OnMapStart(string mapName)
480480
_translator,
481481
_retakesConfig?.RetakesConfigData?.MaxPlayers,
482482
_retakesConfig?.RetakesConfigData?.TerroristRatio,
483-
_retakesConfig?.RetakesConfigData?.QueuePriorityFlag
483+
_retakesConfig?.RetakesConfigData?.QueuePriorityFlag,
484+
_retakesConfig?.RetakesConfigData?.ShouldForceEvenTeamsWhenPlayerCountIsMultipleOf10
484485
),
485486
_retakesConfig?.RetakesConfigData?.RoundsToScramble,
486487
_retakesConfig?.RetakesConfigData?.IsScrambleEnabled

0 commit comments

Comments
 (0)