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 AccountFileInfo.ItemData ToItemData()
        {
            AccountFileInfo.ItemData itemData = new AccountFileInfo.ItemData(itemID, count.Value, guid);
            return itemData;
        }
    }
}