Пример #1
0
 public BlockRemoval(Block block, BlockRemovalReason removalReason, int destinationRow, int destinationColumn)
 {
     this.block             = block;
     this.removalReason     = removalReason;
     this.destinationRow    = destinationRow;
     this.destinationColumn = destinationColumn;
 }
Пример #2
0
        private void DestroyOrActivateBlock(int row, int column, List <BlockRemoval> removedBlocks, BlockRemovalReason blockRemovalReason)
        {
            if (row < 0 || row >= rowCount || column < 0 || column >= columnCount)
            {
                return;
            }

            var block = blocks[row, column];

            if (block.type != BlockType.Normal && block.type != BlockType.Mega)
            {
                var blockAndPosition = new BlockAndPosition(block, row, column);
                if (!activatedBlocks.Contains(blockAndPosition))
                {
                    newActivatedBlocks.Add(blockAndPosition);
                    removedBlocks.Add(new BlockRemoval(block, blockRemovalReason, row, column));
                }
                else
                {
                    Console.WriteLine("Already contains");
                }
            }
            else if (block.color != BlockColor.Empty)
            {
                removedBlocks.Add(new BlockRemoval(block, blockRemovalReason, row, column));
                blocks[row, column] = EmptyBlock;
            }
        }