From cf8ea24b0ca79104b900e32e548c5fb0d555a33a Mon Sep 17 00:00:00 2001
From: ziegenf4 <ziegenf4@msu.edu>
Date: Sun, 7 Apr 2024 15:47:27 -0400
Subject: [PATCH] adding timer

---
 Assets/Prefabs/UI/Timer.prefab                | 151 ++++++++++++++++++
 Assets/Prefabs/UI/Timer.prefab.meta           |   7 +
 .../Finalized Scenes/LevelV1-Finalized.unity  | 112 ++++++++++++-
 Assets/Scripts/Game Systems/Timer.cs          |  25 +++
 Assets/Scripts/Game Systems/Timer.cs.meta     |  11 ++
 5 files changed, 305 insertions(+), 1 deletion(-)
 create mode 100644 Assets/Prefabs/UI/Timer.prefab
 create mode 100644 Assets/Prefabs/UI/Timer.prefab.meta
 create mode 100644 Assets/Scripts/Game Systems/Timer.cs
 create mode 100644 Assets/Scripts/Game Systems/Timer.cs.meta

diff --git a/Assets/Prefabs/UI/Timer.prefab b/Assets/Prefabs/UI/Timer.prefab
new file mode 100644
index 0000000..e2a5ab4
--- /dev/null
+++ b/Assets/Prefabs/UI/Timer.prefab
@@ -0,0 +1,151 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2137160592996659769
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7572637330722376441}
+  - component: {fileID: 477628193780030488}
+  - component: {fileID: 1941420676835940468}
+  - component: {fileID: 5423666487528666627}
+  m_Layer: 5
+  m_Name: Timer
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7572637330722376441
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2137160592996659769}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: -144}
+  m_SizeDelta: {x: 200, y: 50}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &477628193780030488
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2137160592996659769}
+  m_CullTransparentMesh: 1
+--- !u!114 &1941420676835940468
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2137160592996659769}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: New Text
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 36
+  m_fontSizeBase: 36
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 1
+  m_VerticalAlignment: 256
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!114 &5423666487528666627
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2137160592996659769}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e3b00fef8ee50404caa9bc80c9e2c8d1, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  timerText: {fileID: 1941420676835940468}
+  remainingTime: 300
diff --git a/Assets/Prefabs/UI/Timer.prefab.meta b/Assets/Prefabs/UI/Timer.prefab.meta
new file mode 100644
index 0000000..26fe1f8
--- /dev/null
+++ b/Assets/Prefabs/UI/Timer.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9efdc9c2a94b8a5478023b732d5aa5c5
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/Finalized Scenes/LevelV1-Finalized.unity b/Assets/Scenes/Finalized Scenes/LevelV1-Finalized.unity
index d07d01d..6e31c66 100644
--- a/Assets/Scenes/Finalized Scenes/LevelV1-Finalized.unity	
+++ b/Assets/Scenes/Finalized Scenes/LevelV1-Finalized.unity	
@@ -16235,9 +16235,17 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
-    m_AddedGameObjects: []
+    m_AddedGameObjects:
+    - targetCorrespondingSourceObject: {fileID: 267049304060646192, guid: 06692ad41b0a861469a27086300d9bd0, type: 3}
+      insertIndex: -1
+      addedObject: {fileID: 1851033580}
     m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 06692ad41b0a861469a27086300d9bd0, type: 3}
+--- !u!224 &1615970939 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 267049304060646192, guid: 06692ad41b0a861469a27086300d9bd0, type: 3}
+  m_PrefabInstance: {fileID: 1615970938}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1618479807
 GameObject:
   m_ObjectHideFlags: 0
@@ -18146,6 +18154,11 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 5128530458926381508, guid: 27582e192e140e44b8716432ed6f0d63, type: 3}
   m_PrefabInstance: {fileID: 1847084902}
   m_PrefabAsset: {fileID: 0}
+--- !u!224 &1851033580 stripped
+RectTransform:
+  m_CorrespondingSourceObject: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+  m_PrefabInstance: {fileID: 4108585882020976467}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1854262026
 GameObject:
   m_ObjectHideFlags: 0
@@ -39873,6 +39886,103 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 2130861646226648366, guid: 21fef04dd509042798bbb4ed0da0a14c, type: 3}
   m_PrefabInstance: {fileID: 2394050075307071305}
   m_PrefabAsset: {fileID: 0}
+--- !u!1001 &4108585882020976467
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    serializedVersion: 3
+    m_TransformParent: {fileID: 1615970939}
+    m_Modifications:
+    - target: {fileID: 2137160592996659769, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_Name
+      value: Timer
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_Pivot.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_Pivot.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0.5
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_SizeDelta.x
+      value: 200
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_SizeDelta.y
+      value: 50
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalPosition.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalRotation.w
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalRotation.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalRotation.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalRotation.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -144
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7572637330722376441, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
+  m_SourcePrefab: {fileID: 100100000, guid: 9efdc9c2a94b8a5478023b732d5aa5c5, type: 3}
 --- !u!1001 &6112966338389217776
 PrefabInstance:
   m_ObjectHideFlags: 0
diff --git a/Assets/Scripts/Game Systems/Timer.cs b/Assets/Scripts/Game Systems/Timer.cs
new file mode 100644
index 0000000..0d19977
--- /dev/null
+++ b/Assets/Scripts/Game Systems/Timer.cs	
@@ -0,0 +1,25 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using TMPro;
+
+public class Timer : MonoBehaviour
+{
+    [SerializeField]
+    private TextMeshProUGUI timerText;
+    [SerializeField]
+    private float remainingTime;
+
+    // Update is called once per frame
+    void Update()
+    {
+        remainingTime -= Time.deltaTime;
+        if (remainingTime < 0)
+        {
+            //gameover
+        }
+        int minutes = Mathf.FloorToInt(remainingTime / 60);
+        int seconds = Mathf.FloorToInt(remainingTime % 60);
+        timerText.text = string.Format("{0:00}:{1:00}", minutes, seconds);
+    }
+}
diff --git a/Assets/Scripts/Game Systems/Timer.cs.meta b/Assets/Scripts/Game Systems/Timer.cs.meta
new file mode 100644
index 0000000..c24c46c
--- /dev/null
+++ b/Assets/Scripts/Game Systems/Timer.cs.meta	
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e3b00fef8ee50404caa9bc80c9e2c8d1
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
-- 
GitLab