From a3b07cc8650d4907794d1e595a648c832be61ee2 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 27 二月 2026 18:49:44 +0800
Subject: [PATCH] 492 武将登场-客户端 拍脸界面优先级开出表格

---
 Main/Config/ConfigManager.cs                      |    3 +
 Main/Config/Configs/PopWinOrderConfig.cs          |   44 ++++++++++++++++++++++
 Main/Config/Configs/PopWinOrderConfig.cs.meta     |   11 +++++
 Main/Component/UI/Common/PopupWindowsProcessor.cs |   31 +++++++++++++++
 4 files changed, 88 insertions(+), 1 deletions(-)

diff --git a/Main/Component/UI/Common/PopupWindowsProcessor.cs b/Main/Component/UI/Common/PopupWindowsProcessor.cs
index c9b541b..c63eaea 100644
--- a/Main/Component/UI/Common/PopupWindowsProcessor.cs
+++ b/Main/Component/UI/Common/PopupWindowsProcessor.cs
@@ -43,7 +43,36 @@
         }
 
         popupWindowQueue.Add(popupWindow);
-        popupWindowQueue.Sort((x, y) => y.isNeedHomeWin.CompareTo(x.isNeedHomeWin));
+        popupWindowQueue.Sort((x, y) =>
+        {
+            // 1. 棣栧厛鎸� isNeedHomeWin 鎺掑簭 (true 鎺掑湪鍓嶉潰)
+            int homeWinCompare = y.isNeedHomeWin.CompareTo(x.isNeedHomeWin);
+            if (homeWinCompare != 0)
+                return homeWinCompare;
+
+            // 2. 鑾峰彇鍚勮嚜鐨� WinOrder (閫氳繃 WinName 鏌ユ壘閰嶇疆琛�)
+            int xOrder = GetWinOrder(x.window);
+            int yOrder = GetWinOrder(y.window);
+            int orderCompare = xOrder.CompareTo(yOrder);
+            if (orderCompare != 0)
+                return orderCompare;
+
+            // 3. WinOrder 鐩稿悓鏃讹紝鎸� ID 鎺掑簭 (ID 灏忕殑鎺掑墠闈�)
+            return x.functionId.CompareTo(y.functionId);
+        });
+    }
+
+    private int GetWinOrder(string winName)
+    {
+        var allConfigs = PopWinOrderConfig.GetValues();
+        foreach (var config in allConfigs)
+        {
+            if (config.WinName == winName)
+            {
+                return config.WinOrder;
+            }
+        }
+        return int.MinValue; 
     }
 
     /// <summary>
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index bda8e4b..e34dd67 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -91,6 +91,7 @@
             typeof(OrderInfoConfig),
             typeof(PlayerAttrConfig),
             typeof(PlayerFaceConfig),
+            typeof(PopWinOrderConfig),
             typeof(PresetUnlockConfig),
             typeof(PriorBundleConfig),
             typeof(RandomNameConfig),
@@ -366,6 +367,8 @@
         ClearConfigDictionary<PlayerAttrConfig>();
         // 娓呯┖ PlayerFaceConfig 瀛楀吀
         ClearConfigDictionary<PlayerFaceConfig>();
+        // 娓呯┖ PopWinOrderConfig 瀛楀吀
+        ClearConfigDictionary<PopWinOrderConfig>();
         // 娓呯┖ PresetUnlockConfig 瀛楀吀
         ClearConfigDictionary<PresetUnlockConfig>();
         // 娓呯┖ PriorBundleConfig 瀛楀吀
diff --git a/Main/Config/Configs/PopWinOrderConfig.cs b/Main/Config/Configs/PopWinOrderConfig.cs
new file mode 100644
index 0000000..bb870db
--- /dev/null
+++ b/Main/Config/Configs/PopWinOrderConfig.cs
@@ -0,0 +1,44 @@
+锘�//--------------------------------------------------------
+//    [Author]:           YYL
+//    [  Date ]:           2026骞�2鏈�27鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class PopWinOrderConfig : ConfigBase<int, PopWinOrderConfig>
+{
+    static PopWinOrderConfig()
+    {
+        // 璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
+        visit = true; 
+    }
+
+    public int ID;
+	public string WinName;
+	public int WinOrder;
+
+    public override int LoadKey(string _key)
+    {
+        int key = GetKey(_key);
+        return key;
+    }
+
+    public override void LoadConfig(string input)
+    {
+        try {
+        string[] tables = input.Split('\t');
+        int.TryParse(tables[0],out ID); 
+
+			WinName = tables[1];
+
+			int.TryParse(tables[2],out WinOrder); 
+        }
+        catch (Exception exception)
+        {
+            Debug.LogError(exception);
+        }
+    }
+}
diff --git a/Main/Config/Configs/PopWinOrderConfig.cs.meta b/Main/Config/Configs/PopWinOrderConfig.cs.meta
new file mode 100644
index 0000000..d638be1
--- /dev/null
+++ b/Main/Config/Configs/PopWinOrderConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a5c6d2fdaab52b44a824d683ed361ddf
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

--
Gitblit v1.8.0