Esempio n. 1
0
    private void OnCorrectItemDropped()
    {
        if (_furnace.SucceedSequences == 1 &&
            _furnace.GetAllSequences()[_furnace.SucceedSequences].SucceedColors == 1)
        {
            _armController.InverseX();
            _armController.InverseZ();
        }

        _timeLeft += SuccessBonusTime;
        OnBonusTime?.Invoke(SuccessBonusTime);
        _soundController.PlayLevelPartialSequenceSuccessSound();
    }
Esempio n. 2
0
    public void InitiateNextSequence()
    {
        if (_furnace.SucceedSequences == 1 && !_currentSequenceFailed)
        {
            _dialogSystem.StartSingleLine("Area02_first_sequence_done");
            _armController.InverseX();
            _armController.InverseZ();
        }
        else if (_furnace.SucceedSequences == 2 && !_currentSequenceFailed)
        {
            _dialogSystem.StartSingleLine("Area02_second_sequence_done");
        }

        if (!_currentSequenceFailed)
        {
            _soundController.PlayLevelSequenceClearedSuccessSound();
            _timeLeft += SuccessfulSequenceBonusTime;
            OnBonusTime?.Invoke(SuccessfulSequenceBonusTime);
        }
        else
        {
            _soundController.PlayLevelOneErrorSound();
            _nextWarningIndex = 0;
            foreach (var warningTime in TimeLeftWhenWarningPlays)
            {
                if (_timeLeft > warningTime)
                {
                    break;
                }

                _nextWarningIndex++;
            }

            if (_nextWarningIndex >= TimeLeftWhenWarningPlays.Count)
            {
                _nextWarningIndex = TimeLeftWhenWarningPlays.Count - 1;
            }
        }
        _imageList.Clean();
        setItemsImageList();
        _currentListIndex      = 0;
        _currentSequenceFailed = false;
    }