From 16d0758370a252892fa6378f7e2614cf8b4bac7e Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期三, 18 三月 2026 12:00:19 +0800
Subject: [PATCH] 262 幻境阁-客户端 武将表配置了开服第x天展示的武将,在没图鉴展示前不显示头像和形象
---
Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs | 15 +++++++
Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs | 8 ++++
Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs | 16 +++++++
Main/Config/PartialConfigs/ModelConfig.cs | 20 ++++++++-
Main/System/PhantasmPavilion/PhantasmPavilionFaceWin.cs | 7 +++
Main/System/PhantasmPavilion/PhantasmPavilionManager.cs | 42 +++++++++++++++++++++
6 files changed, 103 insertions(+), 5 deletions(-)
diff --git a/Main/Config/PartialConfigs/ModelConfig.cs b/Main/Config/PartialConfigs/ModelConfig.cs
index 84b2b20..92fee28 100644
--- a/Main/Config/PartialConfigs/ModelConfig.cs
+++ b/Main/Config/PartialConfigs/ModelConfig.cs
@@ -19,7 +19,21 @@
{
return new List<int>();
}
- return tabTypeDict[tabType];
- }
-}
+ List<int> allKeys = tabTypeDict[tabType];
+ List<int> validKeys = new List<int>();
+
+ for (int i = 0; i < allKeys.Count; i++)
+ {
+ int id = allKeys[i];
+ var cfg = Get(id);
+ // 杩囨护鏈揪鍒板紑鏈嶅ぉ鏁扮殑姝﹀皢鍜岀毊鑲ゅご鍍�
+ if (PhantasmPavilionManager.Instance.IsFaceOrModelVisible(cfg.UnlockWay, cfg.UnlockValue))
+ {
+ validKeys.Add(id);
+ }
+ }
+
+ return validKeys;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs
index 0057ded..fe0f136 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionFaceHandler.cs
@@ -8,7 +8,20 @@
}
public List<int> GetKeyList()
{
- return PlayerFaceConfig.GetKeys();
+ List<int> allKeys = PlayerFaceConfig.GetKeys();
+ List<int> validKeys = new List<int>();
+
+ for (int i = 0; i < allKeys.Count; i++)
+ {
+ int id = allKeys[i];
+ var faceCfg = PlayerFaceConfig.Get(id);
+ // 杩囨护鏈揪鍒板紑鏈嶅ぉ鏁扮殑姝﹀皢鍜岀毊鑲ゅご鍍�
+ if (PhantasmPavilionManager.Instance.IsFaceOrModelVisible(faceCfg.UnlockWay, faceCfg.UnlockValue))
+ {
+ validKeys.Add(id);
+ }
+ }
+ return validKeys;
}
public int GetResourceType(int id)
{
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionFaceWin.cs b/Main/System/PhantasmPavilion/PhantasmPavilionFaceWin.cs
index 11d6121..88c0a68 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionFaceWin.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionFaceWin.cs
@@ -87,6 +87,7 @@
manager.OnUpdateFaceInfoEvent += OnUpdateFaceInfoEvent;
manager.OnUpdateFacePicInfo += OnUpdateFacePicInfo;
manager.OnTimeOut += OnTimeOut;
+ TimeMgr.Instance.OnDayEvent += OnDayEvent;
InitRedPoint();
SelectTiltleBtn();
}
@@ -106,11 +107,17 @@
manager.OnUpdateFaceInfoEvent -= OnUpdateFaceInfoEvent;
manager.OnUpdateFacePicInfo -= OnUpdateFacePicInfo;
manager.OnTimeOut -= OnTimeOut;
+ TimeMgr.Instance.OnDayEvent -= OnDayEvent;
manager.RemoveAllNewHeroByTabType(PhantasmPavilionType.Face, functionOrder + 1);
manager.UpdateRedPoint();
}
+ private void OnDayEvent()
+ {
+ SelectTiltleBtn();
+ }
+
private void OnTimeOut()
{
RefreshAll(manager.nowType);
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
index 9a69423..0efa93c 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionManager.cs
@@ -54,6 +54,7 @@
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
HeroUIManager.Instance.OnNewSkinAcquired += OnNewSkinAcquired;
+ TimeMgr.Instance.OnDayEvent += OnDayEvent;
InitTable();
InitTabRedPoint();
}
@@ -67,6 +68,12 @@
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
HeroUIManager.Instance.OnNewSkinAcquired -= OnNewSkinAcquired;
+ TimeMgr.Instance.OnDayEvent -= OnDayEvent;
+ }
+
+ private void OnDayEvent()
+ {
+ UpdateRedPoint();
}
private void OnNewSkinAcquired(int arg1, int arg2)
@@ -675,6 +682,41 @@
OnTimeOut?.Invoke();
}
+
+ /// <summary>
+ /// 鍒ゆ柇璇ュ舰璞�/澶村儚鏄惁鍙互鏄剧ず鍦ㄥ够澧冮榿鍒楄〃涓�
+ /// </summary>
+ public bool IsFaceOrModelVisible(int unlockWay, int unlockValue)
+ {
+ if (unlockWay == 3)
+ {
+ int heroId = unlockValue;
+ return IsHeroCollectionOpen(heroId);
+ }
+ else if (unlockWay == 4)
+ {
+ // 鐨偆閫斿緞锛孶nlockValue 鏄� SkinID
+ int skinId = unlockValue;
+ return IsHeroCollectionOpen(HeroConfig.GetHeroIDBySkinID(skinId));
+ }
+
+ // 鍏朵粬鑾峰彇閫斿緞锛堝娲诲姩銆侀粯璁ょ瓑锛夛紝涓嶅仛闄愬埗锛岀洿鎺ユ樉绀�
+ return true;
+ }
+
+ /// <summary>
+ /// 妫�鏌ュ搴旀灏嗘槸鍚﹁揪鍒颁簡寮�鏈嶅ぉ鏁拌姹�
+ /// </summary>
+ public bool IsHeroCollectionOpen(int heroId)
+ {
+ var config = HeroConfig.Get(heroId);
+ if (config == null) return false;
+
+ // 0琛ㄧず涓嶉檺鍒跺紑鏈嶅ぉ鏁�
+ if (config.OpenCollectionDay > 0 && TimeUtility.OpenDay + 1 < config.OpenCollectionDay) return false;
+ return true;
+ }
+
#region 鏀跺皝鍖�
public event Action OnUpdateModelStarAdd;
public void UpdateModelInfo(HB119_tagSCModelInfo vNetData)
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs
index 7fd71c5..26b19cc 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionModelHandler.cs
@@ -8,7 +8,21 @@
}
public List<int> GetKeyList()
{
- return ModelConfig.GetKeys();
+ List<int> allKeys = ModelConfig.GetKeys();
+ List<int> validKeys = new List<int>();
+
+ for (int i = 0; i < allKeys.Count; i++)
+ {
+ int id = allKeys[i];
+ var modelCfg = ModelConfig.Get(id);
+
+ // 杩囨护鏈揪鍒板紑鏈嶅ぉ鏁扮殑姝﹀皢鍜岀毊鑲ゅ舰璞�
+ if (PhantasmPavilionManager.Instance.IsFaceOrModelVisible(modelCfg.UnlockWay, modelCfg.UnlockValue))
+ {
+ validKeys.Add(id);
+ }
+ }
+ return validKeys;
}
public int GetResourceType(int id)
{
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs b/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs
index 77a7fa0..86b4cdf 100644
--- a/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionModelWin.cs
@@ -60,6 +60,8 @@
manager.OnUpdateModelInfoEvent += OnUpdateModelInfoEvent;
manager.OnTimeOut += OnTimeOut;
manager.OnUpdateModelStarAdd += OnUpdateModelStarAdd;
+ TimeMgr.Instance.OnDayEvent += OnDayEvent;
+
InitRedPoint();
TabSetActive();
SelectTiltleBtn();
@@ -77,11 +79,17 @@
manager.OnUpdateModelInfoEvent -= OnUpdateModelInfoEvent;
manager.OnTimeOut -= OnTimeOut;
manager.OnUpdateModelStarAdd -= OnUpdateModelStarAdd;
+ TimeMgr.Instance.OnDayEvent -= OnDayEvent;
manager.RemoveAllNewHeroByTabType(PhantasmPavilionType.Model, functionOrder + 1);
manager.UpdateRedPoint();
}
+ private void OnDayEvent()
+ {
+ SelectTiltleBtn();
+ }
+
private void OnTimeOut()
{
RefreshAll(manager.nowType, functionOrder + 1);
--
Gitblit v1.8.0