PotionGui
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user