using Godot;
using Mr.BrickAdventures.Autoloads;
using Mr.BrickAdventures.Progression;
namespace Mr.BrickAdventures.scripts.Events;
///
/// Records collected coins against the current Attempt.
///
///
/// Coins are banked only by a First Clear, so dying loses what was found this attempt — including
/// anything spent from it. See docs/adr/0002-attempt-is-a-ledger.md.
///
public partial class CoinStateHandler : Node
{
public override void _Ready()
{
EventBus.Instance.CoinCollected += OnCoinCollected;
}
public override void _ExitTree()
{
if (EventBus.Instance != null)
EventBus.Instance.CoinCollected -= OnCoinCollected;
}
private void OnCoinCollected(int amount, Vector2 position)
{
if (amount <= 0) return;
ProgressionRoot.Instance?.RecordCoinsFound(Coins.Of(amount));
}
}