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