From 6a105ff34adac6be5e71e17554e9eb3a3bc1b86c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 20 十月 2025 11:50:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/ChallengeTab/ChallengeTabWin.cs |   60 ++++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 44 insertions(+), 16 deletions(-)

diff --git a/Main/System/ChallengeTab/ChallengeTabWin.cs b/Main/System/ChallengeTab/ChallengeTabWin.cs
index 96b019b..60f67da 100644
--- a/Main/System/ChallengeTab/ChallengeTabWin.cs
+++ b/Main/System/ChallengeTab/ChallengeTabWin.cs
@@ -3,18 +3,12 @@
 
 public class ChallengeTabWin : UIBase
 {
-    [SerializeField] ClickScreenOtherSpace clickScreenOtherSpace;
     [SerializeField] ChallengeTabButton btnBoneField;
+    [SerializeField] ChallengeTabButton btnArena;
     public static Action OnCloseChallengeTabWin;
     protected override void InitComponent()
     {
         base.InitComponent();
-        clickScreenOtherSpace.RemoveAllListeners();
-        clickScreenOtherSpace.AddListener(() =>
-        {
-            UIManager.Instance.CloseWindow<ChallengeTabWin>();
-        });
-
     }
     protected override void OnPreOpen()
     {
@@ -23,10 +17,19 @@
         AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent;
         TimeMgr.Instance.OnDayEvent += OnDayEvent;
         FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
-
+        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
         Display();
     }
-
+    protected override void OnPreClose()
+    {
+        base.OnPreClose();
+        DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChangeEvent;
+        AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent;
+        TimeMgr.Instance.OnDayEvent -= OnDayEvent;
+        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
+        OnCloseChallengeTabWin?.Invoke();
+    }
     private void OnDayEvent()
     {
         Display();
@@ -45,26 +48,50 @@
         }
 
     }
+
     public void OnFuncStateChangeEvent(int funcId)
     {
         if (funcId == BoneFieldManager.Instance.funcId)
         {
             DisplayBoneFieldButton();
         }
+        else if (funcId == ArenaManager.Instance.funcId)
+        {
+            DisplayArenaButton();
+        }
     }
 
-    protected override void OnPreClose()
+    private void PlayerDataRefresh(PlayerDataType type)
     {
-        base.OnPreClose();
-        DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChangeEvent;
-        AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent;
-        TimeMgr.Instance.OnDayEvent -= OnDayEvent;
-        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
-        OnCloseChallengeTabWin?.Invoke();
+        if (type == PlayerDataType.ChallengeVoucher)
+        {
+            DisplayArenaButton();
+        }
     }
+
     public void Display()
     {
         DisplayBoneFieldButton();
+        DisplayArenaButton();
+    }
+
+    public void DisplayArenaButton()
+    {
+        int index = 1;
+        int funcId = ArenaManager.Instance.funcId;
+        int redpointId = MainRedDot.ArenaRepoint;
+        bool isLock = FuncOpen.Instance.IsFuncOpen(funcId);
+        int type = ArenaManager.Instance.ChallengeMoneyType;
+        long nowCount = UIHelper.GetMoneyCnt(type);
+        string countInfo = UIHelper.AppendColor(nowCount > 0 ? TextColType.Green : TextColType.Red, Language.Get("Challenge03", nowCount));
+        string lockInfo = !isLock ? Language.Get("Challenge02") : string.Empty;
+        btnArena.Display(index, redpointId, isLock, countInfo, lockInfo, () =>
+        {
+            UIManager.Instance.CloseWindow<ChallengeTabWin>();
+            if (!FuncOpen.Instance.IsFuncOpen(funcId, true))
+                return;
+            UIManager.Instance.OpenWindow<ArenaWin>();
+        });
     }
 
     public void DisplayBoneFieldButton()
@@ -79,6 +106,7 @@
         string lockInfo = !isLock ? Language.Get("Challenge02") : string.Empty;
         btnBoneField.Display(index, redpointId, isLock, countInfo, lockInfo, () =>
         {
+            UIManager.Instance.CloseWindow<ChallengeTabWin>();
             if (!FuncOpen.Instance.IsFuncOpen(funcId, true))
                 return;
             UIManager.Instance.OpenWindow<BoneFieldWin>();

--
Gitblit v1.8.0