예제 #1
0
        private void AddPlayer(LANPlayerInfo lpInfo)
        {
            if (Players.Find(p => p.Name == lpInfo.Name) != null ||
                Players.Count >= SGPlayers.Count ||
                SGPlayers.Find(p => p.Name == lpInfo.Name) == null)
            {
                lpInfo.TcpClient.Close();
                return;
            }

            if (Players.Count == 0)
            {
                lpInfo.Ready = true;
            }

            Players.Add(lpInfo);

            lpInfo.MessageReceived += LpInfo_MessageReceived;
            lpInfo.ConnectionLost  += LpInfo_ConnectionLost;

            sndJoinSound.Play();

            AddNotice(lpInfo.Name + " connected from " + lpInfo.IPAddress);
            lpInfo.StartReceiveLoop();

            CopyPlayerDataToUI();
            BroadcastOptions();
            UpdateDiscordPresence();
        }
예제 #2
0
        private void AddPlayer(LANPlayerInfo lpInfo)
        {
            if (Players.Find(p => p.Name == lpInfo.Name) != null ||
                Players.Count >= MAX_PLAYER_COUNT || Locked)
            {
                return;
            }

            Players.Add(lpInfo);

            if (IsHost && Players.Count == 1)
            {
                Players[0].Ready = true;
            }

            lpInfo.MessageReceived += LpInfo_MessageReceived;
            lpInfo.ConnectionLost  += LpInfo_ConnectionLost;

            AddNotice(lpInfo.Name + " connected from " + lpInfo.IPAddress);
            lpInfo.StartReceiveLoop();

            CopyPlayerDataToUI();
            BroadcastPlayerOptions();
            OnGameOptionChanged();
        }