//-------------------------------------------------------- // [Author]: 玩个游戏 // [ Date ]: Tuesday, March 12, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; using System.Linq; using LitJson; public class ItemTipUtility { public enum TipType { Item, Equip, PetMount, BoxItem, //宝箱随机物品 BoxChooseItem, //宝箱自选物品 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 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 moneyLimit; public int evolveLevel; } public struct BaseProperty { public List baseProperties; public int star; public List starProperties; } public struct SpiritWeaponProperty { public int itemId; public List properties; } public struct LegendProperty { public bool isPreview; public int itemId; public int trueCount; public List properties; public int score; } //神装属性 public struct ShenProperty { public bool isPreview; public int itemId; public List properties; } public struct SuitInfo { public int job; public string name; public int level; public int maxSuitLevel; public List places; public Dictionary placeStars; // public Dictionary twoSuitProperties; // public Dictionary fiveSuitProperties; public Dictionary eightSuits; } public struct StarInfo { public Int2 equipPosition; public int starLevel; public int maxLevel; } public struct StrengthenProperty { public int strengthenLevel; public List properties; public int evolveLevel; public int equipPlace; } public struct GemInfo { public Dictionary activeStates; public Dictionary gems; } public struct TrainProperty { public int level; public List properties; } public struct SkillInfo { public List skills; } public struct WingRefineMaterials { public List materials; } public struct GetWay { public bool defaultUnfold; public int itemId; public List ways; } public struct CustomEquipInfo { public int job; public int itemId; public int score; public bool isEquiped; public List legendProperties; public List suitPlaces; public Dictionary placeStars; // public Dictionary suitLevels; public int strengthenLevel; public int starLevel; public List trainProperties; public Dictionary gemHoleActiveStates; public Dictionary gems; public List 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(); } } // static EquipModel equipModel { get { return ModelCenter.Instance.GetModel(); } } // static EquipStarModel starModel { get { return ModelCenter.Instance.GetModel(); } } // static EquipGemModel gemModel { get { return ModelCenter.Instance.GetModel(); } } // static EquipTrainModel trainModel { get { return ModelCenter.Instance.GetModel(); } } // static EquipStrengthModel strengthenModel { get { return ModelCenter.Instance.GetModel(); } } // static MountModel mountModel { get { return ModelCenter.Instance.GetModel(); } } // static PetModel petModel { get { return ModelCenter.Instance.GetModel(); } } // static ComposeWinModel composeModel { get { return ModelCenter.Instance.GetModel(); } } // static StoreModel storeModel { get { return ModelCenter.Instance.GetModel(); } } // static VirtualPackModel virtualPackModel { get { return ModelCenter.Instance.GetModel(); } } // static ItemOverdueModel itemOverdueModel { get { return ModelCenter.Instance.GetModel(); } } // static BoxGetItemModel boxGetItemModel { get { return ModelCenter.Instance.GetModel(); } } public static TipData mainTipData { get; private set; } // 注意当递进点击打开多个tip界面会变更数据,不能依赖此值 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; default: mainTipData = CreateItemData(itemId); break; } mainTipData.getWay.defaultUnfold = item.unfoldGetWay; switch (tipType) { case TipType.Equip: // WindowCenter.Instance.Open(); break; // case TipType.PetMount: // WindowCenter.Instance.Open(); // break; case TipType.BoxItem: UIManager.Instance.OpenWindow(); break; case TipType.BoxChooseItem: UIManager.Instance.OpenWindow(); break; case TipType.TreasurePavilion: // TreasurePavilionModel.Instance.selectGubao = config.EffectValueA1; // TreasurePavilionModel.Instance.showTipFromPiece = config.ID; // WindowCenter.Instance.OpenIL(); break; default: UIManager.Instance.OpenWindow(); break; } } public static void Show(string guid, bool operatable = true) { var item = PackManager.Instance.GetItemByGuid(guid); if (item == null) { return; } PrintItemBrief(item.itemId, item); 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; default: mainTipData = CreateItemData(guid, operatable); break; } switch (tipType) { // case TipType.Equip: // WindowCenter.Instance.Open(); // break; // case TipType.PetMount: // WindowCenter.Instance.Open(); // break; case TipType.BoxItem: UIManager.Instance.OpenWindow(); break; case TipType.BoxChooseItem: UIManager.Instance.OpenWindow(); break; // case TipType.TreasurePavilion: // TreasurePavilionModel.Instance.selectGubao = item.config.EffectValueA1; // TreasurePavilionModel.Instance.showTipFromPiece = item.itemId; // WindowCenter.Instance.OpenIL(); // break; default: UIManager.Instance.OpenWindow(); break; } } // public static void ShowCustomEquip(CustomEquipInfo info) // { // secondaryData = null; // mainTipData = CreateCustomEquipData(info); // WindowCenter.Instance.Open(); // } // 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(); // 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(); // var fiveSuitProperties = new Dictionary(); // var eightSuits = new Dictionary(); // 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(); // 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(); // 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(); // 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 = PackManager.Instance.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(); // 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, moneyLimit = money, }; return baseInfo; } private static BaseInfo GetBaseInfo(string guid) { var item = PackManager.Instance.GetItemByGuid(guid); var level = item.config.LV; var place = item.config.EquipPlace; var isEquiped = false;// equipModel.GetEquip(new Int2(level, place)) == guid; // var type = EquipStrengthModel.GetEquipStrengthType(place); var star = 0; //starModel.GetEquipStarLevel(new Int2(level, place)); var maxStrengthenLevel = 0; //strengthenModel.GetEquipLevelMax(type, level); var placeStrengthenLevel = 0; //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, 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(); 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(); // 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 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(); // 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(); // 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(); // 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(); // 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> userData) { var data = new LegendProperty(); data.isPreview = false; data.itemId = itemId; List ids = null; List 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(); 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(); // 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(); // 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(); // var fiveSuitProperties = new Dictionary(); // var eightSuits = new Dictionary(); // 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(); // var placeStars = new Dictionary(); // 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(); // var fiveSuitProperties = new Dictionary(); // var eightSuits = new Dictionary(); // 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(); // 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(); // 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(); // for (int i = 0; i < 4; i++) // { // gemInfo.activeStates[i] = IsEquipGemHoleOpen(new Int2(level, place), maxStar, i); // } // gemInfo.gems = new Dictionary(); // 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(); // 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(); 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(); 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(); // 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 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(); // 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 GetGoodOperates(int goodId) { var operates = new List(); 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) { var boxType = ChestsAwardConfig.GetBoxType(itemId); if (boxType == 1) { return TipType.BoxItem; } else if (boxType == 2) { return TipType.BoxChooseItem; } 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, ItemModel item) { var config = ItemConfig.Get(itemId); Debug.LogFormat("查看物品:itemId->{0};name->{1};服务端索引->{3};guid->{2}", itemId, config.ItemName, item.guid, item.gridIndex); } }