From 6ae4b14b7fb6640ec805f070a1f0f691941c6917 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 13 二月 2026 19:26:53 +0800
Subject: [PATCH] 0312 公会砍价上限写死50人

---
 Main/System/ChallengeTab/ChallengeTabWin.cs |   76 +++++++++----------------------------
 1 files changed, 19 insertions(+), 57 deletions(-)

diff --git a/Main/System/ChallengeTab/ChallengeTabWin.cs b/Main/System/ChallengeTab/ChallengeTabWin.cs
index 6f455e4..67db7d6 100644
--- a/Main/System/ChallengeTab/ChallengeTabWin.cs
+++ b/Main/System/ChallengeTab/ChallengeTabWin.cs
@@ -3,80 +3,42 @@
 
 public class ChallengeTabWin : UIBase
 {
-    [SerializeField] ChallengeTabButton btnBoneField;
-    public static Action OnCloseChallengeTabWin;
+    private BaseChallengeTabHandler[] tabHandlers;
+
     protected override void InitComponent()
     {
         base.InitComponent();
+        // 鑷姩鏌ユ壘鎵�鏈夊瓙瀵硅薄涓婄殑 Handler 缁勪欢
+        tabHandlers = GetComponentsInChildren<BaseChallengeTabHandler>(true);
     }
+
     protected override void OnPreOpen()
     {
         base.OnPreOpen();
-        DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChangeEvent;
-        AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent;
-        TimeMgr.Instance.OnDayEvent += OnDayEvent;
-        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
-
-        Display();
-    }
-
-    private void OnDayEvent()
-    {
-        Display();
-    }
-
-    private void OnAdsInfoListUpdateEvent(int id, int mapId)
-    {
-        Display();
-    }
-
-    private void OnUpdateFBInfoChangeEvent(int arg1, bool arg2, bool arg3, bool arg4)
-    {
-        if (arg1 == BoneFieldManager.Instance.DataMapID)
+        foreach (var handler in tabHandlers)
         {
-            DisplayBoneFieldButton();
+            handler.SubscribeEvents();
         }
-
-    }
-    public void OnFuncStateChangeEvent(int funcId)
-    {
-        if (funcId == BoneFieldManager.Instance.funcId)
-        {
-            DisplayBoneFieldButton();
-        }
+        Display();
     }
 
     protected override void OnPreClose()
     {
         base.OnPreClose();
-        DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChangeEvent;
-        AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent;
-        TimeMgr.Instance.OnDayEvent -= OnDayEvent;
-        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
-        OnCloseChallengeTabWin?.Invoke();
+        foreach (var handler in tabHandlers)
+        {
+            handler.UnsubscribeEvents();
+        }
+        UIManager.Instance.GetUI<MainWin>()?.RestoreFuncBtn();
     }
+
     public void Display()
     {
-        DisplayBoneFieldButton();
-    }
-
-    public void DisplayBoneFieldButton()
-    {
-        int index = 2;
-        int funcId = BoneFieldManager.Instance.funcId;
-        int redpointId = MainRedDot.BoneFieldRepoint;
-        bool isLock = FuncOpen.Instance.IsFuncOpen(funcId);
-        if (!BoneFieldManager.Instance.TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount))
+        if (tabHandlers == null)
             return;
-        string countInfo = UIHelper.AppendColor(showrealRemainSweepCount > 0 ? TextColType.Green : TextColType.Red, Language.Get("Challenge01", showrealRemainSweepCount));
-        string lockInfo = !isLock ? Language.Get("Challenge02") : string.Empty;
-        btnBoneField.Display(index, redpointId, isLock, countInfo, lockInfo, () =>
+        foreach (var handler in tabHandlers)
         {
-            UIManager.Instance.CloseWindow<ChallengeTabWin>();
-            if (!FuncOpen.Instance.IsFuncOpen(funcId, true))
-                return;
-            UIManager.Instance.OpenWindow<BoneFieldWin>();
-        });
+            handler.Refresh();
+        }
     }
-
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0