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); } }
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; } }
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; }
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; } }
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); } } }
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); } }