/// <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}"; } }
/// <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>(); }