Main/System/ItemTip/ItemTipUtility.cs
@@ -7,6 +7,7 @@
using UnityEngine.UI;
using System.Collections.Generic;
using System.Linq;
using LitJson;
public class ItemTipUtility
{
@@ -14,14 +15,9 @@
    {
        Item,
        Equip,
        Dogz,
        GatherSoul, //废弃
        KingTreasure, //王者法宝tip
        PetMount,
        SpiritWeapon,
        PeerlessChest,
        TreasureShow, //其他法宝tip
        BoxItem,    //宝箱物品
        BoxItem,    //宝箱随机物品
        BoxChooseItem,    //宝箱自选物品
        TreasurePavilion, //古宝物品(碎片)
    }
@@ -30,7 +26,7 @@
        public string guid;
        public int itemId;
        public int goodId;
        public int exchangeItemId;
        public int exchangeItemId;  //部分界面要动态变化物品的情况
        public BaseInfo baseInfo;
        public BaseProperty baseProperty;
@@ -224,7 +220,7 @@
    // 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)
@@ -252,99 +248,64 @@
        // 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)
@@ -407,16 +368,12 @@
            // 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;
@@ -429,51 +386,6 @@
    }
    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)
    // {
@@ -798,21 +710,21 @@
        };
    }
    // 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)
    {
@@ -1622,35 +1534,7 @@
    //     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)
    // {
@@ -1687,212 +1571,7 @@
    //     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)
@@ -1939,15 +1618,16 @@
    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)
@@ -1965,18 +1645,23 @@
            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)
    {