From e1757b8dac92acd3063b203e12390ccab30c9ffe Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 17 三月 2026 19:13:32 +0800
Subject: [PATCH] 262 幻境阁-客户端 支持配表排序

---
 Main/Config/Configs/PlayerFacePicConfig.cs                         |    5 ++
 Main/Config/Configs/ModelConfig.cs                                 |    5 ++
 Main/System/PhantasmPavilion/PhantasmPavilionTitleHandler.cs       |    5 ++
 Main/Config/Configs/PlayerFaceConfig.cs                            |    5 ++
 Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs        |    5 ++
 Main/System/PhantasmPavilion/PhantasmPavilionFacePicHandler.cs     |    4 ++
 Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs       |    5 ++
 Main/System/PhantasmPavilion/PhantasmPavilionManager.LoadConfig.cs |    8 ++++
 Main/System/PhantasmPavilion/PhantasmPavilionManager.cs            |   17 +++++++-
 Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs        |    1 
 Main/System/PhantasmPavilion/PhantasmPavilionChatBoxHandler.cs     |    5 ++
 Main/Config/Configs/ChatBubbleBoxConfig.cs                         |    5 ++
 Main/Config/Configs/TitleConfig.cs                                 |    5 ++
 13 files changed, 63 insertions(+), 12 deletions(-)

diff --git a/Main/Config/Configs/ChatBubbleBoxConfig.cs b/Main/Config/Configs/ChatBubbleBoxConfig.cs
index b851bc7..b6b718d 100644
--- a/Main/Config/Configs/ChatBubbleBoxConfig.cs
+++ b/Main/Config/Configs/ChatBubbleBoxConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�12鏈�1鏃�
+//    [  Date ]:           2026骞�3鏈�17鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -35,6 +35,7 @@
 	public int Top;
 	public int[] MyColor;
 	public int[] OtherColor;
+	public int SortIndex;
 
     public override int LoadKey(string _key)
     {
@@ -167,6 +168,8 @@
 					 int.TryParse(OtherColorStringArray[i],out OtherColor[i]);
 				}
 			}
+
+			int.TryParse(tables[19],out SortIndex); 
         }
         catch (Exception exception)
         {
diff --git a/Main/Config/Configs/ModelConfig.cs b/Main/Config/Configs/ModelConfig.cs
index ff78c7c..42ee750 100644
--- a/Main/Config/Configs/ModelConfig.cs
+++ b/Main/Config/Configs/ModelConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�11鏈�25鏃�
+//    [  Date ]:           2026骞�3鏈�17鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -31,6 +31,7 @@
 	public int[] InitAttrValueList;
 	public int[] AttrPerStarAddList;
 	public string GetWayString;
+	public int SortIndex;
 
     public override int LoadKey(string _key)
     {
@@ -107,6 +108,8 @@
 			}
 
 			GetWayString = tables[14];
+
+			int.TryParse(tables[15],out SortIndex); 
         }
         catch (Exception exception)
         {
diff --git a/Main/Config/Configs/PlayerFaceConfig.cs b/Main/Config/Configs/PlayerFaceConfig.cs
index f8f9abb..641356a 100644
--- a/Main/Config/Configs/PlayerFaceConfig.cs
+++ b/Main/Config/Configs/PlayerFaceConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Wednesday, November 19, 2025
+//    [  Date ]:           2026骞�3鏈�17鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -31,6 +31,7 @@
 	public int[] InitAttrValueList;
 	public int[] AttrPerStarAddList;
 	public string GetWayString;
+	public int SortIndex;
 
     public override int LoadKey(string _key)
     {
@@ -107,6 +108,8 @@
 			}
 
 			GetWayString = tables[14];
+
+			int.TryParse(tables[15],out SortIndex); 
         }
         catch (Exception exception)
         {
diff --git a/Main/Config/Configs/PlayerFacePicConfig.cs b/Main/Config/Configs/PlayerFacePicConfig.cs
index 920e903..c4f2e42 100644
--- a/Main/Config/Configs/PlayerFacePicConfig.cs
+++ b/Main/Config/Configs/PlayerFacePicConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2025骞�11鏈�16鏃�
+//    [  Date ]:           2026骞�3鏈�17鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -30,6 +30,7 @@
 	public int[] InitAttrValueList;
 	public int[] AttrPerStarAddList;
 	public string GetWayString;
+	public int SortIndex;
 
     public override int LoadKey(string _key)
     {
@@ -104,6 +105,8 @@
 			}
 
 			GetWayString = tables[13];
+
+			int.TryParse(tables[14],out SortIndex); 
         }
         catch (Exception exception)
         {
diff --git a/Main/Config/Configs/TitleConfig.cs b/Main/Config/Configs/TitleConfig.cs
index d4741aa..4acf228 100644
--- a/Main/Config/Configs/TitleConfig.cs
+++ b/Main/Config/Configs/TitleConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           Saturday, March 14, 2026
+//    [  Date ]:           2026骞�3鏈�17鏃�
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -35,6 +35,7 @@
 	public int EffValue;
 	public int EffPerStarAdd;
 	public string GetWayString;
+	public int SortIndex;
 
     public override int LoadKey(string _key)
     {
@@ -119,6 +120,8 @@
 			int.TryParse(tables[17],out EffPerStarAdd); 
 
 			GetWayString = tables[18];
+
+			int.TryParse(tables[19],out SortIndex); 
         }
         catch (Exception exception)
         {
diff --git a/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs b/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs
index 777dab0..8110b2d 100644
--- a/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs
+++ b/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs
@@ -17,4 +17,5 @@
     int[] GetInitAttrValueList(int id);
     int[] GetAttrPerStarAddList(int id);
     string GetGetWayString(int id);
+    int GetSortIndex(int id);
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionChatBoxHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionChatBoxHandler.cs
index 0902368..1949c04 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionChatBoxHandler.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionChatBoxHandler.cs
@@ -63,5 +63,8 @@
     {
         return ChatBubbleBoxConfig.Get(id).GetWayString;
     }
-
+    public int GetSortIndex(int id)
+    {
+        return ChatBubbleBoxConfig.Get(id).SortIndex;
+    }
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs
index 1860f26..0057ded 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs
@@ -63,5 +63,8 @@
     {
         return PlayerFaceConfig.Get(id).GetWayString;
     }
-
+    public int GetSortIndex(int id)
+    {
+        return PlayerFaceConfig.Get(id).SortIndex;
+    }
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionFacePicHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionFacePicHandler.cs
index ce96f65..34aeffe 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionFacePicHandler.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionFacePicHandler.cs
@@ -64,4 +64,8 @@
     {
         return PlayerFacePicConfig.Get(id).GetWayString;
     }
+    public int GetSortIndex(int id)
+    {
+        return PlayerFacePicConfig.Get(id).SortIndex;
+    }
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.LoadConfig.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.LoadConfig.cs
index 2a2d361..e41cd26 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.LoadConfig.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.LoadConfig.cs
@@ -128,4 +128,12 @@
             return string.Empty;
         return handler.GetGetWayString(id);
     }
+    public int GetSortIndex(PhantasmPavilionType type, int id)
+    {
+        if (!TryGetHandlerValue(type, out var handler))
+            return 0;
+        if (!Has(type, id))
+            return 0;
+        return handler.GetSortIndex(id);
+    }
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
index 78c3f77..c19d489 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
@@ -336,7 +336,7 @@
                 Debug.LogError($"TitleConfig.Get(id) is null, id: {id}");
                 return false;
             }
