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); } }
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)); }