From bb463ef0b13236738a1da9cd04f57def3e7e2c7c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 29 八月 2025 15:21:51 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/HappyXB/HappyXBModel.cs |  114 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 78 insertions(+), 36 deletions(-)

diff --git a/Main/System/HappyXB/HappyXBModel.cs b/Main/System/HappyXB/HappyXBModel.cs
index 0af1b07..f75a087 100644
--- a/Main/System/HappyXB/HappyXBModel.cs
+++ b/Main/System/HappyXB/HappyXBModel.cs
@@ -44,6 +44,9 @@
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
         FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState;
         PackManager.Instance.RefreshItemEvent += RefreshXBTool;
+        TimeMgr.Instance.OnDayEvent += OnDayEvent;
+        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
+        InvestModel.Instance.onInvestUpdate += OnInvestUpdate;
 
         xbGetItemDict.Clear();
         xbTypeItemDict.Clear();
@@ -71,17 +74,30 @@
         DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize;
         FuncOpen.Instance.OnFuncStateChangeEvent -= UpdateFuncState;
         PackManager.Instance.RefreshItemEvent -= RefreshXBTool;
+        TimeMgr.Instance.OnDayEvent -= OnDayEvent;
+        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
+        InvestModel.Instance.onInvestUpdate -= OnInvestUpdate;
     }
 
 
 
-    public void OnBeforePlayerDataInitialize()
+    void OnBeforePlayerDataInitialize()
     {
         isXBCoolTime = false;
         xbTypeInfoDict.Clear();
     }
 
+    void OnPlayerLoginOk()
+    {
+        HeroCallRedPoint();
+    }
 
+
+    void OnInvestUpdate(int type)
+    {
+        if (type == 7)
+            HeroCallRedPoint();
+    }
     public XBGetItemConfig GetXBItemConfigByType(int type)
     {
         int lv = 0;
@@ -307,27 +323,33 @@
             //璐у竵瀵诲疂
             int moneyType = funcSet.CostMoneyType;
             int xbOneMoney = funcSet.CostMoneyList[0];
-
-            if (UIHelper.GetMoneyCnt(moneyType) >= xbOneMoney)
+            //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
+            if (moneyType == 1)
             {
-                //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
-                if (moneyType == 1)
+                StoreModel.Instance.UseMoneyCheck(xbOneMoney, moneyType, () =>
                 {
-                    StoreModel.Instance.UseMoneyCheck(xbOneMoney, moneyType, () =>
+                    if (UIHelper.GetMoneyCnt(moneyType) >= xbOneMoney)
                     {
                         SendXBQuest(xbType, 0, 0);
-                    }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, xbOneMoney,
-                    UIHelper.GetIconNameWithMoneyType(moneyType), funcSet.CostItemCountList[0]));
+                    }
+                    else
+                    {
+                        ItemTipUtility.ShowMoneyTip(moneyType);
+                    }
+                }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, xbOneMoney,
+                UIHelper.GetIconNameWithMoneyType(moneyType), funcSet.CostItemCountList[0]));
 
-                }
-                else
-                {
-                    SendXBQuest(xbType, 0, 0);
-                }
             }
             else
             {
-                ItemTipUtility.ShowMoneyTip(moneyType);
+                if (UIHelper.GetMoneyCnt(moneyType) >= xbOneMoney)
+                {
+                    SendXBQuest(xbType, 0, 0);
+                }
+                else
+                {
+                    ItemTipUtility.ShowMoneyTip(moneyType);
+                }
             }
         }
     }
@@ -356,26 +378,34 @@
 
             //璐у竵瀵诲疂
             int moneyType = funcSet.CostMoneyType;
