lcy
2025-10-22 524fb77b407ac22e8b14df0360945e5b8064cd34
Main/System/Battle/ArenaBattleWin.cs
@@ -8,6 +8,7 @@
{
    // 组件引用
    [SerializeField] Transform mountPoint;
    [SerializeField] Transform transButtons;
    [SerializeField] Button btnSpeed;
    [SerializeField] Text textSpeed;
    [SerializeField] Button btnPass;
@@ -76,7 +77,18 @@
        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
        EventBroadcast.Instance.AddListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.AddListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
        UIManager.Instance.GetUI<MainWin>()?.CloseSubUI();
        BattleManager.Instance.storyBattleField.IsPause = true;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 200 : 0, 0);
        if (isOpenBattleChangeTab)
        {
            UIManager.Instance.GetUI<MainWin>()?.CloseSubUI();
        }
        else
        {
            UIManager.Instance.CloseWindow<MainWin>();
        }
    }
    protected override void OnPreClose()
@@ -87,8 +99,17 @@
        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
        EventBroadcast.Instance.RemoveListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.RemoveListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
        UIManager.Instance.GetUI<MainWin>()?.RestoreSubUI();
        BattleManager.Instance.storyBattleField.IsPause = false;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        if (isOpenBattleChangeTab)
        {
            UIManager.Instance.GetUI<MainWin>()?.RestoreSubUI();
        }
        else
        {
            UIManager.Instance.OpenWindow<MainWin>();
        }
    }
    private void OnTabChangeEvent()
@@ -301,16 +322,9 @@
        txtWaveInfo.text = Language.Get("BoneField09", battleField.round, battleField.turnMax);
    }
    bool IsBlockBattleChangeTab()
    bool IsOpenBattleChangeTab()
    {
        string activeBattleName = BattleManager.Instance.GetActiveBattleName();
        // 没有正在进行的战斗
        if (activeBattleName == null || activeBattleName == "")
            return false;
        // 主线道中不阻止切出
        if (activeBattleName == "StoryBattleField")
            return false;
        return true;
        return FuncOpen.Instance.IsFuncOpen(ArenaManager.Instance.BattleChangeTabFuncId);
    }
}