예제 #1
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == StringManager.Tags.player)
        {
            if (SingletonManager.MainTerminalController.GetTerminalState(TerminalType.TERMINAL_ONE) == TerminalState.Unlocked)
            {
                TerminalInformation tInformation = SingletonManager.MainTerminalController.GetTerminalInformation((int)TerminalType.TERMINAL_THREE);
                if (tInformation.isActivated == true)
                {
                    return;
                }

                // Open the door
                m_Door.GetComponent <DoorBehaviour>().ChangeDoorState(DoorBehaviour.DoorState.OPENING_STUCKED);

                // INFO: terminal-one
                TerminalInformation information = new TerminalInformation();
                information.isActivated = true;
                information.isCollected = true;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_ONE, information);

                information.isActivated = true;
                information.isCollected = false;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_THREE, information);

                SingletonManager.XmlSave.Save();
            }
        }
    }
예제 #2
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == StringManager.Tags.player)
        {
            if (SingletonManager.MainTerminalController.GetTerminalState(TerminalType.MAIN_TERMINAL) == TerminalState.Unlocked)
            {
                TerminalInformation tInformation = SingletonManager.MainTerminalController.GetTerminalInformation((int)TerminalType.TERMINAL_GENERATOR);
                if (tInformation.isActivated == true)
                {
                    return;
                }

                // todo open door to generator room
                m_Door.GetComponent <DoorBehaviour>().ChangeDoorState(DoorBehaviour.DoorState.OPENING_STUCKED);

                // INFO: terminal-three
                TerminalInformation information = new TerminalInformation();
                information.isActivated = true;
                information.isCollected = false;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_THREE, information);

                // INFO: terminal-generator
                information.isActivated = true;
                information.isCollected = false;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_GENERATOR, information);

                // update display for terminal three
                Terminals terminal     = SingletonManager.MainTerminalController.GetTerminalByType(TerminalType.TERMINAL_GENERATOR);
                Transform displayState = terminal.m_terminal.transform.FindChild("display_2states");
                displayState.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.0f, 0.0f));

                SingletonManager.XmlSave.Save();
            }
        }
    }
    public void SetTerminalInformation(int index, TerminalInformation information, bool fix = false)
    {
        // TODO: ADD VISUALIZE EFFECT (interact with the objects...)
        if (fix)
        {
            index++;
        }

        m_terminals[index] = information;
    }
예제 #4
0
    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag != StringManager.Tags.player)
        {
            return;
        }

        if (SingletonManager.MainTerminalController.GetTerminalState(TerminalType.TERMINAL_TWO) == TerminalState.Locked)
        {
            TerminalInformation information = new TerminalInformation();
            Terminals           terminal;
            Transform           displayState;

            TerminalInformation tInformation = SingletonManager.MainTerminalController.GetTerminalInformation((int)TerminalType.TERMINAL_TWO);
            if (tInformation.isActivated == true)
            {
                return;
            }

            // INFO: terminal-two
            information             = new TerminalInformation();
            information.isActivated = true;
            information.isCollected = false;
            SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_TWO, information);


            terminal     = SingletonManager.MainTerminalController.GetTerminalByType(TerminalType.TERMINAL_TWO);
            displayState = terminal.m_terminal.transform.FindChild("display_2states");
            displayState.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.0f, 0.0f));
            SingletonManager.MainTerminalController.SetTerminalState(TerminalType.TERMINAL_TWO, TerminalState.Unlocked);

            SingletonManager.XmlSave.Save();
        }


        if (SingletonManager.MainTerminalController.GetTerminalState(TerminalType.MAIN_TERMINAL) == TerminalState.Unlocked)
        {
            TerminalInformation information = new TerminalInformation();
            Terminals           terminal;
            Transform           displayState;

            // INFO: terminal-one
            information.isActivated = true;
            information.isCollected = true;
            SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_ONE, information);

            terminal     = SingletonManager.MainTerminalController.GetTerminalByType(TerminalType.TERMINAL_ONE);
            displayState = terminal.m_terminal.transform.FindChild("display_2states");
            displayState.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.5f, 0.0f));
            SingletonManager.MainTerminalController.SetTerminalState(TerminalType.TERMINAL_ONE, TerminalState.Unlocked);

            SingletonManager.XmlSave.Save();
        }
    }
예제 #5
0
    public void SaveTerminalData()
    {
        CreateTerminalNode();

        for (int i = 0; i < terminals.Length; i++)
        {
            TerminalNode        terminal            = new TerminalNode(GetXmlNode(terminals[i]));
            TerminalInformation terminalInformation = SingletonManager.MainTerminalController.GetTerminalInformation(i);
            terminal.SetActivated(terminalInformation.isActivated);
            terminal.SetCollected(terminalInformation.isCollected);
        }
    }
