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: 2492104367656422644}
m_Layer: 0
m_Name: Text (TMP)
m_Name: HealthBig
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -35,7 +35,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {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_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3729392411308814688
@@ -297,7 +297,7 @@ GameObject:
- component: {fileID: 4795552151069639100}
- component: {fileID: 4576974581871443905}
m_Layer: 0
m_Name: Text (TMP)
m_Name: HealthBig
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -319,7 +319,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {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_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5692096231889078255

View File

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

View File

@@ -1,12 +1,15 @@
using System.Collections.Generic;
using UnityEngine;
using System.Collections;
using System.ComponentModel;
using UnityEditor.SceneManagement;
using static PotionHandler;
public class PlayerSkillTree
{
private static PlayerSkillTree _instance;
private PotionHandler potionHandler;
private Dictionary<PotionHandler.PotionType, PotionHandler> potionHandlers = new Dictionary<PotionHandler.PotionType, PotionHandler>();
public static PlayerSkillTree Instance
{
@@ -38,14 +41,29 @@ public class PlayerSkillTree
public PlayerSkillTree()
{
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)
{
if(skill == Skills.Potion){
potionHandler.AddPotion(potionType);
if (potionHandlers.TryGetValue(potionType, out PotionHandler handler))
{
handler.AddPotion(potionType);
}
return;
}
@@ -56,8 +74,12 @@ public class PlayerSkillTree
public bool TryUsePotion(PotionHandler.PotionType potionType)
{
if(potionHandler.IsEmpty(potionType)) return false;
return potionHandler.UsePotion(potionType);
if (potionHandlers.TryGetValue(potionType, out PotionHandler handler))
{
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
private Dictionary<PotionType, int> potions = new Dictionary<PotionType, int>();
[SerializeField] private TextMeshProUGUI textMeshProUGUI;
[SerializeField] private TMP_Text textMeshProUGUI;
[SerializeField] private PotionType potionType;
public enum PotionType
@@ -18,34 +18,40 @@ public class PotionHandler:MonoBehaviour
None
}
public PotionHandler()
private void Awake()
{
foreach (PotionType type in System.Enum.GetValues(typeof(PotionType)))
{
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)
{
potions[type] += amount;
Debug.Log(potions[type]);
if(type == potionType)
{
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)
{
potions[type] -= amount;
if (type == potionType)
{
textMeshProUGUI.text = potions[type].ToString();
}
return true;
}