From 86c4cd17d22c8c52cfbf0cae1da48756fa0c7ed1 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Sun, 8 Jul 2018 19:32:23 +0300 Subject: [PATCH] Fixed clients getting assigned random jobs regardless of job preferences. --- .../BarotraumaShared/Source/Networking/GameServer.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs index 367c82e52..aaf21bcdb 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/GameServer.cs @@ -2150,16 +2150,17 @@ namespace Barotrauma.Networking } //attempt to give the clients a job they have in their job preferences - foreach (Client c in unassigned) + for (int i = unassigned.Count - 1; i >= 0; i--) { - foreach (JobPrefab preferredJob in c.JobPreferences) + foreach (JobPrefab preferredJob in unassigned[i].JobPreferences) { //the maximum number of players that can have this job hasn't been reached yet // -> assign it to the client - if (assignedClientCount[preferredJob] < preferredJob.MaxNumber && c.Karma >= preferredJob.MinKarma) + if (assignedClientCount[preferredJob] < preferredJob.MaxNumber && unassigned[i].Karma >= preferredJob.MinKarma) { - c.AssignedJob = preferredJob; + unassigned[i].AssignedJob = preferredJob; assignedClientCount[preferredJob]++; + unassigned.RemoveAt(i); break; } }