Health and Energy Logic ausgeführt, GameOver und LevelTime Scripte angelegt, Timer (aber keinen krassen coolen) eingebaut

This commit is contained in:
2026-02-10 11:28:41 +01:00
parent 42b50afc95
commit 57f6aa02c8
10 changed files with 235 additions and 934 deletions

View File

@@ -0,0 +1,82 @@
using System;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UIElements;
using static UnityEngine.Rendering.DebugUI;
public class GameOver : MonoBehaviour
{
[Header("UI and HUB")]
[SerializeField] GameObject deathPanel;
private float duration = 4f;
[SerializeField] float timer;
[SerializeField] TMP_Text deathTime;
[SerializeField] bool recentDeath;
[Header("ScriptPile")]
[SerializeField] GameObject scriptPile;
InventoryScript inventory;
ChangeHealth healthScript;
HandleEnergy battery;
private void Awake()
{
inventory = scriptPile.GetComponent<InventoryScript>();
healthScript = scriptPile.GetComponent<ChangeHealth>();
battery = scriptPile.GetComponent<HandleEnergy>();
}
void Start()
{
deathPanel.SetActive(false);
recentDeath = true;
timer = 10;
}
void Update()
{
if (recentDeath)
{
deathTime.text = Convert.ToInt32(timer -= Time.deltaTime).ToString();
if(timer >= 0)
{
StopBothering();
}
}
else
{
StopBothering();
}
}
public void ShowDeathScreen()
{
deathPanel.SetActive(true);
}
public void StopBothering()
{
recentDeath = false;
Time.timeScale = 1; //UNSICHER OB LAden VON SCENE DEN WERT AUTO. AUF 1 SETZT
SceneManager.LoadSceneAsync(0);
}
public void NewChance()
{
inventory.Health = healthScript.standardHealth;
if (battery.standardEnergy <= (inventory.Energy + battery.addEnergyValue))
{
inventory.Energy += battery.addEnergyValue;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1765a05fbe2c3cd408dca42fafe71d5d

View File

@@ -18,7 +18,14 @@ public class ShopScript : MonoBehaviour
//TMP_Text textfeld;
[SerializeField] TMP_Text textfeld;
[Header("Scripte")]
InventoryScript inventory;
ChangeHealth healthScript;
HandleEnergy battery;
[Header("BuyValues")]
private float moneten = 10.00f; //als vorerstiger Ersatz für tatsächliches Geld
@@ -53,6 +60,8 @@ public class ShopScript : MonoBehaviour
private void Awake()
{
inventory = backgroundPanel.GetComponent<InventoryScript>();
healthScript = backgroundPanel.GetComponent<ChangeHealth>();
battery = backgroundPanel.GetComponent<HandleEnergy>();
}
void Start()
@@ -112,7 +121,7 @@ public class ShopScript : MonoBehaviour
else
{
inventory.Health++;
healthScript.standardHealth++;
inventory.Gems -= updateCost;
}
@@ -129,7 +138,7 @@ public class ShopScript : MonoBehaviour
else
{
inventory.Energy++;
battery.standardEnergy++;
inventory.Gems -= updateCost;
}

View File

@@ -4,30 +4,29 @@ using static UnityEngine.EventSystems.EventTrigger;
public class ChangeHealth : MonoBehaviour
{
[SerializeField] GameObject panel;
[SerializeField] GameObject gameOverSceen;
[Header("UI and HUD")]
[SerializeField] TMP_Text energyHUD;
[SerializeField] GameObject panel;
[SerializeField] TMP_Text healthHUD;
[SerializeField] public int standardHealth = 3;
[Header("ScriptPile")]
InventoryScript inventory;
GameOver end;
private void Awake()
{
inventory = panel.GetComponent<InventoryScript>();
end = panel.GetComponent<GameOver>();
}
void Start()
{
energyHUD.text = inventory.Energy.ToString();
inventory.Health = standardHealth;
healthHUD.text = inventory.Health.ToString();
gameOverSceen.SetActive(false);
}
void Update()
@@ -40,18 +39,17 @@ public class ChangeHealth : MonoBehaviour
public void GetHit()
{
inventory.Health -= 1; //MAGIC NUMBER BITTE BEACHTEN
}
public void Die()
{
gameOverSceen.SetActive(true);
Time.timeScale = 0;
end.ShowDeathScreen();
}
public void NewChance()
{
}
}

View File

@@ -0,0 +1,46 @@
using System.Threading;
using TMPro;
using UnityEngine;
public class HandleEnergy : MonoBehaviour
{
[Header("Values")]
[SerializeField] public int standardEnergy = 10;
[SerializeField] public int addEnergyValue = 2;
[Header("UI and HUD")]
[SerializeField] TMP_Text energyHUD;
[Header("ScriptPile")]
[SerializeField] GameObject scriptPile;
InventoryScript inventory;
GameOver end;
private void Awake()
{
inventory = scriptPile.GetComponent<InventoryScript>();
end = scriptPile.GetComponent<GameOver>(); //UNNÖTIG, BEI ENEGRY 0 IST JA KEIN GAMEOVER
}
void Start()
{
inventory.Energy = standardEnergy;
energyHUD.text = inventory.Energy.ToString();
}
void Update()
{
}
public void LoseEnergy()
{
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a55b227e958a84b4fa0f0b375b48aa87

View File

@@ -7,13 +7,13 @@ public class InventoryScript : MonoBehaviour
[Header("Variables")]
//Energy
[SerializeField] int energy = 10;
[SerializeField] int energy;
//Health
[SerializeField] int health = 1;
[SerializeField] int health;
//Gems
[SerializeField] int gems = 100;
[SerializeField] int gems;
public InventoryScript(int energy, int health, int gems)

View File

@@ -0,0 +1,36 @@
using System;
using System.Threading;
using TMPro;
using UnityEditor.Rendering;
using UnityEngine;
public class LevelScripts : MonoBehaviour
{
[SerializeField] float clock;
[SerializeField] TMP_Text gameTime;
[SerializeField] bool onShift;
void Start()
{
onShift = true;
clock = 0;
}
private void Update()
{
if (onShift)
{
gameTime.text = Convert.ToInt32(clock += Time.deltaTime).ToString();
}
else
{
EndShift();
}
}
public void EndShift()
{
onShift = false;
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c5cf3a8c12b09bf4389983567f33be98