using Godot; using System; using Cirno.Scripts.Resources; public partial class StatusMenu : PanelContainer { [Export] public StringName HealthExpansionName { get; private set; } [Export] public StringName ShieldExpansionName { get; private set; } [Export] public Button HealthExpansionCounter { get; private set; } [Export] public Button ShieldExpansionCounter { get; private set; } public override void _Ready() { CallDeferred(MethodName.InitializeDeferred); } public override void _ExitTree() { InventoryManager.Instance.ItemAdded -= InstanceOnItemAdded; } private void InitializeDeferred() { var healthExpansions = InventoryManager.Instance.GetItemCount(HealthExpansionName); var shieldExpansions = InventoryManager.Instance.GetItemCount(ShieldExpansionName); HealthExpansionCounter.Text = $"x{healthExpansions}"; ShieldExpansionCounter.Text = $"x{shieldExpansions}"; InventoryManager.Instance.ItemAdded += InstanceOnItemAdded; } private void InstanceOnItemAdded(LootItem item, int currentamount) { if (item.ItemKey == HealthExpansionName) { HealthExpansionCounter.Text = $"x{currentamount}"; } else if (item.ItemKey == ShieldExpansionName) { ShieldExpansionCounter.Text = $"x{currentamount}"; } } }