From cad87129e5ea2fd23cc195ed0444bd38f1117aa7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 05 八月 2025 15:51:54 +0800
Subject: [PATCH] 79 【常规】背包 - 随机宝箱界面,自选宝箱界面,获得物品奖励界面

---
 Main/System/ItemTip/ItemTipUtility.cs |  511 ++++++++++---------------------------------------------
 1 files changed, 98 insertions(+), 413 deletions(-)

diff --git a/Main/System/ItemTip/ItemTipUtility.cs b/Main/System/ItemTip/ItemTipUtility.cs
index f5a71c6..2fab85d 100644
--- a/Main/System/ItemTip/ItemTipUtility.cs
+++ b/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, //鐜嬭�呮硶瀹漷ip
         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)
     {

--
Gitblit v1.8.0