예제 #1
0
        public void Populate(Deck[] decks)
        {
            var mage = dbHelper.GetActiveMage();

            foreach (Transform child in filterPanel.transform)
            {
                GameObject.Destroy(child.gameObject);
            }

            foreach (Deck deck in decks)
            {
                var deckSlot = Instantiate(deckInfoPrefab);

                var inputField = Helper.FindComponentInChildrenWithName <InputField>(deckSlot, "*DeckNameInputField");
                inputField.text = deck.title;

                var manaCost = Helper.FindComponentInChildrenWithName <Text>(deckSlot, "*ManaCost");
                var mana     = deck.CalculateMana(dbHelper);
                manaCost.text = (double.IsNaN(mana) ? 0.0 : mana).ToString("0.0");

                var icon = Helper.FindComponentInChildrenWithName <Image>(deckSlot, "*Icon");
                icon.sprite = mage.portrait;

                var useButton = Helper.FindComponentInChildrenWithName <Button>(deckSlot, "*UseButton");

                useButton.GetComponentInChildren <Text>().text = dbHelper.GetActiveDeck().ID == deck.ID ? "Em Uso" : "Usar";
                useButton.enabled = !(dbHelper.GetActiveDeck().ID == deck.ID);

                var deckToUpdate = deck;


                useButton.onClick.RemoveAllListeners();
                useButton.onClick.AddListener(delegate()
                {
                    dbHelper.SetActiveDeck(deckToUpdate.ID);
                    deckSwitch.ReloadDecks(dbHelper.GetDecks());
                    Populate(dbHelper.GetDecks());
                    activeDeckView.ShowCardsForAllSlots(null);

                    IsShowing = false;
                    cardPanel.Populate();
                });


                inputField.onEndEdit.AddListener(delegate(string action)
                {
                    deckToUpdate.title = action;
                    dbHelper.UpdateDeckTitle(deckToUpdate.ID, deckToUpdate.title);
                    deckSwitch.ReloadDecks(dbHelper.GetDecks());
                });
                deckSlot.transform.SetParent(filterPanel.transform, false);
            }
        }
예제 #2
0
        void ConfigureSlots()
        {
            var count = gridOfCurretDeck.transform.childCount;


            for (int i = 0; i < count; i++)
            {
                ShowCardInSlot(i);
                var slot = i;
                gridOfCurretDeck.transform.GetChild(i).GetComponent <Button>().onClick.AddListener(delegate()
                {
                    if (IsShowing)
                    {
                        ScriptableCard c = deckEditView.GetCard();
                        if (c.element == dbHelper.GetActiveMage().element || c.rank < 3)
                        {
                            dbHelper.AddCardInSlot(c.UUID, slot);
                            IsShowing = false;
                            deckEditView.IsShowing = false;
                            playerCardPanel.Populate();
                        }


                        else
                        {
                            audioSource.PlayOneShot(lowLevelAudio);
                        }
                        ShowCardsForAllSlots(null);
                    }
                    else
                    {
                        deckEditView.gameObject.SetActive(true);
                        deckEditView.SetCard(dbHelper.GetCardFromSlot(slot) as ScriptableCard);
                        deckEditView.IsShowing = true;
                    }
                });
            }
            manaText.text = string.Format("Custo arcano médio: {0:0.0}", dbHelper.GetActiveDeck().CalculateMana(dbHelper));
        }