summaryrefslogtreecommitdiff
path: root/GameCode/GM_Test.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/GM_Test.cs')
-rw-r--r--GameCode/GM_Test.cs71
1 files changed, 71 insertions, 0 deletions
diff --git a/GameCode/GM_Test.cs b/GameCode/GM_Test.cs
new file mode 100644
index 0000000..b5d7ef6
--- /dev/null
+++ b/GameCode/GM_Test.cs
@@ -0,0 +1,71 @@
+using System;
+using System.Collections;
+using UnityEngine;
+
+public class GM_Test : MonoBehaviour
+{
+ public bool testMap;
+
+ public static GM_Test instance;
+
+ private void Awake()
+ {
+ instance = this;
+ if (base.gameObject.activeSelf && !Application.isEditor)
+ {
+ testMap = false;
+ }
+ }
+
+ private void Start()
+ {
+ if (testMap)
+ {
+ base.transform.root.GetComponent<SetOfflineMode>().SetOffline();
+ }
+ if (testMap)
+ {
+ MapManager.instance.isTestingMap = true;
+ }
+ if (base.gameObject.activeSelf)
+ {
+ if (!testMap)
+ {
+ MapManager.instance.LoadNextLevel(callInImidetly: true, forceLoad: true);
+ }
+ else
+ {
+ MapManager.instance.currentMap = new MapWrapper(UnityEngine.Object.FindObjectOfType<Map>(), UnityEngine.Object.FindObjectOfType<Map>().gameObject.scene);
+ ArtHandler.instance.NextArt();
+ }
+ PlayerAssigner.instance.SetPlayersCanJoin(canJoin: true);
+ TimeHandler.instance.StartGame();
+ PlayerManager playerManager = PlayerManager.instance;
+ playerManager.PlayerJoinedAction = (Action<Player>)Delegate.Combine(playerManager.PlayerJoinedAction, new Action<Player>(PlayerWasAdded));
+ PlayerManager.instance.AddPlayerDiedAction(PlayerDied);
+ GameManager.instance.isPlaying = true;
+ GameManager.instance.battleOngoing = true;
+ }
+ }
+
+ private void PlayerWasAdded(Player player)
+ {
+ PlayerManager.instance.SetPlayersSimulated(simulated: true);
+ player.data.GetComponent<PlayerCollision>().IgnoreWallForFrames(2);
+ player.transform.position = MapManager.instance.currentMap.Map.GetRandomSpawnPos();
+ PlayerManager.instance.SetPlayersSimulated(simulated: true);
+ PlayerManager.instance.SetPlayersPlaying(playing: true);
+ }
+
+ private void PlayerDied(Player player, int unused)
+ {
+ StartCoroutine(DelayRevive(player));
+ }
+
+ private IEnumerator DelayRevive(Player player)
+ {
+ yield return new WaitForSecondsRealtime(2.5f);
+ PlayerWasAdded(player);
+ player.data.healthHandler.Revive();
+ }
+}