PotionGui

This commit is contained in:
2025-08-02 15:35:39 +02:00
parent 5bf23cf6d4
commit 4bf2804650
4 changed files with 44 additions and 15 deletions

View File

@@ -13,7 +13,7 @@ GameObject:
- component: {fileID: 535055519960375857} - component: {fileID: 535055519960375857}
- component: {fileID: 2492104367656422644} - component: {fileID: 2492104367656422644}
m_Layer: 0 m_Layer: 0
m_Name: Text (TMP) m_Name: HealthBig
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@@ -35,7 +35,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 100, y: 0} m_AnchoredPosition: {x: 150, y: 0}
m_SizeDelta: {x: 200, y: 50} m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3729392411308814688 --- !u!222 &3729392411308814688
@@ -297,7 +297,7 @@ GameObject:
- component: {fileID: 4795552151069639100} - component: {fileID: 4795552151069639100}
- component: {fileID: 4576974581871443905} - component: {fileID: 4576974581871443905}
m_Layer: 0 m_Layer: 0
m_Name: Text (TMP) m_Name: HealthBig
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@@ -319,7 +319,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 100, y: 0} m_AnchoredPosition: {x: 150, y: 0}
m_SizeDelta: {x: 200, y: 50} m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5692096231889078255 --- !u!222 &5692096231889078255

View File

@@ -73,6 +73,7 @@ public class RoomHandler : MonoBehaviour
enemyPrefabsLocal.RemoveAt(0); enemyPrefabsLocal.RemoveAt(0);
// Select a spawn point with round-robin // Select a spawn point with round-robin
Debug.Log("Ammount of spawn points: " + spawnPoints.Count);
GameObject spawnPoint = spawnPoints[i % spawnPoints.Count]; GameObject spawnPoint = spawnPoints[i % spawnPoints.Count];
Instantiate(enemyPrefab, spawnPoint.transform.position + new Vector3(0, 1, 0), Quaternion.identity); Instantiate(enemyPrefab, spawnPoint.transform.position + new Vector3(0, 1, 0), Quaternion.identity);

View File

@@ -1,12 +1,15 @@
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using System.Collections; using System.Collections;
using System.ComponentModel;
using UnityEditor.SceneManagement;
using static PotionHandler;
public class PlayerSkillTree public class PlayerSkillTree
{ {
private static PlayerSkillTree _instance; private static PlayerSkillTree _instance;
private PotionHandler potionHandler; private Dictionary<PotionHandler.PotionType, PotionHandler> potionHandlers = new Dictionary<PotionHandler.PotionType, PotionHandler>();
public static PlayerSkillTree Instance public static PlayerSkillTree Instance
{ {
@@ -38,14 +41,29 @@ public class PlayerSkillTree
public PlayerSkillTree() public PlayerSkillTree()
{ {
playerSkills = new List<Skills>(); playerSkills = new List<Skills>();
potionHandler = new PotionHandler();
}
public void RegisterPotionHandler(PotionType type, PotionHandler handler)
{
if (!potionHandlers.ContainsKey(type))
{
potionHandlers.Add(type, handler);
}
else
{
potionHandlers[type] = handler;
}
} }
public void UnlockSkill(Skills skill, PotionHandler.PotionType potionType) public void UnlockSkill(Skills skill, PotionHandler.PotionType potionType)
{ {
if(skill == Skills.Potion){ if(skill == Skills.Potion){
potionHandler.AddPotion(potionType); if (potionHandlers.TryGetValue(potionType, out PotionHandler handler))
{
handler.AddPotion(potionType);
}
return; return;
} }
@@ -56,8 +74,12 @@ public class PlayerSkillTree
public bool TryUsePotion(PotionHandler.PotionType potionType) public bool TryUsePotion(PotionHandler.PotionType potionType)
{ {
if(potionHandler.IsEmpty(potionType)) return false; if (potionHandlers.TryGetValue(potionType, out PotionHandler handler))
return potionHandler.UsePotion(potionType); {
if (handler.IsEmpty(potionType)) return false;
return handler.UsePotion(potionType);
}
return false;
} }

View File

@@ -7,7 +7,7 @@ public class PotionHandler:MonoBehaviour
// Start is called once before the first execution of Update after the MonoBehaviour is created // Start is called once before the first execution of Update after the MonoBehaviour is created
private Dictionary<PotionType, int> potions = new Dictionary<PotionType, int>(); private Dictionary<PotionType, int> potions = new Dictionary<PotionType, int>();
[SerializeField] private TextMeshProUGUI textMeshProUGUI; [SerializeField] private TMP_Text textMeshProUGUI;
[SerializeField] private PotionType potionType; [SerializeField] private PotionType potionType;
public enum PotionType public enum PotionType
@@ -18,34 +18,40 @@ public class PotionHandler:MonoBehaviour
None None
} }
public PotionHandler() private void Awake()
{ {
foreach (PotionType type in System.Enum.GetValues(typeof(PotionType))) foreach (PotionType type in System.Enum.GetValues(typeof(PotionType)))
{ {
potions.Add(type, 0); potions.Add(type, 0);
} }
//textMeshProUGUI.text = potions[potionType].ToString(); textMeshProUGUI.text = potions[potionType].ToString();
// Register this handler with the PlayerSkillTree
PlayerSkillTree.Instance.RegisterPotionHandler(potionType, this);
} }
public void AddPotion(PotionType type, int amount = 1) public void AddPotion(PotionType type, int amount = 1)
{ {
potions[type] += amount; potions[type] += amount;
Debug.Log(potions[type]);
if(type == potionType) if(type == potionType)
{ {
textMeshProUGUI.text= potions[type].ToString(); textMeshProUGUI.text= potions[type].ToString();
} }
//Debug.Log("Text is: " + textMeshProUGUI.text); Debug.Log("Potion text is: " + textMeshProUGUI.text);
} }
public bool UsePotion(PotionType type, int amount = 1) public bool UsePotion(PotionType type, int amount = 1)
{ {
potions[type] -= amount; potions[type] -= amount;
if (type == potionType)
{
textMeshProUGUI.text = potions[type].ToString();
}
return true; return true;
} }