summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/LevelBorder.cs
blob: 7bc2eff589b41ce07434d1ece65f240011c514d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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());
		}
	}
}