From acab2a61380638fd374ad2d0a5d4caff84aa7cdc Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 13 十一月 2025 19:25:45 +0800
Subject: [PATCH] 0312 优化引导,在引导前先处理装备,然后再出现引导

---
 Main/Config/Configs/GuideConfig.cs                 |    8 +++++++-
 Main/System/Battle/BattleField/StoryBattleField.cs |    2 +-
 Main/System/NewBieGuidance/NewBieCenter.cs         |   38 +++++++++++++++++++++++++++++---------
 3 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/Main/Config/Configs/GuideConfig.cs b/Main/Config/Configs/GuideConfig.cs
index 6ae4012..81253a8 100644
--- a/Main/Config/Configs/GuideConfig.cs
+++ b/Main/Config/Configs/GuideConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�10鏈�11鏃�
+//    [  Date ]:           Thursday, November 13, 2025
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -24,6 +24,8 @@
 	public int PreGuideId;
 	public int[] Steps;
 	public int NoRecord;
+	public int Priority;
+	public int PauseMainBattle;
 
     public override int LoadKey(string _key)
     {
@@ -62,6 +64,10 @@
 			}
 
 			int.TryParse(tables[7],out NoRecord); 
+
+			int.TryParse(tables[8],out Priority); 
+
+			int.TryParse(tables[9],out PauseMainBattle); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/Battle/BattleField/StoryBattleField.cs b/Main/System/Battle/BattleField/StoryBattleField.cs
index 0a8440f..93f1aba 100644
--- a/Main/System/Battle/BattleField/StoryBattleField.cs
+++ b/Main/System/Battle/BattleField/StoryBattleField.cs
@@ -323,7 +323,7 @@
     //鏆傚仠鐨勫師鍥犳湁寰堝锛岄渶瑕佹鏌ュ悇绉嶇姸鎬�
     protected override bool CanResumeGame()
     {
-        if (NewBieCenter.Instance.IsNeedRecord(NewBieCenter.Instance.currentGuide))
+        if (NewBieCenter.Instance.IsPauseMainBattle(NewBieCenter.Instance.currentGuide))
         {
             return false;
         }
diff --git a/Main/System/NewBieGuidance/NewBieCenter.cs b/Main/System/NewBieGuidance/NewBieCenter.cs
index 07b4f66..b81dc25 100644
--- a/Main/System/NewBieGuidance/NewBieCenter.cs
+++ b/Main/System/NewBieGuidance/NewBieCenter.cs
@@ -25,7 +25,7 @@
     public bool inGuiding
     {
         // 褰撳墠鏈夊紩瀵硷紝骞朵笖涓嶆槸鏆傚仠鐘舵�侊紝鍒欏湪寮曞涓�
-        get { return currentGuide != 0 && IsNeedRecord(currentGuide); }
+        get { return currentGuide != 0 && IsPauseMainBattle(currentGuide); }
     }
 
     List<int> allGuides = new List<int>();
@@ -203,10 +203,11 @@
             return false;
         }
 
-        if (currentGuide != 0 && GuideConfig.Get(currentGuide).NoRecord == 0)
+        int curPriority = -1;
+        var curGuide = GuideConfig.Get(currentGuide);
+        if (curGuide != null)
         {
-            // 鍙噸澶嶈Е鍙戠殑寮曞灞炰簬浣庝紭鍏堢骇 浼氳鏂板紩瀵兼浛鎹�
-            return false;
+            curPriority = curGuide.Priority;
         }
 
         for (int i = 0; i < _guides.Count; i++)
@@ -216,7 +217,7 @@
             {
                 continue;
             }
-            
+
             var config = GuideConfig.Get(guideId);
             if (config.PreGuideId != 0 && !completeGuidesBuf.Contains(config.PreGuideId))
             {
@@ -224,8 +225,15 @@
                 continue;
             }
 
+            if (config.Priority <= curPriority)
+            {
+                // 楂樹紭鍏堢骇鎵嶅彲浠ユ墦鏂綆鐨�
+                continue;
+            }
+
             if (currentGuide != guideId && CheckGuideCondition(guideId, isOrgTrigger))
             {
+
                 return StartNewBieGuide(guideId);
             }
         }
@@ -234,11 +242,13 @@
     }
 
 
-    bool WaitGuide(int _id)
+    bool WaitGuide(GuideConfig config)
     {
-        var config = GuideConfig.Get(_id);
         //瑕佸紩瀵肩殑鐣岄潰涓婃湁鍏朵粬鐣岄潰鐩栦綇锛屽姞鍏ラ槦鍒楃瓑寰呭叾浠栫晫闈㈠叧闂殑鏃跺�欏啀瑙﹀彂璇ョ晫闈㈠紩瀵�
-        if (UIManager.Instance.ExistAnyFullScreenOrMaskWinAbove(config.WinName))
+        // 鎴栬�呯瓑寰呮嬀鍙栬澶囧悗鍐嶅紩瀵�
+        if (UIManager.Instance.ExistAnyFullScreenOrMaskWinAbove(config.WinName) || 
+            (config.PauseMainBattle == 1 && PackManager.Instance.GetItems(PackType.DropItem).Count > 0
+            && config.WinName != "EquipExchangeWin"))
         {
             //濡傛灉瀛愮晫闈㈡槸蹇呴』鎸傚湪璇ョ晫闈笂鍒囦笖娌℃湁钂欑増鐩栦綇鐨勫彲浠ュ鍔犲垽鏂�
             if (!waitGuideWinNames.Contains(config.WinName))
@@ -269,7 +279,7 @@
             return false;
         }
 
-        if (WaitGuide(_id))
+        if (WaitGuide(config))
         {
             return false;
         }
@@ -313,6 +323,16 @@
     }
 
 
+    public bool IsPauseMainBattle(int _id)
+    {
+        var config = GuideConfig.Get(_id);
+        if (config == null)
+        {
+            return false;
+        }
+        return GuideConfig.Get(_id).PauseMainBattle == 1;
+    }
+
     //闈�0浠h〃 鍙噸澶嶅紩瀵硷紝涓斾紭鍏堢骇浣庝細琚柊寮曞鏇挎崲锛屼笖涓嶆殏鍋滀富绾挎垬鏂�
     public bool IsNeedRecord(int _id)
     {

--
Gitblit v1.8.0