using Core.Utility;
using Excel2Json;
using Fort23.UTool;
using GameLogic.Equipment;
namespace GameLogic.Bag
{
public class ItemInfo
{
public readonly int itemID;
// public int itemID;
public string guid;
public EncryptionLong count;
public ItemConfig config;
///
/// 非道具时会被初始话,比如掉落的的装备等级,稀有度等等
///
public DropItemConfig dropItemConfig;
public EquipmentInfo eqInfo;
public ItemInfo(int itemID, long count = 0)
{
this.itemID = itemID;
guid = itemID.ToString();
this.count = (EncryptionLong)count;
config = ConfigComponent.Instance.Get(itemID);
}
public ItemInfo(DropItemConfig dropItemConfig)
{
this.dropItemConfig = dropItemConfig;
}
public ItemInfo(AccountFileInfo.ItemData itemData)
{
itemID = itemData.itemId;
count = (EncryptionLong)itemData.itemCount;
config = ConfigComponent.Instance.Get(itemID);
guid = itemData.guid;
if (itemData.eqData != null && itemData.eqData.zyEqId != 0)
{
eqInfo = new EquipmentInfo(itemData.eqData, this);
//TODO 如果数量=0,且是穿了的装备,设置数量=1(仅初始化生效),感觉不是很好,看后面有新思路没
if (count.Value == 0 && eqInfo.isWear)
{
count.Value = 1;
}
}
}
///
/// 是一个装备吗
///
///
public bool IsEquipItem()
{
if (eqInfo != null && eqInfo.basicEquipConfig.ID > 0)
{
return true;
}
return false;
}
public AccountFileInfo.ItemData ToItemData()
{
AccountFileInfo.ItemData itemData = new AccountFileInfo.ItemData(itemID, count.Value, guid);
if (eqInfo != null)
{
itemData.eqData = eqInfo.ToData();
}
return itemData;
}
}
}