From f28b2dd275d6d987e151f3b8ce4f1b5ce398e07a Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 30 十二月 2025 15:49:17 +0800
Subject: [PATCH] 121 【武将】心愿符未选择弹框提示,图标次数显示优化

---
 Main/System/HappyXB/HeroCallHopeAddCell.cs    |   18 ++++++--
 Main/System/HappyXB/HeroCallWin.cs            |   14 +++++--
 Main/System/HappyXB/HappyXBModel.Hero.cs      |   36 ++++++++++++++++++
 Main/System/BoneField/AdsManager.cs           |    9 +++-
 Main/System/HappyXB/HappyXBModel.cs           |    3 +
 Main/System/HappyXB/HeroCallResultWin.cs      |   13 +++++-
 Main/System/HappyXB/HeroCallHopeSelectCell.cs |   18 ++++----
 7 files changed, 86 insertions(+), 25 deletions(-)

diff --git a/Main/System/BoneField/AdsManager.cs b/Main/System/BoneField/AdsManager.cs
index fa678ec..eee2937 100644
--- a/Main/System/BoneField/AdsManager.cs
+++ b/Main/System/BoneField/AdsManager.cs
@@ -47,9 +47,12 @@
                 break;
             case 3:
                 //瀵诲疂绫诲瀷
-                HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
-                HeroUIManager.Instance.selectCallIndex = 0;
-                SendGetReward(ADID);
+                HappyXBModel.Instance.HeroCallAfterCheckWish(() =>
+                {
+                    HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
+                    HeroUIManager.Instance.selectCallIndex = 0;
+                    SendGetReward(ADID);
+                });
                 break;
             case 4:
             case 6:
diff --git a/Main/System/HappyXB/HappyXBModel.Hero.cs b/Main/System/HappyXB/HappyXBModel.Hero.cs
index ddf46d3..7ad631a 100644
--- a/Main/System/HappyXB/HappyXBModel.Hero.cs
+++ b/Main/System/HappyXB/HappyXBModel.Hero.cs
@@ -4,6 +4,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using UnityEngine;
+using UnityEngine.Events;
 
 //姝﹀皢鐩稿叧鎷涘嫙
 public partial class HappyXBModel : GameSystemManager<HappyXBModel>
@@ -138,4 +139,39 @@
         }
         return TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced).WishLibCard[libID];
     }
+
+    bool checkWish = false;     //鏄惁鍕鹃�夎繃蹇冩効纭
+    //鏈�夋嫨浠讳綍蹇冩効姝﹀皢涓旀湁浠讳竴鍏嶈垂娆℃暟锛屽垯寮圭獥鎻愮ず
+    public void HeroCallAfterCheckWish(UnityAction _action)
+    {
+        if (checkWish)
+        {
+            _action?.Invoke();
+            return;
+        }
+        if (selectSHHeroWishID <= 0 && selectCSHeroWishID <= 0)
+        {
+            var shdata = GetWishDataByQuality(5);
+            var csdata = GetWishDataByQuality(4);
+            if ((shdata != null && shdata.wishCnt == 0) || (csdata != null && csdata.wishCnt == 0))
+            {
+                ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("HeroCall14"), Language.Get("TianziBillborad08"), (bool isOk, bool isToggle) =>
+                {
+                    if (isOk)
+                    {
+                        UIManager.Instance.OpenWindow<HeroCallHopeWin>();
+                    }
+                    else
+                    {
+                        _action?.Invoke();
+                    }
+                    checkWish = isToggle;
+                });
+
+                return;
+            }
+        }
+
+        _action?.Invoke();
+    }
 }