-            if (UIHelper.GetMoneyCnt(moneyType) >= needMoney)
+
+            //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
+            if (moneyType == 1)
             {
-                //鏆傚畾鍏呭�艰揣甯侀渶瑕佷簩娆$‘璁�
-                if (moneyType == 1)
+                StoreModel.Instance.UseMoneyCheck(needMoney, moneyType, () =>
                 {
-                    StoreModel.Instance.UseMoneyCheck(needMoney, moneyType, () =>
+                    //鍙鏈夐亾鍏峰氨鏄亾鍏峰瀹濓紝涓嶈冻閮ㄥ垎鏈嶅姟绔墸璐у竵
+                    if (UIHelper.GetMoneyCnt(moneyType) >= needMoney)
                     {
-                        //鍙鏈夐亾鍏峰氨鏄亾鍏峰瀹濓紝涓嶈冻閮ㄥ垎鏈嶅姟绔墸璐у竵
                         SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
-                    }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, needMoney,
-                    UIHelper.GetIconNameWithMoneyType(moneyType), needToolCnt - toolCnt));
-                }
-                else
-                {
-                    SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
-                }
+                    }
+                    else
+                    {
+                        ItemTipUtility.ShowMoneyTip(moneyType);
+                    }
+                }, (int)BuyStoreItemCheckType.HeroCall, fullTip: Language.Get("CostMoneyForItem", funcSet.CostItemID, needMoney,
+                UIHelper.GetIconNameWithMoneyType(moneyType), needToolCnt - toolCnt));
             }
             else
             {
-                ItemTipUtility.ShowMoneyTip(moneyType);
+                if (UIHelper.GetMoneyCnt(moneyType) >= needMoney)
+                {
+                    SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
+                }
+                else
+                {
+                    ItemTipUtility.ShowMoneyTip(moneyType);
+                }
             }
 
         }
@@ -479,10 +509,15 @@
     #region 绾㈢偣閫昏緫
     public const int HappyXB_RedKey = 203;
     public const int XBHeroCall1_RedKey = 20300;    //姝﹀皢鍏嶈垂鍙敜
+    public const int XBHeroCall10_RedKey = 20301;    //姝﹀皢10鍙敜
+    public const int XBHeroCallScore_RedKey = 20302;    //姝﹀皢绉垎鍙敜
 
 
-    public Redpoint happyXBRed = new Redpoint(HappyXB_RedKey);
+    public Redpoint happyXBRed = new Redpoint(MainRedDot.MainHerosRedpoint, HappyXB_RedKey);
     public Redpoint bestXBFreeRed = new Redpoint(HappyXB_RedKey, XBHeroCall1_RedKey);
+    public Redpoint bestXB10Red = new Redpoint(HappyXB_RedKey, XBHeroCall10_RedKey);
+    public Redpoint bestXBScoreRed = new Redpoint(HappyXB_RedKey, XBHeroCallScore_RedKey);
+
     
 
     private void UpdateFuncState(int funcId)
@@ -500,32 +535,39 @@
         HeroCallRedPoint();
     }
 
+    void OnDayEvent()
+    { 
+        HeroCallRedPoint();
+    }
+
     //鑻遍泟鎷涘嫙
     public void HeroCallRedPoint()
     {
         if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
         // 鍏嶈垂 10杩� 绉垎
-        happyXBRed.state = RedPointState.None;
+        bestXB10Red.state = RedPointState.None;
+        bestXBFreeRed.state = RedPointState.None;
+        bestXBScoreRed.state = RedPointState.None;
 
 
         if (IsHaveFreeXB((int)HappXBTitle.HeroCallAdvanced))
         {
             bestXBFreeRed.state = RedPointState.Simple;
-            return;
-        }
-        else
-        {
-            bestXBFreeRed.state = RedPointState.None;
         }
 
         if (IsHaveManyXBToolEx((int)HappXBTitle.HeroCallAdvanced, out int xbtoolCnt, out int needtoolCnt, out int needMoney))
         {
-            happyXBRed.state = RedPointState.Simple;
+            bestXB10Red.state = RedPointState.Simple;
             return;
         }
 
         //绉垎瓒冲
-
+        if ((InvestModel.Instance.IsInvested(InvestModel.monthCardType)
+        || GetXBInfoByType((int)HappXBTitle.HeroCallScore)?.treasureCount == 0)
+        && UIHelper.GetMoneyCnt(51) >= TreasureSetConfig.Get((int)HappXBTitle.HeroCallScore).CostMoneyList[0])
+        { 
+            bestXBScoreRed.state = RedPointState.Simple;
+        }
 
     }
 

--
Gitblit v1.8.0