Ejemplo n.º 1
0
        private List <BubbleSlot> GetAdjacentBubblesWithSameScore(BubbleSlot bubbleSlot, List <BubbleSlot> knownAdjacents)
        {
            var newAdjacentBubbleSlots = new List <BubbleSlot>();
            var adjacentIndexes        = GetAdjacentIndexes(bubbleSlot);

            foreach (var adjacentBubbleIndex in adjacentIndexes)
            {
                var bubbleSlotToAdd = _bubbleSlots[adjacentBubbleIndex];
                if (bubbleSlotToAdd.HasBubble() && bubbleSlotToAdd.BubbleConfig().number == bubbleSlot.BubbleConfig().number)
                {
                    if (!knownAdjacents.Any(slot => slot.Id() == bubbleSlotToAdd.Id()))
                    {
                        newAdjacentBubbleSlots.Add(bubbleSlotToAdd);
                    }
                }
            }

            if (newAdjacentBubbleSlots.Count() == 0)
            {
                return(knownAdjacents);
            }

            var result = new List <BubbleSlot>();

            foreach (var newSlot in newAdjacentBubbleSlots)
            {
                var newSlotAdjacentBubbles = GetAdjacentBubblesWithSameScore(newSlot, knownAdjacents.Concat(newAdjacentBubbleSlots).ToList());
                foreach (var newSlotAdjacentBubble in newSlotAdjacentBubbles)
                {
                    if (!result.Any(slot => slot.Id() == newSlotAdjacentBubble.Id()))
                    {
                        result.Add(newSlotAdjacentBubble);
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 2
0
        private void SpawnBubblePop(Vector3 position)
        {
            var bubblePop = Instantiate(_bubblePop, transform.position, Quaternion.identity);

            bubblePop.Pop(_bubbleSlot.BubbleConfig(), position);
        }