From 285e4a00b67dddca9824521059494237ca6e021c Mon Sep 17 00:00:00 2001 From: tintinhamans <5984296+tintinhamans@users.noreply.github.com> Date: Sat, 21 Mar 2026 11:46:07 +0100 Subject: [PATCH 1/2] Fixed ComputeRosterType to correctly handle unassigned players Signed-off-by: tintinhamans <5984296+tintinhamans@users.noreply.github.com> --- GenOnlineService/Database/Database.MatchHistory.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/GenOnlineService/Database/Database.MatchHistory.cs b/GenOnlineService/Database/Database.MatchHistory.cs index 1882552..bd74eab 100644 --- a/GenOnlineService/Database/Database.MatchHistory.cs +++ b/GenOnlineService/Database/Database.MatchHistory.cs @@ -402,30 +402,28 @@ await db.MatchHistory private static string ComputeRosterType(Dictionary playersPerTeam) { - int noTeamCount = playersPerTeam.TryGetValue(-1, out int n) ? n : 0; + int noTeamCount = playersPerTeam.GetValueOrDefault(-1, 0); - var teamedGroups = playersPerTeam + var groups = playersPerTeam .Where(kv => kv.Key != -1) .Select(kv => kv.Value) + .Concat(Enumerable.Repeat(1, noTeamCount)) .OrderBy(c => c) .ToList(); - int activePlayers = noTeamCount + teamedGroups.Sum(); + int activePlayers = groups.Sum(); if (activePlayers == 0) { return "Unknown"; } - bool isFFA = activePlayers > 2 && - (noTeamCount == activePlayers || teamedGroups.All(c => c == 1)); - - if (isFFA) + if (activePlayers > 2 && groups.All(c => c == 1)) { return $"{activePlayers} Player FFA"; } - return string.Join("v", teamedGroups); + return string.Join("v", groups); } From bc0b3a8457876814088e6748e722b84a455a0f1e Mon Sep 17 00:00:00 2001 From: tintinhamans <5984296+tintinhamans@users.noreply.github.com> Date: Sat, 21 Mar 2026 11:58:25 +0100 Subject: [PATCH 2/2] Classify single-team rosters as Unknown Signed-off-by: tintinhamans <5984296+tintinhamans@users.noreply.github.com> --- GenOnlineService/Database/Database.MatchHistory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GenOnlineService/Database/Database.MatchHistory.cs b/GenOnlineService/Database/Database.MatchHistory.cs index bd74eab..cb2aa94 100644 --- a/GenOnlineService/Database/Database.MatchHistory.cs +++ b/GenOnlineService/Database/Database.MatchHistory.cs @@ -413,7 +413,7 @@ private static string ComputeRosterType(Dictionary playersPerTeam) int activePlayers = groups.Sum(); - if (activePlayers == 0) + if (activePlayers == 0 || groups.Count == 1) { return "Unknown"; }