From a19acb609721b89419fe55785643a0d4f1959368 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 14 十一月 2025 20:03:47 +0800
Subject: [PATCH] 0312 动态检测战力公式
---
Main/System/ChallengeTab/ChallengeTabWin.cs | 127 ++++++------------------------------------
1 files changed, 19 insertions(+), 108 deletions(-)
diff --git a/Main/System/ChallengeTab/ChallengeTabWin.cs b/Main/System/ChallengeTab/ChallengeTabWin.cs
index bc04981..67db7d6 100644
--- a/Main/System/ChallengeTab/ChallengeTabWin.cs
+++ b/Main/System/ChallengeTab/ChallengeTabWin.cs
@@ -3,131 +3,42 @@
public class ChallengeTabWin : UIBase
{
- [SerializeField] ChallengeTabButton btnBoneField;
- [SerializeField] ChallengeTabButton btnArena;
-
+ 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;
- PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
+ foreach (var handler in tabHandlers)
+ {
+ handler.SubscribeEvents();
+ }
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;
+ foreach (var handler in tabHandlers)
+ {
+ handler.UnsubscribeEvents();
+ }
UIManager.Instance.GetUI<MainWin>()?.RestoreFuncBtn();
- }
- 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)
- {
- DisplayBoneFieldButton();
- }
-
- }
-
- public void OnFuncStateChangeEvent(int funcId)
- {
- if (funcId == BoneFieldManager.Instance.funcId)
- {
- DisplayBoneFieldButton();
- }
- else if (funcId == ArenaManager.Instance.funcId)
- {
- DisplayArenaButton();
- }
- }
-
- private void PlayerDataRefresh(PlayerDataType type)
- {
- 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;
- BattleField arenaBattle = BattleManager.Instance.GetBattleFieldByMapID(3);
- if (arenaBattle != null)
- {
- ArenaBattleWin battleWin;
- if (!UIManager.Instance.IsOpened<ArenaBattleWin>())
- {
- battleWin = UIManager.Instance.OpenWindow<ArenaBattleWin>();
- }
- else
- {
- battleWin = UIManager.Instance.GetUI<ArenaBattleWin>();
- }
- battleWin.SetBattleField(arenaBattle);
- }
- else
- {
- UIManager.Instance.OpenWindow<ArenaWin>();
- }
- });
- }
-
- 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