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 Init(string deckName)
    {
        Object masterCard = Resources.Load("Prefabs/Cards/Pf_Card_Game") as GameObject;

        scr_Deck_Data.Save_Data deckSave = Database.Instance.decks.LoadDeck(deckName);

        // Make cards
        foreach (scr_Deck_Data.Card_Entry card in deckSave.cardList)
        {
            //Get Card Data from ID in savefile
            Card_Data cardData = Database.Instance.GetInventoryCard(card.ID).card;

            //Create correct number of cards
            for (int i = 0; i < card.count; i++)
            {
                GameObject cardCopy = Instantiate(masterCard) as GameObject;
                cardCopy.GetComponent <Card_Game>().InitData(cardData);

                cardCopy.transform.SetParent(gameObject.transform);
                cardCopy.SetActive(false);
                cards.Add(cardCopy);
            }
        }
    }