namespace BeiBao
{
///
/// 定义物品类
/// 每个物品有名称、ID、最大堆叠数量和当前数量。
///
public class Item
{
private string _itemName;
private int _itemID;
private int _maxStack;
private int _quantity;
///
/// 名字
///
public string ItemName => _itemName;
///
/// ID
///
public int ItemID => _itemID;
///
/// 最大堆叠数量
///
public int MaxStack => _maxStack;
///
/// 当前数量
///
public int Quantity => _quantity;
public Item(string itemName, int itemID, int maxStack)
{
_itemName = itemName;
_itemID = itemID;
_maxStack = maxStack;
_quantity = 0;
}
// 尝试增加数量,返回剩余未能堆叠的数量
public int AddQuantity(int quantity)
{
int remaining = quantity;
if (Quantity + remaining > MaxStack)
{
remaining = (Quantity + quantity) - MaxStack;
_quantity = MaxStack;
}
else
{
_quantity += remaining;
remaining = 0;
}
return remaining;
}
///
/// 仅作为检查,并不发生实际的数据改变
///
///
///
public int CheckAddQuantity(int quantity)
{
int remaining = quantity;
return Quantity + remaining > MaxStack ? remaining = (Quantity + quantity) - MaxStack : 0;
}
// 尝试移除数量,返回是否成功
public bool RemoveQuantity(int quantity)
{
if (Quantity >= quantity)
{
_quantity -= quantity;
return true;
}
return false;
}
///
/// 仅作为检查,并不发生实际的数据改变
///
///
///
public int CheckRemoveQuantity(int quantity)
{
int tmp = quantity - _quantity;
return tmp <= 0 ? 0 : tmp;
}
}
}