From 1d7a9569f0d2275ada39ba30f8c0f38b6a4baa2f Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 15 五月 2026 15:49:17 +0800
Subject: [PATCH] 638 VIP专属客服 增加红点,调整文案,入口显示在主界面

---
 Main/System/SuperVIP/SuperVIPWin.cs     |    2 +
 Main/System/SuperVIP/SuperVipManager.cs |   38 +++++++++++++++++++
 Main/System/Main/RightFuncInHome.cs     |   12 ------
 Main/System/Main/HomeWin.cs             |   20 ++++++++++
 Main/System/Redpoint/MainRedDot.cs      |    1 
 5 files changed, 61 insertions(+), 12 deletions(-)

diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index aa45add..3d28aa5 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -76,6 +76,7 @@
     [SerializeField] HeroReturnCell heroReturnCell;
     [SerializeField] HeroSkinFlashSaleCell heroSkinFlashSaleCell;
     [SerializeField] Button festivalActivityBtn;
+    [SerializeField] Button superVIPBtn;
 
     //鍧愰獞
     [SerializeField] Image horseBGImg;
@@ -238,6 +239,10 @@
         {
             UIManager.Instance.OpenWindow<FestivalActivityWin>();
         });
+        superVIPBtn.AddListener(() =>
+       {
+           UIManager.Instance.OpenWindow<SuperVIPWin>();
+       });
     }
 
 
@@ -294,6 +299,7 @@
         TimingGiftManager.Instance.OnShowGiftIdListAddEvent += OnShowGiftIdListAddEvent;
         OpenServerActivityCenter.Instance.openServerActivityStateChange += OpenServerActivityStateChange;
         OperationTimeHepler.Instance.operationTimeUpdateEvent += OnOperationTimeUpdateEvent;
+        RechargeManager.Instance.rechargeChangeEvent += OnRechargeChangeEvent;
         TryPlayAutoFightBoss();
         Display();
         DisplayFirstChargeBtn();
@@ -305,6 +311,7 @@
         DisplayHeroReturn();
         DisplayHeroSkinFlash();
         DisplayFestivalActivity();
+        DisplaySuperVipBtn();
         DelayPlayMusic().Forget();
 
     }
@@ -335,6 +342,7 @@
         TimingGiftManager.Instance.OnShowGiftIdListAddEvent -= OnShowGiftIdListAddEvent;
         OpenServerActivityCenter.Instance.openServerActivityStateChange -= OpenServerActivityStateChange;
         OperationTimeHepler.Instance.operationTimeUpdateEvent -= OnOperationTimeUpdateEvent;
+        RechargeManager.Instance.rechargeChangeEvent -= OnRechargeChangeEvent;
         //  鍏抽棴鐨勬椂鍊欐妸鎴樻枟鐣岄潰涔熺粰鍏充簡 铏界劧鏄湪澶栭潰寮�鐨�
         UIManager.Instance.CloseWindow<BattleWin>();
     }
@@ -389,6 +397,11 @@
         {
             DisplayChatShow();
         }
+    }
+
+    private void OnRechargeChangeEvent()
+    {
+        DisplaySuperVipBtn();
     }
 
     private void DisplayChatShow()
@@ -998,6 +1011,13 @@
         bool isOpen = FestivalActivityManager.Instance.IsFestivalActivityOpen();
         festivalActivityBtn.SetActive(isOpen);
     }
+
+    void DisplaySuperVipBtn()
+    {
+        bool isOpen = SuperVipManager.Instance.IsEntryOpen();
+        superVIPBtn.SetActive(isOpen);
+        SuperVipManager.Instance.UpdateRedpoint();
+    }
 }
 
 
diff --git a/Main/System/Main/RightFuncInHome.cs b/Main/System/Main/RightFuncInHome.cs
index 8a90497..80a1185 100644
--- a/Main/System/Main/RightFuncInHome.cs
+++ b/Main/System/Main/RightFuncInHome.cs
@@ -19,7 +19,6 @@
     [SerializeField] Button signBtn;
     [SerializeField] Button previewBtn;
     [SerializeField] Button reviewBtn; //濂借瘎
-    [SerializeField] Button superVIPBtn;
 
     static string listenWindowName = "";   //鐩戝惉鍏抽棴鏃跺啀鏄剧ず
 
@@ -94,10 +93,6 @@
         {
             UIManager.Instance.OpenWindow<GoodReviewWin>();
         });
-        superVIPBtn.AddListener(() =>
-        {
-            UIManager.Instance.OpenWindow<SuperVIPWin>();
-        });
     }
 
     void OnDestroy()
