using Snxxz.UI;
|
using System;
|
using System.Collections.Generic;
|
using TableConfig;
|
|
namespace Snxxz.UI
|
{
|
public interface IItemUseDate
|
{
|
int itemId { get;set; }
|
int EquipPlace { get; set; }
|
Dictionary<int, List<int>> useDataDict { get; set; }
|
}
|
|
public class ItemModel : IItemUseDate
|
{
|
public ItemConfig chinItemModel { 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; }
|
|
PackModelInterface _modelInterface;
|
PackModelInterface modelInterface
|
{
|
get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
|
}
|
|
public ItemModel(PackType type)
|
{
|
preItemCount = 0;
|
packType = type;
|
itemInfo = null;
|
}
|
|
public void SetItemModel(ItemInfo info)
|
{
|
if(itemInfo != null)
|
{
|
preItemCount = itemInfo.ItemCount;
|
}
|
itemInfo = info;
|
itemId = info.ItemID;
|
chinItemModel = Config.Instance.Get<ItemConfig>(info.ItemID);
|
if(packType != PackType.rptEquip)
|
{
|
this.EquipPlace = chinItemModel.EquipPlace;
|
}
|
else
|
{
|
this.EquipPlace = info.ItemPlace;
|
}
|
|
useDataDict = ConfigParse.Analysis(info.UserData);
|
this.equipScore = modelInterface.SetEquipScore(packType,itemInfo.ItemID,useDataDict);
|
if(GetUseDataModel((int)ItemUseDataKey.Def_IudetItemCount) != null)
|
{
|
itemInfo.ItemCount = GetUseDataModel((int)ItemUseDataKey.Def_IudetItemCount)[0];
|
}
|
List<int> itemEffectTime = GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
|
if(itemEffectTime != null && itemEffectTime[0] != 0 && chinItemModel.ExpireTime > 0)
|
{
|
DebugEx.Log("创建时间:" + itemEffectTime[0]);
|
switch ((EquipReduceType)chinItemModel.EndureReduceType)
|
{
|
case EquipReduceType.Def_EquipReduceType_None:
|
break;
|
case EquipReduceType.Def_EquipReduceType_DEF:
|
break;
|
case EquipReduceType.Def_EquipReduceType_ATK:
|
break;
|
case EquipReduceType.Def_EquipReduceType_Time:
|
modelInterface.SetItemEffectCDTime(info.ItemGUID, info.ItemID, itemEffectTime[0]);
|
break;
|
case EquipReduceType.Def_EquipReduceType_AttackValue:
|
break;
|
case EquipReduceType.Def_EquipReduceType_HurtValue:
|
break;
|
case EquipReduceType.Def_EquipReduceType_Spcl:
|
break;
|
case EquipReduceType.Def_EquipReduceType_HPMPValue:
|
break;
|
case EquipReduceType.Def_EquipReduceType_Horse:
|
break;
|
case EquipReduceType.Def_EquipReduceType_RTimeItem:
|
modelInterface.SetItemEffectCDTime(info.ItemGUID, info.ItemID, itemEffectTime[0]);
|
break;
|
case EquipReduceType.Def_EquipReduceType_Day:
|
break;
|
case EquipReduceType.Def_EquipReduceType_ServerDay:
|
break;
|
}
|
|
}
|
|
}
|
|
public void RefreshItemCount(int count)
|
{
|
if (itemInfo != null)
|
{
|
preItemCount = itemInfo.ItemCount;
|
}
|
itemInfo.ItemCount = count;
|
}
|
|
public List<int> GetUseDataModel(int key)
|
{
|
List<int> list = null;
|
if(useDataDict != null)
|
{
|
useDataDict.TryGetValue(key, out list);
|
}
|
return list;
|
}
|
}
|
|
public class ItemInfo
|
{
|
public int ItemPlace; //位置索引
|
|
public int ItemID;
|
|
public int IsLocked; //是否锁定
|
|
public int ItemCount; //物品数量
|
|
public int IsBind;//是否绑定
|
|
public int RemainHour; //剩余时间(小时)
|
|
public int IsSuite;//是否已经套装化
|
|
public string UserData;//size = UserDataLen
|
|
public string ItemGUID; //物品的实例ID
|
}
|
}
|
|
|
|