diff options
author | Mikkel Bybjerg <mikkel.bybjerg@hotmail.com> | 2019-04-27 18:08:57 +0200 |
---|---|---|
committer | Mikkel Bybjerg <mikkel.bybjerg@hotmail.com> | 2019-04-27 18:08:57 +0200 |
commit | 0f510216cac75c8a5e69e86f9009eaf4f338b889 (patch) | |
tree | 83c64ef455f6acce8fdaa3e3ae95a85049b0dba4 /nGJ2019/Assets/Scripts | |
parent | 27dcfd09f51191196f44da030ce68338ac09e6b3 (diff) | |
parent | 53a8d342ee667d1b28c1dc1e173ad73338a930b9 (diff) |
merge
Diffstat (limited to 'nGJ2019/Assets/Scripts')
-rw-r--r-- | nGJ2019/Assets/Scripts/EventTimeline.cs | 28 | ||||
-rw-r--r-- | nGJ2019/Assets/Scripts/Messenger.cs | 33 | ||||
-rw-r--r-- | nGJ2019/Assets/Scripts/ObstacleSpawner.cs | 6 |
3 files changed, 66 insertions, 1 deletions
diff --git a/nGJ2019/Assets/Scripts/EventTimeline.cs b/nGJ2019/Assets/Scripts/EventTimeline.cs index 21b0bdb..b864ae7 100644 --- a/nGJ2019/Assets/Scripts/EventTimeline.cs +++ b/nGJ2019/Assets/Scripts/EventTimeline.cs @@ -17,15 +17,30 @@ public class EventTimeline this.type = type; } } + + public class MessageEvent + { + public float time; + public String message; + + public MessageEvent(float time, String message) + { + this.time = time; + this.message = message; + } + } public event Action<SpawnEvent> OnSpawnEvent; + public event Action<MessageEvent> OnMessageEvent; private List<SpawnEvent> futureEvents; + private List<MessageEvent> futureMessages; private float currentTime; public EventTimeline() { futureEvents = new List<SpawnEvent>(); + futureMessages = new List<MessageEvent>(); currentTime = 0; } @@ -34,17 +49,28 @@ public class EventTimeline futureEvents.Add(new SpawnEvent(time, height, type)); futureEvents.Sort((x,y) => x.time.CompareTo(y.time)); } + + public void Add(float time, String message) + { + futureMessages.Add(new MessageEvent(time, message)); + futureMessages.Sort((x,y) => x.time.CompareTo(y.time)); + } public void timeTick(float deltaTime) { currentTime += deltaTime; - while(futureEvents.Count > 0 && currentTime > futureEvents[0].time) + while(futureEvents.Count > 0 && currentTime > futureEvents[0].time && futureMessages.Count > 0 && currentTime > futureMessages[0].time) { SpawnEvent e = futureEvents[0]; futureEvents.RemoveAt(0); if(OnSpawnEvent != null) OnSpawnEvent(e); + + MessageEvent m = futureMessages[0]; + futureMessages.RemoveAt(0); + if(OnMessageEvent != null) + OnMessageEvent(m); } } } diff --git a/nGJ2019/Assets/Scripts/Messenger.cs b/nGJ2019/Assets/Scripts/Messenger.cs new file mode 100644 index 0000000..ca2ffe1 --- /dev/null +++ b/nGJ2019/Assets/Scripts/Messenger.cs @@ -0,0 +1,33 @@ +using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class Messenger : MonoBehaviour
+{
+ public Text MainText;
+ public ObstacleSpawner Spawner;
+ private EventTimeline timeline;
+
+ // Start is called before the first frame update
+ void Start()
+ {
+ timeline = Spawner.GetEventTimeline();
+
+ timeline.Add(1, "Test");
+
+ timeline.OnMessageEvent += MessageOnEvent;
+ }
+
+ // Update is called once per frame
+ void Update()
+ {
+
+ }
+
+ void MessageOnEvent(EventTimeline.MessageEvent e)
+ {
+ MainText.text = e.message;
+ }
+}
diff --git a/nGJ2019/Assets/Scripts/ObstacleSpawner.cs b/nGJ2019/Assets/Scripts/ObstacleSpawner.cs index c285352..f438e85 100644 --- a/nGJ2019/Assets/Scripts/ObstacleSpawner.cs +++ b/nGJ2019/Assets/Scripts/ObstacleSpawner.cs @@ -8,6 +8,7 @@ public class ObstacleSpawner : MonoBehaviour public GameObject caveWallsPrefab, rockTopPrefab, rockBottomPrefab, narrowPassagePrefab, rockJawsPrefab; public LevelScrolling scrolling; + public Messenger messenger; public float spawnLine; @@ -63,4 +64,9 @@ public class ObstacleSpawner : MonoBehaviour Gizmos.color = Color.green; Gizmos.DrawLine(new Vector3(spawnLine, -10, 0), new Vector3(spawnLine, 10, 0)); } + + public EventTimeline GetEventTimeline() + { + return timeline; + } } |