Files
3DBlobici-WorkingTitle/3D blobici/Assets/Scripts/Player/PlayerSkillTree.cs

94 lines
2.0 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using UnityEngine;
using System.Collections;
2025-08-02 15:35:39 +02:00
using System.ComponentModel;
using UnityEditor.SceneManagement;
public class PlayerSkillTree
{
private static PlayerSkillTree _instance;
2025-08-02 15:35:39 +02:00
private Dictionary<PotionHandler.PotionType, PotionHandler> potionHandlers = new Dictionary<PotionHandler.PotionType, PotionHandler>();
public static PlayerSkillTree Instance
{
get
{
if (_instance == null)
{
_instance = new PlayerSkillTree();
}
return _instance;
}
}
public enum Skills
{
Dash,
Reflection1,
Reflection2,
Shockwave,
Spin,
Potion,
Arrows1,
Arrows2
}
private List<Skills> playerSkills;
public PlayerSkillTree()
{
playerSkills = new List<Skills>();
2025-08-02 15:35:39 +02:00
}
2025-08-03 01:18:33 +02:00
public void RegisterPotionHandler(PotionHandler.PotionType type, PotionHandler handler)
2025-08-02 15:35:39 +02:00
{
if (!potionHandlers.ContainsKey(type))
{
potionHandlers.Add(type, handler);
}
else
{
potionHandlers[type] = handler;
}
}
public void UnlockSkill(Skills skill, PotionHandler.PotionType potionType)
{
if(skill == Skills.Potion){
2025-08-02 15:35:39 +02:00
if (potionHandlers.TryGetValue(potionType, out PotionHandler handler))
{
handler.AddPotion(potionType);
}
return;
}
if (playerSkills.Contains(skill)) return;
playerSkills.Add(skill);
}
public bool TryUsePotion(PotionHandler.PotionType potionType)
{
2025-08-02 15:35:39 +02:00
if (potionHandlers.TryGetValue(potionType, out PotionHandler handler))
{
if (handler.IsEmpty(potionType)) return false;
return handler.UsePotion(potionType);
}
return false;
}
public bool IsSkillUnlocked(Skills skill)
{
return playerSkills.Contains(skill);
}
public List<Skills> GetPlayerSkills() { return playerSkills; }
}