Exemplo n.º 1
0
        /// <summary>
        /// Check if the game can be started
        /// Current condition checks if the count of connected players matches the expected amount
        /// </summary>
        private void StartGame()
        {
            matchGameEventWrapper.GameStarted_Invoke(matchThread.GetServer());
            matchThread.pingDeterminer.CalculateMatchPing();
            List <Shared_PlayerInfo> playerInfoes = matchThread.GetConnectedClientsInfo();

            foreach (var client in matchThread.GetConnectedClients())
            {
                Message_Response_GameAllConnected gameData = new Message_Response_GameAllConnected(
                    client.Value.info, playerInfoes, matchThread.clock.GetTimeForClient(client.Value));
                sender.Send(gameData, client.Value);
                foreach (var extension in serverExtensions)
                {
                    var msgList = extension.GetMessagesForClientSetup(client.Value, matchThread.clock);
                    foreach (var msg in msgList)
                    {
                        if (msg != null)
                        {
                            matchThread.GetServer().messageSender.SendToAll(msg, matchThread.GetServer().clientManager.GetClients());
                        }
                    }
                }
            }
            matchThread.updater.Remove(this);
        }
Exemplo n.º 2
0
 public void JoinedGame(Message_Response_GameAllConnected data)
 {
     guiHandler.SetState_InGame();
     InGameWrapper.instance.mapWrapper.Setup(data.AllPlayers.Count);
     InGameWrapper.instance.playersWrapper.SetupPlayersPositions();
     InGameWrapper.instance.clockWrapper.SetClockTime(data.gameClockTime);
 }