Extensions count in inventory

This commit is contained in:
Marco 2025-03-28 10:02:12 +01:00
commit 8f9e4f0bb9
6 changed files with 61 additions and 11 deletions

47
Scripts/UI/StatusMenu.cs Normal file
View file

@ -0,0 +1,47 @@
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}";
}
}
}