private void UpdateTerminalStates() { hasTerminals = false; allTerminalsActivated = true; allTerminalsCorrect = true; foreach (LevelInteractive interactive in interactivesOnCamera) { InteractiveTerminal terminal = interactive as InteractiveTerminal; if (terminal != null) { hasTerminals = true; if (!terminal.isActivated) { allTerminalsActivated = false; allTerminalsCorrect = false; break; } else if (!terminal.activatedCorrectly) { allTerminalsCorrect = false; } } } }
private void ToggleCurrentInteractive(bool toggle) { InteractiveTerminal terminal = currentInteractive.GetComponent <InteractiveTerminal>(); if (terminal != null && !terminal.isActivated) { terminal.ToggleButton(toggle); } }
private void ActivateInteractive(CharacterInput.Button button) { InteractiveTerminal terminal = currentInteractive as InteractiveTerminal; if (terminal != null) { bool terminalActivated = false; switch (button) { case CharacterInput.Button.A: { terminalActivated = terminal.Activate(InteractiveTerminal.TerminalType.A); break; } case CharacterInput.Button.B: { terminalActivated = terminal.Activate(InteractiveTerminal.TerminalType.B); break; } case CharacterInput.Button.X: { terminalActivated = terminal.Activate(InteractiveTerminal.TerminalType.X); break; } case CharacterInput.Button.Y: { terminalActivated = terminal.Activate(InteractiveTerminal.TerminalType.Y); break; } default: { break; } } if (terminalActivated) { playInteractionAnimation = true; isInteracting = false; } } }
private void SetTerminalStates(InteractiveTerminal.TerminalState terminalState) { foreach (LevelInteractive interactive in interactivesOnCamera) { InteractiveTerminal terminal = interactive as InteractiveTerminal; if (terminal != null) { if (terminal.isActivated && terminalState == InteractiveTerminal.TerminalState.WaitingInput) { terminal.terminalState = InteractiveTerminal.TerminalState.Accepted; } else { terminal.terminalState = terminalState; } } } }
protected override void OnTriggerEnter(Collider other) { base.OnTriggerEnter(other); LevelInteractive interactive = other.gameObject.GetComponent <LevelInteractive>(); if (interactive != null) { InteractiveTerminal terminal = interactive as InteractiveTerminal; InteractiveDoor door = interactive as InteractiveDoor; if (terminal != null || door != null && door.doorType == InteractiveDoor.DoorType.Exit && door.isReady) { isInteracting = true; currentInteractive = interactive; } } }