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; } } }