Exemplo n.º 1
0
    public bool SpawnEnemy(GameObject enemy)
    {
        if (doorState != doorStates.doorClosed)
        {
            return(false);
        }

        Instantiate(enemy, transform.position, transform.rotation).GetComponent <Enemy>().mySpawner = this;
        doorState = doorStates.doorOpening;

        return(true);
    }
Exemplo n.º 2
0
    public bool InteractForced()
    {
        bool couldOpen = false;

        switch (currentState)
        {
        case doorStates.open:
            if (animator)
            {
                animator.SetTrigger("Close");
            }

            currentState = doorStates.closed;
            if (doorSounds.Length > 0)
            {
                doorSounds[(int)doorStates.closed].Play();
            }

            break;

        case doorStates.closed:
            if (animator)
            {
                animator.SetTrigger("Open");
            }

            currentState = doorStates.open;
            if (doorSounds.Length > 0)
            {
                doorSounds[(int)doorStates.open].Play();
            }

            if (sceneChanger)
            {
                Invoke("ChangeScene", 0.2f);
            }
            break;

        default:
            break;
        }

        return(couldOpen);
    }
Exemplo n.º 3
0
    private void OpenDoor()
    {
        Debug.Log("opening door");

        if (animator)
        {
            animator.SetTrigger("Open");
        }

        currentState = doorStates.open;

        if (doorSounds.Length > 0)
        {
            doorSounds[(int)doorStates.open].Play();
        }

        if (sceneChanger)
        {
            Invoke("ChangeScene", 1f);
        }
    }
Exemplo n.º 4
0
    void UpdateDoorState()
    {
        switch (doorState)
        {
        case doorStates.doorClosed:

            break;

        case doorStates.doorOpening:

            door.transform.rotation = Quaternion.Lerp(door.transform.rotation, opened.rotation, Time.deltaTime * 1.6f);

            if (door.transform.rotation == opened.transform.rotation)
            {
                doorState = doorStates.doorOpened;
                isOpened  = true;
            }

            break;

        case doorStates.doorOpened:

            if (!isOpened)
            {
                doorState = doorStates.doorClosing;
            }
            break;

        case doorStates.doorClosing:

            door.transform.rotation = Quaternion.Lerp(door.transform.rotation, closed.rotation, Time.deltaTime * 0.8f);

            if (door.transform.rotation == closed.rotation)
            {
                doorState = doorStates.doorClosed;
            }

            break;
        }
    }
Exemplo n.º 5
0
 // Use this for initialization
 void Start()
 {
     doorState = doorStates.doorClosed;
 }
Exemplo n.º 6
0
    /*// Update is called once per frame
     * void Update()
     * {
     *
     * }*/

    public bool Interact(int keyID)
    {
        bool couldOpen = false;

        switch (currentState)
        {
        case doorStates.open:
            if (animator)
            {
                animator.SetTrigger("Close");
            }

            currentState = doorStates.closed;
            if (doorSounds.Length > 0)
            {
                doorSounds[(int)doorStates.closed].Play();
            }

            break;

        case doorStates.closed:
            if (lockedDoor)
            {
                if (keyID == idOfKey)
                {
                    Debug.Log("DOOR IS NOW OPEN");
                    if (doorSounds.Length > 0)
                    {
                        doorSounds[(int)doorStates.unlocked].Play();
                    }

                    lockedDoor = false;
                    couldOpen  = true;
                }
                else
                {
                    //dialogueEvent.CheckMessage();
                }
            }

            if (!lockedDoor && !couldOpen)
            {
                if (animator)
                {
                    animator.SetTrigger("Open");
                }

                currentState = doorStates.open;
                if (doorSounds.Length > 0)
                {
                    doorSounds[(int)doorStates.open].Play();
                }

                if (sceneChanger)
                {
                    Invoke("ChangeScene", 0.2f);
                }

                couldOpen = true;
            }
            else if (!lockedDoor && couldOpen)
            {
                Debug.Log("OPENING");
                Invoke("OpenDoor", 1.7f);
            }
            break;

        default:
            break;
        }

        return(couldOpen);
    }