From 043cb16c9e6c6a36f65a559c87db87a76338d948 Mon Sep 17 00:00:00 2001
From: mikeleo03 <leonmichael463@gmail.com>
Date: Mon, 29 Apr 2024 10:02:18 +0700
Subject: [PATCH] feat : timer manager

---
 Assets/Scripts/GameManager.cs                | 14 +++++++
 Assets/Scripts/GameManager.cs.meta           | 11 +++++
 Assets/Scripts/Managers/GameOverManager.cs   |  2 +
 Assets/Scripts/Managers/TimerManager.cs      | 44 ++++++++++++++++++++
 Assets/Scripts/Managers/TimerManager.cs.meta | 11 +++++
 ProjectSettings/EditorBuildSettings.asset    |  3 ++
 6 files changed, 85 insertions(+)
 create mode 100644 Assets/Scripts/GameManager.cs
 create mode 100644 Assets/Scripts/GameManager.cs.meta
 create mode 100644 Assets/Scripts/Managers/TimerManager.cs
 create mode 100644 Assets/Scripts/Managers/TimerManager.cs.meta

diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs
new file mode 100644
index 0000000..410fa29
--- /dev/null
+++ b/Assets/Scripts/GameManager.cs
@@ -0,0 +1,14 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.SceneManagement;
+
+public class GameManager : MonoBehaviour {
+   public void startGame() {
+        SceneManager.LoadScene(1);
+   }
+
+    private void Awake() {
+        DontDestroyOnLoad(gameObject);
+    }
+}
diff --git a/Assets/Scripts/GameManager.cs.meta b/Assets/Scripts/GameManager.cs.meta
new file mode 100644
index 0000000..e89abaa
--- /dev/null
+++ b/Assets/Scripts/GameManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f885ef90267c9e34886fc0ff0361d2da
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/Managers/GameOverManager.cs b/Assets/Scripts/Managers/GameOverManager.cs
index 5cfed51..1ff72d8 100644
--- a/Assets/Scripts/Managers/GameOverManager.cs
+++ b/Assets/Scripts/Managers/GameOverManager.cs
@@ -7,6 +7,7 @@ namespace Nightmare
     public class GameOverManager : MonoBehaviour
     {
         private PlayerHealth playerHealth;
+        [SerializeField] private TimerManager timerManager;
         Animator anim;
 
         LevelManager lm;
@@ -28,6 +29,7 @@ namespace Nightmare
         void ShowGameOver()
         {
             anim.SetBool("GameOver", true);
+            timerManager.ResetTimer();
         }
 
         private void ResetLevel()
diff --git a/Assets/Scripts/Managers/TimerManager.cs b/Assets/Scripts/Managers/TimerManager.cs
new file mode 100644
index 0000000..98c905b
--- /dev/null
+++ b/Assets/Scripts/Managers/TimerManager.cs
@@ -0,0 +1,44 @@
+using System.Collections;
+using System.Collections.Generic;
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class TimerManager : MonoBehaviour {
+
+    public Text Timer;
+    private double time = 0;
+    private bool isRunning = false;
+
+    private void Awake() {
+        StartTimer();
+    }
+
+    // Update is called once per frame
+    void Update() {
+        if (isRunning) {
+            time = time + Time.deltaTime;
+        }
+        string timeText = System.TimeSpan.FromSeconds(time).ToString("mm':'ss");
+        Timer.text = timeText;
+    }
+
+    public void ResetTimer() {
+        time = 0;
+    }
+
+    public double TakeTime() {
+        StopTimer();
+        var r = time;
+        ResetTimer();
+        return r;
+    }
+
+    public void StartTimer() {
+        isRunning = true;
+    }
+
+    public void StopTimer() {
+        isRunning = false;
+    }
+}
diff --git a/Assets/Scripts/Managers/TimerManager.cs.meta b/Assets/Scripts/Managers/TimerManager.cs.meta
new file mode 100644
index 0000000..b3276fd
--- /dev/null
+++ b/Assets/Scripts/Managers/TimerManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ba9cb599a6b30804b9567e87aa4422e7
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset
index f1991a2..aa5dcc5 100644
--- a/ProjectSettings/EditorBuildSettings.asset
+++ b/ProjectSettings/EditorBuildSettings.asset
@@ -5,6 +5,9 @@ EditorBuildSettings:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Scenes:
+  - enabled: 1
+    path: Assets/Scenes/Menu.unity
+    guid: 36e3c5cd16db60e40bb73a4facc7eecd
   - enabled: 1
     path: Assets/Scenes/Main.unity
     guid: 11930b577543f644eb2aed6e2001fd38
-- 
GitLab