From 247c64258e0102a1028199f14866a1fd1c1a205f Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 20 十月 2025 11:44:38 +0800
Subject: [PATCH] 143 子 【挑战】演武场 / 【挑战】演武场-客户端

---
 Main/System/ChallengeTab/ChallengeTabWin.cs |   52 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/Main/System/ChallengeTab/ChallengeTabWin.cs b/Main/System/ChallengeTab/ChallengeTabWin.cs
index 6f455e4..60f67da 100644
--- a/Main/System/ChallengeTab/ChallengeTabWin.cs
+++ b/Main/System/ChallengeTab/ChallengeTabWin.cs
@@ -4,6 +4,7 @@
 public class ChallengeTabWin : UIBase
 {
     [SerializeField] ChallengeTabButton btnBoneField;
+    [SerializeField] ChallengeTabButton btnArena;
     public static Action OnCloseChallengeTabWin;
     protected override void InitComponent()
     {
@@ -16,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();
@@ -38,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()

--
Gitblit v1.8.0