lcy
5 天以前 3a0fcfe56c6d2eb9597132d7e0679bffd3caae17
143 演武场-客户端 修改切出界面
4个文件已修改
64 ■■■■ 已修改文件
Main/System/Arena/ArenaChallengeWin.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/ArenaBattleWin.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/ArenaBattleField.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleManager.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Arena/ArenaChallengeWin.cs
@@ -26,25 +26,18 @@
    protected override void OnPreOpen()
    {
        base.OnPreOpen();
        // RankModel.Instance.onRankRefresh += OnRankRefresh;
        scrollerController.OnRefreshCell += OnRefreshCell;
        ArenaManager.Instance.OnArenaMatchListEvent += OnArenaMatchListEvent;
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh;
        // ArenaManager.Instance.OnUpdateArenaPlayerInfo += OnUpdateArenaPlayerInfo;
        // ArenaManager.Instance.OnUpdateGameRecInfo += OnUpdateGameRecInfo;
        // Display();
        Display();
    }
    protected override void OnPreClose()
    {
        base.OnPreClose();
        // RankModel.Instance.onRankRefresh -= OnRankRefresh;
        scrollerController.OnRefreshCell -= OnRefreshCell;
        ArenaManager.Instance.OnArenaMatchListEvent -= OnArenaMatchListEvent;
        PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh;
        // ArenaManager.Instance.OnUpdateArenaPlayerInfo -= OnUpdateArenaPlayerInfo;
        // ArenaManager.Instance.OnUpdateGameRecInfo -= OnUpdateGameRecInfo;
    }
    private void PlayerDataRefresh(PlayerDataType type)
Main/System/Battle/ArenaBattleWin.cs
@@ -76,7 +76,7 @@
        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
        EventBroadcast.Instance.AddListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.AddListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
        UIManager.Instance.CloseWindow<BattleWin>();
        UIManager.Instance.GetUI<MainWin>()?.CloseSubUI();
    }
    protected override void OnPreClose()
@@ -87,7 +87,8 @@
        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
        EventBroadcast.Instance.RemoveListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
        EventBroadcast.Instance.RemoveListener<string, JsonData>(EventName.BATTLE_END, OnBattleEnd);
        UIManager.Instance.OpenWindow<BattleWin>();
        UIManager.Instance.GetUI<MainWin>()?.RestoreSubUI();
    }
    private void OnTabChangeEvent()
@@ -300,17 +301,16 @@
        txtWaveInfo.text = Language.Get("BoneField09", battleField.round, battleField.turnMax);
    }
    public void DisplayBattleWin()
    bool IsBlockBattleChangeTab()
    {
        if (!UIManager.Instance.IsOpened<BattleWin>())
        {
            BattleWin battleWin = UIManager.Instance.OpenWindow<BattleWin>();
            battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
        string activeBattleName = BattleManager.Instance.GetActiveBattleName();
        // 没有正在进行的战斗
        if (activeBattleName == null || activeBattleName == "")
            return false;
        // 主线道中不阻止切出
        if (activeBattleName == "StoryBattleField")
            return false;
        return true;
        }
        else
        {
            BattleWin battleWin = UIManager.Instance.GetUI<BattleWin>();
            battleWin.SetBattleField(BattleManager.Instance.storyBattleField);
        }
    }
}
Main/System/Battle/BattleField/ArenaBattleField.cs
@@ -140,17 +140,6 @@
            fsBattleWin = UIManager.Instance.OpenWindow<ArenaBattleWin>();
        }
        fsBattleWin.SetBattleField(this);
        if (UIManager.Instance.IsOpened<ArenaRecordWin>())
        {
            UIManager.Instance.CloseWindow<ArenaRecordWin>();
        }
        if (UIManager.Instance.IsOpened<ArenaChallengeWin>())
        {
            UIManager.Instance.CloseWindow<ArenaChallengeWin>();
        }
        if (UIManager.Instance.IsOpened<ArenaWin>())
        {
            UIManager.Instance.CloseWindow<ArenaWin>();
Main/System/Battle/BattleManager.cs
@@ -586,26 +586,6 @@
        return null;
    }
    /// <summary>
    /// 检查是否有非主线战斗(如竞技场、白骨等)正在进行
    /// </summary>
    /// <returns>如果有任何非主线战斗且未结束,则返回true</returns>
    public bool IsOtherBattleInProgress()
    {
        foreach (var kvp in battleFields)
        {
            BattleField battleField = kvp.Value;
            // 检查战场是否有效且尚未结束
            if (battleField == null || battleField.IsBattleFinish)
                continue;
            // MapID 1 (StoryBattleField) 和 2 (StoryBossBattleField) 都是主线
            if (battleField.MapID == 1 || battleField.MapID == 2)
                continue;
            return true;
        }
        return false;
    }
    // 获取当前正在显示的战斗场景名称,如果没有则返回空字符串
    public string GetActiveBattleName()
    {