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