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