MarisaMagicalStudy/Assets/Scripts/AbilityUIObject.cs
2026-02-07 11:21:21 -08:00

52 lines
1.7 KiB
C#

using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class AbilityUIObject : MonoBehaviour
{
[Header("Ability Identification")]
[SerializeField] private Image abilityIcon;
[SerializeField] private TextMeshProUGUI abilityName;
[Header("Ability Stats")]
[SerializeField] private TextMeshProUGUI damage;
[SerializeField] private TextMeshProUGUI fireRate;
[SerializeField] private TextMeshProUGUI piercing;
[SerializeField] private TextMeshProUGUI projectileCount;
[Header("Upgrades")]
[SerializeField] private UpgradeBoxUI templateUpgradeBox;
[SerializeField] private Transform upgradeGrid;
[SerializeField] private List<UpgradeBoxUI> upgradeBoxes = new();
public PlayerAbility thisAbility;
public void UpdateUI()
{
abilityIcon.sprite = thisAbility.abilityIcon;
abilityName.text = thisAbility.abilityName;
damage.text = $"Damage: {thisAbility.power}";
fireRate.text = $"Fire rate: {thisAbility.cooldown}s";
if (thisAbility.TryGetComponent(out FireBullet isBullet))
{
piercing.text = $"Piercing: {isBullet.pierceAmount}";
projectileCount.text = $"Projectiles: {isBullet.projectileCount}";
}
}
public void AddUpgradeBox(AbilityUpgrade upgrade)
{
UpgradeBoxUI newBox = Instantiate(templateUpgradeBox, upgradeGrid);
upgradeBoxes.Add(newBox);
newBox.upgradeImage.sprite = upgrade.upgradeIcon;
newBox.UpdateCounter();
}
public void UpdateUpgradeBoxes()
{
foreach (UpgradeBoxUI box in upgradeBoxes)
{
box.UpdateCounter();
}
}
}