ignore spectators for readiness check

This commit is contained in:
Chris Forbes
2012-09-04 11:24:59 +12:00
parent 3d8dc80f03
commit fb58840cea

View File

@@ -53,6 +53,16 @@ namespace OpenRA.Mods.RA.Server
return true;
}
void CheckAutoStart(S server, Connection conn, Session.Client client)
{
var actualPlayers = server.conns
.Select(c => server.GetClient(c))
.Where(c => c.Slot != null);
if (actualPlayers.Count() > 0 && actualPlayers.All(c => c.State == Session.ClientState.Ready))
InterpretCommand(server, conn, client, "startgame");
}
public bool InterpretCommand(S server, Connection conn, Session.Client client, string cmd)
{
if (!ValidateCommand(server, conn, client, cmd))
@@ -74,8 +84,7 @@ namespace OpenRA.Mods.RA.Server
server.SyncLobbyInfo();
if (server.conns.Count > 0 && server.conns.All(c => server.GetClient(c).State == Session.ClientState.Ready))
InterpretCommand(server, conn, client, "startgame");
CheckAutoStart(server, conn, client);
return true;
}},
@@ -114,6 +123,8 @@ namespace OpenRA.Mods.RA.Server
S.SyncClientToPlayerReference(client, server.Map.Players[s]);
server.SyncLobbyInfo();
CheckAutoStart(server, conn, client);
return true;
}},
{ "spectate",