summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/LevelBorder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/LevelBorder.cs')
-rw-r--r--Thronefall_v1.0/Decompile/LevelBorder.cs98
1 files changed, 98 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/LevelBorder.cs b/Thronefall_v1.0/Decompile/LevelBorder.cs
new file mode 100644
index 0000000..7bc2eff
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/LevelBorder.cs
@@ -0,0 +1,98 @@
+using System.Collections;
+using Shapes;
+using UnityEngine;
+
+public class LevelBorder : MonoBehaviour
+{
+ public BoxCollider boxCol;
+
+ public float fadeInDistance;
+
+ public Line line;
+
+ private readonly float tickTime = 0.5f;
+
+ private readonly float fadeTime = 0.75f;
+
+ private float timer;
+
+ private bool fadedIn;
+
+ private Transform target;
+
+ private Color defaultColor;
+
+ private Color fadeOutColor;
+
+ private Coroutine currentFade;
+
+ private void Start()
+ {
+ target = TagManager.instance.Players[0].transform;
+ defaultColor = line.Color;
+ fadeOutColor = defaultColor;
+ fadeOutColor.a = 0f;
+ line.Color = fadeOutColor;
+ }
+
+ private void Update()
+ {
+ timer += Time.deltaTime;
+ if (!(timer >= tickTime))
+ {
+ return;
+ }
+ timer = 0f;
+ float num = Vector3.Distance(target.position, boxCol.ClosestPoint(target.position));
+ if (fadedIn && num > fadeInDistance)
+ {
+ if (currentFade == null)
+ {
+ currentFade = StartCoroutine(FadeOut());
+ }
+ fadedIn = false;
+ }
+ else if (!fadedIn && num <= fadeInDistance)
+ {
+ if (currentFade == null)
+ {
+ currentFade = StartCoroutine(FadeIn());
+ }
+ fadedIn = true;
+ }
+ }
+
+ private IEnumerator FadeIn()
+ {
+ float timer = 0f;
+ while (timer <= fadeTime)
+ {
+ timer += Time.deltaTime;
+ line.Color = Color.Lerp(fadeOutColor, defaultColor, timer / fadeTime);
+ yield return null;
+ }
+ line.Color = defaultColor;
+ currentFade = null;
+ if (!fadedIn)
+ {
+ currentFade = StartCoroutine(FadeOut());
+ }
+ }
+
+ private IEnumerator FadeOut()
+ {
+ float timer = 0f;
+ while (timer <= fadeTime)
+ {
+ timer += Time.deltaTime;
+ line.Color = Color.Lerp(defaultColor, fadeOutColor, timer / fadeTime);
+ yield return null;
+ }
+ line.Color = fadeOutColor;
+ currentFade = null;
+ if (fadedIn)
+ {
+ currentFade = StartCoroutine(FadeIn());
+ }
+ }
+}