Exemple #1
0
 public void UpdateLiftArrows(Lift lift)
 {
     for (int i = 0; i < HotelController.Instance.hotel.floors.Count; i++)
     {
         FloorObject floorObj = HotelController.Instance.GetFloorObject(i);
         floorObj.floorDisplays[lift.id].upArrow.SetActive(lift.goingUp);
         floorObj.floorDisplays[lift.id].downArrow.SetActive(lift.goingDown);
     }
 }
Exemple #2
0
    public void UpdateFloorNumber(Lift lift)
    {
        Floor newFloor = HotelController.Instance.GetFloor(lift.currentFloor);

        for (int i = 0; i < HotelController.Instance.hotel.floors.Count; i++)
        {
            Floor f = HotelController.Instance.GetFloor(i);

            FloorObject floorObj = HotelController.Instance.GetFloorObject(i);
            floorObj.floorDisplays[lift.id].floorDisplaysTMP[0].text = newFloor.shortName;
        }
    }
Exemple #3
0
    public void CreateFloor(Floor floor)
    {
        GameObject floorGO = Instantiate(floorPrefab, worldGameObject.transform);

        floorGO.transform.localPosition = new Vector3(0f, floor.floorHeight, 0f);
        floorGO.transform.localScale    = Vector3.one;

        floorToGameObjectMap.Add(floor, floorGO);
        gameObjectToFloorMap.Add(floorGO, floor);
        floorGameObjects.Add(floorGO);

        FloorObject floorObj = floorGO.GetComponent <FloorObject>();

        floorObj.roomNumbers.text     = floor.rooms;
        floorObj.floorName.text       = floor.description;
        floorObj.floorNumbers[0].text = floor.shortName;
        floorObj.floorNumbers[1].text = floor.shortName;
    }
Exemple #4
0
    public void OpenDoors(Lift lift)
    {
        lift.liftOpenTimer = 0f;

        lift.doorsOpening = true;
        lift.doorsClosed  = false;

        GameObject liftGo        = GetLiftGameObject(lift);
        Transform  liftTransform = GetLiftGameObject(lift).transform;

        FloorObject floorObj = HotelController.Instance.GetFloorObject(lift.currentFloor);

        Doors doors = liftGo.GetComponent <Doors>();

        Transform frontDoorLeft  = floorObj.leftdoors [lift.id];
        Transform frontDoorRight = floorObj.rightDoors [lift.id];

        frontDoorLeft.localPosition = new Vector3(
            Mathf.Clamp(frontDoorLeft.localPosition.x - frontDoorsSpeed, -doorOpenValue, -doorClosedValue),
            frontDoorLeft.localPosition.y, frontDoorLeft.localPosition.z);

        frontDoorRight.localPosition = new Vector3(
            Mathf.Clamp(frontDoorRight.localPosition.x + frontDoorsSpeed, doorClosedValue, doorOpenValue),
            frontDoorRight.localPosition.y, frontDoorRight.localPosition.z);

        doors.backDoorRight.localPosition = new Vector3(
            Mathf.Clamp(doors.backDoorRight.localPosition.x + backDoorsSpeed, backDoorClosedValue, backDoorOpenValue),
            doors.backDoorRight.localPosition.y, doors.backDoorRight.localPosition.z);

        doors.backDoorLeft.localPosition = new Vector3(
            Mathf.Clamp(doors.backDoorLeft.localPosition.x - backDoorsSpeed, -backDoorOpenValue, -backDoorClosedValue),
            doors.backDoorLeft.localPosition.y, doors.backDoorLeft.localPosition.z);

        if (doors.backDoorRight.localPosition.x >= backDoorOpenValue)
        {
            lift.doorsOpening  = false;
            lift.doorsOpen     = true;
            lift.doorsClosed   = false;
            lift.doorsClosing  = false;
            lift.liftOpenTimer = 0f;
        }
    }
