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

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