/// <summary>
    ///
    /// Initialise the deck object. Updates the text properties of the object
    ///
    /// </summary>
    public void InitDeckListObject(DeckData _deckData,
                                   DeckListUI _deckListUI                 = null,
                                   LobbyDeckListUI _lobbyDeckListUI       = null,
                                   CampaignDeckListUI _campaignDeckListUI = null,
                                   CampaignManagerUI _campaignManagerUI   = null,
                                   bool hideCards = false)
    {
        //Need to pass in the deck list UI to handle certain click interactions on this object
        deckListUI         = _deckListUI;
        lobbyDeckListUI    = _lobbyDeckListUI;
        campaignDeckListUI = _campaignDeckListUI;
        campaignManagerUI  = _campaignManagerUI;
        deckData           = _deckData;

        deckId            = deckData.Id.Value;
        nameText.text     = deckData.Name;
        classBorder.color = GameManager.instance.colourManager.GetClassColour(deckData.DeckClass);
        var campaignText = deckData.IsCampaign ? $" - {deckData.CampaignTracker.GetCampaign().Name}" : "";

        classText.text = $"{deckData.DeckClass}{campaignText}";
        selectionIcon.SetActive(false);

        deckCardList.RefreshCardList(deckData, deckListUI, _hideCards: hideCards);

        deckResourceObjects = new List <DeckResourceDetailUI>();
        GameManager.DestroyAllChildren(deckResourcesParent);
        foreach (var resource in deckData.PlayerResources)
        {
            var deckResourceObject = Instantiate(deckResourcePrefab, deckResourcesParent.transform);
            var deckResourceScript = deckResourceObject.GetComponent <DeckResourceDetailUI>();
            deckResourceScript.InitDeckResourceDetail(resource);
            deckResourceObjects.Add(deckResourceScript);
        }

        if (campaignManagerUI == null)
        {
            deckDetailsArea.SetActive(false);
        }

        if (deckListUI != null || campaignDeckListUI != null)
        {
            deleteButton.SetActive(true);
        }

        if (lobbyDeckListUI != null || campaignManagerUI != null)
        {
            deleteButton.SetActive(false);
        }
    }
    /// <summary>
    ///
    /// Initialise the object with a card. Refreshes the text properties of the card. Used for gameplay lists
    ///
    /// </summary>
    public void InitCardObject(Card _card)
    {
        card     = _card;
        cardData = card.CardData;

        deckListUI = null;

        nameText.text = card.Name;
        typeText.text = card.Type.ToString();

        cardCountText.gameObject.SetActive(false);

        rarityBorder.color = GameManager.instance.colourManager.GetRarityColour(card.Rarity, card.CardClass);

        totalCostText.text = StringHelpers.GenerateResourceText(card.ResourceCost, card.GetResourceColours());
    }
    /// <summary>
    ///
    /// Initialise the object with card data. Refreshes the text properties of the card. Used for library lists
    ///
    /// </summary>
    public void InitCardObject(CardData _cardData, int numCards, int?_deckId = null, DeckListUI _deckListUI = null, ReserveForcesUI _reserveForcesUI = null, bool _isReserved = false)
    {
        cardData = _cardData;
        //Needs to pass in the deck list UI to this object in order to know which deck is being edited
        deckListUI      = _deckListUI;
        reserveForcesUI = _reserveForcesUI;
        isReserved      = _isReserved;
        deckId          = _deckId;

        nameText.text = cardData.Name;
        typeText.text = cardData.CardType.ToString();

        cardCountText.text = cardData.IsHero ? "Hero" : $"x{numCards}";

        rarityBorder.color = GameManager.instance.colourManager.GetRarityColour(cardData.Rarity, cardData.Class);

        totalCostText.text = StringHelpers.GenerateResourceText(cardData.GetResources);
    }
    /// <summary>
    ///
    /// Refreshes the card list
    ///
    /// </summary>
    public void RefreshCardList(DeckData _deckData               = null,
                                DeckListUI _deckListUI           = null,
                                ReserveForcesUI _reserveForcesUI = null,
                                bool _isReserved = false,
                                bool _hideCards  = false)
    {
        deckListUI      = _deckListUI;
        reserveForcesUI = _reserveForcesUI;
        isReserved      = _isReserved;

        GameManager.DestroyAllChildren(cardListArea);

        //Certain situations may require an empty card list, so will leave the object empty
        if (_deckData != null)
        {
            deckData        = _deckData;
            deckCardList    = deckData.CardList;
            deckUpgradeList = deckData.UpgradeList;
            hideCards       = _hideCards;

            if (reserveForcesUI == null)
            {
                //Add the hero card to the list
                if (!hideCards)
                {
                    AddHeroCard(deckData);
                }

                //Add the upgrades to the list
                AddUpgrades();
            }

            //Add the cards to the list
            if (!hideCards)
            {
                AddCards();
            }

            //Update the card count text
            cardCountText.text = $"Cards: {deckData.DeckCount}";
        }
    }
Example #5
0
    /// <summary>
    ///
    /// Initialise the container object
    ///
    /// </summary>
    public void InitCardContainer(
        CardData cardData,
        DeckListUI _deckListUI = null,
        CampaignManagerUI _campaignManagerUI = null,
        string cardName     = "",
        float scalingFactor = defaultScalingFactor,
        LootGeneratorUI _lootGeneratorUI = null)
    {
        deckListUI        = _deckListUI;
        campaignManagerUI = _campaignManagerUI;
        lootGeneratorUI   = _lootGeneratorUI;

        isSelected = false;

        transform.parent.gameObject.GetComponent <RectTransform>().sizeDelta = new Vector2(cardSizex * scalingFactor, cardSizey * scalingFactor);
        //Object is instantiated on the parent of this object in order to prevent conflicts with click handling
        var newCardObj = GameManager.instance.libraryManager.CreateCardObject(cardData, gameObject.transform.parent, scalingFactor);

        newCardObj.name = cardName;
        //Sibling Index is set to 1 so that the click handler on card display doesn't interfere with the click handler on the container (which is only used when adding cards to a deck)
        newCardObj.transform.SetSiblingIndex(1);
        cardDisplay = newCardObj.GetComponent <CardDisplay>();
    }