summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/NightscoreUI.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/NightscoreUI.cs')
-rw-r--r--Thronefall_v1.0/Decompile/NightscoreUI.cs295
1 files changed, 295 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/NightscoreUI.cs b/Thronefall_v1.0/Decompile/NightscoreUI.cs
new file mode 100644
index 0000000..7150c48
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/NightscoreUI.cs
@@ -0,0 +1,295 @@
+using System.Collections;
+using I2.Loc;
+using MPUIKIT;
+using TMPro;
+using UnityEngine;
+
+public class NightscoreUI : MonoBehaviour
+{
+ public GameObject nightScorePanel;
+
+ public TextMeshProUGUI baseScore;
+
+ public TextMeshProUGUI timeBonus;
+
+ public TextMeshProUGUI protectionPercentage;
+
+ public TextMeshProUGUI protectionScore;
+
+ public TextMeshProUGUI overallScore;
+
+ public AudioSource pointSFXSource;
+
+ [Header("ANIMATION")]
+ public MPImage backgroundImage;
+
+ public RectTransform content;
+
+ public RectTransform nightSurviveText;
+
+ public RectTransform nightSurviveNumber;
+
+ public RectTransform timeText;
+
+ public RectTransform timeNumber;
+
+ public RectTransform protectionText;
+
+ public RectTransform protectionNumber;
+
+ public RectTransform overallScoreBG;
+
+ public RectTransform overallScoreNumber;
+
+ public AnimationCurve popCurve;
+
+ public AnimationCurve expandCurve;
+
+ public AnimationCurve bumpCurve;
+
+ public AnimationCurve simpleQuad;
+
+ public static NightscoreUI instance;
+
+ private float initialWaitTime = 3f;
+
+ private float completeWaitTime = 3f;
+
+ private float buildUpSFXVol = 0.8f;
+
+ private float clock;
+
+ private bool shown;
+
+ private void Awake()
+ {
+ instance = this;
+ }
+
+ private void Start()
+ {
+ nightScorePanel.SetActive(value: false);
+ ScoreManager.Instance.OnNightScoreAdd.AddListener(ShowNightScore);
+ UIFrameManager.instance.onFrameOpen.AddListener(StopPointFillSoundOnPause);
+ }
+
+ private void StopPointFillSoundOnPause()
+ {
+ pointSFXSource.Stop();
+ }
+
+ public void ShowNightScore(int _baseScore, int _timeBonus, float _protectionPercentage, int _protectionBonus)
+ {
+ if (EnemySpawner.instance.Wavenumber < EnemySpawner.instance.waves.Count - 1)
+ {
+ shown = true;
+ StopAllCoroutines();
+ clock = 0f;
+ StartCoroutine(PlayPopUpAnimation(_baseScore, _timeBonus, _protectionPercentage, _protectionBonus));
+ }
+ }
+
+ public void HideNightScore()
+ {
+ shown = false;
+ pointSFXSource.Stop();
+ StopAllCoroutines();
+ StartCoroutine(PlayHideAnimation());
+ }
+
+ private IEnumerator PlayPopUpAnimation(int basescore, int timebonus, float protectionpercent, int protectionbonus)
+ {
+ nightScorePanel.SetActive(value: true);
+ Vector2 contentSizeDelta = content.sizeDelta;
+ int currentScore = ScoreManager.Instance.CurrentScore - basescore - timebonus - protectionbonus;
+ int nextScore = currentScore;
+ baseScore.text = "+" + basescore;
+ timeBonus.text = "+" + timebonus;
+ protectionPercentage.text = LocalizationManager.GetTranslation("Menu/Realm") + " " + Mathf.RoundToInt(protectionpercent * 100f) + "% " + LocalizationManager.GetTranslation("Menu/Protected");
+ protectionScore.text = "+" + protectionbonus;
+ overallScore.text = currentScore.ToString();
+ contentSizeDelta.y = 0f;
+ content.sizeDelta = contentSizeDelta;
+ nightSurviveText.localScale = Vector3.zero;
+ nightSurviveNumber.localScale = Vector3.zero;
+ timeText.localScale = Vector3.zero;
+ timeNumber.localScale = Vector3.zero;
+ protectionText.localScale = Vector3.zero;
+ protectionNumber.localScale = Vector3.zero;
+ overallScoreBG.localScale = Vector3.zero;
+ overallScoreNumber.localScale = Vector3.zero;
+ yield return new WaitForSeconds(initialWaitTime);
+ float animTime2 = 0.5f;
+ float timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ overallScoreBG.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ overallScoreNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ overallScoreBG.localScale = Vector3.one;
+ overallScoreNumber.localScale = Vector3.one;
+ yield return new WaitForSeconds(0.25f);
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
+ animTime2 = 0.5f;
+ timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ content.sizeDelta = contentSizeDelta + Vector2.up * 55f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ content.sizeDelta = contentSizeDelta + Vector2.up * 55f;
+ contentSizeDelta = content.sizeDelta;
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, buildUpSFXVol);
+ animTime2 = 0.5f;
+ timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ nightSurviveText.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ nightSurviveNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ nightSurviveText.localScale = Vector3.one;
+ nightSurviveNumber.localScale = Vector3.one;
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
+ animTime2 = 0.5f;
+ timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ content.sizeDelta = contentSizeDelta + Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ content.sizeDelta = contentSizeDelta + Vector2.up * 30f;
+ contentSizeDelta = content.sizeDelta;
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, buildUpSFXVol);
+ animTime2 = 0.5f;
+ timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ protectionText.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ protectionNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ protectionText.localScale = Vector3.one;
+ protectionNumber.localScale = Vector3.one;
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
+ animTime2 = 0.5f;
+ timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ content.sizeDelta = contentSizeDelta + Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ content.sizeDelta = contentSizeDelta + Vector2.up * 30f;
+ _ = content.sizeDelta;
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, buildUpSFXVol);
+ animTime2 = 0.5f;
+ timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ timeText.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ timeNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ timeText.localScale = Vector3.one;
+ timeNumber.localScale = Vector3.one;
+ pointSFXSource.Play();
+ animTime2 = 1.5f;
+ timer2 = 0f;
+ nextScore += basescore + protectionbonus + timebonus;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ overallScore.text = Mathf.RoundToInt(Mathf.Lerp(currentScore, nextScore, Mathf.InverseLerp(0f, animTime2, timer2))).ToString();
+ yield return null;
+ }
+ currentScore = nextScore;
+ overallScore.text = currentScore.ToString();
+ pointSFXSource.Stop();
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointLockInMinor);
+ animTime2 = 0.5f;
+ timer2 = 0f;
+ while (timer2 < animTime2)
+ {
+ timer2 += Time.deltaTime;
+ overallScoreBG.localScale = Vector3.one * bumpCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
+ yield return null;
+ }
+ overallScoreBG.localScale = Vector3.one;
+ yield return new WaitForSeconds(completeWaitTime);
+ HideNightScore();
+ }
+
+ private IEnumerator PlayHideAnimation()
+ {
+ pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
+ Vector2 contentSizeDelta3 = content.sizeDelta;
+ nightSurviveText.localScale = Vector3.one;
+ nightSurviveNumber.localScale = Vector3.one;
+ timeText.localScale = Vector3.one;
+ timeNumber.localScale = Vector3.one;
+ protectionText.localScale = Vector3.one;
+ protectionNumber.localScale = Vector3.one;
+ overallScoreBG.localScale = Vector3.one;
+ overallScoreNumber.localScale = Vector3.one;
+ timeText.localScale = Vector3.zero;
+ timeNumber.localScale = Vector3.zero;
+ float animTime4 = 0.4f;
+ float timer4 = 0f;
+ while (timer4 < animTime4)
+ {
+ timer4 += Time.deltaTime;
+ content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime4, timer4));
+ yield return null;
+ }
+ content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f;
+ contentSizeDelta3 = content.sizeDelta;
+ protectionText.localScale = Vector3.zero;
+ protectionNumber.localScale = Vector3.zero;
+ animTime4 = 0.4f;
+ timer4 = 0f;
+ while (timer4 < animTime4)
+ {
+ timer4 += Time.deltaTime;
+ content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime4, timer4));
+ yield return null;
+ }
+ content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f;
+ contentSizeDelta3 = content.sizeDelta;
+ nightSurviveText.localScale = Vector3.zero;
+ nightSurviveNumber.localScale = Vector3.zero;
+ animTime4 = 0.4f;
+ timer4 = 0f;
+ while (timer4 < animTime4)
+ {
+ timer4 += Time.deltaTime;
+ if (Mathf.InverseLerp(0f, animTime4, timer4) > 0.425f)
+ {
+ backgroundImage.enabled = false;
+ }
+ content.sizeDelta = contentSizeDelta3 - Vector2.up * 55f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime4, timer4));
+ yield return null;
+ }
+ content.sizeDelta = contentSizeDelta3 - Vector2.up * 55f;
+ backgroundImage.enabled = true;
+ animTime4 = 0.2f;
+ timer4 = 0f;
+ while (timer4 < animTime4)
+ {
+ timer4 += Time.deltaTime;
+ overallScoreNumber.localScale = Vector3.one * simpleQuad.Evaluate(Mathf.InverseLerp(animTime4, 0f, timer4));
+ overallScoreBG.localScale = Vector3.one * simpleQuad.Evaluate(Mathf.InverseLerp(animTime4, 0f, timer4));
+ yield return null;
+ }
+ overallScoreNumber.localScale = Vector3.zero;
+ overallScoreBG.localScale = Vector2.zero;
+ nightScorePanel.SetActive(value: false);
+ }
+}