cirnogodot/Scripts/UI/StatusMenu.cs

47 lines
1.4 KiB
C#
Raw Normal View History

2025-03-28 10:02:12 +01:00
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}";
}
}
}