sasalka/Code/Inventory/Usable/AmmoUseableBase.cs
2025-06-10 23:24:50 +03:00

38 lines
702 B
C#

namespace Sasalka;
public abstract class AmmoUseableBase : UseableBase
{
protected InventoryItem AmmoItem => FindAmmoItem();
private InventoryItem FindAmmoItem()
{
//По типу патрон поиск + енум типа патрон
return Dedugan.Local.Inventory.Items.FirstOrDefault( i => i.Definition.Name == "Pistol Ammo" );
}
public override bool CanUse()
{
var ammo = AmmoItem;
return base.CanUse() && ammo != null && ammo.Count > 0;
}
public override void Use()
{
if ( !CanUse() )
return;
OnUse();
var ammo = AmmoItem;
if ( ammo != null )
{
ammo.Count--;
if ( ammo.Count <= 0 )
{
Dedugan.Local.Inventory.RemoveItem( ammo );
}
}
}
}