public void LoadDeck(string deckName = "") { bool failed = false; // Get Deck Name if (deckName == "") { deckName = deckDropdown.options[deckDropdown.value].text; } // Reset counts on bankCards and destroy current deck ResetBankCounts(); ClearDeck(); // Load deck_entry list scr_Deck_Data.Save_Data savedDeck = Database.Instance.decks.LoadDeck(deckName); // Handle deck size and name deckSize = savedDeck.deckSize; //this.deckName = savedDeck.deckName; // Re-populate deckCards foreach (scr_Deck_Data.Card_Entry cardEntry in savedDeck.cardList) { //Get card from database Inventory_Item cardItem = Database.Instance.GetInventoryCard(cardEntry.ID); if (cardItem == null) { failed = true; break; } Card_Editor card = InstantiateCard(cardItem, GameObject.Find("DeckContent").transform, Card_Editor.enum_cardArea.Deck); card.AddUseCount(cardEntry.count); deckCards[card] = cardEntry.count; Card_Editor bankCard = GetOtherCard(Card_Editor.enum_cardArea.Deck, card.data.ID); if (bankCard != null) { bankCards[bankCard] -= cardEntry.count; bankCard.AddUseCount(cardEntry.count); } else { // Bank card does not exist. Hacking is afoot?! Debug.Log("Loading deck with cards player does not own!"); failed = true; break; } } if (failed) { //Cleanup, should go back to old state of Bank and Deck. But that's annoying. ResetBankCounts(); ClearDeck(); } SetCurrentDeckName(deckName); ReorganizeCards(); }
public void CardClicked(Card_Editor card) { if (card.area == Card_Editor.enum_cardArea.Bank) { //Increment&Deincrement card counters if (bankCards[card] > 0) { Card_Editor deckEquivalent = GetOtherCard(Card_Editor.enum_cardArea.Bank, card.data.ID); if (deckEquivalent != null && deckCards[deckEquivalent] < 4) { bankCards[card]--; card.AddUseCount(1); deckCards[deckEquivalent]++; deckSize++; deckEquivalent.AddUseCount(1); } else if (deckEquivalent == null) //New type of card in the deck, spawn instance { bankCards[card]--; card.AddUseCount(1); Card_Editor newCard = Instantiate(card.gameObject, GameObject.Find("DeckContent").transform).GetComponent <Card_Editor>(); newCard.GetComponent <Card_Editor>().area = Card_Editor.enum_cardArea.Deck; deckCards[newCard] = 1; deckSize++; newCard.numUsed = deckCards[newCard]; newCard.AddUseCount(0); } } } else if (card.area == Card_Editor.enum_cardArea.Deck) { if (deckCards[card] > 0) { Card_Editor bankEquivalent = GetOtherCard(Card_Editor.enum_cardArea.Deck, card.data.ID); //Increment&Deincrement card counters bankCards[bankEquivalent]++; bankEquivalent.AddUseCount(-1); deckCards[card]--; deckSize--; card.AddUseCount(-1); //No more cards in deck of that type. Destroy instance. if (deckCards[card] == 0) { deckCards.Remove(card); Destroy(card.gameObject); } } } ReorganizeCards(); }
private void SetCardBankCount(Card_Editor card, int count) { card.SetBankCount(count); }