summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/AfterMatchUIManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/AfterMatchUIManager.cs')
-rw-r--r--Thronefall_v1.0/Decompile/AfterMatchUIManager.cs251
1 files changed, 251 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/AfterMatchUIManager.cs b/Thronefall_v1.0/Decompile/AfterMatchUIManager.cs
new file mode 100644
index 0000000..1310934
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/AfterMatchUIManager.cs
@@ -0,0 +1,251 @@
+using System.Collections;
+using Rewired;
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class AfterMatchUIManager : MonoBehaviour
+{
+ [Header("Score Screen")]
+ [SerializeField]
+ private GameObject scoreScreenUI;
+
+ [SerializeField]
+ private TMP_Text ingameHighscore;
+
+ [SerializeField]
+ private TMP_Text goldBonus;
+
+ [SerializeField]
+ private TMP_Text mutationBonus;
+
+ [SerializeField]
+ private TMP_Text totalScore;
+
+ [SerializeField]
+ private GameObject newPersonalBest;
+
+ [Header("Graphs")]
+ [SerializeField]
+ private GameObject graphs;
+
+ [SerializeField]
+ private GraphDrawer graphDrawerA;
+
+ [SerializeField]
+ private GraphDrawer graphDrawerB;
+
+ [Header("Leveling")]
+ [SerializeField]
+ private GameObject levelingProgressUI;
+
+ [SerializeField]
+ private TMP_Text currentLevelTxt1;
+
+ [SerializeField]
+ private RectTransform levelingBarBack;
+
+ [SerializeField]
+ private RectTransform levelingBarFront;
+
+ [SerializeField]
+ private TMP_Text xpDisplay;
+
+ [SerializeField]
+ private Image rewardPreview1;
+
+ [Header("Rewards")]
+ [SerializeField]
+ private GameObject rewardDisplayUI;
+
+ [SerializeField]
+ private TMP_Text currentLevelTxt2;
+
+ [SerializeField]
+ private Image rewardPreview2;
+
+ [SerializeField]
+ private TMP_Text itemName;
+
+ [SerializeField]
+ private TMP_Text itemDescription;
+
+ [Header("Max Level")]
+ [SerializeField]
+ private GameObject maxLevelReachedUI;
+
+ [SerializeField]
+ private GameObject demoLockedUI;
+
+ [Header("Settings")]
+ [SerializeField]
+ private float timeToFillUpABar = 5f;
+
+ [SerializeField]
+ private float waitAtBeginning = 0.25f;
+
+ [SerializeField]
+ private float waitAfterFillingUpABar = 0.25f;
+
+ [SerializeField]
+ private float waitBeforeYouCanInteract = 0.25f;
+
+ private PerkManager perkManager;
+
+ private MetaLevel nextMetaLevel;
+
+ private Player input;
+
+ private void Start()
+ {
+ perkManager = PerkManager.instance;
+ StartCoroutine(ShowRewards());
+ input = ReInput.players.GetPlayer(0);
+ }
+
+ private IEnumerator ShowRewards()
+ {
+ EnableScoreUI();
+ ingameHighscore.text = SceneTransitionManager.instance.IngameScoreFromLastMatch.ToString();
+ goldBonus.text = "+" + SceneTransitionManager.instance.GoldBonusScoreFromLastMatch;
+ mutationBonus.text = "+" + SceneTransitionManager.instance.MutatorBonusScoreFromLastMatch;
+ totalScore.text = SceneTransitionManager.instance.TotalScoreFromLastMatch.ToString();
+ newPersonalBest.SetActive(SceneTransitionManager.instance.TotalScoreFromLastMatchIsNewPersonalRecord);
+ yield return new WaitForSeconds(waitAtBeginning);
+ while (!input.GetButtonDown("Interact"))
+ {
+ yield return null;
+ }
+ int xpToGive = SceneTransitionManager.instance.TotalScoreFromLastMatch;
+ yield return SelectNextMetaLevel();
+ EnableLevelingProgressUI();
+ currentLevelTxt1.text = "Level " + perkManager.level;
+ rewardPreview1.sprite = nextMetaLevel.reward.icon;
+ UpdateLevelingBar();
+ yield return new WaitForSeconds(waitAtBeginning);
+ float xPTrickleSpeed = (float)nextMetaLevel.requiredXp / timeToFillUpABar;
+ float xpTrickle = 0f;
+ while (xpToGive > 0)
+ {
+ xpTrickle += xPTrickleSpeed * Time.deltaTime;
+ int num = (int)xpTrickle;
+ xpTrickle -= (float)num;
+ xpToGive -= num;
+ if (xpToGive < 0)
+ {
+ num -= xpToGive;
+ }
+ perkManager.xp += num;
+ UpdateLevelingBar();
+ if (perkManager.xp >= nextMetaLevel.requiredXp)
+ {
+ yield return new WaitForSeconds(waitAfterFillingUpABar);
+ EnableRewardDisplayUI();
+ currentLevelTxt2.text = "Level " + (1 + perkManager.level);
+ rewardPreview2.sprite = nextMetaLevel.reward.icon;
+ itemName.text = nextMetaLevel.reward.displayName;
+ itemDescription.text = nextMetaLevel.reward.description;
+ yield return new WaitForSeconds(waitBeforeYouCanInteract);
+ while (!input.GetButtonDown("Interact"))
+ {
+ yield return null;
+ }
+ perkManager.xp -= nextMetaLevel.requiredXp;
+ perkManager.UnlockedEquippables.Add(nextMetaLevel.reward);
+ perkManager.level++;
+ yield return SelectNextMetaLevel();
+ xPTrickleSpeed = (float)nextMetaLevel.requiredXp / timeToFillUpABar;
+ currentLevelTxt1.text = "Level " + perkManager.level;
+ rewardPreview1.sprite = nextMetaLevel.reward.icon;
+ EnableLevelingProgressUI();
+ }
+ yield return null;
+ }
+ yield return null;
+ while (!input.GetButtonDown("Interact"))
+ {
+ yield return null;
+ }
+ LevelProgressManager.instance.GetLevelDataForScene(SceneTransitionManager.instance.ComingFromGameplayScene).SaveScoreAndStatsToBestIfBest(_endOfMatch: true);
+ SteamManager.Instance.UploadHighscore(SceneTransitionManager.instance.TotalScoreFromLastMatch, SceneTransitionManager.instance.ComingFromGameplayScene);
+ SaveLoadManager.instance.SaveGame();
+ SceneTransitionManager.instance.TransitionFromEndScreenToLevelSelect();
+ }
+
+ private IEnumerator SelectNextMetaLevel()
+ {
+ nextMetaLevel = perkManager.NextMetaLevel;
+ if (nextMetaLevel == null)
+ {
+ EnableMaxLevelReachedUI();
+ yield return new WaitForSeconds(waitBeforeYouCanInteract);
+ while (!input.GetButtonDown("Interact"))
+ {
+ yield return null;
+ }
+ SceneTransitionManager.instance.TransitionFromEndScreenToLevelSelect();
+ StopAllCoroutines();
+ yield return null;
+ }
+ }
+
+ private void DisableAllUI()
+ {
+ levelingProgressUI.SetActive(value: false);
+ rewardDisplayUI.SetActive(value: false);
+ maxLevelReachedUI.SetActive(value: false);
+ graphs.SetActive(value: false);
+ scoreScreenUI.SetActive(value: false);
+ demoLockedUI.SetActive(value: false);
+ }
+
+ private void EnableLevelingProgressUI()
+ {
+ DisableAllUI();
+ levelingProgressUI.SetActive(value: true);
+ }
+
+ private void EnableRewardDisplayUI()
+ {
+ DisableAllUI();
+ rewardDisplayUI.SetActive(value: true);
+ }
+
+ private void EnableMaxLevelReachedUI()
+ {
+ DisableAllUI();
+ maxLevelReachedUI.SetActive(value: true);
+ }
+
+ private void EnableDemoLockedUI()
+ {
+ DisableAllUI();
+ demoLockedUI.SetActive(value: true);
+ }
+
+ private void EnableGraphsUI()
+ {
+ DisableAllUI();
+ graphs.SetActive(value: false);
+ }
+
+ private void EnableScoreUI()
+ {
+ DisableAllUI();
+ scoreScreenUI.SetActive(value: true);
+ }
+
+ private void UpdateLevelingBar()
+ {
+ xpDisplay.text = perkManager.xp + " / " + nextMetaLevel.requiredXp;
+ SetLevelingParPercentage((float)perkManager.xp / (float)nextMetaLevel.requiredXp);
+ }
+
+ private void SetLevelingParPercentage(float _percentage)
+ {
+ float width = levelingBarBack.rect.width;
+ float num = width * _percentage;
+ levelingBarFront.localScale = new Vector3(_percentage, 1f, 1f);
+ levelingBarFront.localPosition = new Vector3(num / 2f - width / 2f, 0f, 0f);
+ }
+}