From 6a6539f6ea387aec5799954fca0f38b7e5301287 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期六, 09 五月 2026 19:18:31 +0800
Subject: [PATCH] 492 武将登场 武将图集和武将背包的羁绊图标和羁绊属性,如果该羁绊组合有一个不满足开服天天条件就隐藏

---
 Main/System/HeroUI/HeroBestWin.cs           |   34 +++++++++++++----
 Main/System/HeroUI/HeroTrainWin.cs          |   23 ++++++++++-
 Main/System/HeroUI/HeroUIManager.Collect.cs |   55 ++++++++++++++++++++++++++-
 3 files changed, 100 insertions(+), 12 deletions(-)

diff --git a/Main/System/HeroUI/HeroBestWin.cs b/Main/System/HeroUI/HeroBestWin.cs
index 1a166e9..8d96ecc 100644
--- a/Main/System/HeroUI/HeroBestWin.cs
+++ b/Main/System/HeroUI/HeroBestWin.cs
@@ -127,7 +127,7 @@
         allAttrScroll.verticalNormalizedPosition = 1;
         Display();
         HeroUIManager.Instance.skinRedpoint.state = HeroUIManager.Instance.HeroAllSkinStateForRedpoint(HeroUIManager.Instance.selectForPreviewHeroID, true) > 0 ? RedPointState.Simple : RedPointState.None;
-    
+
     }
 
 
@@ -143,7 +143,7 @@
         jobPosNameText.text = HeroUIManager.Instance.GetJobName(heroConfig.Class);
         descText.text = heroConfig.Desc;
         HeroUIManager.Instance.PlayerLHSound(skinID);
-        
+
         RefreshConn();
         normalSkillCell.Init(heroConfig.AtkSkillID, () =>
         {
@@ -193,8 +193,17 @@
     {
         if (heroConfig.FetterIDList.Length > 0)
         {
-            connetionForm.SetActive(true);
-            connetionForm.Display(heroConfig.FetterIDList[0], Language.Get("herocard38") + "\n", true);
+            int fetterID = heroConfig.FetterIDList[0];
+            HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID);
+            if (fetterConfig != null && HeroUIManager.IsFetterAllHeroOpen(fetterConfig))
+            {
+                connetionForm.SetActive(true);
+                connetionForm.Display(fetterID, Language.Get("herocard38") + "\n", true);
+            }
+            else
+            {
+                connetionForm.SetActive(false);
+            }
         }
         else
         {
@@ -221,7 +230,7 @@
         }
         HeroUIManager.Instance.selectForPreviewHeroID = HeroUIManager.Instance.heroCollectList[resultIndex];
         Display();
-        
+
         //鎺у埗涓�绾у姛鑳界晫闈㈢殑鐨偆鎸夐挳
         var ui = UIManager.Instance.GetUI<HeroBestBaseWin>();
         if (ui != null)
@@ -330,7 +339,7 @@
 
     }
 
-    
+
 
     void RefreshAllPotential()
     {
@@ -394,11 +403,21 @@
     //缇佺粖
     void RefreshFetter()
     {
-        if (heroConfig.FetterIDList.Length == 0)
+        if (heroConfig.FetterIDList.IsNullOrEmpty())
         {
             fetterGo.SetActive(false);
             return;
         }
+
+        // 妫�鏌ョ涓�涓緛缁婄粍鍚堟槸鍚︽弧瓒冲紑鏈嶅ぉ鏉′欢锛屼笉婊¤冻鍒欓殣钘忔暣涓緛缁婂尯鍩�
+        int firstFetterID = heroConfig.FetterIDList[0];
+        HeroFetterConfig firstFetterConfig = HeroFetterConfig.Get(firstFetterID);
+        if (firstFetterConfig == null || !HeroUIManager.IsFetterAllHeroOpen(firstFetterConfig))
+        {
+            fetterGo.SetActive(false);
+            return;
+        }
+
         fetterGo.SetActive(true);
 
         for (int i = 0; i < fetterText.Length; i++)
@@ -526,6 +545,5 @@
             }
         }
     }
-
 
 }
\ No newline at end of file
diff --git a/Main/System/HeroUI/HeroTrainWin.cs b/Main/System/HeroUI/HeroTrainWin.cs
index 1f83562..e0671f9 100644
--- a/Main/System/HeroUI/HeroTrainWin.cs
+++ b/Main/System/HeroUI/HeroTrainWin.cs
@@ -371,8 +371,17 @@
     {
         if (hero.heroConfig.FetterIDList.Length > 0)
         {
-            connetionForm.SetActive(true);
-            connetionForm.Display(hero.heroConfig.FetterIDList[0], Language.Get("herocard38") + "\n", true, guid);
+            int fetterID = hero.heroConfig.FetterIDList[0];
+            HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID);
+            if (fetterConfig != null && HeroUIManager.IsFetterAllHeroOpen(fetterConfig))
+            {
+                connetionForm.SetActive(true);
+                connetionForm.Display(fetterID, Language.Get("herocard38") + "\n", true, guid);
+            }
+            else
+            {
+                connetionForm.SetActive(false);
+            }
         }
         else
         {
@@ -694,6 +703,16 @@
             fetterGo.SetActive(false);
             return;
         }
