MarisaMagicalStudy/Assets/Scripts/Abilities/AbilityUIHandler.cs
2026-03-03 09:16:19 -08:00

58 lines
1.7 KiB
C#

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<AbilityUIObject> 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 (AbilityUpgrade upgrade in AbilityManager.instance.allUpgrades)
{
int upgradeCount = AbilityManager.instance.GetUpgradeCount(upgrade);
if (upgradeCount > 0)
{
StoredAbilityUpgradeUI newUI = Instantiate(templateStoredUpgradeUI, upgradeGrid);
newUI.SetUpgrade(upgrade, upgradeCount);
}
}
}
}