using System; using System.Collections; using System.Collections.Generic; using JetBrains.Annotations; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; public class StatManager : MonoBehaviour { public int GetEffectiveValue(string statName){ foreach(StatInfo stat in stats ){ if(stat.name == statName){ int incValue = (stat.incrementalValue * PlayerStats[stat.name]); return (stat.baseValue + incValue); } } return 0; } public UnityAction OnStatsChanged; public List stats; playerNetwork playerNet ; public TMP_Text availablepointsTXT; private Dictionary m_PlayerStats; public Dictionary PlayerStats {get{return m_PlayerStats;} private set{ m_PlayerStats = value; //save RefreshUI(); }} private void Start() { RefreshUI(); } private void Awake() { playerNet = transform.root.GetComponent(); playerNet.statManager = this; Reset(); } public void loadFromCloudSave(Dictionary statData){ PlayerStats = statData; RefreshUI(); } public int availablePoints{get {int points = playerNet.lvl * 3; foreach(KeyValuePair stat in PlayerStats){ points -= stat.Value; } return points; } } public void RefreshUI () { foreach(StatInfo stat in stats){ int incValue = (stat.incrementalValue * PlayerStats[stat.name]); stat.statText.text = (stat.baseValue + incValue).ToString(); stat.statText.transform.GetChild(0).GetComponent