+
+        // 妫�鏌ョ涓�涓緛缁婄粍鍚堟槸鍚︽弧瓒冲紑鏈嶅ぉ鏉′欢锛屼笉婊¤冻鍒欓殣钘忔暣涓緛缁婂尯鍩�
+        int firstFetterID = hero.heroConfig.FetterIDList[0];
+        HeroFetterConfig firstFetterConfig = HeroFetterConfig.Get(firstFetterID);
+        if (firstFetterConfig == null || !HeroUIManager.IsFetterAllHeroOpen(firstFetterConfig))
+        {
+            fetterGo.SetActive(false);
+            return;
+        }
+
         fetterGo.SetActive(true);
 
         for (int i = 0; i < fetterText.Length; i++)
diff --git a/Main/System/HeroUI/HeroUIManager.Collect.cs b/Main/System/HeroUI/HeroUIManager.Collect.cs
index 924e3a2..06a977c 100644
--- a/Main/System/HeroUI/HeroUIManager.Collect.cs
+++ b/Main/System/HeroUI/HeroUIManager.Collect.cs
@@ -162,8 +162,8 @@
             HeroConfig heroConfig = HeroConfig.Get(heroID);
             if (heroConfig.PlayerCanUse == 0)
                 continue;
-            // 鏂板锛氬紑鏈嶇x澶╂樉绀哄浘閴达紝0琛ㄧず涓嶉檺鍒跺紑鏈嶅ぉ
-            if (heroConfig.OpenCollectionDay > 0 && TimeUtility.OpenDay + 1 < heroConfig.OpenCollectionDay)
+            // 寮�鏈嶇x澶╂樉绀哄浘閴达紝0琛ㄧず涓嶉檺鍒跺紑鏈嶅ぉ
+            if (HasOpenCollectionDayLimit(heroID) && !IsOpenCollectionDayMet(heroID))
                 continue;
             if (!heroCollectDict.ContainsKey(heroConfig.Quality))
             {
@@ -414,6 +414,57 @@
 
     }
 
+    #region 寮�鏈嶅ぉ鏁扮浉鍏虫柟娉�
+
+    /// <summary>
+    /// 妫�鏌ユ灏嗘槸鍚﹂厤缃簡寮�鏈嶅睍绀哄ぉ鏁伴檺鍒�
+    /// </summary>
+    /// <param name="heroID">姝﹀皢ID</param>
+    /// <returns>true: 鏈夊紑鏈嶅ぉ闄愬埗; false: 鏃犻檺鍒讹紙OpenCollectionDay==0 鎴栭厤缃笉瀛樺湪锛�</returns>
+    public static bool HasOpenCollectionDayLimit(int heroID)
+    {
+        HeroConfig heroConfig = HeroConfig.Get(heroID);
+        if (heroConfig == null)
+            return false;
+        return heroConfig.OpenCollectionDay > 0;
+    }
+
+    /// <summary>
+    /// 妫�鏌ユ灏嗘槸鍚﹀凡婊¤冻寮�鏈嶅睍绀哄ぉ鏁拌姹傦紙浠呭湪鏈夐檺鍒舵椂璋冪敤鏈夋剰涔夛級
+    /// </summary>
+    /// <param name="heroID">姝﹀皢ID</param>
+    /// <returns>true: 宸叉弧瓒冲睍绀哄ぉ鏁�; false: 灏氭湭婊¤冻</returns>
+    public static bool IsOpenCollectionDayMet(int heroID)
+    {
+        HeroConfig heroConfig = HeroConfig.Get(heroID);
+        if (heroConfig == null)
+            return false;
+        // OpenCollectionDay==0 鏃犻檺鍒讹紝瑙嗕负宸叉弧瓒�
+        if (heroConfig.OpenCollectionDay <= 0)
+            return true;
+        return TimeUtility.OpenDay + 1 >= heroConfig.OpenCollectionDay;
+    }
+
+    /// <summary>
+    /// 妫�鏌ョ緛缁婄粍鍚堜腑鎵�鏈夋灏嗘槸鍚﹂兘婊¤冻寮�鏈嶅睍绀哄ぉ鏁�
+    /// 鍙湁閰嶇疆浜嗗紑鏈嶅ぉ闄愬埗鐨勬灏嗘墠闇�瑕佹鏌ワ紝鏈厤缃檺鍒剁殑姝﹀皢瑙嗕负婊¤冻
+    /// </summary>
+    /// <param name="fetterConfig">缇佺粖閰嶇疆</param>
+    /// <returns>true: 鎵�鏈夋灏嗛兘婊¤冻; false: 鏈夋灏嗕笉婊¤冻</returns>
+    public static bool IsFetterAllHeroOpen(HeroFetterConfig fetterConfig)
+    {
+        for (int i = 0; i < fetterConfig.HeroIDList.Length; i++)
+        {
+            int heroID = fetterConfig.HeroIDList[i];
+            // 鏈夐檺鍒朵絾鏈弧瓒� -> 璇ョ緛缁婁笉鍙樉绀�
+            if (HasOpenCollectionDayLimit(heroID) && !IsOpenCollectionDayMet(heroID))
+                return false;
+        }
+        return true;
+    }
+
+    #endregion
+
     #endregion
 }
 

--
Gitblit v1.8.0