summaryrefslogtreecommitdiff
path: root/Thronefall_1_0/Decompile/LevelBorder.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-19 16:46:27 +0800
committerchai <215380520@qq.com>2024-05-19 16:46:27 +0800
commit8b1fc7063b387542803c6bc214ccf8acb32870bd (patch)
treed310eb99872c8215f1c1f67731ec21f0915cd778 /Thronefall_1_0/Decompile/LevelBorder.cs
parent8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (diff)
* rename
Diffstat (limited to 'Thronefall_1_0/Decompile/LevelBorder.cs')
-rw-r--r--Thronefall_1_0/Decompile/LevelBorder.cs98
1 files changed, 98 insertions, 0 deletions
diff --git a/Thronefall_1_0/Decompile/LevelBorder.cs b/Thronefall_1_0/Decompile/LevelBorder.cs
new file mode 100644
index 0000000..7bc2eff
--- /dev/null
+++ b/Thronefall_1_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());
+ }
+ }
+}