static void Main(string[] args) { var floorListBuilder = new FloorListBuilder(new FloorFactory()); IFloorList floorList = new FloorList(floorListBuilder, 2); var floors = floorList.Floors; floors[0].Panel.Up.Press(); floors[0].Panel.Down.Press(); floors[1].Panel.Down.Press(); var callPanelListButtonStates = new CallPanelListButtonStates(); floorList.Accept(callPanelListButtonStates); Console.WriteLine($"Engaged Down: {string.Join(", ", callPanelListButtonStates.EngagedDownButtons)}"); Console.WriteLine($"Engaged Up: {string.Join(", ", callPanelListButtonStates.EngagedUpButtons)}"); ElevatorPanel elevatorPanel = new ElevatorPanel(35); elevatorPanel.FloorButtons[0].Press(); elevatorPanel.FloorButtons[12].Press(); elevatorPanel.FloorButtons[17].Press(); elevatorPanel.FloorButtons[30].Press(); Console.WriteLine($"SelectedFloors: {string.Join(", ", elevatorPanel.SelectedFloors())}"); var moveable = new Elevator.Elevator("Elevator 1", new ElevatorPanel(35), new StandardMovementSpeed()); var controller = new ElevatorController(); controller.AddMoveable(moveable); moveable.MoveTo(10); Console.ReadLine(); }
private void InteractObjects() { RaycastHit hit; if (!isInspecting) { if (Physics.Raycast(playerCamera.transform.position, playerCamera.transform.forward, out hit, interactionDistance)) { GameObject hitted = hit.collider.gameObject; if (hitted.GetComponent <IInventoryItem>() != null) { //InspectItem(hitted.gameObject.GetComponent<IInventoryItem>()); inventory.AddItem(hitted.gameObject.GetComponent <IInventoryItem>()); DestroyObject(hitted.gameObject); switch (hitted.tag) { case "Fita": if (hitted.GetComponent <PickupItem>().id == 3) { SequenceManager.instance.Sequence27Trigger(); } tapes.Add(hitted.gameObject.GetComponent <IInventoryItem>().id); break; case "Key": keys.Add(hitted.gameObject.GetComponent <IInventoryItem>().id); break; case "Lanterna": InspectItem(hitted.gameObject.GetComponent <IInventoryItem>()); lanternActive = true; zippoActive = false; break; case "Zippo": InspectItem(hitted.gameObject.GetComponent <IInventoryItem>()); lanternActive = false; zippoActive = true; break; } } else { switch (hitted.tag) { case "Gravador": Transform tapePanel = hud.transform.Find("TapePanel"); tapePanel.gameObject.SetActive(true); Cursor.lockState = CursorLockMode.None; Cursor.visible = true; isReproducingTape = true; for (int i = 0; i < tapes.Count; i++) { Transform tape = tapePanel.GetChild(tapes[i]); Button button = tape.GetComponent <Button>(); button.interactable = true; } break; case "Gerador": hitted.gameObject.GetComponent <Generator>().InteractGenerator(); break; case "Panel": if (keys.Contains(-8)) { DoorManager.instance.LockUnlockDoor(-8, true); } break; case "TV": hitted.gameObject.GetComponent <Television>().ChangeState(); break; case "Flammable": if (zippoActive) { if (hitted.gameObject.GetComponent <FlammableObjects>() != null) { hitted.gameObject.GetComponent <FlammableObjects>().BurnMaterial(); } } break; // ELEVADOR case "Elevator Panel": if (hitted.gameObject.GetComponent <ElevatorPanel>() != null) { ElevatorPanel elevator = hitted.gameObject.GetComponent <ElevatorPanel>(); if (elevator.activated) { aSource.PlayOneShot(Sons.instance.ElevadorBotao, aSource.volume); } else { aSource.PlayOneShot(Sons.instance.IdentificadordesenhaSenhaincorreta, aSource.volume); } if (elevator.id == 2) // THIS ELEVATOR WAS BUGGED { if (tapes.Contains(3)) { elevator.activated = true; elevator.OpenElevator(); } } if (elevator.id == 1 || elevator.id == 4) { elevator.OpenElevator(); } if (elevator.id == 3) { if (elevator.TimesClicked < 3) { elevator.TimesClicked += 1; } if (elevator.TimesClicked >= 3) { SequenceManager.instance.Sequence28Trigger(); } } if (elevator.id == 5) { SequenceManager.instance.Sequence31Trigger(); } } break; case "Door": if (hitted.gameObject.GetComponent <Door2>() != null) { bool unlock = false; // EVENTO SALA VIVA --- if (hitted.gameObject.GetComponent <Door2>().id == 4) { SequenceManager.instance.Sequence6Trigger(); } // EVENTO SALA VIVA --- if (hitted.gameObject.GetComponent <Door2>().hasAlarm) { if (hitted.gameObject.GetComponent <Door2>().id == 5) { hitted.gameObject.GetComponent <Door2>().StartCoroutine(hitted.gameObject.GetComponent <Door2>().PlayAlarm()); EventManager.instance.Event2Trigger(); } } else { if (hitted.gameObject.GetComponent <Door2>().isLocked) { if (hitted.gameObject.GetComponent <Door2>().type == Types.Key) { for (int i = 0; i < keys.Count; i++) { if (keys[i] == hitted.gameObject.GetComponent <Door2>().id) { unlock = true; hitted.gameObject.GetComponent <Door2>().UnlockDoor(); keys.RemoveAt(i); } } if (!unlock) { hitted.gameObject.GetComponent <Door2>().SoundLocked(); } else { openingDoor = true; door = hitted.gameObject; if (keys.Count == 0) { inventory.RemoveItem("Key"); } } } else if (hitted.gameObject.GetComponent <Door2>().type == Types.Glass) { hitted.gameObject.GetComponent <Door2>().UnlockDoor(); // EVENT if (hitted.gameObject.GetComponent <Door2>().id == 12) { SequenceManager.instance.Sequence22Trigger(); } // EVENT } } else { openingDoor = true; door = hitted.gameObject; } } } else { openingDoor = true; door = hitted.gameObject; } break; case "Gaveta": openingDoor = true; door = hitted.gameObject; break; case "Cover": timer = Time.time; AudioSource audioSource = GetComponent <AudioSource>(); audioSource.PlayOneShot(Sons.instance.DutoTampaArrancada, audioSource.volume); openingDoor = true; door = hitted.gameObject; break; } } //Debug.Log(hitted.tag); } } else { inventory.AddItem(inspectedInterface); DestroyObject(inspectedItem); inspectedItem = null; isInspecting = false; } }
public Elevator(string descriptor, int numberOfFloors) : this(descriptor, new ElevatorPanel(numberOfFloors), new StandardMovementSpeed()) { Panel = new ElevatorPanel(numberOfFloors); }
internal void SetCallbacks(ElevatorPanel elevatorPanel) { throw new NotImplementedException(); }