| | |
| | | using UnityEngine.UI; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using LitJson; |
| | | |
| | | public class ItemTipUtility |
| | | { |
| | |
| | | { |
| | | Item, |
| | | Equip, |
| | | Dogz, |
| | | GatherSoul, //废弃 |
| | | KingTreasure, //王者法宝tip |
| | | PetMount, |
| | | SpiritWeapon, |
| | | PeerlessChest, |
| | | TreasureShow, //其他法宝tip |
| | | BoxItem, //宝箱物品 |
| | | BoxItem, //宝箱随机物品 |
| | | BoxChooseItem, //宝箱自选物品 |
| | | TreasurePavilion, //古宝物品(碎片) |
| | | } |
| | | |
| | |
| | | public string guid; |
| | | public int itemId; |
| | | public int goodId; |
| | | public int exchangeItemId; |
| | | public int exchangeItemId; //部分界面要动态变化物品的情况 |
| | | |
| | | public BaseInfo baseInfo; |
| | | public BaseProperty baseProperty; |
| | |
| | | // 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 mainTipData { get; private set; } // 注意当递进点击打开多个tip界面会变更数据,不能依赖此值 |
| | | public static TipData secondaryData { get; private set; } |
| | | |
| | | public static void Show(int itemId) |
| | |
| | | |
| | | // secondaryData = null; |
| | | |
| | | // var config = ItemConfig.Get(itemId); |
| | | // PrintItemBrief(itemId); |
| | | 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; |
| | | // } |
| | | 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; |
| | | // } |
| | | // 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<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; |
| | | // } |
| | | mainTipData.getWay.defaultUnfold = item.unfoldGetWay; |
| | | switch (tipType) |
| | | { |
| | | case TipType.Equip: |
| | | // WindowCenter.Instance.Open<EquipTipWin>(); |
| | | break; |
| | | |
| | | // case TipType.PetMount: |
| | | // WindowCenter.Instance.Open<PetMountTipWin>(); |
| | | // break; |
| | | |
| | | case TipType.BoxItem: |
| | | UIManager.Instance.OpenWindow<BoxItemWin>(); |
| | | break; |
| | | case TipType.BoxChooseItem: |
| | | UIManager.Instance.OpenWindow<ChooseItemsWin>(); |
| | | break; |
| | | case TipType.TreasurePavilion: |
| | | // TreasurePavilionModel.Instance.selectGubao = config.EffectValueA1; |
| | | // TreasurePavilionModel.Instance.showTipFromPiece = config.ID; |
| | | // WindowCenter.Instance.OpenIL<TreasurePavilionTipWin>(); |
| | | break; |
| | | default: |
| | | UIManager.Instance.OpenWindow<ItemTipWin>(); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | public static void Show(string guid, bool operatable = true) |
| | |
| | | // 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; |
| | | case TipType.BoxItem: |
| | | UIManager.Instance.OpenWindow<BoxItemWin>(); |
| | | break; |
| | | case TipType.BoxChooseItem: |
| | | UIManager.Instance.OpenWindow<ChooseItemsWin>(); |
| | | break; |
| | | // case TipType.TreasurePavilion: |
| | | // TreasurePavilionModel.Instance.selectGubao = item.config.EffectValueA1; |
| | | // TreasurePavilionModel.Instance.showTipFromPiece = item.itemId; |
| | |
| | | |
| | | } |
| | | |
| | | 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) |
| | | // { |
| | |
| | | }; |
| | | } |
| | | |
| | | // 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 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 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) |
| | | // { |
| | |
| | | // 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) |
| | |
| | | |
| | | private static TipType GetTipType(int itemId) |
| | | { |
| | | if (GeneralDefine.chestDisplayItems.Contains(itemId)) |
| | | var boxType = ChestsAwardConfig.GetBoxType(itemId); |
| | | if (boxType == 1) |
| | | { |
| | | return TipType.BoxItem; |
| | | } |
| | | else if (boxType == 2) |
| | | { |
| | | return TipType.PeerlessChest; |
| | | return TipType.BoxChooseItem; |
| | | } |
| | | |
| | | // if (ChestsAwardConfig.IsBox(itemId)) |
| | | // { |
| | | // return TipType.BoxItem; |
| | | // } |
| | | |
| | | var config = ItemConfig.Get(itemId); |
| | | switch (config.Type) |
| | |
| | | case 111: |
| | | case 112: |
| | | return TipType.Equip; |
| | | case 26: |
| | | case 41: |
| | | case 42: |
| | | return TipType.PetMount; |
| | | // 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) |
| | | { |