summaryrefslogtreecommitdiff
path: root/Thronefall_v1.0/Decompile/UnitCommandRadiusAnimation.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_v1.0/Decompile/UnitCommandRadiusAnimation.cs')
-rw-r--r--Thronefall_v1.0/Decompile/UnitCommandRadiusAnimation.cs69
1 files changed, 69 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/UnitCommandRadiusAnimation.cs b/Thronefall_v1.0/Decompile/UnitCommandRadiusAnimation.cs
new file mode 100644
index 0000000..9549100
--- /dev/null
+++ b/Thronefall_v1.0/Decompile/UnitCommandRadiusAnimation.cs
@@ -0,0 +1,69 @@
+using System.Collections;
+using UnityEngine;
+
+public class UnitCommandRadiusAnimation : MonoBehaviour
+{
+ public AnimationCurve animationCurve;
+
+ public AnimationCurve hideCurve;
+
+ public float animationTime;
+
+ public float hideTime = 0.25f;
+
+ private bool active;
+
+ public bool Active => active;
+
+ private void Start()
+ {
+ if (!active)
+ {
+ base.gameObject.SetActive(value: false);
+ }
+ }
+
+ public void Activate()
+ {
+ active = true;
+ StopAllCoroutines();
+ base.gameObject.SetActive(value: true);
+ StartCoroutine(AnimateShow());
+ }
+
+ public void Deactivate()
+ {
+ active = false;
+ if (base.gameObject.activeSelf)
+ {
+ StopAllCoroutines();
+ StartCoroutine(AnimateHide());
+ }
+ }
+
+ private IEnumerator AnimateShow()
+ {
+ float timer = 0f;
+ while (timer <= animationTime)
+ {
+ timer += Time.deltaTime;
+ base.transform.localScale = Vector3.one * animationCurve.Evaluate(Mathf.InverseLerp(0f, animationTime, timer));
+ yield return null;
+ }
+ base.transform.localScale = Vector3.one;
+ }
+
+ private IEnumerator AnimateHide()
+ {
+ Debug.Log("START ANIMATION");
+ float timer = 0f;
+ while (timer <= hideTime)
+ {
+ timer += Time.deltaTime;
+ base.transform.localScale = Vector3.one * hideCurve.Evaluate(Mathf.InverseLerp(0f, hideTime, timer));
+ yield return null;
+ }
+ base.transform.localScale = Vector3.zero;
+ base.gameObject.SetActive(value: false);
+ }
+}