少年修仙传客户端代码仓库
client_Wu Xijin
2019-02-19 77561bb15f0a5d45146fdf454726393e3987cc23
System/KnapSack/Logic/ItemModel.cs
@@ -5,55 +5,49 @@
namespace Snxxz.UI
{
    public interface IItemUseDate
    public class ItemModel
    {
        int itemId { get;set; }
        int EquipPlace { get; set; }
        Dictionary<int, List<int>> useDataDict { get; set; }
    }
        public readonly PackType packType;
    public class ItemModel : IItemUseDate
    {
        public ItemConfig config { get; private set; }
        public ItemInfo itemInfo { get; private set; }
        public PackType packType { get; private set; }
        public int equipScore { get; private set; }
        public Dictionary<int, List<int>> useDataDict { get; set; }
        public int EquipPlace { get; set; }
        public int itemId { get; set; }
        public int preItemCount{ get;private set; }
        public Dictionary<int, List<int>> useDataDict { get; private set; }
        PackModelInterface _modelInterface;
        PackModelInterface modelInterface
        public int EquipPlace
        {
            get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
            get
            {
                if (packType != PackType.Equip)
                {
                    return config == null ? 0 : config.EquipPlace;
                }
                else
                {
                    return itemInfo == null ? 0 : itemInfo.ItemPlace;
                }
            }
        }
        public int itemId { get { return itemInfo == null ? 0 : itemInfo.ItemID; } }
        public int preItemCount { get; private set; }
        PackModelInterface modelInterface { get { return ModelCenter.Instance.GetModel<PackModelInterface>(); } }
        public ItemModel(PackType type)
        {
            preItemCount = 0;
            packType = type;
            itemInfo = null;
        }
       public void SetItemModel(ItemInfo info)
        public void SetItemInfo(ItemInfo info)
        {
            if(itemInfo != null)
            if (itemInfo != null)
            {
                preItemCount = itemInfo.ItemCount;
            }
            itemInfo = info;
            itemId = info.ItemID;
            config = ItemConfig.Get(info.ItemID);
            if(packType != PackType.Equip)
            {
                this.EquipPlace = config.EquipPlace;
            }
            else
            {
                this.EquipPlace = info.ItemPlace;
            }
            itemInfo = info;
            config = ItemConfig.Get(info.ItemID);
            useDataDict = ConfigParse.Analysis(info.UserData);
            var serverSurplusTime = 0;
            if (useDataDict != null && useDataDict.ContainsKey(48) && useDataDict[48].Count > 0)
@@ -61,13 +55,14 @@
                serverSurplusTime = useDataDict[48][0];
            }
            this.equipScore = modelInterface.SetEquipScore(packType,itemInfo.ItemID,useDataDict);
            if(GetUseDataModel((int)ItemUseDataKey.itemCount) != null)
            this.equipScore = modelInterface.SetEquipScore(packType, itemInfo.ItemID, useDataDict);
            if (GetUseDataModel((int)ItemUseDataKey.itemCount) != null)
            {
                itemInfo.ItemCount = GetUseDataModel((int)ItemUseDataKey.itemCount)[0];
            }
            List<int> itemEffectTime = GetUseDataModel((int)ItemUseDataKey.createTime);
            if(itemEffectTime != null && itemEffectTime[0] != 0 && config.ExpireTime > 0)
            var  itemEffectTime = GetUseDataModel((int)ItemUseDataKey.createTime);
            if (itemEffectTime != null && itemEffectTime[0] != 0 && config.ExpireTime > 0)
            {
                DebugEx.Log("创建时间:" + itemEffectTime[0]);
                switch ((EquipReduceType)config.EndureReduceType)
@@ -99,7 +94,7 @@
                    case EquipReduceType.Def_EquipReduceType_ServerDay:
                        break;
                }
            }
        }
@@ -110,16 +105,18 @@
            {
                preItemCount = itemInfo.ItemCount;
            }
            itemInfo.ItemCount = count;
        }
        public List<int> GetUseDataModel(int key)
        {
            List<int> list = null;
            if(useDataDict !=  null)
            if (useDataDict != null)
            {
                useDataDict.TryGetValue(key, out list);
            }
            return list;
        }
    }