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/Component/UI/Common/PopupWindowsProcessor.cs |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 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>

--
Gitblit v1.8.0