From c6a7ac3739907e8bb7c751d408e227e19f246f49 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 08 五月 2026 17:27:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 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 1b2a0ad..30d63be 100644
--- a/Main/System/HeroReturn/HeroReturnCallRateItem.cs
+++ b/Main/System/HeroReturn/HeroReturnCallRateItem.cs
@@ -46,7 +46,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;
@@ -85,6 +85,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