using GameCore.Combat.Interfaces; using GameCore.Inventory; namespace GameCore.Combat.Effects; public class ConsumeAmmoCost(string ammoId, int amount) : ICostEffect { public void Execute(EffectContext context) { var inventory = context.World.GetComponent(context.Owner); inventory?.RemoveItem(ammoId, amount); } public bool CanAfford(EffectContext context) { var inventory = context.World.GetComponent(context.Owner); return inventory != null && inventory.HasItem(ammoId, amount); } }