From 09bc892c7283df8757a07b646d5af21ddaa263d1 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 06 十一月 2025 18:22:34 +0800
Subject: [PATCH] 164 天子的考验-客户端

---
 Main/System/Battle/ArenaBattleWin.cs |  171 ++++++++++++++++++---------------------------------------
 1 files changed, 54 insertions(+), 117 deletions(-)

diff --git a/Main/System/Battle/ArenaBattleWin.cs b/Main/System/Battle/ArenaBattleWin.cs
index 1806bca..eafff77 100644
--- a/Main/System/Battle/ArenaBattleWin.cs
+++ b/Main/System/Battle/ArenaBattleWin.cs
@@ -1,20 +1,10 @@
 锘縰sing System.Collections.Generic;
 using LitJson;
 using UnityEngine;
-using UnityEngine.UI;
 
-public class ArenaBattleWin : UIBase
+public class ArenaBattleWin : BaseBattleWin
 {
-    // 缁勪欢寮曠敤
-    [SerializeField] Transform mountPoint;
-    [SerializeField] Button btnSpeed;
-    [SerializeField] Text textSpeed;
-    [SerializeField] Button btnPass;
-    [SerializeField] Button btnPause;
-    [SerializeField] RendererAdjuster buttonsAdjuster;
-    private BattleRootNode battleRootNode = null;
-    public BattleField battleField;
-
+    [SerializeField] Transform transButtons;
     [SerializeField] HeroCountryComponent myCountry;
     [SerializeField] TextEx txtMyLV;
     [SerializeField] TextEx txtMyName;
@@ -33,60 +23,19 @@
     [SerializeField] AvatarCell enemyAvatarCell;
     [SerializeField] List<ArenaHeroHead> enemyHeroHeads;
 
-    [SerializeField] TextEx txtWaveInfo;
-    // 鐢熷懡鍛ㄦ湡
-    protected override void InitComponent()
+    protected override void RegisterBattleEvents()
     {
-        base.InitComponent();
-        // 鍒濆鍖栫粍浠跺紩鐢� 缁戝畾鎸夐挳绛塙I缁勪欢浜嬩欢
-        btnSpeed.AddListener(ChangeSpeed);
-        btnPass.AddListener(OnClickPass);
-        btnPause.AddListener(OnClickPause);
-    }
-
-    private void OnClickPause()
-    {
-        if (null == battleField)
-            return;
-        battleField.IsPause = !battleField.IsPause;
-    }
-
-    private void OnClickPass()
-    {
-        if (null == battleField)
-            return;
-        battleField.ForceFinish();
-    }
-
-    private void ChangeSpeed()
-    {
-        if (null == battleField)
-            return;
-        BattleManager.Instance.speedIndex = (BattleManager.Instance.speedIndex + 1) % BattleManager.Instance.speedGear.Length;
-        battleField.SetSpeedRatio(BattleManager.Instance.speedGear[BattleManager.Instance.speedIndex]);
-        textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
-    }
-
-    protected override void OnPreOpen()
-    {
-        base.OnPreOpen();
-        // SetBattleField(BattleManager.Instance.storyBattleField);
-        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
-        EventBroadcast.Instance.AddListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
+        base.RegisterBattleEvents();
         EventBroadcast.Instance.AddListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
-        //UIManager.Instance.CloseWindow<MainWin>();
     }
 
-    protected override void OnPreClose()
+    protected override void UnregisterBattleEvents()
     {
-        base.OnPreClose();
-        UIManager.Instance.CloseWindow<BattleHUDWin>();
-        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
-        EventBroadcast.Instance.RemoveListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
+        base.UnregisterBattleEvents();
         EventBroadcast.Instance.RemoveListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
-        //UIManager.Instance.OpenWindow<MainWin>(0);
     }
-    private void OnBattleEnd(string guid, JsonData endData)
+
+    protected virtual void OnBattleEnd(string guid, JsonData endData)
     {
         if (battleField != null && guid == battleField.guid)
         {
@@ -94,8 +43,45 @@
         }
     }
 
-    private void OnDamageTaken(BattleDmgInfo damageInfo)
+    protected override void OnPreOpen()
     {
+        base.OnPreOpen();
+        MainWin.TabChangeEvent += OnTabChangeEvent;
+        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
+        transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0);
+        if (isOpenBattleChangeTab)
+        {
+            UIManager.Instance.GetUI<MainWin>()?.CloseSubUI();
+        }
+        else
+        {
+            UIManager.Instance.CloseWindow<MainWin>();
+        }
+    }
+
+    protected override void OnPreClose()
+    {
+        base.OnPreClose();
+        MainWin.TabChangeEvent -= OnTabChangeEvent;
+        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
+        if (isOpenBattleChangeTab)
+        {
+            UIManager.Instance.GetUI<MainWin>()?.RestoreSubUI();
+        }
+        else
+        {
+            UIManager.Instance.OpenWindow<MainWin>();
+        }
+    }
+
+    private void OnTabChangeEvent()
+    {
+        UIManager.Instance.CloseWindow<ArenaBattleWin>();
+    }
+
+    protected override void OnDamageTaken(BattleDmgInfo damageInfo)
+    {
+        base.OnDamageTaken(damageInfo);
         if (battleField == null)
             return;
         if (damageInfo.battleFieldGuid == battleField.guid)
@@ -104,67 +90,20 @@
         }
     }
 