예제 #6
0
        Tuple <TerminalInformation, TerminalInformation> CreateDepartureAndDestination()
        {
            var uri         = new Uri("http://example.com/api");
            var name        = "terminalName";
            var description = "terminalDescription";
            var id_01       = Guid.NewGuid();
            var id_02       = Guid.NewGuid();

            var departure   = TerminalInformation.Create(uri, id_01, name, description, TerminalStatus.Open);
            var destination = TerminalInformation.Create(uri, id_02, name, description, TerminalStatus.Open);

            return(new Tuple <TerminalInformation, TerminalInformation>(departure, destination));
        }
        public void Create_Fails_With_Exception_On_Fawlty_Parameters(
            bool addUri, bool id, string n, string d, string argument)
        {
            // arrange
            Uri  address = addUri ? _uri : null;
            Guid Id      = id ? _ID : Guid.Empty;
            var  status  = TerminalStatus.Closed;
            var  message = $"{argument}: Does not  have a non empty, not null and valid value";
            // act
            var ex = Assert.Throws <ArgumentException>(
                () => TerminalInformation.Create(address, Id, n, d, status));

            // assert
            ex.Message.Contains(argument);
        }
        public void Create_Fills_All_Fields()
        {
            var            _terminalUri = _uri;
            var            _name        = "Basic Terminal";
            var            _description = "Basic Terminal with no capabilities";
            Guid           _Id          = _ID;
            TerminalStatus _status      = TerminalStatus.Closed;

            // arrange

            // act, Assert
            var ci     = TerminalInformation.Create(_terminalUri, _ID, _name, _description, _status);
            var now    = DateTime.UtcNow;
            var status = Enum.GetName(_status);

            // assert
            Assert.Equal(_terminalUri, ci.Address);
            Assert.Equal(_name, ci.Name);
            Assert.Equal(_description, ci.Description);
            Assert.Equal(_Id, ci.ID);
            Assert.Equal(status, ci.Status);
            Assert.True(ci.InformationTimeStamp <= now);
        }
예제 #9
0
    public override void Interact()
    {
        //base.Interact();

        SingletonManager.AudioManager.Play(AudioType.INTERACT_TERMINAL);

#if DEBUG
        Debug.Log("Interacting with Terminal: " + this.gameObject.name + " Type: " + m_terminalType.ToString());
#endif

        TerminalInformation information = new TerminalInformation();

        switch (m_terminalType)
        {
        case TerminalType.MAIN_TERMINAL:
            break;

        case TerminalType.TERMINAL_ONE:
            break;

        case TerminalType.TERMINAL_TWO:
            if (SingletonManager.MainTerminalController.GetTerminalState(TerminalType.TERMINAL_TWO) == TerminalState.Unlocked)
            {
                // deactivate light

                // INFO: main-terminal
                information.isActivated = true;
                information.isCollected = true;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.MAIN_TERMINAL, information);

                // INFO: terminal-one
                information.isActivated = true;
                information.isCollected = false;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_ONE, information);

                // INFO: terminal-two
                information.isActivated = true;
                information.isCollected = true;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_TWO, information);

                // set update mainterminal screen and unlock it
                UpdateTerminalScreen(TerminalType.MAIN_TERMINAL);
                SingletonManager.MainTerminalController.SetTerminalState(TerminalType.MAIN_TERMINAL, TerminalState.Unlocked);
                SingletonManager.AudioManager.Play(AudioType.TERMINAL_COMPILE_SUCCESS);

                // update self
                UpdateTerminalScreen(TerminalType.TERMINAL_TWO);

                // enable terminal-one screen
                SingletonManager.MainTerminalController.SetTerminalState(TerminalType.TERMINAL_ONE, TerminalState.Unlocked);
            }
            break;

        case TerminalType.TERMINAL_THREE:
            // can only be activated when terminal_generator has been enabled!
            if (SingletonManager.MainTerminalController.GetTerminalState(TerminalType.TERMINAL_GENERATOR) == TerminalState.Unlocked)
            {
                // update self ==> player can exit now
                UpdateTerminalScreen(m_terminalType);
                SingletonManager.MainTerminalController.SetTerminalState(m_terminalType, TerminalState.Unlocked);
                SingletonManager.AudioManager.Play(AudioType.TERMINAL_COMPILE_SUCCESS);
            }

            break;

        case TerminalType.TERMINAL_GENERATOR:
            // unlockes access to terminal_three
            // generator can only be accessed if terminal_one is unlocked
            if (SingletonManager.MainTerminalController.GetTerminalState(TerminalType.TERMINAL_ONE) == TerminalState.Unlocked)
            {
                // update terminal3
                UpdateTerminalScreen(TerminalType.TERMINAL_THREE);
                SingletonManager.MainTerminalController.SetTerminalState(TerminalType.TERMINAL_THREE, TerminalState.Unlocked);

                // update self
                UpdateTerminalScreen(m_terminalType);
                SingletonManager.MainTerminalController.SetTerminalState(m_terminalType, TerminalState.Unlocked);

                // INFO: terminal-three
                information.isActivated = true;
                information.isCollected = true;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_THREE, information);

                // INFO: terminal-generator
                information.isActivated = true;
                information.isCollected = true;
                SingletonManager.MainTerminalController.SetTerminalInformation((int)TerminalType.TERMINAL_GENERATOR, information);

                // todo m_ColorPuzzle.SetActive(true) nur wenn diese interaktion stattfand
                SingletonManager.MainTerminalController.EnablePuzzle();

                SingletonManager.AudioManager.Play(AudioType.GENERATOR_ACTIVATED);

                SingletonManager.AudioManager.Play(AudioType.ENEMY_SHOUT);
                SingletonManager.Enemy.GetComponent <EnemyAiScript>().SpawnEnemyToGeneratorEntrance();
            }

            break;
        }



        //SingletonManager.MainTerminalController.UpdateData(m_terminalType);

        //
        //Transform go = this.transform.FindChild("display_2states");
        //go.GetComponent<Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.5f, 0.0f));

        // Save Game
        SingletonManager.XmlSave.Save();
    }
