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()); } } } }