コード例 #1
0
ファイル: KulayGrid.cs プロジェクト: dhon2407/NewWitch
        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]);
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
    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());
    }