Replace if ladders with switches and enums, shop easier to edit

This commit is contained in:
2024-10-22 16:28:25 -07:00
parent 252ec7fd47
commit 9ac56da613
4 changed files with 80 additions and 43 deletions

View File

@@ -2,7 +2,7 @@ using UnityEngine;
public class GameState : MonoBehaviour public class GameState : MonoBehaviour
{ {
public string state; public State state;
public uint wave; public uint wave;
public GameObject ratbot; public GameObject ratbot;
public GameObject shop; public GameObject shop;
@@ -10,15 +10,22 @@ public class GameState : MonoBehaviour
OpenShop(); OpenShop();
} }
public enum State {
Wave,
Shop,
Menu,
Paused,
}
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
if (GameObject.FindGameObjectsWithTag("Ratbot").Length == 0 && state == "WAVE") { if (GameObject.FindGameObjectsWithTag("Ratbot").Length == 0 && state == State.Wave) {
OpenShop(); OpenShop();
} }
} }
void OpenShop() { void OpenShop() {
state = "SHOP"; state = State.Shop;
Instantiate(shop); Instantiate(shop);
} }
public void NewWave() { public void NewWave() {
@@ -26,7 +33,7 @@ public class GameState : MonoBehaviour
Destroy(GameObject.FindGameObjectWithTag("Shop")); Destroy(GameObject.FindGameObjectWithTag("Shop"));
// Spawn ratbots around the player // Spawn ratbots around the player
// Amount, health, and damage scale with waves // Amount, health, and damage scale with waves
state = "WAVE"; state = State.Wave;
Vector3 playerPosition = GameObject.FindGameObjectWithTag("Player").transform.position; Vector3 playerPosition = GameObject.FindGameObjectWithTag("Player").transform.position;
for (uint _ = 0; _ <= wave; _++) { for (uint _ = 0; _ <= wave; _++) {
GameObject newRatbot = Instantiate( GameObject newRatbot = Instantiate(

View File

@@ -548,7 +548,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: attackCooldown upgrade: 3
amount: -0.5
--- !u!1 &2887698150694367543 --- !u!1 &2887698150694367543
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -833,7 +834,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: attackRange upgrade: 0
amount: 1
--- !u!1 &3627401992951871319 --- !u!1 &3627401992951871319
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -968,7 +970,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: maxHealth upgrade: 4
amount: 20
--- !u!1 &4009611485654107892 --- !u!1 &4009611485654107892
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1103,7 +1106,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: attackDistance upgrade: 1
amount: 1
--- !u!1 &4405246042370862087 --- !u!1 &4405246042370862087
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1376,7 +1380,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: movementSpeed upgrade: 5
amount: 5
--- !u!1 &4600683873005582980 --- !u!1 &4600683873005582980
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1511,7 +1516,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: attackDamage upgrade: 2
amount: 5
--- !u!1 &4791604686138271717 --- !u!1 &4791604686138271717
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1646,7 +1652,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: dashDistance upgrade: 6
amount: 1
--- !u!1 &5832695598238337749 --- !u!1 &5832695598238337749
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2304,4 +2311,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3} m_Script: {fileID: 11500000, guid: a8661788ccc10d9fd9d1c9c2019bf2d3, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
upgrade: dashCooldown upgrade: 7
amount: -0.5

View File

@@ -2,41 +2,49 @@ using UnityEngine;
public class ShopButton : MonoBehaviour public class ShopButton : MonoBehaviour
{ {
public string upgrade; public UpgradeOption upgrade;
public float amount;
public enum UpgradeOption {
AttackRange,
AttackDistance,
AttackDamage,
AttackCooldown,
MaxHealth,
MovementSpeed,
DashDistance,
DashCooldown
}
void Start() { void Start() {
GetComponent<UnityEngine.UI.Button>().onClick.AddListener(Upgrade); GetComponent<UnityEngine.UI.Button>().onClick.AddListener(Upgrade);
} }
void Upgrade() { void Upgrade() {
Teo player = GameObject.FindGameObjectWithTag("Player").GetComponent<Teo>(); Teo player = GameObject.FindGameObjectWithTag("Player").GetComponent<Teo>();
GameState gameState = switch (upgrade) {
GameObject case UpgradeOption.AttackRange:
.FindGameObjectWithTag("GameController") player.swingRange += amount;
.GetComponent<GameState>(); break;
if (upgrade == "attackRange") { case UpgradeOption.AttackDistance:
player.swingRange += 1; player.swingDistance += amount;
break;
case UpgradeOption.AttackDamage:
player.damageStrength += amount;
break;
case UpgradeOption.AttackCooldown:
player.attackCooldownSeconds += amount;
break;
case UpgradeOption.MaxHealth:
player.health += amount;
player.maxHealth += amount;
break;
case UpgradeOption.MovementSpeed:
player.moveSpeed += amount;
break;
case UpgradeOption.DashDistance:
player.dashDistance += amount;
break;
case UpgradeOption.DashCooldown:
player.dashCooldownSeconds += amount;
break;
} }
else if (upgrade == "attackDistance") {
player.swingDistance += 0.5F;
}
else if (upgrade == "attackDamage") {
player.damageStrength += 5;
}
else if (upgrade == "attackCooldown") {
player.attackCooldownSeconds -= 0.5F;
}
else if (upgrade == "maxHealth") {
player.health += 20;
player.maxHealth += 20;
}
else if (upgrade == "movementSpeed") {
player.moveSpeed += 5;
}
else if (upgrade == "dashDistance") {
player.dashDistance += 1;
}
else if (upgrade == "dashCooldown") {
player.dashCooldownSeconds -= 0.5F;
}
gameState.NewWave();
} }
} }

View File

@@ -96,6 +96,19 @@ TextureImporter:
ignorePlatformSupport: 0 ignorePlatformSupport: 0
androidETC2FallbackOverride: 0 androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0 forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet: spriteSheet:
serializedVersion: 2 serializedVersion: 2
sprites: sprites:
@@ -134,7 +147,8 @@ TextureImporter:
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata: spriteCustomMetadata:
entries: [] entries: []
nameFileIdTable: {} nameFileIdTable:
rangeIndicator_0: -3951105813050061920
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
userData: userData: