Ejemplo n.º 1
0
        public override void Update(GameTime gameTime)
        {
            if (IsTimerEnded(gameTime))
            {
                _gameOverWindow?.Update(gameTime);

                return;
            }

            GameBoardConroller.MatchAndClear(GameField);

            UpdateActivatedBonuses();

            UpdateDestroyers(gameTime);

            BonusController.BlowActivatedBombs();

            BonusController.UseDestoyers();

            if (Destroyers.Count == 0)
            {
                GemsController.MoveGems(GameField);

                GemsController.GenerateNewGems(GameField);
            }

            if (IsCurrentMoveImposible())
            {
                return;
            }

            foreach (var cell in GameField)
            {
                cell.Update(gameTime);
                cell.Gem?.Update(gameTime);
            }
        }