Beispiel #1
0
    void ClearBlock(GameBlock block, bool score)
    {
        if (block == SelectedBlock)
        {
            SelectBlock(null, null);
        }
        if (block.IsAnimating)
        {
            CurrentState = GameState.Selecting;
        }

        if (score)
        {
            // Collect Powerups
            if (block.PowerupId.HasValue)
            {
                if (block.PowerupId.Value == GameBlock.Powerup.BoardClear)
                {
                    Flier.Spawn(block.PowerupSprite, block.transform.position, BoardClearTransform.position, BoardClearTransform.gameObject, 1, Flier.AudioToPlay.ItemCollect);
                }
                else if (block.PowerupId.Value == GameBlock.Powerup.TimeStop)
                {
                    Flier.Spawn(block.PowerupSprite, block.transform.position, TimeStopTransform.position, TimeStopTransform.gameObject, 1, Flier.AudioToPlay.ItemCollect);
                }
            }

            Flier.Spawn(block.BlockSprite, block.transform.position, ScoreTransform.position, ScoreTransform.gameObject,
                        (collector.Count > 3) ? ScorePerBlock * (collector.Count - 2) : ScorePerBlock, Flier.AudioToPlay.BlockCollect
                        );
        }

        CloudPuff.Spawn(block.transform.position);
        GameBlock.Despawn(block);
    }
Beispiel #2
0
 public void DoBoardClear()
 {
     if (BoardClearItems > 0 && CurrentState != GameState.GameOver)
     {
         SoundBoard.PlayBoardClear();
         BoardClearItems--;
         BoardClearButton.Current.UpdateCount(BoardClearItems);
         for (int r = 0; r < Rows; r++)
         {
             for (int c = 0; c < Cols; c++)
             {
                 if (Board[r, c] != null && !Board[r, c].IsPending)
                 {
                     GameBlock.Despawn(Board[r, c]);
                 }
             }
         }
         SelectBlock(null, null);
     }
 }