Exemplo n.º 1
0
        private void UpdateConnectedToCeilingForBubble(BubbleViewModel bubbleViewModel)
        {
            var connectedBubbles = GetNeighbors(bubbleViewModel.GridPosition.Value);

            if (bubbleViewModel.GridPosition.Value.y == CurrentTopGridY.Value)
            {
                bubbleViewModel.SetIsConnectedToCeiling(true);
                return;
            }

            for (var idx = 0; idx < connectedBubbles.Count; idx++)
            {
                var neighbor         = connectedBubbles[idx];
                var unknownNeighbors =
                    GetNeighbors(neighbor.GridPosition.Value)
                    .Where(n => !connectedBubbles.Contains(n) && n != bubbleViewModel).ToList();
                connectedBubbles.AddRange(unknownNeighbors);
            }

            var isConnectedToCeiling = connectedBubbles.Any(b => b.GridPosition.Value.y == CurrentTopGridY.Value);

            bubbleViewModel.SetIsConnectedToCeiling(isConnectedToCeiling);
        }