Example #1
0
        /// <summary>
        /// Updates the Current Relic States
        /// </summary>
        public void UpdateRelics()
        {
            if (currentSave != null)
            {
                List <RelicState> query = currentSave.GetCollectedRelics().OrderBy(relic => relic.GetName()).ToList();

                //If deck is bigger, increase pool size
                if (query.Count > RelicStateSelectionButtonsPool.Count)
                {
                    for (int i = RelicStateSelectionButtonsPool.Count; i < query.Count; i++)
                    {
                        DerivedRelicStateSelectionButton selectionButton = CreateRelicStateSelectionButton(RelicContent.transform);
                        RelicStateSelectionButtonsPool.Add(selectionButton);
                    }
                }
                else
                {
                    //Hide excessive Selection Buttons
                    for (int i = query.Count; i < RelicStateSelectionButtonsPool.Count; i++)
                    {
                        RelicStateSelectionButtonsPool[i].gameObject.SetActive(false);
                    }
                }

                //Go through each SelectionButton, updating their text and internal card reference
                SelectionButton <RelicState> sbi;
                for (int j = 0; j < query.Count; j++)
                {
                    sbi = RelicStateSelectionButtonsPool[j];
                    sbi.gameObject.SetActive(true);
                    sbi.UpdateText(query[j]);
                }
            }
        }
Example #2
0
        public DerivedRelicStateSelectionButton CreateRelicStateSelectionButton(Transform parent)
        {
            GameObject sbp = GameObject.Instantiate(SelectionButtonPrefab);

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

            sb.plugin          = this;
            sb.OnClick        += OnClickRelicState;
            sb.UpdateTextFunc += getRelicStateName;
            return(sb);
        }