]> git.deb.at Git - rhonda/impostor.git/commitdiff
Mark the game as started only after all players get their role
authorjs6pak <kubastaron@hotmail.com>
Fri, 6 Jan 2023 18:10:52 +0000 (19:10 +0100)
committerjs6pak <kubastaron@hotmail.com>
Fri, 6 Jan 2023 18:38:19 +0000 (19:38 +0100)
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs
src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs

index e02f9986c28091daf4c35504940c1140bc083a2a..b25f24456416822a53e743e91f4903d839f98a42 100644 (file)
@@ -353,7 +353,7 @@ namespace Impostor.Server.Net.Inner.Objects
                     Rpc44SetRole.Deserialize(reader, out var role);
                     PlayerInfo.RoleType = role;
 
-                    if (Game.GameState == GameStates.Starting)
+                    if (Game.GameState == GameStates.Starting && Game.Players.All(clientPlayer => clientPlayer.Character?.PlayerInfo.RoleType != null))
                     {
                         await Game.StartedAsync();
                     }
index 02a079a18379306af3e0a77bad02cb24f151dd5a..751dd2794667b6851dc0e31333c679e2556deb9b 100644 (file)
@@ -30,7 +30,7 @@ namespace Impostor.Server.Net.Inner.Objects
 
         public PlayerOutfit CurrentOutfit => Outfits[CurrentOutfitType];
 
-        public RoleTypes RoleType { get; internal set; }
+        public RoleTypes? RoleType { get; internal set; }
 
         public bool Disconnected { get; internal set; }