Пример #1
0
        public LevelData RenderBaseLevel(LevelData levelData)
        {
            var levelLayout = levelData.LevelLayout;
            var levelSize   = levelData.LevelSize;

            roomProvider = levelData.RoomProvider;

            List <RoomBuilder> createdRooms = new List <RoomBuilder>();

            for (int i = 0; i < levelSize.x; i++)
            {
                for (int j = 0; j < levelSize.y; j++)
                {
                    var room = roomProvider.GetARoom(levelLayout.AttributeLayout[i, j]);
                    room = RenderRoom(room, i, j);
                    levelLayout.AddRenderedRoom(i, j, room.gameObject);
                }
            }


            RenderDebugInfoIfNeeded(levelData);

            levelData.SetBounds(GenerateWalls(levelData));
            return(levelData);
        }
 public Game SetRoomId(string roomId)
 {
     if (roomId != null && RoomProvider != null)
     {
         Room = RoomProvider.Get(roomId);
         Room.Cards.Sort(new Comparison <GameCard>((a, b) => a.Role - b.Role));
     }
     return(this);
 }
Пример #3
0
        public void WhenProvidingRoomList_ShouldHave10rooms()
        {
            var roomProvider = new RoomProvider();
            var rooms        = roomProvider.GetAllRooms().ToList();

            Assert.AreEqual(10, rooms.Count);

            Assert.AreEqual("room0", rooms[0].Name);
            Assert.AreEqual("room1", rooms[1].Name);
            Assert.AreEqual("room9", rooms.Last().Name);
        }
Пример #4
0
    private RoomState AddRoom(RoomProvider roomPrefab, int x, int y, RoomFacing orientation)
    {
        var myPosition = new Vector2Int(x, y);
        var room       = GameObject.Instantiate(roomPrefab.GetRoom(), Vector3.zero, RoomFacingUtil.GetRotation(orientation), startingRoomAnchor.transform);

        var blockers = room.GetBlockers();

        foreach (var blocker in blockers)
        {
            motorController.AddBlocker(blocker);
        }

        var hauntProviders = room.GetHauntProviders();

        foreach (var hauntProvider in hauntProviders)
        {
            hauntController.AddHauntable(hauntProvider.GetHauntable());
        }

        rooms[x][y] = new RoomState()
        {
            orientation = orientation, x = x, y = y, room = room
        };
        room.orientation = orientation;
        room.gameObject.transform.localPosition = new Vector3(x * unitWorldSize, 0, y * unitWorldSize);
        pathController.AddLinks(room.path.links);
        foreach (var anchor in room.anchors)
        {
            if (!anchor.allowAttachment)
            {
                continue;
            }
            var anchorFacingOrientated       = RoomFacingUtil.GetOrientated(anchor.facing, orientation);
            var anchorFacingOrientedOpposite = RoomFacingUtil.GetOpposite(anchorFacingOrientated);
            var offset   = RoomFacingUtil.GetOffset(anchorFacingOrientated);
            var position = getValidatedPosition(offset.x + x, offset.y + y);
            if (position == INVALID_POS)
            {
                continue;
            }
            var roomAtFacing = rooms[position.x][position.y];
            if (roomAtFacing == null)
            {
                var existingFree = freePositions.FindIndex((item) => item.position == position);
                if (existingFree >= 0)
                {
                    continue;
                }
                freePositions.Add(new FreePosition()
                {
                    position = position, from = anchorFacingOrientedOpposite
                });
            }
        }
        var myFreeIndex = freePositions.FindIndex((item) => item.position == myPosition);

        if (myFreeIndex < 0)
        {
            return(rooms[x][y]);
        }
        freePositions.RemoveAt(myFreeIndex);
        return(rooms[x][y]);
    }
Пример #5
0
 private void Initialize(RoomProvider roomProvider)
 {
     directionsMap            = GetDirectionsMap();
     roomConnectionAttributes = roomProvider.GetUniqueAttributesOfType <RoomConnectionAttribute>();
 }
Пример #6
0
 public RoomsController(BookingContext context)
 {
     _provider = new RoomProvider(context);
 }