using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TMPro; using UnityEngine; public class SkillsPanelController : MonoBehaviour { [Header("Current Value")] public int FreePoints = 0; [Header("Skills Section")] [SerializeField] private GameObject FreePointsLabel; [SerializeField] private GameObject HealthPointsLabel; [SerializeField] private GameObject StrenghtPointsLabel; [SerializeField] private GameObject DefensePointsLabel; [SerializeField] private GameObject InteligencePointsLabel; public void Start() { // Get current remembered value var skillsPointManager = SkillsPointsManger.Instance; if (skillsPointManager == null) throw new NullReferenceException("AccountBalanceManager not found!!!"); // Fetch data from global scene manager responsible for player skill spoints RefreshPanelView( skillsPointManager.FreePoints, skillsPointManager.StrenghtPoints, skillsPointManager.DefensePoints, skillsPointManager.HealthPoints, skillsPointManager.InteligencePoints ); } public void RefreshPanelView( int freePoints, int strenghtPoints, int defensePoints, int healthPoints, int inteligencePoints ) { FreePointsLabel.transform.FindChild("Layer").transform.FindChild("Value").GetComponent().text = $"{freePoints}"; FreePoints = freePoints; BildSkillLabelContent(HealthPointsLabel, healthPoints); BildSkillLabelContent(StrenghtPointsLabel, strenghtPoints); BildSkillLabelContent(DefensePointsLabel, defensePoints); BildSkillLabelContent(InteligencePointsLabel, inteligencePoints); } public void BildSkillLabelContent(GameObject skillPanelLabel, int value) { skillPanelLabel.transform.FindChild("Layer").transform.FindChild("Value").GetComponent().text = $"{value}"; if (FreePoints > 0) skillPanelLabel.transform.Find("Button").gameObject.active = true; else skillPanelLabel.transform.Find("Button").gameObject.active = false; } #region spend skills points actions public void IncreaseHealth() { FreePoints -= 1; PlayerPrefs.SetInt(SkillsPointsManger.PLAYER_SKILS_FREE_POINTS, FreePoints); GameObject.FindGameObjectWithTag("Player").GetComponent().AddHealthPoint(); } public void IncreaseStrenght() { FreePoints -= 1; PlayerPrefs.SetInt(SkillsPointsManger.PLAYER_SKILS_FREE_POINTS, FreePoints); GameObject.FindGameObjectWithTag("Player").GetComponent().AddStrengthPoint(); } public void IncreaseDefence() { FreePoints -= 1; PlayerPrefs.SetInt(SkillsPointsManger.PLAYER_SKILS_FREE_POINTS, FreePoints); GameObject.FindGameObjectWithTag("Player").GetComponent().AddDefensePoint(); } public void IncreaseInteligence() { FreePoints -= 1; PlayerPrefs.SetInt(SkillsPointsManger.PLAYER_SKILS_FREE_POINTS, FreePoints); GameObject.FindGameObjectWithTag("Player").GetComponent().AddIntelligencePoint(); } #endregion }