예제 #1
0
    private void Update()
    {
        if (!IsRunning || TimeRemaining <= 0f)
        {
            return;
        }

        TimeRemaining -= Time.deltaTime;
        IsWarning      = TimeRemaining <= WarnTime && TimeRemaining > 0;

        if (TimeRemaining <= 0f)
        {
            if (ParentComponent.OnTimerExpired != null)
            {
                ParentComponent.OnTimerExpired();
            }
            StopTimer();
        }

        UpdateSevenSegText();
    }
    private void Update()
    {
        if (IsStoppedPermanently)
        {
            return;
        }
        if (State != _newState)
        {
            if (_waitAndReset != null)
            {
                StopCoroutine(_waitAndReset);
                _waitAndReset = null;
            }

            switch (_newState)
            {
            case NeedyState.InitialSetup:
                _newState = NeedyState.AwaitingActivation;
                goto default;

            case NeedyState.AwaitingActivation:
                break;

            case NeedyState.Running:
                if (ParentComponent.OnNeedyActivation != null)
                {
                    ParentComponent.OnNeedyActivation();
                }
                break;

            case NeedyState.Cooldown:
                _waitAndReset = StartCoroutine(WaitAndReset());
                goto default;


            case NeedyState.Terminated:
            case NeedyState.BombComplete:
            default:
                if (ParentComponent.OnNeedyDeactivation != null)
                {
                    ParentComponent.OnNeedyDeactivation();
                }
                break;
            }

            State = _newState;
            UpdateSevenSegText();
            Debug.LogFormat("!IsRunning = {0}, TimeRemaining <= 0f = {1}", !IsRunning, TimeRemaining <= 0f);
        }

        if (!IsRunning || TimeRemaining <= 0f)
        {
            return;
        }

        TimeRemaining -= Time.deltaTime;
        IsWarning      = TimeRemaining <= WarnTime && TimeRemaining > 0;

        if (TimeRemaining <= 0f)
        {
            if (ParentComponent.OnTimerExpired != null)
            {
                ParentComponent.OnTimerExpired();
            }
            StopTimer();
        }

        UpdateSevenSegText();
    }