Esempio n. 1
0
    private void Update()
    {
        cameraCanvas.UpdatePanicLevel(level / max);

        if (InSpotLight())
        {
            level -= panicRegenRate * Time.deltaTime;
        }
        else if (autoPanicActive)
        {
            level += panicIncreaseRate * Time.deltaTime;
        }

        level = Mathf.Clamp(level, 0, max);

        if (panicEventActive)
        {
            panicEventTimer -= Time.deltaTime;
            if (panicEventTimer <= 0)
            {
                PanicEventAutoRecover();
            }
        }
        else
        {
            if (level >= max)
            {
                TriggerPanicEvent();
            }
        }

        // For debugging purposes only, perhaps remove later
        if (Input.GetButtonDown("Force Panic"))
        {
            level = 100;
        }
        if (Input.GetButtonDown("Kill Panic"))
        {
            level = 0;
        }

        if (level > soundManager.panicLevelForTransition && lastFrameLevel < soundManager.panicLevelForTransition)
        {
            soundManager.TransitionToPanic();
        }

        if (level < soundManager.panicLevelForTransition && lastFrameLevel > level)
        {
            soundManager.TransitionToNormal();
        }

        lastFrameLevel = level;
    }