@@ -116,15 +111,8 @@
         monthCardBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard));
         previewBtn.SetActive(FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.FunctionPreview));
         reviewBtn.SetActive(SmallFuncManager.Instance.IsReviewOpen());
-        DisplaySuperVipBtn();
     }
     
-    void DisplaySuperVipBtn()
-    {
-        bool isOpen = SuperVipManager.Instance.IsEntryOpen();
-        superVIPBtn.SetActive(isOpen);
-    }
-
     //鏄鹃殣鍔熻兘鏍�
     public void ShowFuncCol(bool _isShow)
     {
diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs
index 99142df..9664ee4 100644
--- a/Main/System/Redpoint/MainRedDot.cs
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -158,6 +158,7 @@
     public const int HeroReturnRepoint = 484;   //姝﹀皢杩斿満
     public const int FestivalActivityRepoint = 485;    //鑺傛棩娲诲姩
     public const int HeroSkinFlashSaleRepoint = 486;
+    public const int SuperVIPRepoint = 487;
     public void Register()
     {
 
diff --git a/Main/System/SuperVIP/SuperVIPWin.cs b/Main/System/SuperVIP/SuperVIPWin.cs
index cf6cf47..3b35c82 100644
--- a/Main/System/SuperVIP/SuperVIPWin.cs
+++ b/Main/System/SuperVIP/SuperVIPWin.cs
@@ -14,6 +14,8 @@
 
     protected override void OnPreOpen()
     {
+        // 杩涘叆鐣岄潰鍚庢竻闄ゅ叆鍙g孩鐐�
+        SuperVipManager.Instance.ClearRedpoint();
         DisplayRewards();
     }
 
diff --git a/Main/System/SuperVIP/SuperVipManager.cs b/Main/System/SuperVIP/SuperVipManager.cs
index c44be4e..89f3be7 100644
--- a/Main/System/SuperVIP/SuperVipManager.cs
+++ b/Main/System/SuperVIP/SuperVipManager.cs
@@ -9,16 +9,29 @@
     /// <summary>瀹㈡湇棰嗗彇濂栧姳鍒楄〃 [[鐗╁搧ID, 涓暟], ...]</summary>
     public int[][] customerServiceRewards;
 
+    /// <summary>SuperVIP鍏ュ彛绾㈢偣</summary>
+    public Redpoint superVipRedpoint = new Redpoint(MainRedDot.SuperVIPRepoint);
+
     public override void Init()
     {
         var config = FuncConfigConfig.Get("SuperVIP");
         channelThresholdDict = JsonMapper.ToObject<Dictionary<string, int>>(config.Numerical1);
         customerServiceRewards = JsonMapper.ToObject<int[][]>(config.Numerical2);
+
+        // 姣忔閲嶆柊鐧诲綍鍚庨噸缃孩鐐癸紙閲嶆柊涓婄嚎鍚庢樉绀虹孩鐐癸級
+        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin;
+        RechargeManager.Instance.rechargeChangeEvent += OnRechargeChangeEvent;
     }
 
     public override void Release()
     {
+        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin;
+        RechargeManager.Instance.rechargeChangeEvent -= OnRechargeChangeEvent;
+    }
 
+    private void OnRechargeChangeEvent()
+    {
+        UpdateRedpoint();
     }
 
     /// <summary>
@@ -32,4 +45,29 @@
             return false;
         return RechargeManager.Instance.realRecharge >= thresholdYuan * 100;
     }
+
+    /// <summary>
+    /// 閲嶆柊鐧诲綍锛堟暟鎹垵濮嬪寲鍓嶏級锛屽厛娓呴櫎绾㈢偣鐘舵�佸啀閲嶆柊鍒ゆ柇鏄剧ず
+    /// </summary>
+    void OnBeforePlayerDataInitializeEventOnRelogin()
+    {
+        superVipRedpoint.state = RedPointState.None;
+        UpdateRedpoint();
+    }
+
+    /// <summary>
+    /// 鏍规嵁鍏ュ彛寮�鏀剧姸鎬佹洿鏂扮孩鐐�
+    /// </summary>
+    public void UpdateRedpoint()
+    {
+        superVipRedpoint.state = IsEntryOpen() ? RedPointState.Simple : RedPointState.None;
+    }
+
+    /// <summary>
+    /// 娓呴櫎绾㈢偣锛堣繘鍏uperVIPWin鍚庤皟鐢級
+    /// </summary>
+    public void ClearRedpoint()
+    {
+        superVipRedpoint.state = RedPointState.None;
+    }
 }

--
Gitblit v1.8.0