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