Files
Gen_Hack-and-Slash-Roguelite/Client/Assets/Scripts/Entity/Inventory.cs

70 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.Generic;
using Item;
namespace Entity
{
public class Inventory
{
public Entity from; // 物品所属实体
public List<ItemBase> items = new List<ItemBase>(); // 背包中的物品列表
/// <summary>
/// 添加物品到背包
/// </summary>
/// <param name="item">要添加的物品</param>
/// <param name="count">添加的数量</param>
public void AddItem(ItemResource resource, int count)
{
if (count <= 0) return; // 如果数量小于等于0直接返回
// 检查背包中是否已存在相同物品
foreach (var item in items)
{
if (item.resource.Equals(resource))
{
item.count += count; // 增加数量
return;
}
}
// 如果没有找到相同物品,则创建新物品并添加到背包
var newItem = new ItemBase { resource = resource, count = count };
items.Add(newItem);
}
/// <summary>
/// 从背包中取出物品
/// </summary>
/// <param name="itemName">物品名称</param>
/// <param name="count">取出的数量</param>
/// <returns>是否成功取出</returns>
public bool RemoveItem(string itemName, int count)
{
if (count <= 0) return false; // 如果数量小于等于0直接返回失败
foreach (var item in items)
{
if (item.resource.name == itemName)
{
if (item.count >= count)
{
item.count -= count; // 减少数量
if (item.count == 0)
{
items.Remove(item); // 如果数量为0则移除该物品
}
return true; // 成功取出
}
else
{
return false; // 数量不足
}
}
}
return false; // 未找到物品
}
}
}