private void Awake() { _slots = new List <KulaySlot>(GetComponentsInChildren <KulaySlot>()); _slotsPosition = new List <Vector3>(new Vector3[_slots.Count]); _gridLayout = GetComponent <GridLayoutGroup>(); _gridSideCount = _gridLayout.constraintCount; _boosterHandler = GetComponent <BoosterHandler>(); _powerUpHandler = GetComponent <PowerUpHandler>(); _spawnPosition = new List <Vector3>(new Vector3[_gridSideCount]); }
private void PopSlots(List <int> popSlotIndexes, List <KulaySlot> boardSlots, BoosterHandler boosterHandler, int boardSideCount) { foreach (var slot in boardSlots.Where(slot => popSlotIndexes.Contains(slot.SlotIndex))) { var boosterType = slot.IsBoostSlot ? slot.Booster : (BoosterType?)null; slot.Pop(); if (boosterType.HasValue) { boosterHandler.ExecuteBoosterEffect(slot.SlotIndex, boosterType.Value, boardSlots, boardSideCount); } } }
public void Execute(PowerUpType type, int targetSlotIndex, List <KulaySlot> boardSlots, int boardSideCount, BoosterHandler boosterHandler) { var affectedIndexes = new List <int> { targetSlotIndex }; switch (type) { case PowerUpType.None: return; case PowerUpType.VerticalSlice: affectedIndexes.AddRange(targetSlotIndex.GetAdjacentLineIndex(boardSideCount, false)); PopSlots(affectedIndexes, boardSlots, boosterHandler, boardSideCount); break; case PowerUpType.HorizontalSlice: affectedIndexes.AddRange(targetSlotIndex.GetAdjacentLineIndex(boardSideCount, true)); PopSlots(affectedIndexes, boardSlots, boosterHandler, boardSideCount); break; case PowerUpType.ClearSlot: PopSlots(affectedIndexes, boardSlots, boosterHandler, boardSideCount); break; case PowerUpType.Shuffle: Shuffle(boardSlots); break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } }
void Awake() { instance = this; foreach (GameObject ga in Resources.LoadAll<GameObject>("Boosters")) { if (!ga.name.Contains("Large")) { allBoosters.Add(ga.GetComponent<BoosterPack>()); } } foreach (RectTransform r in cardHolderGroup) { if (r.GetComponent<Card>()) { cardsInScene.Add(r.GetComponent<Card>()); } } DisplayBoosters(allBoosters.ToArray()); }