|  |  |  | 
|---|
|  |  |  | using vnxbqy.UI; | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using System.Collections.Generic; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class ItemModel | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public readonly PackType packType; | 
|---|
|  |  |  | public class ItemModel | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public readonly PackType packType; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemConfig config { get; private set; } | 
|---|
|  |  |  | public ItemInfo itemInfo { get; private set; } | 
|---|
|  |  |  | public int score { get; private set; } | 
|---|
|  |  |  | public Dictionary<int, List<int>> useDataDict { get; private set; } | 
|---|
|  |  |  | public ItemConfig config { get; private set; } | 
|---|
|  |  |  | public ItemInfo itemInfo { get; private set; } | 
|---|
|  |  |  | public int score { get; private set; } | 
|---|
|  |  |  | public Dictionary<int, List<int>> useDataDict { get; private set; } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public string guid { get { return itemInfo == null ? string.Empty : itemInfo.guid; } } | 
|---|
|  |  |  | public int itemId { get { return itemInfo == null ? 0 : itemInfo.itemId; } } | 
|---|
|  |  |  | public int count { get { return itemInfo == null ? 0 : itemInfo.count; } } | 
|---|
|  |  |  | public int gridIndex { get { return itemInfo == null ? 0 : itemInfo.index; } } | 
|---|
|  |  |  | public bool isAuction { get { return itemInfo == null ? false : itemInfo.isAuction == 1; } } | 
|---|
|  |  |  | public int preItemCount { get; private set; } | 
|---|
|  |  |  | public string guid { get { return itemInfo == null ? string.Empty : itemInfo.guid; } } | 
|---|
|  |  |  | public int itemId { get { return itemInfo == null ? 0 : itemInfo.itemId; } } | 
|---|
|  |  |  | public int count { get { return itemInfo == null ? 0 : itemInfo.count; } } | 
|---|
|  |  |  | public int gridIndex { get { return itemInfo == null ? 0 : itemInfo.index; } } | 
|---|
|  |  |  | public bool isAuction { get { return itemInfo == null ? false : itemInfo.isAuction == 1; } } | 
|---|
|  |  |  | public int preItemCount { get; private set; } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int auctionSurplusTime { | 
|---|
|  |  |  | public int auctionSurplusTime { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | get { | 
|---|
|  |  |  | get { | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | var createTime = GetUseDataFirstValue(50); | 
|---|
|  |  |  | if (createTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var overdueTime = TimeUtility.GetTime((uint)createTime) + new TimeSpan(GeneralDefine.acutionItemHour * TimeSpan.TicksPerHour); | 
|---|
|  |  |  | return (int)(overdueTime).Subtract(TimeUtility.ServerNow).TotalSeconds; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | var createTime = GetUseDataFirstValue(50); | 
|---|
|  |  |  | if (createTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var overdueTime = TimeUtility.GetTime((uint)createTime) + new TimeSpan(GeneralDefine.acutionItemHour * TimeSpan.TicksPerHour); | 
|---|
|  |  |  | return (int)(overdueTime).Subtract(TimeUtility.ServerNow).TotalSeconds; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int overdueSurplusTime { | 
|---|
|  |  |  | get { | 
|---|
|  |  |  | var surplusTime = 0; | 
|---|
|  |  |  | if (config.ExpireTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var createTime = GetUseDataFirstValue((int)ItemUseDataKey.createTime); | 
|---|
|  |  |  | if (createTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var seconds = GetUseDataFirstValue(48); | 
|---|
|  |  |  | var overdueTime = DateTime.Now; | 
|---|
|  |  |  | if (seconds != 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | overdueTime = TimeUtility.GetTime((uint)createTime).AddSeconds(seconds); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | overdueTime = TimeUtility.GetTime((uint)createTime).AddSeconds(config.ExpireTime); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | surplusTime = (int)(overdueTime).Subtract(TimeUtility.ServerNow).TotalSeconds; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return surplusTime; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemModel(PackType type, ItemInfo info) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | packType = type; | 
|---|
|  |  |  | SetItemInfo(info); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void SetItemInfo(ItemInfo info) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (itemInfo != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | preItemCount = itemInfo.count; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | itemInfo = info; | 
|---|
|  |  |  | config = ItemConfig.Get(info.itemId); | 
|---|
|  |  |  | useDataDict = ConfigParse.Analysis(info.userData); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var customCount = GetUseDataFirstValue((int)ItemUseDataKey.itemCount); | 
|---|
|  |  |  | if (customCount > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | itemInfo.count = customCount; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int overdueSurplusTime { | 
|---|
|  |  |  | get { | 
|---|
|  |  |  | var surplusTime = 0; | 
|---|
|  |  |  | if (config.ExpireTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var createTime = GetUseDataFirstValue((int)ItemUseDataKey.createTime); | 
|---|
|  |  |  | if (createTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var serverSurplusTime = GetUseDataFirstValue(48); | 
|---|
|  |  |  | //ItemLogicUtility.Instance.SetItemEffectCDTime(info.guid, info.itemId, createTime, serverSurplusTime); | 
|---|
|  |  |  | var seconds = GetUseDataFirstValue(48); | 
|---|
|  |  |  | var overdueTime = DateTime.Now; | 
|---|
|  |  |  | if (seconds != 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | overdueTime = TimeUtility.GetTime((uint)createTime).AddSeconds(seconds); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | overdueTime = TimeUtility.GetTime((uint)createTime).AddSeconds(config.ExpireTime); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | surplusTime = (int)(overdueTime).Subtract(TimeUtility.ServerNow).TotalSeconds; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.score = info.gearScore;//ItemLogicUtility.Instance.GetEquipScore(itemId, useDataDict); | 
|---|
|  |  |  | return surplusTime; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void RefreshCount(int count) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (itemInfo != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | preItemCount = itemInfo.count; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | itemInfo.count = count; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<int> GetUseData(int key) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | List<int> list = null; | 
|---|
|  |  |  | if (useDataDict != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | useDataDict.TryGetValue(key, out list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int GetUseDataFirstValue(int key) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (useDataDict != null && useDataDict.ContainsKey(key) && useDataDict[key].Count > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return useDataDict[key][0]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class ItemInfo | 
|---|
|  |  |  | public ItemModel(PackType type, ItemInfo info) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public int index; //位置索引 | 
|---|
|  |  |  | packType = type; | 
|---|
|  |  |  | SetItemInfo(info); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int itemId; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int count; //物品数量 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int isAuction;//是否拍品 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int remainHour;  //剩余时间(小时) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public string userData;//size = UserDataLen | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public string guid; //物品的实例ID | 
|---|
|  |  |  | public int gearScore; //评分 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemInfo() | 
|---|
|  |  |  | public void SetItemInfo(ItemInfo info) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (itemInfo != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | preItemCount = itemInfo.count; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemInfo(H0725_tagRolePackRefreshEx.tagRoleItemRefresh serverItem) | 
|---|
|  |  |  | itemInfo = info; | 
|---|
|  |  |  | config = ItemConfig.Get(info.itemId); | 
|---|
|  |  |  | useDataDict = ConfigParse.Analysis(info.userData); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var customCount = GetUseDataFirstValue((int)ItemUseDataKey.itemCount); | 
|---|
|  |  |  | if (customCount > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | itemId = (int)serverItem.ItemID; | 
|---|
|  |  |  | index = serverItem.ItemPlace; | 
|---|
|  |  |  | count = serverItem.ItemCount; | 
|---|
|  |  |  | remainHour = (int)serverItem.RemainHour; | 
|---|
|  |  |  | userData = serverItem.UserData; | 
|---|
|  |  |  | guid = serverItem.ItemGUID; | 
|---|
|  |  |  | isAuction = serverItem.IsBind; | 
|---|
|  |  |  | gearScore = (int)serverItem.GearScore; | 
|---|
|  |  |  | itemInfo.count = customCount; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemInfo(H0704_tagRolePackRefresh serverItem) | 
|---|
|  |  |  | if (config.ExpireTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | itemId = (int)serverItem.ItemID; | 
|---|
|  |  |  | index = serverItem.ItemPlace; | 
|---|
|  |  |  | count = serverItem.ItemCount; | 
|---|
|  |  |  | remainHour = (int)serverItem.RemainHour; | 
|---|
|  |  |  | userData = serverItem.UserData; | 
|---|
|  |  |  | guid = serverItem.ItemGUID; | 
|---|
|  |  |  | isAuction = serverItem.IsBind; | 
|---|
|  |  |  | gearScore = (int)serverItem.GearScore; | 
|---|
|  |  |  | var createTime = GetUseDataFirstValue((int)ItemUseDataKey.createTime); | 
|---|
|  |  |  | if (createTime > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var serverSurplusTime = GetUseDataFirstValue(48); | 
|---|
|  |  |  | //ItemLogicUtility.Instance.SetItemEffectCDTime(info.guid, info.itemId, createTime, serverSurplusTime); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.score = info.gearScore;//ItemLogicUtility.Instance.GetEquipScore(itemId, useDataDict); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void RefreshCount(int count) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (itemInfo != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | preItemCount = itemInfo.count; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | itemInfo.count = count; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public List<int> GetUseData(int key) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | List<int> list = null; | 
|---|
|  |  |  | if (useDataDict != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | useDataDict.TryGetValue(key, out list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int GetUseDataFirstValue(int key) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (useDataDict != null && useDataDict.ContainsKey(key) && useDataDict[key].Count > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return useDataDict[key][0]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class ItemInfo | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public int index; //位置索引 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int itemId; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int count; //物品数量 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int isAuction;//是否拍品 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public int remainHour;  //剩余时间(小时) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public string userData;//size = UserDataLen | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public string guid; //物品的实例ID | 
|---|
|  |  |  | public int gearScore; //评分 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemInfo() | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemInfo(H0725_tagRolePackRefreshEx.tagRoleItemRefresh serverItem) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | itemId = (int)serverItem.ItemID; | 
|---|
|  |  |  | index = serverItem.ItemPlace; | 
|---|
|  |  |  | count = serverItem.ItemCount; | 
|---|
|  |  |  | remainHour = (int)serverItem.RemainHour; | 
|---|
|  |  |  | userData = serverItem.UserData; | 
|---|
|  |  |  | guid = serverItem.ItemGUID; | 
|---|
|  |  |  | isAuction = serverItem.IsBind; | 
|---|
|  |  |  | gearScore = (int)serverItem.GearScore; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ItemInfo(H0704_tagRolePackRefresh serverItem) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | itemId = (int)serverItem.ItemID; | 
|---|
|  |  |  | index = serverItem.ItemPlace; | 
|---|
|  |  |  | count = serverItem.ItemCount; | 
|---|
|  |  |  | remainHour = (int)serverItem.RemainHour; | 
|---|
|  |  |  | userData = serverItem.UserData; | 
|---|
|  |  |  | guid = serverItem.ItemGUID; | 
|---|
|  |  |  | isAuction = serverItem.IsBind; | 
|---|
|  |  |  | gearScore = (int)serverItem.GearScore; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|