Exemplo n.º 1
0
    public void RemoveWalls(int totalSquares, List <int> next)
    {
        int nextID = -1;

        for (int i = 1; i < next.Count; i++)
        {
            GridSquare temp = grid.AllSquares[i];
            nextID            = next[i];
            temp.nextSquareID = nextID;
            grid.AllSquares[nextID].VisitorIds.Add(temp.GetID());
        }

        for (int i = 1; i < totalSquares; i++)
        {
            if (grid.AllSquares[i].Position.z < grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.z)
            {
                grid.AllSquares[i].walls[0].SetActive(false);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].walls[2].SetActive(false);
            }
            else if (grid.AllSquares[i].Position.z > grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.z)
            {
                grid.AllSquares[i].walls[2].SetActive(false);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].walls[0].SetActive(false);
            }
            else if (grid.AllSquares[i].Position.x < grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.x)
            {
                grid.AllSquares[i].walls[1].SetActive(false);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].walls[3].SetActive(false);
            }
            else if (grid.AllSquares[i].Position.x > grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.x)
            {
                grid.AllSquares[i].walls[3].SetActive(false);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].walls[1].SetActive(false);
            }
        }

        SpawnRooms(totalSquares);

        grid.transform.localScale *= gridSize;

        SpawnPlayer();
    }
Exemplo n.º 2
0
    public void RemoveWallsPlaceDoors(int totalSquares, List <int> next)
    {
        int nextID = -1;

        for (int i = 1; i < next.Count; i++)
        {
            GridSquare temp = grid.AllSquares[i];
            nextID            = next[i];
            temp.nextSquareID = nextID;
            grid.AllSquares[nextID].VisitorIds.Add(temp.GetID());
        }

        for (int i = 1; i < totalSquares; i++)
        {
            if (grid.AllSquares[i].quadrant != grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant)
            {
                grid.AllSquares[i].PlaceDoor(grid.AllSquares[grid.AllSquares[i].nextSquareID]);
                if ((grid.AllSquares[i].quadrant == Quadrant.FirstQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.SecondQuadrant) || (grid.AllSquares[i].quadrant == Quadrant.SecondQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.FirstQuadrant))
                {
                    Quad12DoorSquares.Add(grid.AllSquares[i]);
                }
                else if ((grid.AllSquares[i].quadrant == Quadrant.FirstQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.ThirdQuadrant) || (grid.AllSquares[i].quadrant == Quadrant.ThirdQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.FirstQuadrant))
                {
                    Quad13DoorSquares.Add(grid.AllSquares[i]);
                }
                else if ((grid.AllSquares[i].quadrant == Quadrant.SecondQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.FourthQuadrant) || (grid.AllSquares[i].quadrant == Quadrant.FourthQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.SecondQuadrant))
                {
                    Quad24DoorSquares.Add(grid.AllSquares[i]);
                }
                else if ((grid.AllSquares[i].quadrant == Quadrant.ThirdQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.FourthQuadrant) || (grid.AllSquares[i].quadrant == Quadrant.FourthQuadrant && grid.AllSquares[grid.AllSquares[i].nextSquareID].quadrant == Quadrant.ThirdQuadrant))
                {
                    Quad34DoorSquares.Add(grid.AllSquares[i]);
                }
            }

            if (grid.AllSquares[i].Position.z < grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.z)
            {
                grid.AllSquares[i].CheckRemoveWall(0, gridHeight, gridWidth);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].CheckRemoveWall(2, gridHeight, gridWidth);
            }
            else if (grid.AllSquares[i].Position.z > grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.z)
            {
                grid.AllSquares[i].CheckRemoveWall(2, gridHeight, gridWidth);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].CheckRemoveWall(0, gridHeight, gridWidth);
            }
            else if (grid.AllSquares[i].Position.x < grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.x)
            {
                grid.AllSquares[i].CheckRemoveWall(1, gridHeight, gridWidth);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].CheckRemoveWall(3, gridHeight, gridWidth);
            }
            else if (grid.AllSquares[i].Position.x > grid.AllSquares[grid.AllSquares[i].nextSquareID].Position.x)
            {
                grid.AllSquares[i].CheckRemoveWall(3, gridHeight, gridWidth);
                grid.AllSquares[grid.AllSquares[i].nextSquareID].CheckRemoveWall(1, gridHeight, gridWidth);
            }
        }

        // SpawnRooms(totalSquares);

        grid.transform.localScale *= gridSize;

        SpawnPlayer();
    }