using System; using System.Collections.Generic; using UnityEngine; public class AbilityUIHandler : MonoBehaviour { #region Statication public static AbilityUIHandler instance; private void Awake() { if (instance != null && instance != this) { Destroy(gameObject); return; } instance = this; } #endregion [Header("Abilities")] public List uiObjects = new(); [SerializeField] private MarisaAbilityHandler playerAbilityHandler; [Header("Upgrades")] [SerializeField] private Transform upgradeGrid; [SerializeField] private StoredAbilityUpgradeUI templateStoredUpgradeUI; private void Start() { uiObjects[0].thisAbility = playerAbilityHandler.mainAttackInstance; uiObjects[1].thisAbility = playerAbilityHandler.secondaryAttackInstance; uiObjects[2].thisAbility = playerAbilityHandler.spellAInstance; uiObjects[3].thisAbility = playerAbilityHandler.spellBInstance; foreach (AbilityUIObject uiObject in uiObjects) { uiObject.UpdateUI(); } } public void UpdateInventory() { foreach (Transform child in upgradeGrid) //awful but we'll go with it for now { Destroy(child.gameObject); } foreach (AbilityManager.StoredUpgrade storedUpgrade in AbilityManager.instance.upgradesInventory) { StoredAbilityUpgradeUI newUI = Instantiate(templateStoredUpgradeUI, upgradeGrid); newUI.SetUpgrade(storedUpgrade.upgrade, storedUpgrade.count); } } }