summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/ChoiceUIFrameHelper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/ChoiceUIFrameHelper.cs')
-rw-r--r--Thronefall_v1.0/Decompile/ChoiceUIFrameHelper.cs103
1 files changed, 103 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/ChoiceUIFrameHelper.cs b/Thronefall_v1.0/Decompile/ChoiceUIFrameHelper.cs
new file mode 100644
index 0000000..220e26a
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/ChoiceUIFrameHelper.cs
@@ -0,0 +1,103 @@
+using System.Collections.Generic;
+using I2.Loc;
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class ChoiceUIFrameHelper : MonoBehaviour
+{
+ public UIFrame frame;
+
+ public HorizontalLayoutGroup choicesParent;
+
+ public TFUIUpgradeChoice upgradeChoiceButtonPrefab;
+
+ public TextMeshProUGUI choiceTitle;
+
+ public TextMeshProUGUI choiceDescription;
+
+ private List<TFUIUpgradeChoice> choices = new List<TFUIUpgradeChoice>();
+
+ public void OnShow()
+ {
+ choices.Clear();
+ foreach (Transform item in choicesParent.transform)
+ {
+ Object.Destroy(item.gameObject);
+ }
+ foreach (Choice availableChoice in ChoiceManager.instance.availableChoices)
+ {
+ AddChoiceTFUI(choicesParent, availableChoice);
+ }
+ RecomputeNavigation();
+ }
+
+ private void AddChoiceTFUI(HorizontalLayoutGroup parent, Choice _choice)
+ {
+ TFUIUpgradeChoice component = Object.Instantiate(upgradeChoiceButtonPrefab, parent.transform).GetComponent<TFUIUpgradeChoice>();
+ component.SetData(_choice);
+ choices.Add(component);
+ }
+
+ private void RecomputeNavigation()
+ {
+ for (int i = 0; i < choices.Count; i++)
+ {
+ TFUIUpgradeChoice tFUIUpgradeChoice = choices[i];
+ if (i <= 0)
+ {
+ tFUIUpgradeChoice.leftNav = choices[choices.Count - 1];
+ }
+ else
+ {
+ tFUIUpgradeChoice.leftNav = choices[i - 1];
+ }
+ if (i >= choices.Count - 1)
+ {
+ tFUIUpgradeChoice.rightNav = choices[0];
+ }
+ else
+ {
+ tFUIUpgradeChoice.rightNav = choices[i + 1];
+ }
+ }
+ frame.firstSelected = choices[0];
+ }
+
+ public void UpdateSelectedChoice()
+ {
+ TFUIUpgradeChoice tFUIUpgradeChoice = null;
+ if (frame.CurrentFocus != null)
+ {
+ tFUIUpgradeChoice = frame.CurrentFocus as TFUIUpgradeChoice;
+ }
+ if (tFUIUpgradeChoice == null && frame.CurrentSelection != null)
+ {
+ tFUIUpgradeChoice = frame.CurrentSelection as TFUIUpgradeChoice;
+ }
+ if (tFUIUpgradeChoice != null)
+ {
+ if (!tFUIUpgradeChoice.Locked)
+ {
+ BuildSlot currentOriginBuildSlot = ChoiceManager.instance.currentOriginBuildSlot;
+ choiceTitle.text = LocalizationManager.GetTranslation(currentOriginBuildSlot.GET_LOCIDENTIFIER_CHOICENAME(tFUIUpgradeChoice.Data));
+ choiceDescription.text = LocalizationManager.GetTranslation(currentOriginBuildSlot.GET_LOCIDENTIFIER_CHOICEDESCRIPTION(tFUIUpgradeChoice.Data));
+ }
+ else
+ {
+ choiceTitle.text = LocalizationManager.GetTranslation("Menu/Locked");
+ choiceDescription.text = LocalizationManager.GetTranslation("Menu/Locked Choice Description");
+ }
+ }
+ }
+
+ public void OnApply()
+ {
+ TFUIUpgradeChoice tFUIUpgradeChoice = frame.LastApplied as TFUIUpgradeChoice;
+ if (!(tFUIUpgradeChoice == null) && !tFUIUpgradeChoice.Locked)
+ {
+ ChoiceManager.instance.choiceToReturn = tFUIUpgradeChoice.Data;
+ UIFrameManager.instance.CloseActiveFrame();
+ }
+ }
+}