Add GameState to keep track of state and wave #

This commit is contained in:
2024-10-19 20:52:47 -07:00
parent b10d75ac29
commit 7aa325cccc
7 changed files with 95 additions and 182 deletions

36
Assets/GameState.cs Normal file
View File

@@ -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<Ratbot>().damageStrength = 5+wave*5;
}
wave++;
}
}

2
Assets/GameState.cs.meta Normal file
View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 58ed146781c2cc8bd972920fd08533fe

View File

@@ -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<GameState>();
}
// Update is called once per frame

View File

@@ -103,6 +103,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
moveSpeed: 9.3
damageStrength: 10
damageTimeoutSeconds: 0.5
--- !u!61 &8441426735084966298
BoxCollider2D:

View File

@@ -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}

View File

@@ -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<Rigidbody2D>();
gameState = GameObject.FindGameObjectWithTag("GameController").GetComponent<GameState>();
}
// Update is called once per frame