diff --git a/Main/System/HappyXB/HappyXBModel.cs b/Main/System/HappyXB/HappyXBModel.cs
index 5d1ff52..540229f 100644
--- a/Main/System/HappyXB/HappyXBModel.cs
+++ b/Main/System/HappyXB/HappyXBModel.cs
@@ -45,7 +45,7 @@
 
     public override void Init()
     {
-        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
+        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitialize;
         FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState;
         PackManager.Instance.RefreshItemEvent += RefreshXBTool;
         TimeMgr.Instance.OnDayEvent += OnDayEvent;
@@ -93,6 +93,7 @@
     {
         isXBCoolTime = false;
         xbTypeInfoDict.Clear();
+        checkWish = false;
     }
 
     void OnPlayerLoginOk()
diff --git a/Main/System/HappyXB/HeroCallHopeAddCell.cs b/Main/System/HappyXB/HeroCallHopeAddCell.cs
index 8b00ede..1a2f5f7 100644
--- a/Main/System/HappyXB/HeroCallHopeAddCell.cs
+++ b/Main/System/HappyXB/HeroCallHopeAddCell.cs
@@ -35,12 +35,20 @@
 
         if (wishData.wishCnt < HappyXBModel.wishMaxOutCnt)
         {
-            tipRect.SetActive(true);
-            freeText.SetActive(true);
-            itemCntText?.SetActive(false);
+            if (wishData == null || wishData.wishID == 0)
+            {
+                tipRect.SetActive(false);
+            }
+            else
+            {
+                tipRect.SetActive(true);
+                freeText.SetActive(true);
+                itemCntText?.SetActive(false);
+
+            }
             headGray = false;
         }
-        else if (wishData.auto && PackManager.Instance.GetItemCountByID(PackType.Item, itemID) > 0)
+        else if (wishData.auto)
         {
             if (itemCntText == null)
             {
@@ -54,7 +62,7 @@
                 itemIcon.SetItemSprite(itemID);
                 itemCntText.text = UIHelper.ShowUseItem(PackType.Item, itemID, 1, bright: false);
             }
-            headGray = false;
+            headGray = PackManager.Instance.GetItemCountByID(PackType.Item, itemID) <= 0;
         }
         else
         {
diff --git a/Main/System/HappyXB/HeroCallHopeSelectCell.cs b/Main/System/HappyXB/HeroCallHopeSelectCell.cs
index f40e639..5b04c03 100644
--- a/Main/System/HappyXB/HeroCallHopeSelectCell.cs
+++ b/Main/System/HappyXB/HeroCallHopeSelectCell.cs
@@ -36,15 +36,15 @@
                 SysNotifyMgr.Instance.ShowTip("HeroWishUnLock");
                 return;
             }
-            int quality = HappyXBModel.Instance.selectWishListTab == 0 ? 5 : 4;
-            if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out int _wishID, out int _wishCnt, out bool auto))
-            {
-                if (_wishCnt >= HappyXBModel.wishMaxOutCnt)
-                {
-                    SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
-                    return;
-                }
-            }
+            // int quality = HappyXBModel.Instance.selectWishListTab == 0 ? 5 : 4;
+            // if (HappyXBModel.Instance.TryGetHeroWishIDByQuality((int)HappXBTitle.HeroCallAdvanced, quality, out int _wishID, out int _wishCnt, out bool auto))
+            // {
+            //     if (_wishCnt >= HappyXBModel.wishMaxOutCnt)
+            //     {
+            //         SysNotifyMgr.Instance.ShowTip("HeroWishFinish");
+            //         return;
+            //     }
+            // }
 
             //-1浠h〃鍙栨秷
 
diff --git a/Main/System/HappyXB/HeroCallResultWin.cs b/Main/System/HappyXB/HeroCallResultWin.cs
index 5ca0883..f29f37f 100644
--- a/Main/System/HappyXB/HeroCallResultWin.cs
+++ b/Main/System/HappyXB/HeroCallResultWin.cs
@@ -68,11 +68,18 @@
     {
         okBtn.AddListener(CloseWindow);
 
-        call1Btn.AddListener(SendHeroCall);
+        call1Btn.AddListener(()=>
+        {
+            HappyXBModel.Instance.HeroCallAfterCheckWish(SendHeroCall);
+        });
         call10Btn.AddListener(() =>
         {
-            HeroUIManager.Instance.selectCallIndex = 1;
-            HappyXBModel.Instance.SendXBManyQuest((int)HeroUIManager.Instance.selectCallType);
+            HappyXBModel.Instance.HeroCallAfterCheckWish(() =>
+            {
+                HeroUIManager.Instance.selectCallIndex = 1;
+                HappyXBModel.Instance.SendXBManyQuest((int)HeroUIManager.Instance.selectCallType);
+            });
+
         });
         showNextlhOrCloseBtn.AddListener(()=>
         {
diff --git a/Main/System/HappyXB/HeroCallWin.cs b/Main/System/HappyXB/HeroCallWin.cs
index f93f84d..b304110 100644
--- a/Main/System/HappyXB/HeroCallWin.cs
+++ b/Main/System/HappyXB/HeroCallWin.cs
@@ -42,12 +42,18 @@
             LocalSave.SetBool(HeroUIManager.skipKey + PlayerDatas.Instance.baseData.PlayerID, value);
         });
         ownItemCell.itemID = TreasureSetConfig.Get((int)HappXBTitle.HeroCallAdvanced).CostItemID;
-        call1Btn.AddListener(SendHeroCall);
+        call1Btn.AddListener(()=>
+        {
+            HappyXBModel.Instance.HeroCallAfterCheckWish(SendHeroCall);
+        });
         call10Btn.AddListener(() =>
         {
-            HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
-            HeroUIManager.Instance.selectCallIndex = 1;
-            HappyXBModel.Instance.SendXBManyQuest((int)HappXBTitle.HeroCallAdvanced);
+            HappyXBModel.Instance.HeroCallAfterCheckWish(() =>
+            {
+                HeroUIManager.Instance.selectCallType = HappXBTitle.HeroCallAdvanced;
+                HeroUIManager.Instance.selectCallIndex = 1;
+                HappyXBModel.Instance.SendXBManyQuest((int)HappXBTitle.HeroCallAdvanced);
+            });
         });
         scoreBtn.AddListener(() =>
         {

--
Gitblit v1.8.0