-    private void OnCreateBattleField(string arg1, BattleField field)
+    protected override void OnCreateBattleField(string guid, BattleField field)
     {
-        if (field.GetType() == battleField.GetType())
+        if (field is ArenaBattleField)
         {
             SetBattleField(field);
         }
     }
 
-    protected override void OnOpen()
+    protected override void RefreshSpecific()
     {
-        base.OnOpen();
-    }
-
-    protected override void OnClose()
-    {
-        base.OnClose();
-        if (battleRootNode != null)
-        {
-            battleRootNode.transform.SetParent(Launch.Instance.transform);
-            battleRootNode.transform.localPosition = new Vector3(-10000, -10000, 0);
-        }
-        battleField = null;
-    }
-
-    protected override void NextFrameAfterOpen()
-    {
-        base.NextFrameAfterOpen();
-    }
-
-    protected override void CompleteClose()
-    {
-        base.CompleteClose();
-    }
-
-    public void SetBattleField(BattleField _battleField)
-    {
-        battleField = _battleField;
-        if (battleRootNode != null)
-        {
-            battleRootNode.transform.localPosition = Vector3.zero;
-            battleRootNode.transform.SetParent(Launch.Instance.transform);
-        }
-
-        battleRootNode = battleField.battleRootNode;
-        battleRootNode.transform.SetParent(mountPoint);
-        battleRootNode.transform.localPosition = Vector3.zero;
-        battleRootNode.transform.localScale = Vector3.one;
-        BattleHUDWin ui = UIManager.Instance.GetUI<BattleHUDWin>();
-
-        if (null == ui)
-        {
-            ui = UIManager.Instance.OpenWindow<BattleHUDWin>();
-        }
-        ui.SetBattleField(battleField);
-        battleField.UpdateCanvas(canvas);
-        buttonsAdjuster.SetSortingOrder(BattleConst.ActiveHeroActionSortingOrder);
-        textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
         DisplayHpInfo();
         DisplayPlayerInfo();
-        UpdateRoundDisplay();
     }
+
     private void DisplayHpInfo()
     {
         if (battleField == null)
@@ -284,11 +223,9 @@
         return teamHeroes;
 
     }
-    public void UpdateRoundDisplay()
+
+    bool IsOpenBattleChangeTab()
     {
-        if (battleField == null)
-            return;
-        txtWaveInfo.text = Language.Get("BoneField09", battleField.round, battleField.turnMax);
-        Debug.LogFormat("褰撳墠娉㈡暟锛歿0} 鏈�澶ц疆鏁帮細{1}", battleField.round, battleField.turnMax);
+        return FuncOpen.Instance.IsFuncOpen(ArenaManager.Instance.BattleChangeTabFuncId);
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0