示例#1
0
    private void FixedUpdate()
    {
        if (!chamber || !chamber.GetChamberIsActive())
        {
            chamber      = GetCurrentChamber();
            _isStarted   = false;
            chest.sprite = chestUnlocked;
            if (_currentCoroutine != null)
            {
                StopCoroutine(_currentCoroutine);
                _currentCoroutine = null;
            }
        }

        if (!chamber)
        {
            return;
        }
        if (chamber.GetChamberIsActive() && !_isStarted)
        {
            if (chamber.chestTimerDuration > 0)
            {
                fill.enabled      = true;
                chest.enabled     = true;
                slider.maxValue   = chamber.chestTimerDuration;
                slider.value      = slider.maxValue;
                _currentCoroutine = StartCoroutine(CountdownEvent());
                _isStarted        = true;
            }
            else
            {
                fill.enabled            = false;
                chest.enabled           = false;
                chamber.isChestUnlocked = chamber.GetChamberComplete();
            }
        }
        else if (chamber.GetChamberIsActive())
        {
            if (chamber.GetChamberComplete() && isAvailable)
            {
                chamber.isChestUnlocked       = true;
                chest.transform.localRotation = Quaternion.identity;
                if (chest.sprite != chestLocked)
                {
                    chest.sprite = chestOpened;
                }
                if (_currentCoroutine != null)
                {
                    StopCoroutine(_currentCoroutine);
                    _currentCoroutine = null;
                }
            }
            else
            {
                chamber.isChestUnlocked = false;
                if (chest.sprite != chestLocked)
                {
                    chest.sprite = chestUnlocked;
                }
                if (_currentCoroutine == null)
                {
                    _currentCoroutine = StartCoroutine(CountdownEvent());
                }
            }
        }
    }