Пример #1
0
        public override void Execute()
        {
            if (!_gameStateModel.IsPause && !_gameStateModel.IsGameOver)
            {
                var currentTransform = _tetrominoModel.CurrentTetromino.transform;

                if (_tetrominoModel.MoveDown())
                {
                    _gridModel.TryDeleteRows();

                    if (_gridModel.CheckIsAboveGrid(currentTransform))
                    {
                        _gameStateModel.GameOver();
                    }
                    else
                    {
                        _tetrominoModel.NextStep();
                        AudioManager.Instance.PlayFx(SoundType.DROP);
                    }
                }
                else
                {
                    _gridModel.UpdateGrid(currentTransform);
                    AudioManager.Instance.PlayFx(SoundType.MOVE);
                }

                if (_gameStateModel.IsBoost)
                {
                    _scoreModel.UpdateScoreByBoost();
                }

                _gameStateModel.IsBoost = false;
            }
        }