Пример #1
0
        /// <summary>
        /// Update and Filter out the Upgrade Database by Cardstate
        /// </summary>
        /// <param name="cardState"></param>
        public void UpdateUpgradeDatabaseByCardState(CardState cardState)
        {
            if (data != null)
            {
                List <CardUpgradeData> cardUpgradeDatas = (List <CardUpgradeData>)AccessTools.Field(typeof(AllGameData), "cardUpgradeDatas").GetValue(data);
                applyableUpgrades = cardUpgradeDatas.Where(x => x.GetFilters().All(y => y.FilterCard <CardState>(selectedCardState, relicManager))).Where(x => GetUpgradeText(x) != null && GetUpgradeText(x) != "").ToList();

                if (applyableUpgrades.Count > UpgradeDataSelectionButtonsPool.Count)
                {
                    for (int i = UpgradeDataSelectionButtonsPool.Count; i < applyableUpgrades.Count; i++)
                    {
                        DerivedUpgradeDataSelectionButton selectionButton = CreateUpgradeDataSelectionButton(UpgradeDatabaseContent.transform);
                        UpgradeDataSelectionButtonsPool.Add(selectionButton);
                    }
                }
                else
                {
                    //Hide excessive Selection Buttons
                    for (int i = applyableUpgrades.Count; i < UpgradeDataSelectionButtonsPool.Count; i++)
                    {
                        UpgradeDataSelectionButtonsPool[i].gameObject.SetActive(false);
                    }
                }
                //Go through each SelectionButton, updating their text and internal card reference
                SelectionButton <CardUpgradeData> sbi;
                for (int j = 0; j < applyableUpgrades.Count; j++)
                {
                    sbi = UpgradeDataSelectionButtonsPool[j];
                    sbi.gameObject.SetActive(true);
                    sbi.UpdateText(applyableUpgrades[j]);
                }
                UpdateUpgradeDatabaseBySearchString(search);
            }
        }
Пример #2
0
        /// <summary>
        /// Creates a Selection Button for CardData
        /// </summary>
        /// <param name="parent"></param>
        /// <returns></returns>
        public DerivedUpgradeDataSelectionButton CreateUpgradeDataSelectionButton(Transform parent)
        {
            GameObject sbp = GameObject.Instantiate(SelectionButtonPrefab);

            DontDestroyOnLoad(sbp);
            sbp.transform.SetParent(parent);
            DerivedUpgradeDataSelectionButton sb = sbp.AddComponent <DerivedUpgradeDataSelectionButton>();

            sb.plugin          = this;
            sb.OnClick        += OnClickUpgradeData;
            sb.UpdateTextFunc += GetUpgradeDataName;
            return(sb);
        }