summaryrefslogtreecommitdiff
path: root/ROUNDS/DelayEvent.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ROUNDS/DelayEvent.cs')
-rw-r--r--ROUNDS/DelayEvent.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/ROUNDS/DelayEvent.cs b/ROUNDS/DelayEvent.cs
new file mode 100644
index 0000000..0ebea56
--- /dev/null
+++ b/ROUNDS/DelayEvent.cs
@@ -0,0 +1,61 @@
+using System.Collections;
+using UnityEngine;
+using UnityEngine.Events;
+
+public class DelayEvent : MonoBehaviour
+{
+ public UnityEvent delayedEvent;
+
+ public float time = 1f;
+
+ public bool auto;
+
+ public bool repeating;
+
+ public bool usedTimeScale = true;
+
+ private void Start()
+ {
+ CodeAnimation componentInParent = GetComponentInParent<CodeAnimation>();
+ if ((bool)componentInParent)
+ {
+ time /= componentInParent.animations[0].animationSpeed;
+ }
+ if (auto)
+ {
+ Go();
+ }
+ }
+
+ public void Go()
+ {
+ StartCoroutine(DelayEventCall());
+ }
+
+ private IEnumerator DelayEventCall()
+ {
+ yield return 1;
+ if (usedTimeScale)
+ {
+ yield return new WaitForSeconds(time);
+ }
+ else
+ {
+ yield return new WaitForSecondsRealtime(time);
+ }
+ if (base.enabled)
+ {
+ delayedEvent.Invoke();
+ if (repeating)
+ {
+ Go();
+ }
+ }
+ }
+
+ public void DoEvent()
+ {
+ StopAllCoroutines();
+ delayedEvent.Invoke();
+ }
+}