From b8f9f7e78313ab7b3232686c72a3ed74d423c7d3 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 31 十月 2025 15:09:36 +0800
Subject: [PATCH] 0312 武将培养增加全屏避免引导问题,引导默认隐藏资源避免第一次加载闪烁; 合成修改

---
 Main/System/KnapSack/PackManager.cs |   47 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/Main/System/KnapSack/PackManager.cs b/Main/System/KnapSack/PackManager.cs
index afefa1c..a66d931 100644
--- a/Main/System/KnapSack/PackManager.cs
+++ b/Main/System/KnapSack/PackManager.cs
@@ -36,7 +36,8 @@
     public Dictionary<int, int> PackMaxCountDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氳儗鍖呮牸瀛愭渶澶ф暟閲�
     public int initBagGridCount { get; private set; } //鍒濆鐗╁搧鑳屽寘鏍煎瓙鏁�
     public int[] itemPackSortTyps { get; private set; }    //鑳屽寘鐗╁搧鐨勬寜绫诲瀷鎺掑簭
-    public List<string> composeItemGuidList = new List<string>();  //鍚堟垚鍒楄〃鐗╁搧guid
+    public List<int> composeItemIDList = new List<int>();  //鍚堟垚鍒楄〃鐗╁搧ID
+    List<int> canComposeItemIDList = new List<int>(); //鏁伴噺瓒冲鍚堟垚鍒楄〃鐗╁搧ID 鎺掑簭鍒ゆ柇鐢�
 
     //寮�鏍煎瓙
     public Dictionary<int, int> openGirdMoneyDict = new Dictionary<int, int>(); //鑳屽寘绫诲瀷锛氭秷鑰楄揣甯佺被鍨�
@@ -897,11 +898,13 @@
         SinglePack singlePack = GetSinglePack(PackType.Item);
         var items = singlePack.GetAllItems();
 
+        redpointComposePack.state = RedPointState.None;
         foreach (var item in items.Values)
         {
-            if (ItemCompoundConfig.IsCompoundItem(item.itemId))
+            int makeID = ItemCompoundConfig.GetMakeIDByMaterial(item.itemId);
+            if (makeID != 0)
             {
-                var config = ItemCompoundConfig.GetItemCompoundConfig(item.itemId);
+                var config = ItemCompoundConfig.GetItemCompoundConfig(makeID);
                 var targetID = config.itemID;
                 var targetCnt = config.itemCount;
                 if (GetItemCountByID(PackType.Item, targetID) >= targetCnt)
@@ -941,35 +944,53 @@
     public void RefreshItemComposeList()
     {
         //鏀堕泦鍚堟垚鐗╁搧
-        composeItemGuidList.Clear();
+        composeItemIDList.Clear();
+        canComposeItemIDList.Clear();
 
         SinglePack singlePack = GetSinglePack(PackType.Item);
         var items = singlePack.GetAllItems();
 
         foreach (var item in items.Values)
         {
-            if (ItemCompoundConfig.IsCompoundItem(item.itemId))
+            var makeID = ItemCompoundConfig.GetMakeIDByMaterial(item.itemId);
+            if (makeID != 0)
             {
-                composeItemGuidList.Add(item.guid);
+                composeItemIDList.Add(makeID);
+
+                var config = ItemCompoundConfig.GetItemCompoundConfig(makeID);
+                var targetID = config.itemID;
+                var targetCnt = config.itemCount;
+                if (GetItemCountByID(PackType.Item, targetID) >= targetCnt)
+                {
+                    canComposeItemIDList.Add(makeID);
+                }
             }
         }
 
-        composeItemGuidList.Sort(SortItemCompose);
+        composeItemIDList.Sort(SortItemCompose);
     }
 
-    int SortItemCompose(string guidA, string guidB)
+    int SortItemCompose(int itemIDA, int itemIDB)
     {
-        var itemA = GetItemByGuid(guidA);
-        var itemB = GetItemByGuid(guidB);
+        // 鍚堟垚鏉愭枡澶熶笉澶�
+        var isEnoughA = canComposeItemIDList.Contains(itemIDA);
+        var isEnoughB = canComposeItemIDList.Contains(itemIDB);
+        if (isEnoughA != isEnoughB)
+        {
+            return isEnoughA ? -1 : 1;
+        }
 
-        var colorA = itemA.config.ItemColor;
-        var colorB = itemB.config.ItemColor;
+        var itemA = ItemConfig.Get(itemIDA);
+        var itemB = ItemConfig.Get(itemIDB);
+
+        var colorA = itemA.ItemColor;
+        var colorB = itemB.ItemColor;
         if (colorA != colorB)
         {
             return colorB - colorA;
         }
 
-        return itemA.itemId - itemB.itemId;
+        return itemA.ID - itemB.ID;
     }
 
     #endregion

--
Gitblit v1.8.0