Exemple #5
0
    public void ShowCorrectFloor()
    {
        foreach (GameObject floorGO in floorGameObjects)
        {
            Floor floor = gameObjectToFloorMap[floorGO];

            FloorObject floorObj = floorGO.GetComponent <FloorObject>();

            if (floor.id == floorBeingViewed)
            {
                floorGO.SetActive(true);
                Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, floor.floorHeight + 3.3f, Camera.main.transform.position.z);
            }

            else
            {
                floorGO.SetActive(false);
            }
        }
    }
Exemple #6
0
    List <Vector2> AllValidPositions(FloorObject floorObject)
    {
        List <Vector2> result = new List <Vector2>();
        List <Vector2> tilesToCheck;

        if (floorObject.mustBeReachable)
        {
            tilesToCheck = oneAboveGroundSolution;
        }
        else
        {
            tilesToCheck = oneAboveGround;
        }
        foreach (Vector2 spot in tilesToCheck)
        {
            if (CanFit(spot, floorObject.width) && (floorObject.minDistanceFromStart == 0 || Vector2.SqrMagnitude(spot - startPoint) > floorObject.minDistanceFromStart * floorObject.minDistanceFromStart))
            {
                result.Add(spot);
            }
        }
        return(result);
    }
        public void UserInput(object user, EventArgs e)
        {
            Player            piece  = (Player)user;
            List <ConsoleKey> inputs = new List <ConsoleKey>();
            FloorPlan         floor  = ConsoleEscape.CurrentFloor;

            while (Console.KeyAvailable)
            {
                ConsoleKey currKey = Console.ReadKey().Key;
                if (inputs.Contains(currKey))
                {
                    break;
                }
                inputs.Add(currKey);
            }

            //check left or right movement
            Point newLocation = new Point(piece.X, piece.Y);

            if (inputs.Contains(ConsoleKey.LeftArrow))
            {
                newLocation.Y--;
            }
            else if (inputs.Contains(ConsoleKey.RightArrow))
            {
                newLocation.Y++;
            }

            //check up or down movement
            if (inputs.Contains(ConsoleKey.UpArrow))
            {
                newLocation.X--;
            }
            else if (inputs.Contains(ConsoleKey.DownArrow))
            {
                newLocation.X++;
            }

            //check collision and within bounds before moving, and if a collision occurs but the object is movable then move it (unless it would collide or move out of bounds)
            if (!floor.IsOccupied(newLocation.X, newLocation.Y))
            {
                floor[piece.X, piece.Y]             = null;
                floor[newLocation.X, newLocation.Y] = piece;
                piece.Location = newLocation;
            }
            else if (newLocation.X >= 0 && newLocation.Y >= 0 && newLocation.X < floor.Rows && newLocation.Y < floor.Columns && floor[newLocation.X, newLocation.Y] != null && floor[newLocation.X, newLocation.Y].Movable)
            {
                FloorObject movablePiece = floor[newLocation.X, newLocation.Y];
                int         tempX        = movablePiece.X + (newLocation.X - piece.X);
                int         tempY        = movablePiece.Y + (newLocation.Y - piece.Y);
                if (tempX < floor.Rows && tempY < floor.Columns && !floor.IsOccupied(tempX, tempY))
                {
                    floor[piece.X, piece.Y]             = null;
                    floor[newLocation.X, newLocation.Y] = piece;
                    floor[tempX, tempY]   = movablePiece;
                    movablePiece.Location = new Point(tempX, tempY);
                    piece.Location        = newLocation;
                }
            }

            //user selected activate, check the four squares and activate the objects in them.
            if (inputs.Contains(ConsoleKey.Enter))
            {
                int tempX = piece.X;
                int tempY = piece.Y;
                floor.UserActivated(piece, tempX + 1, tempY);
                floor.UserActivated(piece, tempX - 1, tempY);
                floor.UserActivated(piece, tempX, tempY + 1);
                floor.UserActivated(piece, tempX, tempY - 1);
            }
        }