Exemplo n.º 1
0
        private void BuyRandomItem()
        {
            if (!gameObject.activeSelf)
            {
                return;
            }

            if (Coins.Amount < goldRequirement)
            {
                //TODO What to do?
                Debug.Log("Not Enough Money.");
            }
            else
            {
                var lockSlots = _shopPages[_pageItem.CurrentIndex].GetLockedSlots();
                var itemSlot  = _shopPages[_pageItem.CurrentIndex].GetRandomItemSlot();

                var roulettetin =
                    StartCoroutine(RandomSlotHighlight(lockSlots));

                if (!itemSlot)
                {
                    return;
                }

                RefreshSelectedSlot();

                PlayerPreview.UnlockedNewItem(() =>
                {
                    StopCoroutine(roulettetin);

                    foreach (var lockSlot in lockSlots)
                    {
                        lockSlot.Roulette(false);
                    }

                    itemSlot.Unlocked();
                    itemSlot.Selected(true);

                    PlayerUnlocks.Unlock(itemSlot.Data);
                    Coins.Take(goldRequirement);
                    goldRequirement += incrementalRequirement;
                    itemSlot.Data.action.Execute(PlayerPreview.Player);
                    controlButtons.SetRequiredGold(goldRequirement);

                    RefreshSelectedSlot();
                });
            }
        }