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(); }
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."); }