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