From 16dba0ff4d2eed7f5a4a7c37640f158ee9f73d8c Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 05 六月 2026 19:22:43 +0800
Subject: [PATCH] 669 子 【武将】武将系统 / 时装新增开服天数显示入口字段

---
 Main/System/Store/StoreModel.cs |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 1 deletions(-)

diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index cc7c163..ba9b185 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -212,10 +212,85 @@
         return validDatas;
     }
 
+    public List<StoreData> GetTimeValidHeroSkinStoreDatas()
+    {
+        var validDatas = GetTimeValidStoreDatas(StoreFunc.HeroSkin);
+        if (validDatas == null)
+            return null;
+
+        List<StoreData> heroSkinValidDatas = new List<StoreData>();
+        for (int i = 0; i < validDatas.Count; i++)
+        {
+            var storeData = validDatas[i];
+            if (IsHeroSkinShopOpenByStoreConfig(storeData.storeConfig))
+            {
+                heroSkinValidDatas.Add(storeData);
+            }
+        }
+
+        return heroSkinValidDatas;
+    }
+
+    public bool IsHeroSkinShopOpenByShopID(int shopID)
+    {
+        return IsHeroSkinShopOpenByStoreConfig(StoreConfig.Get(shopID));
+    }
+
+    public bool IsHeroSkinShopOpenByStoreConfig(StoreConfig storeConfig)
+    {
+        if (!TryGetHeroSkinShopSkinID(storeConfig, out var skinID))
+        {
+            return true;
+        }
+
+        return IsHeroSkinShopOpenBySkinID(skinID);
+    }
+
+    public bool IsHeroSkinShopOpenBySkinID(int skinID)
+    {
+        var skinConfig = HeroSkinConfig.Get(skinID);
+        if (skinConfig == null || skinConfig.OpenDay <= 0)
+        {
+            return true;
+        }
+
+        return TimeUtility.OpenDay + 1 >= skinConfig.OpenDay;
+    }
+
+    public bool TryGetHeroSkinShopSkinID(StoreConfig storeConfig, out int skinID)
+    {
+        skinID = 0;
+        if (storeConfig == null)
+        {
+            return false;
+        }
+
+        if (HeroSkinAttrConfig.TryGetSkinIDByItemID(storeConfig.ItemID, out skinID))
+        {
+            return true;
+        }
+
+        if (storeConfig.ItemListEx == null)
+        {
+            return false;
+        }
+
+        for (int i = 0; i < storeConfig.ItemListEx.Length; i++)
+        {
+            var item = storeConfig.ItemListEx[i];
+            if (item != null && item.Length > 0 && HeroSkinAttrConfig.TryGetSkinIDByItemID(item[0], out skinID))
+            {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     public bool TryGetTimeValidSkinShopIDByItemID(int itemID, out int shopID)
     {
         shopID = 0;
-        var validDatas = GetTimeValidStoreDatas(StoreFunc.HeroSkin);
+        var validDatas = GetTimeValidHeroSkinStoreDatas();
         if (validDatas == null)
         {
             return false;

--
Gitblit v1.8.0