| //-------------------------------------------------------- | 
| //    [Author]:           玩个游戏 | 
| //    [  Date ]:           Tuesday, March 12, 2019 | 
| //-------------------------------------------------------- | 
| using UnityEngine; | 
| using System.Collections; | 
| using UnityEngine.UI; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
|   | 
|     public class ItemTipUtility | 
|     { | 
|         public enum TipType | 
|         { | 
|             Item, | 
|             Equip, | 
|             Dogz, | 
|             GatherSoul, //废弃 | 
|             KingTreasure, //王者法宝tip | 
|             PetMount, | 
|             SpiritWeapon, | 
|             PeerlessChest, | 
|             TreasureShow, //其他法宝tip | 
|             BoxItem,    //宝箱物品 | 
|             TreasurePavilion, //古宝物品(碎片) | 
|         } | 
|   | 
|         public class TipData | 
|         { | 
|             public string guid; | 
|             public int itemId; | 
|             public int goodId; | 
|             public int exchangeItemId; | 
|   | 
|             public BaseInfo baseInfo; | 
|             public BaseProperty baseProperty; | 
|             public BaseProperty petMountBaseProperty; | 
|             public SpiritWeaponProperty spiritWeaponProperty; | 
|             public ShenProperty shenProperty; | 
|             public LegendProperty legendProperty; | 
|             public SkillInfo skillInfo; | 
|             public SuitInfo suitInfo; | 
|             public StarInfo starInfo; | 
|             public StrengthenProperty strengthenProperty; | 
|             public GemInfo gemInfo; | 
|             public TrainProperty trainProperty; | 
|             public List<ItemOperateType> operates; | 
|             public WingRefineMaterials refineMaterials; | 
|             public GetWay getWay; | 
|         } | 
|   | 
|         public struct BaseInfo | 
|         { | 
|             public int itemId; | 
|             public int count; | 
|             public bool isAuction; | 
|             public bool isEquiped; | 
|             public bool isPreview; | 
|   | 
|             public int star; | 
|             public int strengthenLevel; | 
|             public int score; | 
|             public bool isOverdue; | 
|             public int auctionSurplusTime; | 
|             public int overdueSurplusTime; | 
|             public int levelLimit; | 
|             public int realmLimit; | 
|             public int moneyLimit; | 
|             public int evolveLevel; | 
|         } | 
|   | 
|         public struct BaseProperty | 
|         { | 
|             public List<Int2> baseProperties; | 
|             public int star; | 
|             public List<Int2> starProperties; | 
|         } | 
|   | 
|         public struct SpiritWeaponProperty | 
|         { | 
|             public int itemId; | 
|             public List<Int3> properties; | 
|         } | 
|   | 
|         public struct LegendProperty | 
|         { | 
|             public bool isPreview; | 
|             public int itemId; | 
|             public int trueCount; | 
|             public List<Int2> properties; | 
|             public int score; | 
|         } | 
|   | 
|         //神装属性 | 
|         public struct ShenProperty | 
|         { | 
|             public bool isPreview; | 
|             public int itemId; | 
|             public List<Int3> properties; | 
|         } | 
|   | 
|         public struct SuitInfo | 
|         { | 
|             public int job; | 
|             public string name; | 
|             public int level; | 
|             public int maxSuitLevel; | 
|             public List<int> places; | 
|             public Dictionary<int, int> placeStars; | 
|            // public Dictionary<int, EquipSuitPropertyEntry> twoSuitProperties; | 
|           //  public Dictionary<int, EquipSuitPropertyEntry> fiveSuitProperties; | 
|             public Dictionary<int, bool> eightSuits; | 
|         } | 
|   | 
|         public struct StarInfo | 
|         { | 
|             public Int2 equipPosition; | 
|             public int starLevel; | 
|             public int maxLevel; | 
|         } | 
|   | 
|         public struct StrengthenProperty | 
|         { | 
|             public int strengthenLevel; | 
|             public List<Int2> properties; | 
|             public int evolveLevel; | 
|             public int equipPlace; | 
|         } | 
|   | 
|         public struct GemInfo | 
|         { | 
|             public Dictionary<int, bool> activeStates; | 
|             public Dictionary<int, int> gems; | 
|         } | 
|   | 
|         public struct TrainProperty | 
|         { | 
|             public int level; | 
|             public List<Int2> properties; | 
|         } | 
|   | 
|         public struct SkillInfo | 
|         { | 
|             public List<int> skills; | 
|         } | 
|   | 
|         public struct WingRefineMaterials | 
|         { | 
|             public List<Int2> materials; | 
|         } | 
|   | 
|         public struct GetWay | 
|         { | 
|             public bool defaultUnfold; | 
|             public int itemId; | 
|             public List<int> ways; | 
|         } | 
|   | 
|   | 
|   | 
|         public struct CustomEquipInfo | 
|         { | 
|             public int job; | 
|             public int itemId; | 
|             public int score; | 
|             public bool isEquiped; | 
|             public List<Int2> legendProperties; | 
|             public List<int> suitPlaces; | 
|             public Dictionary<int, int> placeStars; | 
|            // public Dictionary<EquipSuitType, int> suitLevels; | 
|             public int strengthenLevel; | 
|             public int starLevel; | 
|             public List<Int2> trainProperties; | 
|             public Dictionary<int, bool> gemHoleActiveStates; | 
|             public Dictionary<int, int> gems; | 
|             public List<int> equipSkillList; | 
|             public int evolveLevel; | 
|         } | 
|   | 
|         public struct CustomItemPlus | 
|         { | 
|             public int ItemID; | 
|             public int count; | 
|             public int Equipped; | 
|             public int Preview; | 
|             public int Star; | 
|             public int PlusLV; | 
|             public int EvolveLV; | 
|             public string UserData; | 
|             public int[] Stone; | 
|             public CustomEquipWash Wash; | 
|             public int[][] Equips; | 
|             public int[] suitPlaces; | 
|             public int[] suitLevels; | 
|             public int[] placeStars; | 
|         } | 
|   | 
|         public struct CustomEquipWash | 
|         { | 
|             public int LV; | 
|             public int[] Value; | 
|         } | 
|   | 
|         public struct ItemViewInfo | 
|         { | 
|             public int itemId; | 
|             public bool compare; | 
|             public bool unfoldGetWay; | 
|             public bool isAuctionEquip; | 
|             public LegendProperty legendProperty; | 
|             public int score; | 
|         } | 
|   | 
|         // static PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } | 
|         // static EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } } | 
|         // static EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } } | 
|         // static EquipGemModel gemModel { get { return ModelCenter.Instance.GetModel<EquipGemModel>(); } } | 
|         // static EquipTrainModel trainModel { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } } | 
|         // static EquipStrengthModel strengthenModel { get { return ModelCenter.Instance.GetModel<EquipStrengthModel>(); } } | 
|         // static MountModel mountModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } | 
|         // static PetModel petModel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } | 
|         // static ComposeWinModel composeModel { get { return ModelCenter.Instance.GetModel<ComposeWinModel>(); } } | 
|         // static StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } } | 
|         // static VirtualPackModel virtualPackModel { get { return ModelCenter.Instance.GetModel<VirtualPackModel>(); } } | 
|         // static ItemOverdueModel itemOverdueModel { get { return ModelCenter.Instance.GetModel<ItemOverdueModel>(); } } | 
|         // static BoxGetItemModel boxGetItemModel { get { return ModelCenter.Instance.GetModel<BoxGetItemModel>(); } } | 
|   | 
|         public static TipData mainTipData { get; private set; } | 
|         public static TipData secondaryData { get; private set; } | 
|   | 
|         public static void Show(int itemId) | 
|         { | 
|             if (!ItemConfig.HasKey(itemId)) | 
|             { | 
|                 Debug.LogErrorFormat("查无此物品:{0}", itemId); | 
|                 return; | 
|             } | 
|   | 
|             Show(new ItemViewInfo() | 
|             { | 
|                 itemId = itemId, | 
|             }); | 
|         } | 
|   | 
|         public static void Show(ItemViewInfo item) | 
|         { | 
|             var itemId = item.itemId; | 
|             if (!ItemConfig.HasKey(itemId)) | 
|             { | 
|                 Debug.LogErrorFormat("查无此物品:{0}", itemId); | 
|                 return; | 
|             } | 
|   | 
|             // secondaryData = null; | 
|   | 
|             // var config = ItemConfig.Get(itemId); | 
|             // PrintItemBrief(itemId); | 
|   | 
|             // var tipType = GetTipType(itemId); | 
|             // switch (tipType) | 
|             // { | 
|             //     case TipType.Equip: | 
|             //         mainTipData = CreateNormalEquipData(itemId); | 
|             //         if (item.isAuctionEquip && !item.legendProperty.Equals(default(LegendProperty))) | 
|             //         { | 
|             //             mainTipData.legendProperty = item.legendProperty; | 
|             //             mainTipData.baseInfo.score = item.score; | 
|             //             mainTipData.baseInfo.isPreview = false; | 
|             //         } | 
|   | 
|             //         if (item.compare) | 
|             //         { | 
|             //             if (ItemLogicUtility.Instance.IsJobCompatibleItem(itemId)) | 
|             //             { | 
|             //                 var equipedGuid = equipModel.GetEquip(new Int2(config.LV, config.EquipPlace)); | 
|             //                 if (equipedGuid != string.Empty) | 
|             //                 { | 
|             //                     secondaryData = CreateNormalEquipData(equipedGuid, false); | 
|             //                 } | 
|             //             } | 
|             //         } | 
|             //         break; | 
|             //     case TipType.Dogz: | 
|             //         mainTipData = CreateDogzEquipData(itemId); | 
|             //         break; | 
|             //     case TipType.PeerlessChest: | 
|             //         mainTipData = CreateItemData(itemId); | 
|             //         mainTipData.getWay = default(GetWay); | 
|             //         Dictionary<int, int> selectItems; | 
|             //         if (boxGetItemModel.IsSelectItemByID(itemId, out selectItems)) | 
|             //         { | 
|             //             secondaryData = CreateNormalEquipData(selectItems.Keys.First()); | 
|             //             secondaryData.getWay = default(GetWay); | 
|             //         } | 
|             //         break; | 
|             //     default: | 
|             //         mainTipData = CreateItemData(itemId); | 
|             //         break; | 
|             // } | 
|   | 
|             // mainTipData.getWay.defaultUnfold = item.unfoldGetWay; | 
|             // switch (tipType) | 
|             // { | 
|             //     case TipType.Equip: | 
|             //         WindowCenter.Instance.Open<EquipTipWin>(); | 
|             //         break; | 
|             //     case TipType.Dogz: | 
|             //         WindowCenter.Instance.Open<EquipTipWin>(); | 
|             //         break; | 
|             //     case TipType.KingTreasure: | 
|             //         var kingTreasureShow = ModelCenter.Instance.GetModel<KingTreasureShowModel>(); | 
|             //         kingTreasureShow.SetInitData(itemId); | 
|             //         break; | 
|             //     case TipType.PetMount: | 
|             //         WindowCenter.Instance.Open<PetMountTipWin>(); | 
|             //         break; | 
|             //     case TipType.SpiritWeapon: | 
|             //         WindowCenter.Instance.Open<SpiritWeaponTipWin>(); | 
|             //         break; | 
|             //     case TipType.PeerlessChest: | 
|             //         WindowCenter.Instance.Open<PeerlessChestTipWin>(); | 
|             //         break; | 
|             //     case TipType.TreasureShow: | 
|             //         TreasureEffectModel effectModel = ModelCenter.Instance.GetModel<TreasureEffectModel>(); | 
|             //         if (config.Effect1 == 232) | 
|             //         { | 
|             //             effectModel.SetTreasureID(config.EffectValueA1, 0); | 
|             //         } | 
|             //         break; | 
|             //     case TipType.BoxItem: | 
|             //         if (WindowCenter.Instance.IsOpen<ItemBoxTipWin>()) | 
|             //         { | 
|             //             WindowCenter.Instance.Open<ItemTipWin>(); | 
|             //         } | 
|             //         else | 
|             //         {  | 
|             //             WindowCenter.Instance.Open<ItemBoxTipWin>(); | 
|             //         } | 
|             //         break; | 
|             //     case TipType.TreasurePavilion: | 
|             //         TreasurePavilionModel.Instance.selectGubao = config.EffectValueA1; | 
|             //         TreasurePavilionModel.Instance.showTipFromPiece = config.ID; | 
|             //         WindowCenter.Instance.OpenIL<TreasurePavilionTipWin>(); | 
|             //         break; | 
|             //     default: | 
|             //         WindowCenter.Instance.Open<ItemTipWin>(); | 
|             //         break; | 
|             // } | 
|         } | 
|   | 
|         // public static void Show(string guid, bool operatable = true) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return; | 
|         //     } | 
|         //     PrintItemBrief(item.itemId, guid); | 
|   | 
|         //     secondaryData = null; | 
|         //     var tipType = GetTipType(item.itemId); | 
|         //     switch (tipType) | 
|         //     { | 
|         //         case TipType.Equip: | 
|         //             var packType = item.packType; | 
|         //             switch (packType) | 
|         //             { | 
|         //                 case PackType.Equip: | 
|         //                     mainTipData = CreateNormalEquipData(guid, operatable); | 
|         //                     break; | 
|         //                 default: | 
|         //                     if (item.isAuction) | 
|         //                     { | 
|         //                         mainTipData = CreateEquipAuctionData(guid, operatable); | 
|   | 
|         //                         if (ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId)) | 
|         //                         { | 
|         //                             var equipedGuid = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace)); | 
|         //                             if (equipedGuid != string.Empty) | 
|         //                             { | 
|         //                                 secondaryData = CreateNormalEquipData(equipedGuid, false); | 
|         //                             } | 
|         //                         } | 
|         //                     } | 
|         //                     else | 
|         //                     { | 
|         //                         mainTipData = CreateNormalEquipData(guid, operatable); | 
|         //                         var equipedGuid = equipModel.GetEquip(new Int2(item.config.LV, item.config.EquipPlace)); | 
|         //                         if (equipedGuid != guid) | 
|         //                         { | 
|         //                             secondaryData = CreateNormalEquipData(equipedGuid, false); | 
|         //                         } | 
|         //                     } | 
|         //                     break; | 
|         //             } | 
|         //             break; | 
|         //         case TipType.Dogz: | 
|         //             mainTipData = CreateDogzEquipData(guid); | 
|         //             break; | 
|         //         default: | 
|         //             mainTipData = CreateItemData(guid, operatable); | 
|         //             break; | 
|         //     } | 
|   | 
|         //     switch (tipType) | 
|         //     { | 
|         //         case TipType.Equip: | 
|         //             WindowCenter.Instance.Open<EquipTipWin>(); | 
|         //             break; | 
|         //         case TipType.Dogz: | 
|         //             WindowCenter.Instance.Open<EquipTipWin>(); | 
|         //             break; | 
|         //         case TipType.KingTreasure: | 
|         //             var kingTreasureShow = ModelCenter.Instance.GetModel<KingTreasureShowModel>(); | 
|         //             kingTreasureShow.SetInitData(item.itemId); | 
|         //             break; | 
|         //         case TipType.PetMount: | 
|         //             WindowCenter.Instance.Open<PetMountTipWin>(); | 
|         //             break; | 
|         //         case TipType.SpiritWeapon: | 
|         //             WindowCenter.Instance.Open<SpiritWeaponTipWin>(); | 
|         //             break; | 
|         //         case TipType.BoxItem: | 
|         //             if (WindowCenter.Instance.IsOpen<ItemBoxTipWin>()) | 
|         //             { | 
|         //                 WindowCenter.Instance.Open<ItemTipWin>(); | 
|         //             } | 
|         //             else | 
|         //             { | 
|         //                 WindowCenter.Instance.Open<ItemBoxTipWin>(); | 
|         //             } | 
|         //             break; | 
|         //         case TipType.TreasurePavilion: | 
|         //             TreasurePavilionModel.Instance.selectGubao = item.config.EffectValueA1; | 
|         //             TreasurePavilionModel.Instance.showTipFromPiece = item.itemId; | 
|         //             WindowCenter.Instance.OpenIL<TreasurePavilionTipWin>(); | 
|         //             break; | 
|         //         default: | 
|         //             WindowCenter.Instance.Open<ItemTipWin>(); | 
|         //             break; | 
|         //     } | 
|   | 
|         // } | 
|   | 
|         public static void ShowGood(int goodId, int itemId) | 
|         { | 
|             secondaryData = null; | 
|   | 
|             var isEquip = ItemLogicUtility.Instance.IsRealmEquip(itemId); | 
|             if (isEquip) | 
|             { | 
|                 mainTipData = CreateGoodEquipData(itemId, goodId); | 
|             } | 
|             else | 
|             { | 
|                 mainTipData = CreateGoodItemData(itemId, goodId); | 
|             } | 
|   | 
|             BuyItemController.Instance.SetGood(goodId); | 
|             var itemConfig = ItemConfig.Get(itemId); | 
|             if (isEquip) | 
|             { | 
|                 // WindowCenter.Instance.Open<EquipTipWin>(); | 
|             } | 
|             else | 
|             { | 
|                 var tipType = GetTipType(itemId); | 
|   | 
|                 // switch (tipType) | 
|                 // { | 
|                 //     case TipType.PetMount: | 
|                 //         WindowCenter.Instance.Open<PetMountTipWin>(); | 
|                 //         break; | 
|                 //     case TipType.BoxItem: | 
|                 //         if (WindowCenter.Instance.IsOpen<ItemBoxTipWin>()) | 
|                 //         { | 
|                 //             WindowCenter.Instance.Open<ItemTipWin>(); | 
|                 //         } | 
|                 //         else | 
|                 //         { | 
|                 //             WindowCenter.Instance.Open<ItemBoxTipWin>(); | 
|                 //         } | 
|                 //         break; | 
|                 //     default: | 
|                 //         WindowCenter.Instance.Open<ItemTipWin>(); | 
|                 //         break; | 
|                 // } | 
|             } | 
|         } | 
|   | 
|         // public static void ShowCustomEquip(CustomEquipInfo info) | 
|         // { | 
|         //     secondaryData = null; | 
|         //     mainTipData = CreateCustomEquipData(info); | 
|         //     WindowCenter.Instance.Open<EquipTipWin>(); | 
|         // } | 
|   | 
|          | 
|   | 
|         // static TipData CreateNormalEquipData(string guid, bool operatable) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(TipData); | 
|         //     } | 
|   | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = item.itemId, | 
|         //         guid = guid, | 
|   | 
|         //         baseInfo = GetBaseInfo(guid), | 
|         //         baseProperty = GetBaseProperty(guid), | 
|         //         spiritWeaponProperty = GetSpiritWeaponProperty(item.itemId), | 
|         //         legendProperty = GetLegendProperty(guid), | 
|         //         skillInfo = GetSkillInfo(item.itemId, guid), | 
|         //         suitInfo = GetSuitInfo(guid), | 
|         //         starInfo = GetStarInfo(guid), | 
|         //         strengthenProperty = GetStrengthenProperty(guid), | 
|         //         gemInfo = GetGemInfo(guid), | 
|         //         trainProperty = GetTrainProperty(guid), | 
|         //         operates = operatable ? GetOperates(guid) : null, | 
|         //         shenProperty = GetShenProperty(item.itemId) | 
|         //     }; | 
|         // } | 
|   | 
|         // static TipData CreateNormalEquipData(int itemId) | 
|         // { | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = itemId, | 
|         //         guid = string.Empty, | 
|   | 
|         //         baseInfo = GetBaseInfo(itemId), | 
|         //         baseProperty = GetBaseProperty(itemId), | 
|         //         legendProperty = GetLegendProperty(itemId), | 
|         //         spiritWeaponProperty = GetSpiritWeaponProperty(itemId), | 
|         //         skillInfo = GetSkillInfo(itemId), | 
|         //         suitInfo = GetSuitInfo(itemId), | 
|         //         gemInfo = GetGemInfo(itemId), | 
|         //         starInfo = GetStarInfo(itemId), | 
|         //         getWay = GetGetWay(itemId), | 
|         //         shenProperty = GetShenProperty(itemId) | 
|         //     }; | 
|         // } | 
|   | 
|         // static TipData CreateDogzEquipData(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(TipData); | 
|         //     } | 
|   | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = item.itemId, | 
|         //         guid = guid, | 
|   | 
|         //         baseInfo = GetBaseInfo(guid), | 
|         //         baseProperty = GetBaseProperty(guid), | 
|         //         legendProperty = GetLegendProperty(guid), | 
|         //         operates = GetOperates(guid), | 
|         //     }; | 
|         // } | 
|   | 
|         // static TipData CreateDogzEquipData(int itemId) | 
|         // { | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = itemId, | 
|         //         guid = string.Empty, | 
|   | 
|         //         baseInfo = GetBaseInfo(itemId), | 
|         //         baseProperty = GetBaseProperty(itemId), | 
|         //         legendProperty = GetLegendProperty(itemId), | 
|         //         getWay = GetGetWay(itemId) | 
|         //     }; | 
|         // } | 
|   | 
|         // static TipData CreateCustomEquipData(CustomEquipInfo info) | 
|         // { | 
|         //     var config = ItemConfig.Get(info.itemId); | 
|         //     if (config == null) | 
|         //     { | 
|         //         return default(TipData); | 
|         //     } | 
|   | 
|         //     var baseInfo = new BaseInfo() | 
|         //     { | 
|         //         itemId = info.itemId, | 
|         //         star = info.starLevel, | 
|         //         strengthenLevel = info.strengthenLevel, | 
|         //         score = info.score, | 
|         //         isEquiped = info.isEquiped, | 
|         //         evolveLevel = info.evolveLevel, | 
|         //     }; | 
|   | 
|         //     var baseProperty = GetBaseProperty(info.itemId); | 
|         //     if (info.starLevel > 0) | 
|         //     { | 
|         //         var starProperties = new List<Int2>(); | 
|         //         baseProperty.star = info.starLevel; | 
|         //         var starConfig = EquipStarConfig.Get(config.LV, config.EquipPlace, info.starLevel); | 
|         //         starProperties.AddRange(starConfig.BaseAttrInfo); | 
|         //         baseProperty.starProperties = starProperties; | 
|         //     } | 
|   | 
|         //     var legendProperty = new LegendProperty() | 
|         //     { | 
|         //         properties = info.legendProperties, | 
|         //     }; | 
|   | 
|         //     var skillInfo = GetSkillInfo(info.itemId, info); | 
|         //     var suitInfo = default(SuitInfo); | 
|         //     if (ItemLogicUtility.Instance.IsSuitEquip(info.itemId)) | 
|         //     { | 
|         //         var job = config.JobLimit; | 
|         //         var twoConfigs = EquipSuitConfig.GetConfigs(job, config.LV, EquipSuitType.TwoSuit); | 
|         //         var name = twoConfigs[0].name; | 
|         //         var level = config.LV; | 
|         //         var maxSuitLevel = EquipStarModel.GetMaxStarLevel(level); | 
|   | 
|         //         var twoSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); | 
|         //         var fiveSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); | 
|         //         var eightSuits = new Dictionary<int, bool>(); | 
|         //         var eightSuitLevel = info.suitLevels[EquipSuitType.EightSuit]; | 
|   | 
|         //         for (var i = 0; i <= 9; i++, i++, i++) | 
|         //         { | 
|         //             var configs = EquipSuitConfig.GetConfigs(job, level, EquipSuitType.TwoSuit); | 
|         //             var actived = info.suitLevels[EquipSuitType.TwoSuit] >= i; | 
|         //             var properties = new List<Int2>(); | 
|         //             foreach (var item in configs) | 
|         //             { | 
|         //                 if (item.star == i) | 
|         //                 { | 
|         //                     properties.AddRange(item.attr); | 
|         //                     break; | 
|         //                 } | 
|         //             } | 
|   | 
|         //             twoSuitProperties[i] = new EquipSuitPropertyEntry() | 
|         //             { | 
|         //                 type = EquipSuitType.TwoSuit, | 
|         //                 actived = actived, | 
|         //                 properties = properties, | 
|         //             }; | 
|   | 
|         //             configs = EquipSuitConfig.GetConfigs(job, level, EquipSuitType.FiveSuit); | 
|         //             actived = info.suitLevels[EquipSuitType.FiveSuit] >= i; | 
|         //             properties = new List<Int2>(); | 
|         //             foreach (var item in configs) | 
|         //             { | 
|         //                 if (item.star == i) | 
|         //                 { | 
|         //                     properties.AddRange(item.attr); | 
|         //                     break; | 
|         //                 } | 
|         //             } | 
|   | 
|         //             fiveSuitProperties[i] = new EquipSuitPropertyEntry() | 
|         //             { | 
|         //                 type = EquipSuitType.TwoSuit, | 
|         //                 actived = actived, | 
|         //                 properties = properties, | 
|         //             }; | 
|   | 
|         //             eightSuits[i] = eightSuitLevel >= i; | 
|         //         } | 
|   | 
|         //         suitInfo = new SuitInfo() | 
|         //         { | 
|         //             name = name, | 
|         //             level = level, | 
|         //             job = job, | 
|         //             maxSuitLevel = maxSuitLevel, | 
|         //             places = info.suitPlaces, | 
|         //             placeStars = info.placeStars, | 
|         //             twoSuitProperties = twoSuitProperties, | 
|         //             fiveSuitProperties = fiveSuitProperties, | 
|         //             eightSuits = eightSuits | 
|         //         }; | 
|         //     } | 
|   | 
|         //     var starInfo = new StarInfo() | 
|         //     { | 
|         //         equipPosition = new Int2(config.LV, config.EquipPlace), | 
|         //         starLevel = info.starLevel, | 
|         //         maxLevel = config.LV == 0 ? 0 : EquipStarModel.GetMaxStarLevel(config.ItemColor, config.LV), | 
|         //     }; | 
|   | 
|         //     var type = EquipStrengthModel.GetEquipStrengthType(config.EquipPlace); | 
|         //     var strengthenConfig = ItemPlusConfig.GetTypeAndLevel(type, info.strengthenLevel); | 
|         //     var strengthenProperties = new List<Int2>(); | 
|         //     for (int i = 0; i < strengthenConfig.attType.Length; i++) | 
|         //     { | 
|         //         strengthenProperties.Add(new Int2(strengthenConfig.attType[i], strengthenConfig.attValue[i])); | 
|         //     } | 
|         //     var strengthenProperty = new StrengthenProperty() | 
|         //     { | 
|         //         strengthenLevel = info.strengthenLevel, | 
|         //         properties = strengthenProperties, | 
|         //         equipPlace = config.EquipPlace, | 
|         //         evolveLevel = info.evolveLevel, | 
|         //     }; | 
|   | 
|         //     var gemInfo = new GemInfo() | 
|         //     { | 
|         //         activeStates = info.gemHoleActiveStates, | 
|         //         gems = info.gems, | 
|         //     }; | 
|   | 
|         //     var trainProperty = new TrainProperty() | 
|         //     { | 
|         //         properties = info.trainProperties, | 
|         //     }; | 
|   | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = info.itemId, | 
|         //         baseInfo = baseInfo, | 
|         //         baseProperty = baseProperty, | 
|         //         legendProperty = legendProperty, | 
|         //         skillInfo = skillInfo, | 
|         //         suitInfo = suitInfo, | 
|         //         starInfo = starInfo, | 
|         //         strengthenProperty = strengthenProperty, | 
|         //         gemInfo = gemInfo, | 
|         //         trainProperty = trainProperty, | 
|         //         shenProperty = GetShenProperty(info.itemId) | 
|         //     }; | 
|         // } | 
|   | 
|         static TipData CreateGoodEquipData(int itemId, int goodId) | 
|         { | 
|             return new TipData() | 
|             { | 
|                 itemId = itemId, | 
|                 guid = string.Empty, | 
|                 goodId = goodId, | 
|   | 
|                 baseInfo = GetBaseInfo(itemId), | 
|                 baseProperty = GetBaseProperty(itemId), | 
|                 //spiritWeaponProperty = GetSpiritWeaponProperty(itemId), | 
|                 //legendProperty = GetLegendProperty(itemId), | 
|                 skillInfo = GetSkillInfo(itemId), | 
|                 //suitInfo = GetSuitInfo(itemId), | 
|                 //gemInfo = GetGemInfo(itemId), | 
|                 //starInfo = GetStarInfo(itemId), | 
|                 operates = GetGoodOperates(goodId), | 
|                 //shenProperty = GetShenProperty(itemId) | 
|             }; | 
|         } | 
|   | 
|         // static TipData CreateEquipAuctionData(string guid, bool operatable) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(TipData); | 
|         //     } | 
|   | 
|         //     var legendProperty = GetLegendProperty(guid); | 
|         //     if (legendProperty.properties.IsNullOrEmpty()) | 
|         //     { | 
|         //         legendProperty = GetLegendProperty(item.itemId); | 
|         //     } | 
|   | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = item.itemId, | 
|         //         guid = guid, | 
|   | 
|         //         baseInfo = GetBaseInfo(guid), | 
|         //         baseProperty = GetBaseProperty(item.itemId), | 
|         //         spiritWeaponProperty = GetSpiritWeaponProperty(item.itemId), | 
|         //         legendProperty = legendProperty, | 
|         //         skillInfo = GetSkillInfo(item.itemId, guid), | 
|         //         suitInfo = GetSuitInfo(item.itemId), | 
|         //         operates = operatable ? GetOperates(guid) : null, | 
|   | 
|         //         starInfo = GetStarInfo(guid), | 
|         //         gemInfo = GetGemInfo(guid), | 
|         //         shenProperty = GetShenProperty(item.itemId) | 
|         //     }; | 
|         // } | 
|   | 
|         // static TipData CreateItemData(string guid, bool operatable) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(TipData); | 
|         //     } | 
|   | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = item.itemId, | 
|         //         guid = guid, | 
|   | 
|         //         baseInfo = GetBaseInfo(guid), | 
|         //         baseProperty = GetBaseProperty(item.itemId), | 
|         //         spiritWeaponProperty = GetSpiritWeaponProperty(item.itemId), | 
|         //         legendProperty = GetLegendProperty(guid), | 
|         //         petMountBaseProperty = GetPetMountBaseProperty(item.itemId), | 
|         //         operates = operatable ? GetOperates(guid) : null, | 
|         //         refineMaterials = GetWingRefineMaterials(guid), | 
|         //         shenProperty = GetShenProperty(item.itemId) | 
|         //     }; | 
|         // } | 
|   | 
|         // static TipData CreateItemData(int itemId) | 
|         // { | 
|         //     return new TipData() | 
|         //     { | 
|         //         itemId = itemId, | 
|         //         baseInfo = GetBaseInfo(itemId), | 
|         //         baseProperty = GetBaseProperty(itemId), | 
|         //         exchangeItemId = itemId, | 
|         //         spiritWeaponProperty = GetSpiritWeaponProperty(itemId), | 
|         //         legendProperty = GetLegendProperty(itemId), | 
|         //         petMountBaseProperty = GetPetMountBaseProperty(itemId), | 
|         //         getWay = GetGetWay(itemId), | 
|         //         shenProperty = GetShenProperty(itemId) | 
|         //     }; | 
|         // } | 
|   | 
|         static TipData CreateGoodItemData(int itemId, int goodId) | 
|         { | 
|             return new TipData() | 
|             { | 
|                 itemId = itemId, | 
|                 goodId = goodId, | 
|                 baseInfo = GetBaseInfo(itemId), | 
|                 baseProperty = GetBaseProperty(itemId), | 
|                 // legendProperty = GetLegendProperty(itemId), | 
|                 // spiritWeaponProperty = GetSpiritWeaponProperty(itemId), | 
|                 // petMountBaseProperty = GetPetMountBaseProperty(itemId), | 
|                 operates = GetGoodOperates(goodId), | 
|                 // shenProperty = GetShenProperty(itemId) | 
|             }; | 
|         } | 
|   | 
|          | 
|          | 
|         // public static void Operate(ItemOperateType type, string guid) | 
|         // { | 
|         //     switch (type) | 
|         //     { | 
|         //         case ItemOperateType.putOn: | 
|         //             ItemOperateUtility.Instance.PutOnItem(guid); | 
|         //             break; | 
|         //         case ItemOperateType.gotoPuton: | 
|         //             ItemOperateUtility.Instance.PutOnItem(guid); | 
|         //             break; | 
|         //         case ItemOperateType.putOff: | 
|         //             ItemOperateUtility.Instance.PutOffEquip(guid); | 
|         //             break; | 
|         //         case ItemOperateType.putAway: | 
|         //             ItemOperateUtility.Instance.PutAway(guid); | 
|         //             break; | 
|         //         case ItemOperateType.putIn: | 
|         //             ItemOperateUtility.Instance.PutInWareHouse(guid); | 
|         //             break; | 
|         //         case ItemOperateType.putOut: | 
|         //             ItemOperateUtility.Instance.TakeOutFromWarehouse(guid); | 
|         //             break; | 
|         //         case ItemOperateType.sell: | 
|         //             ItemOperateUtility.Instance.SellItem(guid); | 
|         //             break; | 
|         //         case ItemOperateType.strength: | 
|         //             ItemOperateUtility.Instance.GotoStrengthen(guid); | 
|         //             break; | 
|         //         case ItemOperateType.star: | 
|         //             ItemOperateUtility.Instance.GotoStarUpgrade(guid); | 
|         //             break; | 
|         //         case ItemOperateType.inlay: | 
|         //             ItemOperateUtility.Instance.GotoInlayItem(guid); | 
|         //             break; | 
|         //         case ItemOperateType.train: | 
|         //             ItemOperateUtility.Instance.GotoTrain(guid); | 
|         //             break; | 
|         //         case ItemOperateType.makeUse: | 
|         //             ItemOperateUtility.Instance.GotoUseItem(guid); | 
|         //             break; | 
|         //         case ItemOperateType.split: | 
|         //             ItemOperateUtility.Instance.OnClickSplitBtn(guid); | 
|         //             break; | 
|         //         case ItemOperateType.compose: | 
|         //             var wannaComposeItem = packModel.GetItemByGuid(guid); | 
|         //             var jumpId = 0; | 
|         //             var isUnlock = composeModel.CheckComposeItemById(wannaComposeItem.itemId, out jumpId); | 
|         //             if (isUnlock) | 
|         //             { | 
|         //                 ItemOperateUtility.Instance.GotoComposeItem(jumpId); | 
|         //             } | 
|         //             break; | 
|         //         case ItemOperateType.renewal: | 
|         //             ItemOperateUtility.Instance.RenewalItem(guid); | 
|         //             break; | 
|         //         case ItemOperateType.exchange: | 
|         //             WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.ExchangeActiveToken); | 
|         //             break; | 
|         //         case ItemOperateType.lsExchange: | 
|         //             WindowCenter.Instance.Open<LingShiChange>(); | 
|         //             break; | 
|         //         case ItemOperateType.default1: | 
|         //             var item = packModel.GetItemByGuid(guid); | 
|         //             if (item == null) | 
|         //             { | 
|         //                 break; | 
|         //             } | 
|   | 
|         //             EquipEvolveModel.Instance.EquipJump(item.config.LV, item.config.EquipPlace); | 
|         //             WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)2013); | 
|         //             break; | 
|         //     } | 
|         // } | 
|   | 
|         // public static void GoodOperate(ItemOperateType type, int goodId, int count) | 
|         // { | 
|         //     var config = StoreConfig.Get(goodId); | 
|         //     storeModel.SendBuyShopItem(config, count); | 
|         // } | 
|   | 
|   | 
|         private static BaseInfo GetBaseInfo(int itemId) | 
|         { | 
|             var config = ItemConfig.Get(itemId); | 
|             var money = 0; | 
|             if (config.Type == 81) | 
|             { | 
|                 var chestConfig = ChestsConfig.Get(itemId); | 
|                 money = chestConfig.OpenMoney; | 
|             } | 
|   | 
|             var baseInfo = new BaseInfo() | 
|             { | 
|                 itemId = itemId, | 
|                 isAuction = false, | 
|                 isEquiped = false, | 
|                 isPreview = true, | 
|                 //score = ItemLogicUtility.Instance.GetEquipScore(itemId, null, true), | 
|                 auctionSurplusTime = 0, | 
|                 levelLimit = config.UseLV, | 
|                 realmLimit = config.RealmLimit, | 
|                 moneyLimit = money, | 
|             }; | 
|   | 
|             return baseInfo; | 
|         } | 
|   | 
|         // private static BaseInfo GetBaseInfo(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|   | 
|         //     var level = item.config.LV; | 
|         //     var place = item.config.EquipPlace; | 
|   | 
|         //     var isEquiped = equipModel.GetEquip(new Int2(level, place)) == guid; | 
|   | 
|         //     var type = EquipStrengthModel.GetEquipStrengthType(place); | 
|         //     var star = starModel.GetEquipStarLevel(new Int2(level, place)); | 
|         //     var maxStrengthenLevel = strengthenModel.GetEquipLevelMax(type, level); | 
|         //     var placeStrengthenLevel = strengthenModel.GetStrengthLevel(level, place); | 
|   | 
|         //     var money = 0; | 
|         //     if (item.config.Type == 81) | 
|         //     { | 
|         //         var chestConfig = ChestsConfig.Get(item.itemId); | 
|         //         money = chestConfig.OpenMoney; | 
|         //     } | 
|   | 
|         //     var baseInfo = new BaseInfo() | 
|         //     { | 
|         //         itemId = item.itemId, | 
|         //         count = item.count, | 
|         //         isAuction = item.isAuction, | 
|         //         isEquiped = isEquiped, | 
|         //         isPreview = false, | 
|         //         score = item.score, | 
|         //         isOverdue = ItemLogicUtility.Instance.IsOverdue(guid), | 
|         //         auctionSurplusTime = item.isAuction ? item.auctionSurplusTime : 0, | 
|         //         overdueSurplusTime = item.overdueSurplusTime, | 
|         //         levelLimit = item.isAuction ? 0 : item.config.UseLV, | 
|         //         realmLimit = item.isAuction ? 0 : item.config.RealmLimit, | 
|         //         star = isEquiped ? star : -1, | 
|         //         strengthenLevel = isEquiped ? Mathf.Min(placeStrengthenLevel, maxStrengthenLevel) : 0, | 
|         //         moneyLimit = money, | 
|         //     }; | 
|   | 
|         //     return baseInfo; | 
|         // } | 
|   | 
|         private static BaseProperty GetBaseProperty(int itemId) | 
|         { | 
|             var baseProperties = new List<Int2>(); | 
|             var config = ItemConfig.Get(itemId); | 
|   | 
|             if (config.Effect1 == 220) | 
|             { | 
|                 return GetBaseProperty(config.EffectValueA1); | 
|             } | 
|   | 
|             if (!ItemLogicUtility.Instance.IsDogzEquip(itemId)) | 
|             { | 
|                 if (config.Effect1 != 0) | 
|                 { | 
|                     baseProperties.Add(new Int2(config.Effect1, config.EffectValueA1)); | 
|                 } | 
|             } | 
|   | 
|             if (config.Effect2 != 0) | 
|             { | 
|                 baseProperties.Add(new Int2(config.Effect2, config.EffectValueA2)); | 
|             } | 
|   | 
|             if (config.Effect3 != 0) | 
|             { | 
|                 baseProperties.Add(new Int2(config.Effect3, config.EffectValueA3)); | 
|             } | 
|   | 
|             if (config.Effect4 != 0) | 
|             { | 
|                 baseProperties.Add(new Int2(config.Effect4, config.EffectValueA4)); | 
|             } | 
|   | 
|             if (config.Effect5 != 0) | 
|             { | 
|                 baseProperties.Add(new Int2(config.Effect5, config.EffectValueA5)); | 
|             } | 
|   | 
|             var baseProperty = new BaseProperty() | 
|             { | 
|                 baseProperties = baseProperties, | 
|             }; | 
|   | 
|             return baseProperty; | 
|         } | 
|   | 
|         private static BaseProperty GetBaseProperty(string guid) | 
|         { | 
|             var item = PackManager.Instance.GetItemByGuid(guid); | 
|             var equipPosition = new Int2(item.config.LV, item.config.EquipPlace); | 
|             var equiped = true;//equipModel.GetEquip(equipPosition) == guid; | 
|   | 
|             var baseProperty = GetBaseProperty(item.itemId); | 
|   | 
|             if (equiped) | 
|             { | 
|                 var starProperties = new List<Int2>(); | 
|                 // var currentStar = starModel.GetEquipStarLevel(equipPosition); | 
|                 // var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV); | 
|                 // var star = Mathf.Min(currentStar, maxStar); | 
|                 // if (star > 0) | 
|                 // { | 
|                 //     baseProperty.star = star; | 
|                 //     var starConfig = EquipStarConfig.Get(item.config.LV, item.config.EquipPlace, star); | 
|                 //     starProperties.AddRange(starConfig.BaseAttrInfo); | 
|                 // } | 
|   | 
|                 baseProperty.starProperties = starProperties; | 
|             } | 
|   | 
|             return baseProperty; | 
|         } | 
|   | 
|         // private static BaseProperty GetPetMountBaseProperty(int itemId) | 
|         // { | 
|         //     var config = ItemConfig.Get(itemId); | 
|         //     var baseProperty = new BaseProperty(); | 
|         //     Dictionary<int, int> properties = null; | 
|         //     switch (config.Type) | 
|         //     { | 
|         //         case 26: | 
|         //             var petId = PetInfoConfig.GetItemUnLockPet(itemId); | 
|         //             properties = petModel.GetPetAttrAddDict(petId); | 
|         //             break; | 
|         //         case 41: | 
|         //         case 42: | 
|         //             var horseId = HorseConfig.GetItemUnLockHorse(itemId); | 
|         //             properties = mountModel.GetMountAttrAddDict(horseId); | 
|         //             break; | 
|         //         default: | 
|         //             break; | 
|         //     } | 
|   | 
|         //     if (properties != null) | 
|         //     { | 
|         //         baseProperty.baseProperties = new List<Int2>(); | 
|         //         foreach (var property in properties) | 
|         //         { | 
|         //             baseProperty.baseProperties.Add(new Int2(property.Key, property.Value)); | 
|         //         } | 
|         //     } | 
|   | 
|         //     return baseProperty; | 
|         // } | 
|   | 
|         // //神装属性 | 
|         // private static ShenProperty GetShenProperty(int itemId) | 
|         // { | 
|         //     var data = new ShenProperty(); | 
|         //     data.isPreview = true; | 
|         //     data.itemId = itemId; | 
|   | 
|         //     var config = ItemConfig.Get(itemId); | 
|   | 
|         //     data.properties = ShenPropertyUtility.GetEquipShenProperties(itemId); | 
|   | 
|   | 
|         //     return data; | 
|         // } | 
|   | 
|   | 
|         // private static LegendProperty GetLegendProperty(int itemId) | 
|         // { | 
|         //     var data = new LegendProperty(); | 
|         //     data.isPreview = true; | 
|         //     data.itemId = itemId; | 
|   | 
|         //     var config = ItemConfig.Get(itemId); | 
|         //     if (config.Effect1 == 220) | 
|         //     { | 
|         //         data.isPreview = false; | 
|         //         var appConfig = AppointItemConfig.Get(itemId); | 
|         //         data.trueCount = 0; | 
|   | 
|         //         data.properties = new List<Int2>(); | 
|         //         for (var i = 0; i < appConfig.LegendAttrID.Length; i++) | 
|         //         { | 
|         //             data.properties.Add(new Int2(appConfig.LegendAttrID[i], appConfig.LegendAttrValue[i])); | 
|         //         } | 
|         //     } | 
|         //     else | 
|         //     { | 
|         //         data.properties = LegendPropertyUtility.GetLegendProFromEquipShen(itemId); | 
|         //         if (data.properties != null) | 
|         //         { | 
|         //             data.trueCount = 0; | 
|         //             data.isPreview = false; | 
|         //         } | 
|         //         else | 
|         //         { | 
|         //             data.trueCount = LegendPropertyUtility.GetEquipPropertyCount(itemId); | 
|         //             data.properties = LegendPropertyUtility.GetEquipProperties(itemId); | 
|         //         } | 
|         //     } | 
|   | 
|         //     return data; | 
|         // } | 
|   | 
|         // private static SpiritWeaponProperty GetSpiritWeaponProperty(int itemId) | 
|         // { | 
|         //     var config = SpiritWeaponConfig.Get(itemId); | 
|         //     if (config == null) | 
|         //     { | 
|         //         return default(SpiritWeaponProperty); | 
|         //     } | 
|   | 
|         //     var properties = new List<Int3>(); | 
|         //     for (var i = 0; i < config.AttrIDList.Length; i++) | 
|         //     { | 
|         //         properties.Add(new Int3(config.AttrIDList[i], config.AttrValueList[i], config.AttrColorList[i])); | 
|         //     } | 
|   | 
|         //     var spiritWeaponProperty = new SpiritWeaponProperty(); | 
|         //     spiritWeaponProperty.itemId = itemId; | 
|         //     spiritWeaponProperty.properties = properties; | 
|         //     return spiritWeaponProperty; | 
|         // } | 
|   | 
|         // private static LegendProperty GetLegendProperty(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(LegendProperty); | 
|         //     } | 
|   | 
|         //     var data = new LegendProperty(); | 
|         //     data.isPreview = false; | 
|         //     data.itemId = item.itemId; | 
|   | 
|         //     var ids = item.GetUseData((int)ItemUseDataKey.legendAttrID); | 
|         //     var values = item.GetUseData((int)ItemUseDataKey.legendAttrValue); | 
|         //     if (!ids.IsNullOrEmpty() && !values.IsNullOrEmpty()) | 
|         //     { | 
|         //         var properties = new List<Int2>(); | 
|         //         var count = Mathf.Min(ids.Count, values.Count); | 
|         //         for (int i = 0; i < count; i++) | 
|         //         { | 
|         //             properties.Add(new Int2(ids[i], values[i])); | 
|         //         } | 
|   | 
|         //         data.properties = properties; | 
|         //     } | 
|   | 
|         //     return data; | 
|         // } | 
|   | 
|         public static LegendProperty GetLegendProperty(int itemId, Dictionary<int, List<int>> userData) | 
|         { | 
|             var data = new LegendProperty(); | 
|             data.isPreview = false; | 
|             data.itemId = itemId; | 
|   | 
|             List<int> ids = null; | 
|             List<int> values = null; | 
|             if (userData != null) | 
|             { | 
|                 userData.TryGetValue((int)ItemUseDataKey.legendAttrID, out ids); | 
|                 userData.TryGetValue((int)ItemUseDataKey.legendAttrValue, out values); | 
|             } | 
|             if (!ids.IsNullOrEmpty() && !values.IsNullOrEmpty()) | 
|             { | 
|                 var properties = new List<Int2>(); | 
|                 var count = Mathf.Min(ids.Count, values.Count); | 
|                 for (int i = 0; i < count; i++) | 
|                 { | 
|                     properties.Add(new Int2(ids[i], values[i])); | 
|                 } | 
|   | 
|                 data.properties = properties; | 
|             } | 
|   | 
|             return data; | 
|         } | 
|   | 
|         // public static SuitInfo GetSuitInfo(int itemId) | 
|         // { | 
|         //     var config = ItemConfig.Get(itemId); | 
|         //     if (config == null || config.SuiteiD <= 0) | 
|         //     { | 
|         //         return default(SuitInfo); | 
|         //     } | 
|   | 
|         //     var job = config.JobLimit; | 
|         //     var twoConfigs = EquipSuitConfig.GetConfigs(job, config.LV, EquipSuitType.TwoSuit); | 
|   | 
|         //     var name = twoConfigs[0].name; | 
|         //     var level = config.LV; | 
|         //     var places = new List<int>(); | 
|         //     places.Add(config.EquipPlace); | 
|         //     //var suitInfo = new SuitInfo() | 
|         //     //{ | 
|         //     //    name = name, | 
|         //     //    level = level, | 
|         //     //    job = job, | 
|         //     //    places = places, | 
|         //     //}; | 
|         //     var maxSuitLevel = EquipStarModel.GetMaxStarLevel(level); | 
|   | 
|         //     var placeStars = new Dictionary<int, int>(); | 
|         //     for (int i = 1; i <= 8; i++) | 
|         //     { | 
|         //         var equip = packModel.GetItemByGuid(equipModel.GetEquip(new Int2(level, i))); | 
|         //         var hasSuit = equip != null && equip.config.SuiteiD > 0; | 
|         //         if (hasSuit) | 
|         //         { | 
|         //             placeStars[i] = starModel.GetEquipStarLevel(new Int2(level, i)); | 
|         //         } | 
|         //     } | 
|   | 
|         //     var twoSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); | 
|         //     var fiveSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); | 
|         //     var eightSuits = new Dictionary<int, bool>(); | 
|         //     var eightSuitLevel = equipModel.GetSuitLevel(config.LV, EquipSuitType.EightSuit); | 
|   | 
|         //     var twoSuitProperties0 = equipModel.GetEquipSuitEntry(config.LV, 0, EquipSuitType.TwoSuit); | 
|         //     var fiveSuitProperties0 = equipModel.GetEquipSuitEntry(config.LV, 0, EquipSuitType.FiveSuit); | 
|   | 
|   | 
|         //     twoSuitProperties[0] = twoSuitProperties0; | 
|         //     fiveSuitProperties[0] = fiveSuitProperties0; | 
|         //     eightSuits[0] = eightSuitLevel >= 0; | 
|   | 
|         //     if (maxSuitLevel >= 3) | 
|         //     { | 
|         //         twoSuitProperties[3] = equipModel.GetEquipSuitEntry(config.LV, 3, EquipSuitType.TwoSuit); | 
|         //         fiveSuitProperties[3] = equipModel.GetEquipSuitEntry(config.LV, 3, EquipSuitType.FiveSuit); | 
|         //         eightSuits[3] = eightSuitLevel >= 3; | 
|         //     } | 
|   | 
|         //     if (maxSuitLevel >= 6) | 
|         //     { | 
|         //         twoSuitProperties[6] = equipModel.GetEquipSuitEntry(config.LV, 6, EquipSuitType.TwoSuit); | 
|         //         fiveSuitProperties[6] = equipModel.GetEquipSuitEntry(config.LV, 6, EquipSuitType.FiveSuit); | 
|         //         eightSuits[6] = eightSuitLevel >= 3; | 
|         //     } | 
|   | 
|         //     if (maxSuitLevel >= 9) | 
|         //     { | 
|         //         twoSuitProperties[9] = equipModel.GetEquipSuitEntry(config.LV, 9, EquipSuitType.TwoSuit); | 
|         //         fiveSuitProperties[9] = equipModel.GetEquipSuitEntry(config.LV, 9, EquipSuitType.FiveSuit); | 
|         //         eightSuits[9] = eightSuitLevel >= 9; | 
|         //     } | 
|   | 
|         //     var suitInfo = new SuitInfo() | 
|         //     { | 
|         //         name = name, | 
|         //         level = level, | 
|         //         job = job, | 
|         //         maxSuitLevel = maxSuitLevel, | 
|         //         places = places, | 
|         //         placeStars = placeStars, | 
|         //         twoSuitProperties = twoSuitProperties, | 
|         //         fiveSuitProperties = fiveSuitProperties, | 
|         //         eightSuits = eightSuits | 
|         //     }; | 
|         //     return suitInfo; | 
|         // } | 
|   | 
|         // private static SuitInfo GetSuitInfo(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(SuitInfo); | 
|         //     } | 
|   | 
|         //     var config = ItemConfig.Get(item.itemId); | 
|         //     if (config == null || config.SuiteiD <= 0) | 
|         //     { | 
|         //         return default(SuitInfo); | 
|         //     } | 
|   | 
|         //     var equipPosition = new Int2(item.config.LV, item.config.EquipPlace); | 
|         //     var equiped = equipModel.GetEquip(equipPosition) == guid; | 
|   | 
|         //     var job = config.JobLimit; | 
|         //     var twoConfigs = EquipSuitConfig.GetConfigs(job, config.LV, EquipSuitType.TwoSuit); | 
|         //     var name = twoConfigs[0].name; | 
|   | 
|         //     var level = config.LV; | 
|         //     var maxSuitLevel = equiped ? EquipStarModel.GetMaxStarLevel(level) : -1; | 
|   | 
|         //     var places = new List<int>(); | 
|         //     var placeStars = new Dictionary<int, int>(); | 
|         //     if (equiped) | 
|         //     { | 
|         //         for (int i = 1; i <= 8; i++) | 
|         //         { | 
|         //             var equip = packModel.GetItemByGuid(equipModel.GetEquip(new Int2(level, i))); | 
|         //             var hasSuit = equip != null && equip.config.SuiteiD > 0; | 
|         //             if (hasSuit) | 
|         //             { | 
|         //                 places.Add(i); | 
|         //                 placeStars[i] = starModel.GetEquipStarLevel(new Int2(level, i)); | 
|         //             } | 
|         //         } | 
|         //     } | 
|   | 
|         //     var twoSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); | 
|         //     var fiveSuitProperties = new Dictionary<int, EquipSuitPropertyEntry>(); | 
|         //     var eightSuits = new Dictionary<int, bool>(); | 
|         //     var eightSuitLevel = equiped ? equipModel.GetSuitLevel(config.LV, EquipSuitType.EightSuit) : -1; | 
|   | 
|         //     if (!equiped) | 
|         //     { | 
|         //         var suit2 = equipModel.GetEquipSuitEntry(config.LV, 0, EquipSuitType.TwoSuit); | 
|         //         suit2.actived = false; | 
|         //         var suit5 = equipModel.GetEquipSuitEntry(config.LV, 0, EquipSuitType.FiveSuit); | 
|         //         suit5.actived = false; | 
|         //         twoSuitProperties[0] = suit2; | 
|         //         fiveSuitProperties[0] = suit5; | 
|         //         eightSuits[0] = eightSuitLevel >= 0; | 
|         //     } | 
|         //     else | 
|         //     { | 
|         //         foreach (var star in EquipStarModel.StarList) | 
|         //         { | 
|         //             if (maxSuitLevel >= star) | 
|         //             { | 
|         //                 twoSuitProperties[star] = equipModel.GetEquipSuitEntry(config.LV, star, EquipSuitType.TwoSuit); | 
|         //                 fiveSuitProperties[star] = equipModel.GetEquipSuitEntry(config.LV, star, EquipSuitType.FiveSuit); | 
|         //                 eightSuits[star] = eightSuitLevel >= star; | 
|         //             } | 
|         //         } | 
|         //     } | 
|   | 
|   | 
|   | 
|   | 
|         //     var suitInfo = new SuitInfo() | 
|         //     { | 
|         //         name = name, | 
|         //         level = level, | 
|         //         job = job, | 
|         //         maxSuitLevel = maxSuitLevel, | 
|         //         places = places, | 
|         //         placeStars = placeStars, | 
|         //         twoSuitProperties = twoSuitProperties, | 
|         //         fiveSuitProperties = fiveSuitProperties, | 
|         //         eightSuits = eightSuits | 
|         //     }; | 
|   | 
|         //     return suitInfo; | 
|         // } | 
|   | 
|         // private static StarInfo GetStarInfo(int itemId) | 
|         // { | 
|         //     var config = ItemConfig.Get(itemId); | 
|         //     if (!EquipModel.IsRealmEquip(config.EquipPlace)) | 
|         //     { | 
|         //         return default(StarInfo); | 
|         //     } | 
|   | 
|         //     var starInfo = new StarInfo(); | 
|         //     starInfo.equipPosition = new Int2(config.LV, config.EquipPlace); | 
|         //     starInfo.maxLevel = EquipStarModel.GetMaxStarLevel(config.ItemColor, config.LV); | 
|         //     starInfo.starLevel = 0; | 
|   | 
|         //     return starInfo; | 
|         // } | 
|   | 
|         // private static StarInfo GetStarInfo(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(StarInfo); | 
|         //     } | 
|   | 
|         //     if (!EquipModel.IsRealmEquip(item.config.EquipPlace)) | 
|         //     { | 
|         //         return default(StarInfo); | 
|         //     } | 
|   | 
|         //     var starInfo = new StarInfo(); | 
|         //     var equipPosition = new Int2(item.config.LV, item.config.EquipPlace); | 
|         //     var equiped = equipModel.GetEquip(equipPosition) == guid; | 
|         //     starInfo.equipPosition = equipPosition; | 
|         //     starInfo.maxLevel = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV); | 
|         //     starInfo.starLevel = equiped ? starModel.GetStarLevel(equipPosition) : 0; | 
|   | 
|         //     return starInfo; | 
|         // } | 
|   | 
|         // private static StrengthenProperty GetStrengthenProperty(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(StrengthenProperty); | 
|         //     } | 
|   | 
|         //     var level = item.config.LV; | 
|         //     var place = item.config.EquipPlace; | 
|         //     var equiped = equipModel.GetEquip(new Int2(level, place)) == guid; | 
|         //     if (!equiped) | 
|         //     { | 
|         //         return default(StrengthenProperty); | 
|         //     } | 
|   | 
|         //     var data = new StrengthenProperty(); | 
|   | 
|         //     var strengthenLevel = strengthenModel.GetStrengthLevel(level, place); | 
|              | 
|         //     var type = EquipStrengthModel.GetEquipStrengthType(place); | 
|         //     var maxStrengthenLevel = strengthenModel.GetEquipLevelMax(type, level); | 
|   | 
|         //     data.strengthenLevel = Mathf.Min(strengthenLevel, maxStrengthenLevel); | 
|         //     data.evolveLevel = strengthenModel.GetStrengthEvolveLevel(level, place); | 
|         //     data.equipPlace = place; | 
|   | 
|         //     data.properties = new List<Int2>(); | 
|         //     var config = ItemPlusConfig.GetTypeAndLevel(type, data.strengthenLevel); | 
|         //     for (int i = 0; i < config.attType.Length; i++) | 
|         //     { | 
|         //         data.properties.Add(new Int2(config.attType[i], config.attValue[i])); | 
|         //     } | 
|   | 
|         //     return data; | 
|         // } | 
|   | 
|         // private static GemInfo GetGemInfo(int itemId) | 
|         // { | 
|         //     var config = ItemConfig.Get(itemId); | 
|         //     var level = config.LV; | 
|         //     var place = config.EquipPlace; | 
|   | 
|         //     var gemInfo = new GemInfo(); | 
|         //     var maxStar = EquipStarModel.GetMaxStarLevel(config.ItemColor, config.LV); | 
|         //     gemInfo.activeStates = new Dictionary<int, bool>(); | 
|         //     for (int i = 0; i < 4; i++) | 
|         //     { | 
|         //         gemInfo.activeStates[i] = IsEquipGemHoleOpen(new Int2(level, place), maxStar, i); | 
|         //     } | 
|   | 
|         //     return gemInfo; | 
|         // } | 
|   | 
|         // private static GemInfo GetGemInfo(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(GemInfo); | 
|         //     } | 
|   | 
|         //     var level = item.config.LV; | 
|         //     var place = item.config.EquipPlace; | 
|   | 
|         //     var gemInfo = new GemInfo(); | 
|         //     var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV); | 
|         //     gemInfo.activeStates = new Dictionary<int, bool>(); | 
|         //     for (int i = 0; i < 4; i++) | 
|         //     { | 
|         //         gemInfo.activeStates[i] = IsEquipGemHoleOpen(new Int2(level, place), maxStar, i); | 
|         //     } | 
|   | 
|         //     gemInfo.gems = new Dictionary<int, int>(); | 
|         //     if (item.packType == PackType.Equip) | 
|         //     { | 
|         //         int[] gems; | 
|         //         if (gemModel.TryGetEquipGems(item.config.LV, item.config.EquipPlace, out gems)) | 
|         //         { | 
|         //             for (int i = 0; i < gems.Length; i++) | 
|         //             { | 
|         //                 gemInfo.gems[i] = gems[i]; | 
|         //             } | 
|         //         } | 
|         //     } | 
|   | 
|         //     return gemInfo; | 
|         // } | 
|   | 
|         // private static TrainProperty GetTrainProperty(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(TrainProperty); | 
|         //     } | 
|   | 
|         //     var equipPosition = new Int2(item.config.LV, item.config.EquipPlace); | 
|         //     var equiped = equipModel.GetEquip(equipPosition) == guid; | 
|         //     if (!equiped) | 
|         //     { | 
|         //         return default(TrainProperty); | 
|         //     } | 
|   | 
|         //     var trainProperty = new TrainProperty(); | 
|         //     var star = Mathf.Min(EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV), starModel.GetEquipStarLevel(equipPosition)); | 
|         //     var type = EquipTrainModel.GetTrainType(equipPosition.y); | 
|         //     var maxConfig = WashLevelMaxConfig.Get(type, star); | 
|         //     var maxLevel = maxConfig == null ? 1 : maxConfig.levelMax; | 
|         //     var trainLevel = Mathf.Min(maxLevel, trainModel.GetTrainLevel(equipPosition)); | 
|         //     trainProperty.level = trainLevel; | 
|   | 
|         //     var trainConfig = EquipWashConfig.Get(type, trainLevel); | 
|         //     trainProperty.properties = new List<Int2>(); | 
|   | 
|         //     if (trainConfig == null) | 
|         //     { | 
|         //         var trainConfigLevel1 = EquipWashConfig.Get(type, 1); | 
|         //         trainProperty.properties.Add(new Int2(trainConfigLevel1.config.attType1, 0)); | 
|         //         trainProperty.properties.Add(new Int2(trainConfigLevel1.config.attType2, 0)); | 
|         //         //trainProperty.properties.Add(new Int2(trainConfigLevel1.config.attType3, 0)); | 
|         //     } | 
|         //     else | 
|         //     { | 
|         //         var trainedProperties = trainModel.GetTrainedProperties(equipPosition); | 
|         //         trainProperty.properties.Add(new Int2(trainConfig.config.attType1, Mathf.Min(trainedProperties.x, trainConfig.config.attMax1))); | 
|         //         trainProperty.properties.Add(new Int2(trainConfig.config.attType2, Mathf.Min(trainedProperties.y, trainConfig.config.attMax2))); | 
|         //         //trainProperty.properties.Add(new Int2(trainConfig.config.attType3, Mathf.Min(trainedProperties.z, trainConfig.config.attMax3))); | 
|         //     } | 
|   | 
|         //     return trainProperty; | 
|         // } | 
|   | 
|         private static SkillInfo GetSkillInfo(int itemId) | 
|         { | 
|             var config = ItemConfig.Get(itemId); | 
|             if (config == null) | 
|             { | 
|                 return default(SkillInfo); | 
|             } | 
|   | 
|             var skillInfo = new SkillInfo(); | 
|             skillInfo.skills = new List<int>(); | 
|   | 
|             if (config.AddSkill1 != 0) | 
|             { | 
|                 skillInfo.skills.Add(config.AddSkill1); | 
|             } | 
|   | 
|             if (config.AddSkill2 != 0) | 
|             { | 
|                 skillInfo.skills.Add(config.AddSkill2); | 
|             } | 
|   | 
|             return skillInfo; | 
|         } | 
|          | 
|   | 
|         private static SkillInfo GetSkillInfo(int itemId, CustomEquipInfo info) | 
|         { | 
|             var skillInfo = new SkillInfo(); | 
|             skillInfo.skills = new List<int>(); | 
|             if (!info.equipSkillList.IsNullOrEmpty()) | 
|             { | 
|                 skillInfo.skills = info.equipSkillList; | 
|             } | 
|             else | 
|             { | 
|                 return GetSkillInfo(itemId); | 
|             } | 
|             return skillInfo; | 
|         } | 
|   | 
|         // private static SkillInfo GetSkillInfo(int itemId, string guid) | 
|         // { | 
|   | 
|         //     var skillInfo = new SkillInfo(); | 
|         //     skillInfo.skills = new List<int>(); | 
|   | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return GetSkillInfo(itemId); | 
|         //     } | 
|   | 
|         //     var values = item.GetUseData((int)ItemUseDataKey.equipSkills); | 
|         //     if (!values.IsNullOrEmpty()) | 
|         //     { | 
|         //         skillInfo.skills = values; | 
|         //     } | 
|         //     else | 
|         //     { | 
|         //         return GetSkillInfo(itemId); | 
|         //     } | 
|   | 
|         //     return skillInfo; | 
|         // } | 
|   | 
|         // private static WingRefineMaterials GetWingRefineMaterials(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return default(WingRefineMaterials); | 
|         //     } | 
|   | 
|         //     if (item.config.Type != 113) | 
|         //     { | 
|         //         return default(WingRefineMaterials); | 
|         //     } | 
|   | 
|         //     var refineMaterials = new WingRefineMaterials(); | 
|         //     refineMaterials.materials = new List<Int2>(); | 
|   | 
|         //     var ids = item.GetUseData((int)ItemUseDataKey.wingMaterialItemID); | 
|         //     var values = item.GetUseData((int)ItemUseDataKey.wingMaterialItemCount); | 
|         //     if (!ids.IsNullOrEmpty() && !values.IsNullOrEmpty()) | 
|         //     { | 
|         //         var min = Mathf.Min(ids.Count, values.Count); | 
|         //         for (int i = 0; i < min; i++) | 
|         //         { | 
|         //             refineMaterials.materials.Add(new Int2(ids[i], values[i])); | 
|         //         } | 
|         //     } | 
|   | 
|         //     return refineMaterials; | 
|         // } | 
|   | 
|         // private static GetWay GetGetWay(int itemId) | 
|         // { | 
|         //     var config = ItemConfig.Get(itemId); | 
|         //     if (config == null) | 
|         //     { | 
|         //         return default(GetWay); | 
|         //     } | 
|   | 
|         //     var getWay = new GetWay(); | 
|         //     getWay.itemId = itemId; | 
|         //     getWay.ways = new List<int>(); | 
|         //     foreach (var way in config.GetWay) | 
|         //     { | 
|         //         var wayConfig = GetItemWaysConfig.Get(way); | 
|         //         if (wayConfig.FuncOpenId == 0 || FuncOpen.Instance.IsFuncOpen(wayConfig.FuncOpenId)) | 
|         //         { | 
|         //             int activityType = 0;  // 活动模板 参考OpenServerActivityCenter.ActivityType | 
|         //             if (wayConfig.customize == 2) | 
|         //             { | 
|         //                 activityType = (int)OpenServerActivityCenter.ActivityType.AT_JRZF; | 
|         //             } | 
|         //             else if (wayConfig.customize == 3) | 
|         //             { | 
|         //                 activityType = (int)OpenServerActivityCenter.ActivityType.AT_HFHD; | 
|         //             } | 
|         //             if (wayConfig.ActiveType == -1 || OpenServerActivityCenter.Instance.IsActivityOpen(wayConfig.ActiveType, activityType)) | 
|         //             { | 
|         //                 getWay.ways.Add(way); | 
|         //             } | 
|         //         } | 
|         //     } | 
|   | 
|         //     return getWay; | 
|         // } | 
|   | 
|         // private static List<ItemOperateType> GetOperates(int itemId, int itemCount = 0) | 
|         // { | 
|         //     var config = ItemConfig.Get(itemId); | 
|         //     var operates = new List<ItemOperateType>(); | 
|         //     var lsItemID = 150; | 
|         //     if (config.CanSell == 1 && itemId != lsItemID) | 
|         //     { | 
|         //         operates.Add(ItemOperateType.sell); | 
|         //     } | 
|   | 
|         //     // if (itemCount > 1 && itemId != lsItemID) | 
|         //     // { | 
|         //     //     operates.Add(ItemOperateType.split); | 
|         //     // } | 
|   | 
|         //     if (config.UseTag == 1) | 
|         //     { | 
|         //         if (itemId != lsItemID) | 
|         //             operates.Add(ItemOperateType.makeUse); | 
|         //         else | 
|         //             operates.Add(ItemOperateType.lsExchange); | 
|         //     } | 
|   | 
|         //     if (config.Type == 25 || config.Effect1 == 225) | 
|         //     { | 
|         //         operates.Add(ItemOperateType.inlay); | 
|         //     } | 
|   | 
|         //     if (!config.JumpComposeCondi.IsNullOrEmpty()) | 
|         //     { | 
|         //         var jumpId = 0; | 
|         //         if (composeModel.CheckComposeItemById(itemId, out jumpId)) | 
|         //         { | 
|         //             operates.Add(ItemOperateType.compose); | 
|         //         } | 
|         //     } | 
|   | 
|         //     return operates; | 
|         // } | 
|   | 
|          | 
|         // private static List<ItemOperateType> GetOperates(string guid) | 
|         // { | 
|         //     var item = packModel.GetItemByGuid(guid); | 
|         //     if (item == null) | 
|         //     { | 
|         //         return null; | 
|         //     } | 
|   | 
|         //     var operates = new List<ItemOperateType>(); | 
|   | 
|         //     var packType = item.packType; | 
|         //     if (WindowCenter.Instance.IsOpen("DepotWin")) | 
|         //     { | 
|         //         switch (packType) | 
|         //         { | 
|         //             case PackType.Warehouse: | 
|         //                 operates.Add(ItemOperateType.putOut); | 
|         //                 break; | 
|         //             default: | 
|         //                 operates.Add(ItemOperateType.putIn); | 
|         //                 break; | 
|         //         } | 
|   | 
|         //         return operates; | 
|         //     } | 
|   | 
|         //     if (packType == PackType.Equip) | 
|         //     { | 
|         //         if (WindowCenter.Instance.IsOpen("RealmEquipWin")) | 
|         //         { | 
|         //             operates.Add(ItemOperateType.putOff); | 
|   | 
|         //             if (FuncOpen.Instance.IsFuncOpen(1)) | 
|         //             { | 
|         //                 operates.Add(ItemOperateType.strength); | 
|         //             } | 
|   | 
|         //             if (FuncOpen.Instance.IsFuncOpen(172)) | 
|         //             { | 
|         //                 operates.Add(ItemOperateType.star); | 
|         //             } | 
|   | 
|         //             if (FuncOpen.Instance.IsFuncOpen(2)) | 
|         //             { | 
|         //                 operates.Add(ItemOperateType.inlay); | 
|         //             } | 
|   | 
|         //             if (FuncOpen.Instance.IsFuncOpen(91)) | 
|         //             { | 
|         //                 int limitLevel = 0; | 
|         //                 if (equipModel.EquipLevelFuncID != null) | 
|         //                     limitLevel = equipModel.EquipLevelFuncID[91]; | 
|         //                 if (item.config.LV >= limitLevel) | 
|         //                     operates.Add(ItemOperateType.train); | 
|         //             } | 
|   | 
|         //             if (EquipEvolveModel.Instance.IsShowEvolveBtn(item.itemId)) | 
|         //             { | 
|         //                 operates.Add(ItemOperateType.default1); | 
|         //             } | 
|         //             return operates; | 
|         //         } | 
|   | 
|         //         if (ItemLogicUtility.Instance.IsRealmEquip(item.itemId) && WindowCenter.Instance.IsOpen("RoleEquipWin")) | 
|         //         { | 
|         //             operates.Add(ItemOperateType.putOff); | 
|         //             return operates; | 
|         //         } | 
|   | 
|         //         if (ItemLogicUtility.Instance.IsSpiritWeapon(item.itemId) && WindowCenter.Instance.IsOpen("SpiritEquipBagWin")) | 
|         //         { | 
|         //             operates.Add(ItemOperateType.putOff); | 
|         //             return operates; | 
|         //         } | 
|         //     } | 
|   | 
|         //     if (packType == PackType.Warehouse) | 
|         //     { | 
|         //         operates.Add(ItemOperateType.putOut); | 
|         //         return operates; | 
|         //     } | 
|   | 
|         //     if (item.isAuction) | 
|         //     { | 
|         //         operates.Add(ItemOperateType.putAway); | 
|         //     } | 
|   | 
|         //     var isEquip = ItemLogicUtility.Instance.IsRealmEquip(item.itemId); | 
|         //     var isSpiritWeapon = ItemLogicUtility.Instance.IsSpiritWeapon(item.itemId); | 
|         //     if (isEquip || isSpiritWeapon) | 
|         //     { | 
|         //         var isOverdue = ItemLogicUtility.Instance.IsOverdue(guid); | 
|         //         if (item.config.CanSell == 1) | 
|         //         { | 
|         //             operates.Add(ItemOperateType.sell); | 
|         //         } | 
|   | 
|         //         if (item.config.ExpireTime > 0 && isOverdue && itemOverdueModel.CanRenewal(item.itemId)) | 
|         //         { | 
|         //             operates.Add(ItemOperateType.renewal); | 
|         //         } | 
|   | 
|         //         if (!isOverdue) | 
|         //         { | 
|         //             if (ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId)) | 
|         //             { | 
|         //                 if (isEquip) | 
|         //                 { | 
|         //                     operates.Add(ItemOperateType.putOn); | 
|   | 
|         //                     if (!item.config.JumpComposeCondi.IsNullOrEmpty()) | 
|         //                     { | 
|         //                         var jumpId = 0; | 
|         //                         if (composeModel.CheckComposeItemById(item.itemId, out jumpId)) | 
|         //                         { | 
|         //                             operates.Add(ItemOperateType.compose); | 
|         //                         } | 
|         //                     } | 
|         //                 } | 
|   | 
|         //                 if (isSpiritWeapon) | 
|         //                 { | 
|         //                     if (WindowCenter.Instance.IsOpen<RoleEquipWin>()) | 
|         //                     { | 
|         //                         operates.Add(ItemOperateType.putOn); | 
|         //                     } | 
|         //                     else if (WindowCenter.Instance.IsOpen<MainInterfaceWin>() || WindowCenter.Instance.IsOpen("SpiritEquipBagWin")) | 
|         //                     { | 
|         //                         operates.Add(ItemOperateType.putOn); | 
|         //                     } | 
|         //                 } | 
|         //             } | 
|         //             //else | 
|         //             //{ | 
|         //             //    if (item.config.ItemColor > 3) | 
|         //             //    { | 
|         //             //        operates.Add(ItemOperateType.exchange); | 
|         //             //    } | 
|         //             //} | 
|         //         } | 
|   | 
|         //         return operates; | 
|         //     } | 
|         //     if (ItemLogicUtility.Instance.IsDogzEquip(item.itemId)) | 
|         //     { | 
|         //         if (packType == PackType.DogzItem) | 
|         //         { | 
|         //             if (item.config.ItemColor > 2 && item.config.ItemColor < 6) | 
|         //             { | 
|         //                 operates.Add(ItemOperateType.compose); | 
|         //             } | 
|         //             operates.Add(ItemOperateType.putOn); | 
|         //         } | 
|         //         else if (packType == PackType.DogzEquip) | 
|         //         { | 
|         //             operates.Add(ItemOperateType.putOff); | 
|         //         } | 
|         //         return operates; | 
|         //     } | 
|   | 
|         //     operates.AddRange(GetOperates(item.itemId, item.count)); | 
|   | 
|         //     return operates; | 
|         // } | 
|   | 
|          | 
|   | 
|         private static List<ItemOperateType> GetGoodOperates(int goodId) | 
|         { | 
|             var operates = new List<ItemOperateType>(); | 
|             var countLimit = BuyItemController.Instance.GetBuyCountLimit(goodId, PlayerDatas.Instance.baseData.VIPLv); | 
|             if (countLimit == -1 || countLimit > 0) | 
|             { | 
|                 var config = StoreConfig.Get(goodId); | 
|                 int curVipIndex = -1; | 
|                 int nextVipIndex = -1; | 
|                 bool isVipBuy = BuyItemController.Instance.CheckIsVipBuy(config, out curVipIndex, out nextVipIndex); | 
|   | 
|                 if ((isVipBuy && curVipIndex == -1) || PlayerDatas.Instance.baseData.LV < config.LV) | 
|                 { | 
|                     return operates; | 
|                 } | 
|                 operates.Add(ItemOperateType.buy); | 
|             } | 
|   | 
|             return operates; | 
|         } | 
|   | 
|         // private static bool IsEquipGemHoleOpen(Int2 equipPosition, int maxStar, int hole) | 
|         // { | 
|         //     GemHoleCondition condition; | 
|         //     if (gemModel.TryGetGemHoleCondition(hole, out condition)) | 
|         //     { | 
|         //         var star = starModel.GetStarLevel(equipPosition); | 
|         //         if (Mathf.Min(star, maxStar) < condition.equipStar) | 
|         //         { | 
|         //             return false; | 
|         //         } | 
|   | 
|         //         var vipLevel = PlayerDatas.Instance.baseData.VIPLv; | 
|         //         if (vipLevel < condition.vipLevel) | 
|         //         { | 
|         //             return false; | 
|         //         } | 
|         //     } | 
|   | 
|         //     return true; | 
|         // } | 
|   | 
|         private static TipType GetTipType(int itemId) | 
|         { | 
|             if (GeneralDefine.chestDisplayItems.Contains(itemId)) | 
|             { | 
|                 return TipType.PeerlessChest; | 
|             } | 
|   | 
|             // if (ChestsAwardConfig.IsBox(itemId)) | 
|             // { | 
|             //     return TipType.BoxItem; | 
|             // } | 
|   | 
|             var config = ItemConfig.Get(itemId); | 
|             switch (config.Type) | 
|             { | 
|                 case 101: | 
|                 case 102: | 
|                 case 103: | 
|                 case 104: | 
|                 case 105: | 
|                 case 106: | 
|                 case 107: | 
|                 case 108: | 
|                 case 109: | 
|                 case 110: | 
|                 case 111: | 
|                 case 112: | 
|                     return TipType.Equip; | 
|                 case 26: | 
|                 case 41: | 
|                 case 42: | 
|                     return TipType.PetMount; | 
|                 case 147: | 
|                     return TipType.TreasurePavilion; | 
|                 default: | 
|                     return TipType.Item; | 
|             } | 
|   | 
|         } | 
|   | 
|         [System.Diagnostics.Conditional("UNITY_EDITOR")] | 
|         private static void PrintItemBrief(int itemId) | 
|         { | 
|             var config = ItemConfig.Get(itemId); | 
|             Debug.LogFormat("你查看的物品是:itemId->{0} ;name->{1}", itemId, config.ItemName); | 
|         } | 
|   | 
|         [System.Diagnostics.Conditional("UNITY_EDITOR")] | 
|         private static void PrintItemBrief(int itemId, string guid) | 
|         { | 
|             var config = ItemConfig.Get(itemId); | 
|             Debug.LogFormat("你查看的物品是:itemId->{0};name->{1};guid->{2};", itemId, config.ItemName, string.IsNullOrEmpty(guid) ? "" : guid); | 
|         } | 
|   | 
|     } |