using System; namespace YachtDice.Run { public sealed class StoredRollBank { public int Value { get; private set; } public event Action OnChanged; public void Reset() { SetValue(0); } public void Add(int amount) { if (amount <= 0) return; SetValue(Value + amount); } public bool TrySpend(int amount) { if (amount <= 0 || Value < amount) return false; SetValue(Value - amount); return true; } private void SetValue(int value) { Value = Math.Max(0, value); OnChanged?.Invoke(Value); } } }