lcy
2026-01-14 f1db4f7153e21b59fb5effa1729f647a35eb5368
411 定军阁-客户端 修复无历史记录时的奖励和首通奖励显示
3个文件已修改
40 ■■■■ 已修改文件
Main/System/WarlordPavilion/WarlordPavilionAwardWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/WarlordPavilion/WarlordPavilionManager.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/WarlordPavilion/WarlordPavilionWin.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/WarlordPavilion/WarlordPavilionAwardWin.cs
@@ -25,8 +25,7 @@
    private void CreateScroller()
    {
        manager.GetHistoryMaxPassLayerNum(out historyMaxLayerNum);
        manager.TryGetHistoryMaxPassLayerNum(out historyMaxLayerNum);
        int jumpIndex = 0;
        scrAward.Refresh();
        List<int> list = manager.GetAwardList();
Main/System/WarlordPavilion/WarlordPavilionManager.cs
@@ -135,7 +135,9 @@
    public bool IsFuncOpen(bool isTip = false)
    {
        GetHistoryMaxFinishProgress(out int layerNum, out int levelNum);
        if (!TryGetHistoryMaxFinishProgress(out int layerNum, out int levelNum))
            return false;
        int lv = PlayerDatas.Instance.baseData.LV;
        bool isOpen = false;
        if (lv >= openLV)
@@ -444,7 +446,8 @@
    // 是否可以快速挑战
    public bool CanFastChallenge()
    {
        GetHistoryMaxFinishProgress(out int maxLayer, out int maxLevel);
        if (!TryGetHistoryMaxFinishProgress(out int maxLayer, out int maxLevel))
            return false;
        bool hasNext = FBDJGLevelConfig.TryGetNextLevel(maxLayer, maxLevel, out int nextLayerNum, out int nextLevelNum);
        int curMaxLayer = hasNext ? nextLayerNum : maxLayer;
        //若玩家历史最高层数-2>1,则次日可使用快速挑战功能
@@ -636,28 +639,29 @@
    }
    // 获取历史完成的最高层数和关卡编号
    public void GetHistoryMaxFinishProgress(out int layerNum, out int levelNum)
    public bool TryGetHistoryMaxFinishProgress(out int layerNum, out int levelNum)
    {
        layerNum = 0;
        levelNum = 0;
        if (!FBDJGLevelConfig.TryGetMinFBDJGLevelConfig(out FBDJGLevelConfig minConfig))
            return;
        layerNum = minConfig.LayerNum;
        levelNum = minConfig.LevelNum;
        if (!DungeonManager.Instance.TryGetFBInfoByMapID(DataMapID, out var fbInfo) || fbInfo == null)
            return;
            return false;
        AnalysisFinishProgress((int)fbInfo.PassLineID, out layerNum, out levelNum);
        if (layerNum <= 0 || levelNum <= 0)
            return false;
        return true;
    }
    public void GetHistoryMaxPassLayerNum(out int layerNum)
    public bool TryGetHistoryMaxPassLayerNum(out int layerNum)
    {
        layerNum = 0;
        GetHistoryMaxFinishProgress(out int finishLayerNum, out int finishLevelNum);
        if (!FBDJGLevelConfig.TryGetMinFBDJGLevelConfig(out FBDJGLevelConfig minConfig))
            return;
        if (!TryGetHistoryMaxFinishProgress(out int finishLayerNum, out int finishLevelNum))
            return false;
        if (!FBDJGLevelConfig.TryGetMaxLevelNumInLayer(finishLayerNum, out int maxLevelNum))
            return;
        layerNum = finishLevelNum >= maxLevelNum ? finishLayerNum : Mathf.Max(finishLayerNum - 1, minConfig.LayerNum);
            return false;
        layerNum = finishLevelNum >= maxLevelNum ? finishLayerNum : finishLayerNum - 1;
        if (layerNum <= 0)
            return false;
        return true;
    }
Main/System/WarlordPavilion/WarlordPavilionWin.cs
@@ -198,11 +198,8 @@
    }
    public bool IsNowPass()
    {
        manager.GetHistoryMaxFinishProgress(out int layerNum, out int levelNum);
        if (layerNum <= 0 || levelNum <= 0)
        {
        if (!manager.TryGetHistoryMaxFinishProgress(out int layerNum, out int levelNum))
            return false;
        }
        if (showLayerNum < layerNum)
        {