-            if(cfg.EffType > 0)
+            if (cfg.EffType > 0)
                 return true;
         }
         if (!Has(type, id))
@@ -407,7 +407,7 @@
 
     public int Cmp(int a, int b, PhantasmPavilionType type)
     {
-        // 鑾峰彇 a 鍜� b 鐨勮В閿佺姸鎬�
+        // 1. 鑾峰彇 a 鍜� b 鐨勮В閿佺姸鎬�
         int stateA = (int)GetUnLockState(type, a);
         int stateB = (int)GetUnLockState(type, b);
 
@@ -415,11 +415,22 @@
         int priorityA = stateA == 2 ? 0 : (stateA == 1 ? 1 : 2);
         int priorityB = stateB == 2 ? 0 : (stateB == 1 ? 1 : 2);
 
-
+        // 浼樺厛鍒ゆ柇鐘舵��
         if (priorityA != priorityB)
         {
             return priorityA.CompareTo(priorityB);
         }
+
+        // 2. 鐘舵�佺浉鍚岀殑璇濓紝鑾峰彇涓よ�呯殑 SortIndex
+        int sortIndexA = GetSortIndex(type, a);
+        int sortIndexB = GetSortIndex(type, b);
+
+        if (sortIndexA != sortIndexB)
+        {
+            return sortIndexA.CompareTo(sortIndexB);
+        }
+
+        // 3. 鐘舵�佸拰 SortIndex 閮界浉鍚岀殑璇濓紝鎸夊敮涓� ID 鎺掑簭
         return a.CompareTo(b);
     }
 
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs
index 7a7f5a2..7fd71c5 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs
@@ -63,5 +63,8 @@
     {
         return ModelConfig.Get(id).GetWayString;
     }
-
+    public int GetSortIndex(int id)
+    {
+        return ModelConfig.Get(id).SortIndex;
+    }
 }
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionTitleHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionTitleHandler.cs
index 3037f5f..849c3c7 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionTitleHandler.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionTitleHandler.cs
@@ -63,6 +63,9 @@
     {
         return TitleConfig.Get(id).GetWayString;
     }
-
+    public int GetSortIndex(int id)
+    {
+        return TitleConfig.Get(id).SortIndex;
+    }
 
 }

--
Gitblit v1.8.0