示例#1
0
    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;
            }
        }
    }
示例#4
0
 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;
            }
        }
    }
示例#6
0
 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;
             }
         }
     }
 }