From f1db4f7153e21b59fb5effa1729f647a35eb5368 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 14 一月 2026 19:18:11 +0800
Subject: [PATCH] 411 定军阁-客户端 修复无历史记录时的奖励和首通奖励显示
---
Main/System/WarlordPavilion/WarlordPavilionManager.cs | 32 ++++++++++++++++++--------------
Main/System/WarlordPavilion/WarlordPavilionWin.cs | 5 +----
Main/System/WarlordPavilion/WarlordPavilionAwardWin.cs | 3 +--
3 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/Main/System/WarlordPavilion/WarlordPavilionAwardWin.cs b/Main/System/WarlordPavilion/WarlordPavilionAwardWin.cs
index 57a250a..db38b1b 100644
--- a/Main/System/WarlordPavilion/WarlordPavilionAwardWin.cs
+++ b/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();
diff --git a/Main/System/WarlordPavilion/WarlordPavilionManager.cs b/Main/System/WarlordPavilion/WarlordPavilionManager.cs
index e5e2743..ada23cf 100644
--- a/Main/System/WarlordPavilion/WarlordPavilionManager.cs
+++ b/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;
}
diff --git a/Main/System/WarlordPavilion/WarlordPavilionWin.cs b/Main/System/WarlordPavilion/WarlordPavilionWin.cs
index 6ca3e32..2e0cd79 100644
--- a/Main/System/WarlordPavilion/WarlordPavilionWin.cs
+++ b/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)
{
--
Gitblit v1.8.0