From d68982556a49c3e4086a1d360d512cc4900b7398 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 24 四月 2026 14:46:41 +0800
Subject: [PATCH] 492 武将返场和武将登场 修复招募概率界面显示bug

---
 Main/System/HeroReturn/HeroReturnCallRateItem.cs |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/Main/System/HeroReturn/HeroReturnCallRateItem.cs b/Main/System/HeroReturn/HeroReturnCallRateItem.cs
index c03223b..9ea4ee9 100644
--- a/Main/System/HeroReturn/HeroReturnCallRateItem.cs
+++ b/Main/System/HeroReturn/HeroReturnCallRateItem.cs
@@ -45,7 +45,7 @@
         if (list == null) return;
         if (xbGridArr == null) return;
 
-        if (xbGridArr.Contains(grid))
+        if (AreAllLibItemsRelatedToHeroes(list))
         {
             int heroID = manager.GetCurrentDisplayCallHeroId();
             if (!TryGetHeroItemInfo(heroID, libID, list, out int itemID, out int itemCount)) return;
@@ -84,6 +84,38 @@
         return res;
     }
 
+    /// <summary>
+    /// 妫�鏌ュ簱涓墍鏈夌墿鍝佹槸鍚﹂兘涓嶢ctHeroReturnArtConfig涓殑姝﹀皢鐩稿叧
+    /// </summary>
+    private bool AreAllLibItemsRelatedToHeroes(List<int> itemList)
+    {
+        if (itemList == null || itemList.Count == 0) return false;
+        
+        List<int> heroIdList = ActHeroReturnArtConfig.GetKeys();
+        if (heroIdList == null || heroIdList.Count == 0) return false;
+        
+        for (int i = 0; i < itemList.Count; i++)
+        {
+            int itemID = itemList[i];
+            var config = ItemConfig.Get(itemID);
+            if (config == null) return false;
+            
+            if (config.Type == 150)
+            {
+                if (!heroIdList.Contains(itemID)) return false;
+            }
+            else if (config.Type == 151)
+            {
+                if (!heroIdList.Contains(config.EffectValueA1)) return false;
+            }
+            else
+            {
+                return false;
+            }
+        }
+        return true;
+    }
+
     public bool TryGetHeroItemInfo(int heroID, int libID, List<int> itemList, out int itemID, out int itemCount)
     {
         itemID = 0;

--
Gitblit v1.8.0