예제 #1
0
    private void UpdateOnRestore()
    {
        _value -= _dt / timeToFullRestore;
        if (_value <= 0f)
        {
            _state = AlarmState.None;
            _value = 0f;
        }

        OnAlarmValueChanged?.Invoke(_value);
    }
예제 #2
0
    public void ForceAlarm()
    {
        if (State == SystemState.Pause)
        {
            return;
        }

        _state      = AlarmState.Alarm;
        _alarmTimer = alarmTime;
        _value      = 1f;
        OnAlarmValueChanged?.Invoke(_value);
    }
예제 #3
0
    private void UpdateOnRaise()
    {
        _value += _dt / timeToAlarm;
        if (_value >= 1f)
        {
            _state      = AlarmState.Alarm;
            _alarmTimer = alarmTime;
            _value      = 1f;
        }
        else
        {
            _state = AlarmState.Restore;
        }

        OnAlarmValueChanged?.Invoke(_value);
    }