private void RemoveClient(SocketState state) { lock (gameController) { gameController.PlayerDisconnected(clientToPlayerMap[state.ID]); clients.Remove(state.ID); clientToPlayerMap.Remove(state.ID); // send the message again that has the latest game world state with the disconnected and dead SendMessageToEveryClient(gameController.SerializeGameWorld()); } }