diff options
Diffstat (limited to 'Thronefall_v1.0/Decompile/LevelBorder.cs')
-rw-r--r-- | Thronefall_v1.0/Decompile/LevelBorder.cs | 98 |
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()); + } + } +} |