From 0d226a53cc7a1b93ee6a494be5965c37f98310ae Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 29 十二月 2025 23:21:24 +0800
Subject: [PATCH] 0312 武将招募增加心愿符

---
 Main/System/HappyXB/HeroCallHopeAddCell.cs |   71 +++++++++++++++++++++++++++++------
 1 files changed, 58 insertions(+), 13 deletions(-)

diff --git a/Main/System/HappyXB/HeroCallHopeAddCell.cs b/Main/System/HappyXB/HeroCallHopeAddCell.cs
index 34ce3fa..8b00ede 100644
--- a/Main/System/HappyXB/HeroCallHopeAddCell.cs
+++ b/Main/System/HappyXB/HeroCallHopeAddCell.cs
@@ -9,17 +9,62 @@
     [SerializeField] Image notOpenImg;
     [SerializeField] Image addImg;
     [SerializeField] Button addBtn;
+    [SerializeField] Transform tipRect;
+    [SerializeField] Text freeText;
+    [SerializeField] Text itemCntText;
+    [SerializeField] Image itemIcon;
 
 
-
+    /// <summary>
+    /// 鏄剧ず蹇冩効閫夋嫨缁撴灉妗�
+    /// </summary>
+    /// <param name="quality">5 绁炶瘽 4 浼犲</param>
+    /// <param name="addAction">榛樿鎵撳紑蹇冩効鐣岄潰锛屽彲浼犲叆鐐瑰嚮娣诲姞鎸夐挳浜嬩欢 </param>
+    /// <param name="heroAction">榛樿鎵撳紑蹇冩効鐣岄潰锛屽彲浼犲叆鐐瑰嚮姝﹀皢澶村儚浜嬩欢</param>
+    /// <param name="changeHeroID">棰勮鑻遍泟ID锛�-1鍙栨秷棰勮</param>
     public void Display(int quality, UnityAction<int> addAction = null, UnityAction<int> heroAction = null, int changeHeroID = 0)
     {
         var data = HappyXBModel.Instance.GetXBInfoByType((int)HappXBTitle.HeroCallAdvanced);
         var config = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced);
         var needOpenCnt = config.WishOpen - data.treasureCount;
 
+        bool headGray = false;
+        int itemID = HappyXBModel.Instance.GetWishCardItemID(quality);
+        //蹇冩効鎶藉彇鎯呭喌 <LIBID锛氬凡鎶藉埌娆℃暟锛屾槸鍚﹀嬀閫夎嚜鍔紝褰撳墠蹇冩効ID>
+        var wishData = HappyXBModel.Instance.GetWishDataByQuality(quality);
+
+        if (wishData.wishCnt < HappyXBModel.wishMaxOutCnt)
+        {
+            tipRect.SetActive(true);
+            freeText.SetActive(true);
+            itemCntText?.SetActive(false);
+            headGray = false;
+        }
+        else if (wishData.auto && PackManager.Instance.GetItemCountByID(PackType.Item, itemID) > 0)
+        {
+            if (itemCntText == null)
+            {
+                tipRect.SetActive(false);
+            }
+            else
+            {
+                tipRect.SetActive(true);
+                freeText.SetActive(false);
+                itemCntText.SetActive(true);
+                itemIcon.SetItemSprite(itemID);
+                itemCntText.text = UIHelper.ShowUseItem(PackType.Item, itemID, 1, bright: false);
+            }
+            headGray = false;
+        }
+        else
+        {
+            tipRect.SetActive(false);
+            headGray = true;
+        }
+
 
         int wishID = 0;
+        bool auto = false;
         int wishCnt = 0;
         int heroID = 0;
         if (needOpenCnt <= 0)
@@ -27,17 +72,17 @@
             notOpenImg.SetActive(false);
             
 
-            if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out wishID, out wishCnt))
+            if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out wishID, out wishCnt, out auto))
             {
                 if (heroAction == null)
                 {
                     heroAction = (quality) =>
                     {
-                        if (HappyXBModel.Instance.IsTodayWishFinish())
-                        {
-                            SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
-                            return;
-                        }
+                        // if (HappyXBModel.Instance.IsTodayWishFinish())
+                        // {
+                        //     SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
+                        //     return;
+                        // }
 
                         UIManager.Instance.OpenWindow<HeroCallHopeWin>(quality == 4 ? 1 : 0);
                     };
@@ -60,7 +105,7 @@
             {
                 head.SetActive(true);
                 addImg.SetActive(false);
-                head.Init(heroID, wishCnt >= HappyXBModel.wishMaxOutCnt, ()=> { heroAction.Invoke(quality); });
+                head.Init(heroID, headGray, ()=> { heroAction.Invoke(quality); });
             }
             else
             {
@@ -84,11 +129,11 @@
             {
                 if (needOpenCnt <= 0)
                 {
-                    if (HappyXBModel.Instance.IsTodayWishFinish())
-                    {
-                        SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
-                        return;
-                    }
+                    // if (HappyXBModel.Instance.IsTodayWishFinish())
+                    // {
+                    //     SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
+                    //     return;
+                    // }
                     UIManager.Instance.OpenWindow<HeroCallHopeWin>(quality == 4 ? 1 : 0);
                     return;
                 }

--
Gitblit v1.8.0