Beispiel #1
0
    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();
    }
Beispiel #2
0
    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();
    }
Beispiel #3
0
 private void SetCardBankCount(Card_Editor card, int count)
 {
     card.SetBankCount(count);
 }