From 7aa325cccce3753b3699be9aa9d5825ade3f68f7 Mon Sep 17 00:00:00 2001 From: ProtoSharkk Date: Sat, 19 Oct 2024 20:52:47 -0700 Subject: [PATCH] Add GameState to keep track of state and wave # --- Assets/GameState.cs | 36 +++++ Assets/GameState.cs.meta | 2 + Assets/Ratbot.cs | 4 +- Assets/Ratbot.prefab | 1 + Assets/Scenes/SampleScene.unity | 230 +++++++------------------------- Assets/Teo.cs | 2 + README.md | 2 +- 7 files changed, 95 insertions(+), 182 deletions(-) create mode 100644 Assets/GameState.cs create mode 100644 Assets/GameState.cs.meta diff --git a/Assets/GameState.cs b/Assets/GameState.cs new file mode 100644 index 0000000..9640ad5 --- /dev/null +++ b/Assets/GameState.cs @@ -0,0 +1,36 @@ +using UnityEngine; + +public class GameState : MonoBehaviour +{ + public string state; + public uint wave = 1; + public GameObject ratbot; + + void Start() { + NewWave(); + } + + // Update is called once per frame + void Update() + { + if (GameObject.FindGameObjectsWithTag("Ratbot").Length == 0 && state == "WAVE") { + OpenShop(); + } + } + void OpenShop() { + state = "SHOP"; + NewWave(); + } + void CloseShop() { + + } + public void NewWave() { + state = "WAVE"; + Vector3 position = GameObject.FindGameObjectWithTag("Player").transform.position; + for (uint _ = 0; _ < wave; _++) { + GameObject newRatbot = Instantiate(ratbot); + newRatbot.GetComponent().damageStrength = 5+wave*5; + } + wave++; + } +} diff --git a/Assets/GameState.cs.meta b/Assets/GameState.cs.meta new file mode 100644 index 0000000..e37beb4 --- /dev/null +++ b/Assets/GameState.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 58ed146781c2cc8bd972920fd08533fe \ No newline at end of file diff --git a/Assets/Ratbot.cs b/Assets/Ratbot.cs index d88e48b..687c447 100644 --- a/Assets/Ratbot.cs +++ b/Assets/Ratbot.cs @@ -5,12 +5,14 @@ public class Ratbot : MonoBehaviour public float moveSpeed; public float damageStrength; public float damageTimeoutSeconds; - GameObject player; float lastDamageTime; + GameState gameState; + GameObject player; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { player = GameObject.FindGameObjectWithTag("Player"); + gameState = GameObject.FindGameObjectWithTag("GameController").GetComponent(); } // Update is called once per frame diff --git a/Assets/Ratbot.prefab b/Assets/Ratbot.prefab index 15f1485..cd78b22 100644 --- a/Assets/Ratbot.prefab +++ b/Assets/Ratbot.prefab @@ -103,6 +103,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: moveSpeed: 9.3 + damageStrength: 10 damageTimeoutSeconds: 0.5 --- !u!61 &8441426735084966298 BoxCollider2D: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 3359641..38fcc7e 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -263,11 +263,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4154134366646162009, guid: e05928a0d673caf999d31b31b994a112, type: 3} propertyPath: m_LocalPosition.x - value: -0.27 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4154134366646162009, guid: e05928a0d673caf999d31b31b994a112, type: 3} propertyPath: m_LocalPosition.y - value: 2.97 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4154134366646162009, guid: e05928a0d673caf999d31b31b994a112, type: 3} propertyPath: m_LocalPosition.z @@ -322,63 +322,6 @@ PrefabInstance: insertIndex: 1 addedObject: {fileID: 977303808} m_SourcePrefab: {fileID: 100100000, guid: e05928a0d673caf999d31b31b994a112, type: 3} ---- !u!1001 &495190811 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 398740452138961375, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_Name - value: Ratbot (1) - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.x - value: -3.279233 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.y - value: -6.18562 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} --- !u!1 &499417877 GameObject: m_ObjectHideFlags: 0 @@ -542,6 +485,53 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &745837567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 745837569} + - component: {fileID: 745837568} + m_Layer: 0 + m_Name: GameState + m_TagString: GameController + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &745837568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 745837567} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 58ed146781c2cc8bd972920fd08533fe, type: 3} + m_Name: + m_EditorClassIdentifier: + state: Start + wave: 0 + ratbot: {fileID: 398740452138961375, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} +--- !u!4 &745837569 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 745837567} + serializedVersion: 2 + 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} --- !u!1 &977303806 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8669953498445216587, guid: e05928a0d673caf999d31b31b994a112, type: 3} @@ -556,63 +546,6 @@ Skybox: m_GameObject: {fileID: 977303806} m_Enabled: 1 m_CustomSkybox: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} ---- !u!1001 &1062717063 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 398740452138961375, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_Name - value: Ratbot (2) - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.x - value: -7.715787 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.y - value: -4.81857 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} --- !u!1 &1394869898 GameObject: m_ObjectHideFlags: 0 @@ -762,75 +695,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 07e7096bcd8103c3faadeefc30c8a2f4, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!1001 &9136605445008209240 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 398740452138961375, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_Name - value: Ratbot - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.x - value: -11.37 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.y - value: -2.4779136 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4344634732794346337, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8441426735084966298, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} - propertyPath: m_AutoTiling - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 619394802} - {fileID: 309882168} - - {fileID: 9136605445008209240} - - {fileID: 495190811} - - {fileID: 1062717063} - {fileID: 109163895} - {fileID: 499417880} + - {fileID: 745837569} diff --git a/Assets/Teo.cs b/Assets/Teo.cs index fd7026a..fc213f5 100644 --- a/Assets/Teo.cs +++ b/Assets/Teo.cs @@ -5,9 +5,11 @@ public class Teo : MonoBehaviour public float health = 100F; public float moveSpeed = 10F; Rigidbody2D controller; + GameState gameState; // Start is called once before the first execution of Update after the MonoBehaviour is created void Start() { controller = GetComponent(); + gameState = GameObject.FindGameObjectWithTag("GameController").GetComponent(); } // Update is called once per frame diff --git a/README.md b/README.md index 5e11de1..4d1fced 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ ### Enemy: - [x] All Enemies have simple pathfinding towards the player -- [ ] When enemy touches player - remove health (scaled with x amount of rounds) +- [x] When enemy touches player - remove health (scaled with x amount of rounds) - [ ] When object summoned / thrown by enemy, remove health (smaller scaling)