void ConnectionService_onPlayerConnect(ConnectionService con) { //Create a player instance Player player = new Player(con); Players.Add(player); Connections.Add(con, player); //Try to find a room for the player. If no room is found, create one. Room room; if (SearchingRooms.Count > 0) { room = SearchingRooms.First(); } else { room = new Room(IDGen.GenerateRoomID()); AllRooms.Add(room.RoomID, room); SearchingRooms.Add(room); } if (room.AddPlayer(player)) { SearchingRooms.Remove(room); } }
void ConnectionService_onPlayerDisconnect(ConnectionService con) { //Remove player if it disconnects Player player = Connections[con]; if (player.MyRoomID != 0) { //Remove player from room; if room has no more players, remove the room Room room = AllRooms[player.MyRoomID]; if (room.RemovePlayer(player)) { AllRooms.Remove(room.RoomID); SearchingRooms.Remove(room); } } Connections.Remove(con); Players.Remove(player); }