Esempio n. 1
0
        private void RemoveRoom(Room room)
        {
            Debug.Log("RemoveRoom " + room.RoomId);
            Debug.Assert(room.CurPlayerCount == 0);
            _roomId2Room.Remove(room.RoomId);
            if (_gameType2Rooms.TryGetValue(room.GameType, out var lst))
            {
                lst.Remove(room);
                if (lst.Count == 0)
                {
                    _gameType2Rooms.Remove(room.GameType);
                }
            }

            if (_type2RroomInfos.TryGetValue(room.GameType, out var pInfolst))
            {
                pInfolst.Remove(room.Info);
                if (lst.Count == 0)
                {
                    _gameType2Rooms.Remove(room.GameType);
                }
            }

            _cachedType2RoomInfos.Remove(room.GameType);

            Pool.Return(room);
        }
Esempio n. 2
0
 public override void OnRecycle()
 {
     Room = null;
     Peer = null;
 }