예제 #10
0
    public void LoadTerminalData()
    {
        CreateTerminalNode();

        GameObject.Find("SpawnPositions").GetComponent <EnemySpawningCheck>().ToggleRigidbodyColliders(true);
        GameObject.Find("SpawnPositions").SetActive(false);
        SingletonManager.Enemy.SetActive(true);

        for (int i = 0; i < terminals.Length; i++)
        {
            TerminalNode terminalNode = new TerminalNode(GetXmlNode(terminals[i]));

            TerminalInformation terminalInformation = new TerminalInformation();
            terminalInformation.isActivated = terminalNode.GetActivated();
            terminalInformation.isCollected = terminalNode.GetCollected();

            SingletonManager.MainTerminalController.SetTerminalInformation(i, terminalInformation);
            // SingletonManager.MainTerminalController.SetTerminalState((TerminalType)i, TerminalState.Locked);
            Terminals terminal     = SingletonManager.MainTerminalController.GetTerminalByType((TerminalType)i);
            Transform displayState = terminal.m_terminal.transform.FindChild("display_2states");

            // update visual
            if (terminalInformation.isCollected)
            {
                if ((TerminalType)i == TerminalType.TERMINAL_ONE && terminalInformation.isCollected)
                {
                    m_door = GameObject.Find("doors (animated) (2)");
                    m_door.GetComponent <DoorBehaviour>().ChangeDoorState(DoorBehaviour.DoorState.OPENING_STUCKED);
                }

                SingletonManager.MainTerminalController.SetTerminalState((TerminalType)i, TerminalState.Unlocked);
                displayState.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.5f, 0.0f));
            }
            else if (terminalInformation.isActivated)
            {
                SingletonManager.MainTerminalController.SetTerminalState((TerminalType)i, TerminalState.Unlocked);
                displayState.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.0f, 0.0f));

                if ((TerminalType)i == TerminalType.TERMINAL_GENERATOR)
                {
                    m_door = GameObject.Find("door_simple_(animated) (9)");
                    m_door.GetComponent <DoorBehaviour>().ChangeDoorState(DoorBehaviour.DoorState.OPENING_STUCKED);
                }
            }
            else
            {
                SingletonManager.MainTerminalController.SetTerminalState((TerminalType)i, TerminalState.Locked);
                displayState.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.5f, 0.5f));
            }
        }

        Terminals t = SingletonManager.MainTerminalController.GetTerminalByType(TerminalType.TERMINAL_TWO);
        Transform d = t.m_terminal.transform.FindChild("display_2states");

        if (SingletonManager.MainTerminalController.GetTerminalInformation((int)TerminalType.TERMINAL_TWO).isCollected == true)
        {
            d.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.5f, 0.0f));
        }
        else
        {
            d.GetComponent <Renderer>().material.SetTextureOffset("_MainTex", new Vector2(0.0f, 0.0f));
        }
    }