From 35b255bd2c9451e49ca5dc7620627d1591930e18 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 24 四月 2026 16:47:24 +0800
Subject: [PATCH] 262 幻境阁 支持解锁途径5形象解锁,对应头像解锁

---
 Main/System/PhantasmPavilion/PhantasmPavilionManager.cs      |   19 +++++++++++++++++--
 Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs |    9 +++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
index 27f384c..7cc4e63 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
@@ -214,7 +214,7 @@
         int unlockValue = GetUnlockValue(type, id);
         int resourceType = GetResourceType(type, id);
         string resourceValue = GetResourceValue(type, id);
-        if ((UnlockWay == 3 || UnlockWay == 4) && resourceValue == "")
+        if ((UnlockWay == 3 || UnlockWay == 4 || UnlockWay == 5) && resourceValue == "")
         {
             int skinID = 0;
             if (UnlockWay == 3)
@@ -226,6 +226,12 @@
             else if (UnlockWay == 4)
             {
                 skinID = unlockValue; // UnlockValue 鐩存帴灏辨槸 skinID
+            }
+            else if (UnlockWay == 5)
+            {
+                int modelID = unlockValue; // UnlockValue 鏄� ModelID
+                if (!ModelConfig.HasKey(modelID)) return;
+                skinID = ModelConfig.Get(modelID).SkinID; // 鎷垮埌褰㈣薄瀵瑰簲鐨勭毊鑲D
             }
 
             if (!HeroSkinConfig.HasKey(skinID)) return;
@@ -551,6 +557,9 @@
             case PhantasmPavilionUnlockWay.Skin:
                 bool hasSkin = HeroUIManager.Instance.IsHeroSkinActive(HeroConfig.GetHeroIDBySkinID(unlockValue), unlockValue);
                 return hasSkin;
+            case PhantasmPavilionUnlockWay.Model:
+                // 濡傛灉瀵瑰簲鐨勫舰璞″凡瑙i攣锛屽垯璇ュご鍍忎篃瑙i攣
+                return IsUnlock(PhantasmPavilionType.Model, unlockValue);
             default:
                 return false;
         }
@@ -594,6 +603,10 @@
                     : PhantasmPavilionState.Locked;
             case PhantasmPavilionUnlockWay.Skin:
                 return HeroUIManager.Instance.IsHeroSkinActive(HeroConfig.GetHeroIDBySkinID(unlockValue), unlockValue)
+                    ? PhantasmPavilionState.Activated
+                    : PhantasmPavilionState.Locked;
+            case PhantasmPavilionUnlockWay.Model:
+                return IsUnlock(PhantasmPavilionType.Model, unlockValue)
                     ? PhantasmPavilionState.Activated
                     : PhantasmPavilionState.Locked;
             default:
@@ -941,7 +954,9 @@
     Activate = 1,               // 榛樿(鍒涜鑹插氨鍙互鐢ㄧ殑)
     Item,                       // 閬撳叿
     Hero,                       // 姝﹀皢
-    Skin,                   // 鐨偆
+    Skin,                       // 鐨偆
+    Model,                      // 褰㈣薄
+
 }
 
 /// 骞诲闃佺墿鍝佺殑鐘舵��
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs b/Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs
index 78d9b25..9945047 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionUnlockButton.cs
@@ -49,6 +49,15 @@
                     return;
                 }
             }
+            else if (unlockWay == 5) // 濡傛灉鏄舰璞¤В閿�
+            {
+                bool hasModel = manager.IsUnlock(PhantasmPavilionType.Model, unlockValue);
+                if (!hasModel)
+                {
+                    SysNotifyMgr.Instance.ShowTip("UnLockFail1"); // 鍙互鏍规嵁闇�瑕佹崲鎴愬搴旂殑璇█鍖� Key锛屽 "褰㈣薄鏈В閿�"
+                    return;
+                }
+            }
             manager.SendOPPack(type, PhantasmPavilionOperation.Activate, (uint)id);
             SysNotifyMgr.Instance.ShowTip("UnLockSuccess");
         });

--
Gitblit v1.8.0