public void UpdateBoardSlot(BoardSlot boardSlot, BoardSlotChangeOrigin origin)
        {
            BoardBlock bBlock = GetBoardBlock(boardSlot.GetPosition());

            if (boardSlot.IsEmpty())
            {
                bBlock.BlockColor     = "";
                bBlock.BlockTextColor = "";
                bBlock.BlockValue     = "";
            }
            else
            {
                Block block = boardSlot.GetBlock();

                if (origin == BoardSlotChangeOrigin.Spawned)
                {
                    ScaleHelper.ScaleIn(bBlock);
                }
                else if (origin == BoardSlotChangeOrigin.MergedInto)
                {
                    ScaleHelper.Pulse(bBlock);
                }

                bBlock.BlockColor     = ColorTranslator.ToHtml(block.BackgroundColor);
                bBlock.BlockTextColor = ColorTranslator.ToHtml(block.Color);
                bBlock.BlockValue     = block.Value.ToString();
            }
        }
        private bool MergeBlocks(BoardSlot from, BoardSlot to, bool onlySimulate)
        {
            if (from.GetBlock().Value == to.GetBlock().Value)
            {
                if (!onlySimulate)
                {
                    int newValue = from.GetBlock().Value * 2;
                    Board.ReplaceBlock(to, new Block(newValue));
                    Board.RemoveBlock(from);

                    Score.Add(newValue);
                }

                return(true);
            }

            return(false);
        }