Esempio n. 1
0
        private void Disconnect()
        {
            Console.WriteLine($"{tcp.socket.Client.RemoteEndPoint} has disconnected.");
            if (Server.lobbyGames.ContainsKey(player.id))
            {
                Server.lobbyGames.Remove(player.id);
                ServerSend.RemRoomToAll(player.id);
            }
            if (Server.activeGames.ContainsKey(player.id))
            {
                Server.activeGames.Remove(player.id);
                ServerSend.SendForfeit(player.enemId);
            }
            if (Server.activeGames.ContainsKey(player.enemId))
            {
                Server.activeGames.Remove(player.enemId);
                ServerSend.SendForfeit(player.enemId);
            }

            player = null;
            tcp.Disconnect();
        }
Esempio n. 2
0
        public static void Forfeit(int _fromClient, Packet _packet)
        {
            int _clientIdCheck = _packet.ReadInt();
            int opponentId     = Server.clients[_fromClient].player.enemId;

            Server.clients[_fromClient].player.enemId = 0;
            if (opponentId != 0)
            {
                Server.clients[opponentId].player.enemId = 0;
            }

            if (Server.activeGames.ContainsKey(_fromClient))
            {
                Server.activeGames.Remove(_fromClient);
            }
            if (Server.activeGames.ContainsKey(opponentId))
            {
                Server.activeGames.Remove(opponentId);
            }

            ServerSend.SendForfeit(opponentId);
            Console.WriteLine("Ending game due to forfeit.");
        }