Exemplo n.º 1
0
    Vector2 GetNewRoomCoordinates(Vector2 originCoordinates, RoomDirections directionsOfRoom)
    {
        //This functions chooses one of the unoccupied directions around that room
        //When it does, it should change that rooms m_direction to say that the opposing entrance is both open and spawned
        //Debug.Log("Getting coordinates for new room");
        List <Vector2> possibleCoordinates = new List <Vector2> {
        };

        for (int i = 0; i < 4; i++)
        {
            if (directionsOfRoom.m_directions[i].Open && !directionsOfRoom.m_directions[i].Spawned)
            {
                if (!CheckIfCoordinatesOccupied(new Vector2(originCoordinates.x + directionsOfRoom.m_directions[i].DirectionModifier.x * 20, originCoordinates.y + directionsOfRoom.m_directions[i].DirectionModifier.y * 20)))
                {
                    possibleCoordinates.Add(new Vector2(originCoordinates.x + directionsOfRoom.m_directions[i].DirectionModifier.x * 20, originCoordinates.y + directionsOfRoom.m_directions[i].DirectionModifier.y * 20));
                }
            }
        }
        int index = Random.Range(0, possibleCoordinates.Count - 1);

        if (possibleCoordinates.Count > 0)
        {
            return(possibleCoordinates[index]);
        }
        else
        {
            return(new Vector2(0, 0));
        }
    }
Exemplo n.º 2
0
 public void Initialize(Vector2 location)
 {
     CameraBoundaries = new Vector2Int(20, 20);
     directions       = GetComponent <RoomDirections>();
     BuildWallArray();
     transform.position = location;
 }
Exemplo n.º 3
0
 public void OpenAllEntrances()
 {
     if (!directions)
     {
         directions = GetComponent <RoomDirections>();
     }
     directions.OpenAllEntrances();
 }
Exemplo n.º 4
0
 public void Initialize(Vector2 location, Vector2 RoomSize)
 {
     CameraBoundaries   = RoomSize;
     directions         = GetComponent <RoomDirections>();
     transform.position = location;
     AdjustColliders(RoomSize);
     AddLocations(RoomSize);
 }
Exemplo n.º 5
0
 public void Initialize(Vector2 RoomSize)
 {
     //This Initialize() function is for the origin room specifically, as it already has its own position
     roomCleared = true;
     OpenAllEntrances();
     CameraBoundaries = RoomSize;
     directions       = GetComponent <RoomDirections>();
     AdjustColliders(RoomSize);
 }
Exemplo n.º 6
0
        public void GetNeighbours(Vector2 _gridPosition, int _gridSize)
        {
            GridPosition = _gridPosition;

            //Corners
            if (_gridPosition.x == 0 && _gridPosition.y == 0) //Linksonder
            {
                possibleDirections = RoomDirections.North | RoomDirections.East;
            }
            else if (_gridPosition.x == _gridSize - 1 && _gridPosition.y == 0) //Rechtsonder
            {
                possibleDirections = RoomDirections.North | RoomDirections.West;
            }
            else if (_gridPosition.x == 0 && _gridPosition.y == _gridSize - 1) //Linksboven
            {
                possibleDirections = RoomDirections.East | RoomDirections.South;
            }
            else if (_gridPosition.x == _gridSize - 1 && _gridPosition.y == _gridSize - 1) //Rechtsboven
            {
                possibleDirections = RoomDirections.West | RoomDirections.South;
            }

            //Row Bounds
            else if (_gridPosition.x == _gridSize - 1)
            {
                possibleDirections = RoomDirections.North | RoomDirections.South | RoomDirections.West;
            }
            else if (_gridPosition.y == _gridSize - 1)
            {
                possibleDirections = RoomDirections.East | RoomDirections.South | RoomDirections.West;
            }
            else if (_gridPosition.x == 0)
            {
                possibleDirections = RoomDirections.North | RoomDirections.East | RoomDirections.South;
            }
            else if (_gridPosition.y == 0)
            {
                possibleDirections = RoomDirections.North | RoomDirections.East | RoomDirections.West;
            }
            else
            {
                possibleDirections = (RoomDirections)15;
            }
        }
Exemplo n.º 7
0
        public Vector2Int MoveToNeighbour(RoomDirections _direction)
        {
            Vector2Int result = new Vector2Int(0, 0);

            if (_direction == RoomDirections.North)
            {
                result = new Vector2Int(0, 1);
            }
            else if (_direction == RoomDirections.East)
            {
                result = new Vector2Int(1, 0);
            }
            else if (_direction == RoomDirections.South)
            {
                result = new Vector2Int(0, -1);
            }
            else if (_direction == RoomDirections.West)
            {
                result = new Vector2Int(-1, 0);
            }

            return(result);
        }
 public Door(Noun myNoun, string shortDescription, Dictionary <string, Func <NounObject, string> > senses, RoomDirections direction, Func <string> newRoomF, bool canBePickedUp = true, bool canHoldItems = false) : base(myNoun, shortDescription, senses, canBePickedUp, canHoldItems)
 {
     newDirection = direction;
     newRoom      = newRoomF;
 }