From cbc808130160c05551c1acc83cd7507bcfebcba0 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 21 十月 2025 14:42:48 +0800
Subject: [PATCH] 143 演武场-客户端 战斗支持切出界面,如果战斗没结束,还能通过入口回到战斗

---
 Main/System/Main/MainWin.cs |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/Main/System/Main/MainWin.cs b/Main/System/Main/MainWin.cs
index 6c3c56d..a629719 100644
--- a/Main/System/Main/MainWin.cs
+++ b/Main/System/Main/MainWin.cs
@@ -27,10 +27,12 @@
     [SerializeField] UIEffectPlayer fightEffect;
     [SerializeField] UIEffectPlayer openCloseAnim;
     [SerializeField] FillTween cdTween;
+    int index = 0;
 
     public bool isFirstOpen = true; //棣栨鎵撳紑
     public Text hammerText;
 
+    public static event Action TabChangeEvent;
     protected override void InitComponent()
     {
         base.InitComponent();
@@ -43,6 +45,7 @@
         UpdateCurrency();
         UpdatePlayerInfo();
         RefreshFightBtn();
+        DisplayTopBar(index);
     }
 
     protected override void OnPreOpen()
@@ -50,6 +53,8 @@
         PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
         AutoFightModel.Instance.OnFightEvent += OnSkillCast;
         ChallengeTabWin.OnCloseChallengeTabWin += OnCloseChallengeTabWin;
+        BattleManager.Instance.onBattleFieldCreate += OnBattleFieldCreate;
+        BattleManager.Instance.onBattleFieldDestroy += OnBattleFieldDestroy;
         base.OnPreOpen();
 
         // 鍒锋柊UI
@@ -61,7 +66,19 @@
         PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
         AutoFightModel.Instance.OnFightEvent -= OnSkillCast;
         ChallengeTabWin.OnCloseChallengeTabWin -= OnCloseChallengeTabWin;
+        BattleManager.Instance.onBattleFieldCreate -= OnBattleFieldCreate;
+        BattleManager.Instance.onBattleFieldDestroy -= OnBattleFieldDestroy;
         base.OnPreClose();
+    }
+
+    private void OnBattleFieldCreate(string guid, BattleField battleField)
+    {
+        Refresh();
+    }
+
+    private void OnBattleFieldDestroy(string guid, BattleField battleField)
+    {
+        Refresh();
     }
 
     private void OnCloseChallengeTabWin()
@@ -82,8 +99,37 @@
         tabButtons[functionOrder].SelectBtn();
     }
 
+    public void DisplayTopBar(int index)
+    {
+        bool isOtherBattleInProgress = BattleManager.Instance.IsOtherBattleInProgress();
+        switch (index)
+        {
+            case 0:
+            case 2:
+                topBar.SetActive(true);
+                break;
+            case 1:
+            case 4:
+                topBar.SetActive(false);
+                break;
+            case 3:
+                topBar.SetActive(!isOtherBattleInProgress);
+                break;
+            default:
+                topBar.SetActive(true);
+                break;
+        }
+    }
+
     protected override void SelectBottomTab(int index)
     {
+        bool isOtherBattleInProgress = BattleManager.Instance.IsOtherBattleInProgress();
+        if (isOtherBattleInProgress)
+        {
+            // 濡傛灉姝e湪闈炰富绾挎垬鏂椾腑锛屾病婊¤冻瑙i攣鏉′欢鍒欎笉鍏佽鍒囨崲
+        }
+        DisplayTopBar(index);
+
         if (index == 3)
         {
             //鎸戞垬鐗规畩鏄剧ず閫昏緫
@@ -91,7 +137,8 @@
             return;
         }
 
-        topBar.SetActive(index == 0 || index == 2);
+
+
         // 濡傛灉鐐瑰嚮褰撳墠宸查�変腑鐨勬爣绛撅紝涓嶅仛澶勭悊
         if (functionOrder == index && currentSubUI != null)
         {
@@ -107,6 +154,8 @@
 
         // 鏍规嵁閫変腑鐨勬爣绛炬墦寮�瀵瑰簲鐨勭晫闈�
         OpenSubUIByTabIndex();
+
+        TabChangeEvent?.Invoke();
     }
 
     //鎴樻枟鎸夐挳鍔ㄧ敾
@@ -187,6 +236,9 @@
     /// </summary>
     protected override void OnTabButtonClicked(int index)
     {
+        this.index = index;
+
+
         if (index == 0)
         {
             if (currentSubUI != null && currentSubUI.name == "HomeWin")
@@ -201,8 +253,6 @@
             UIManager.Instance.OpenWindow<GuildJoinWin>();
             return;
         }
-
-
         SelectBottomTab(index);
     }
 

--
Gitblit v1.8.0