From 5301d08eac2f7f0b25ce3f2bef7d24f92c79321c Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 19 三月 2026 15:20:20 +0800
Subject: [PATCH] 533 开服冲榜-客户端  特权卡标识更换正式资源

---
 Main/System/OSActivity/OSRankHeroCallGiftCell.cs |   11 +++++
 Main/System/OSActivity/OSGalaGiftCell.cs         |   11 +++++
 Main/System/TimeRush/TimeRushManager.cs          |    2 -
 Main/System/Invest/InvestModel.cs                |   45 ++++++++++++++++++++--
 Main/System/OSActivity/OSRankGiftBaseCell.cs     |   11 +++++
 Main/System/TimeRush/TimeRushGiftCell.cs         |   11 +++++
 6 files changed, 80 insertions(+), 11 deletions(-)

diff --git a/Main/System/Invest/InvestModel.cs b/Main/System/Invest/InvestModel.cs
index 0dfa8b1..378a301 100644
--- a/Main/System/Invest/InvestModel.cs
+++ b/Main/System/Invest/InvestModel.cs
@@ -4,6 +4,7 @@
 using UnityEngine.UI;
 using System.Linq;
 using LitJson;
+using UnityEngine;
 
 public class InvestModel : GameSystemManager<InvestModel>
 {
@@ -15,6 +16,9 @@
     Dictionary<int, int[][]> m_InvestItems = new Dictionary<int, int[][]>();
     Dictionary<int, int> m_InvestDays = new Dictionary<int, int>(); //鎶曡祫瀵瑰簲澶╂暟
     Dictionary<int, int> m_InvestMaxDays = new Dictionary<int, int>();  //鎶曡祫瀵瑰簲鏈�澶ц喘涔扮疮鍔犲ぉ鏁�
+
+    public Dictionary<int, int[]> textColors = new();
+    public Dictionary<int, int[]> outlineColors = new();
 
     //鎶曡祫瀵瑰簲鍏呭�糏D
     Dictionary<int, int[]> m_InvestRechargeIds = new Dictionary<int, int[]>();
@@ -42,7 +46,7 @@
     Dictionary<int, int> m_PrivilegeFightSpeed = new Dictionary<int, int>();
     // 鑻遍泟绉垎鎷涘嫙寮�鍚殑鐗规潈绫诲瀷
     int[] heroScoreCallOpenType;
-        
+
 
     public event Action<int> onInvestUpdate;
 
@@ -72,13 +76,25 @@
         return FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.PrivilegeCard);
     }
 
-    
+
     public void OnBeforePlayerDataInitialize()
     {
         m_InvestInfos.Clear();
         lastTotalBuyCountDict.Clear();
     }
 
+
+
+    public Color32 ParseColor32(int[] colorArr)
+    {
+        return new Color32()
+        {
+            r = (byte)(colorArr.Length > 0 ? colorArr[0] : 0),
+            g = (byte)(colorArr.Length > 1 ? colorArr[1] : 0),
+            b = (byte)(colorArr.Length > 2 ? colorArr[2] : 0),
+            a = (byte)(colorArr.Length > 3 ? colorArr[3] : 255),
+        };
+    }
 
 
     void ParseConfig()
@@ -95,7 +111,6 @@
         m_InvestMaxDays = ConfigParse.ParseIntDict(funcConfig.Numerical2);
         m_InvestItems = ConfigParse.ParseIntArray2Dict(funcConfig.Numerical3);
 
-
         funcConfig = FuncConfigConfig.Get("InvestPower");
         m_InvestAddFBCount = ConfigParse.ParseDictInDict(funcConfig.Numerical1);
         m_InvestFreeFBID = ConfigParse.ParseIntArrayDict(funcConfig.Numerical2);
@@ -107,7 +122,27 @@
         m_PrivilegeLins = ConfigParse.ParseIntDict(funcConfig.Numerical1);
         m_PrivilegeFightSpeed = ConfigParse.ParseIntDict(funcConfig.Numerical2);
         heroScoreCallOpenType = JsonMapper.ToObject<int[]>(funcConfig.Numerical3);
-        
+        textColors = ConfigParse.ParseIntArrayDict(funcConfig.Numerical4);
+        outlineColors = ConfigParse.ParseIntArrayDict(funcConfig.Numerical5);
+
+    }
+
+    public Color32 GetTextColor(int vipLevel)
+    {
+        if (textColors.ContainsKey(vipLevel))
+        {
+            return ParseColor32(textColors[vipLevel]);
+        }
+        return Color.white;
+    }
+
+    public Color32 GetOutlineColor(int vipLevel)
+    {
+        if (outlineColors.ContainsKey(vipLevel))
+        {
+            return ParseColor32(outlineColors[vipLevel]);
+        }
+        return Color.white;
     }
 
     Dictionary<int, int> lastTotalBuyCountDict = new Dictionary<int, int>();
@@ -175,7 +210,7 @@
             //鏈堝崱 闄愭椂绫诲瀷鐨勬姇璧� 鏈埌鏈熷氨绠楁姇璧�
             return m_InvestInfos[type].InvestEndTime > 0 && m_InvestInfos[type].InvestEndTime > TimeUtility.AllSeconds;
         }
-        
+
         //姘镐箙绫诲瀷鐨勬姇璧� 鍙璐拱浜嗗氨绠楁姇璧�
         return m_InvestInfos[type].InvestBuyTime > 0;
     }
diff --git a/Main/System/OSActivity/OSGalaGiftCell.cs b/Main/System/OSActivity/OSGalaGiftCell.cs
index 602d89f..f14a629 100644
--- a/Main/System/OSActivity/OSGalaGiftCell.cs
+++ b/Main/System/OSActivity/OSGalaGiftCell.cs
@@ -7,6 +7,7 @@
 {
     [SerializeField] ImageEx vipImage;
     [SerializeField] TextEx vipText;
+    [SerializeField] OutlineEx vipTextOutline;
     [SerializeField] ImageEx rateImage;
     [SerializeField] TextEx rateText;
     [SerializeField] Text nameText;
@@ -28,8 +29,16 @@
             id -= 100000000;
             var ctgConfig = CTGConfig.Get(id);
             nameText.text = ctgConfig.Title;
+
             vipImage.SetActive(ctgConfig.VipLevel > 0);
-            vipText.text = ctgConfig.VipLevel > 0 ? Language.Get($"VipLevelInfo{ctgConfig.VipLevel}") : string.Empty;
+            if (ctgConfig.VipLevel > 0)
+            {
+                vipImage.SetSprite($"VipLevel{ctgConfig.VipLevel}");
+                vipText.text = Language.Get($"VipLevelInfo{ctgConfig.VipLevel}");
+                vipText.color = InvestModel.Instance.GetTextColor(ctgConfig.VipLevel);
+                vipTextOutline.OutlineColor = InvestModel.Instance.GetOutlineColor(ctgConfig.VipLevel);
+            }
+
             rateImage.SetActive(true);
             rateText.text = Language.Get("DailySpecials07", ctgConfig.Percentage);
             for (int i = 0; i < itemCells.Length; i++)
diff --git a/Main/System/OSActivity/OSRankGiftBaseCell.cs b/Main/System/OSActivity/OSRankGiftBaseCell.cs
index e2982d4..ddfd7e5 100644
--- a/Main/System/OSActivity/OSRankGiftBaseCell.cs
+++ b/Main/System/OSActivity/OSRankGiftBaseCell.cs
@@ -5,6 +5,7 @@
 {
     [SerializeField] protected ImageEx vipImage;
     [SerializeField] protected TextEx vipText;
+    [SerializeField] protected OutlineEx vipTextOutline;
     [SerializeField] protected ImageEx rateImage;
     [SerializeField] protected TextEx rateText;
     [SerializeField] protected Text nameText;
@@ -31,8 +32,16 @@
             id -= 100000000;
             var ctgConfig = CTGConfig.Get(id);
             nameText.text = ctgConfig.Title;
+
             vipImage.SetActive(ctgConfig.VipLevel > 0);
-            vipText.text = ctgConfig.VipLevel > 0 ? Language.Get($"VipLevelInfo{ctgConfig.VipLevel}") : string.Empty;
+            if (ctgConfig.VipLevel > 0)
+            {
+                vipImage.SetSprite($"VipLevel{ctgConfig.VipLevel}");
+                vipText.text = Language.Get($"VipLevelInfo{ctgConfig.VipLevel}");
+                vipText.color = InvestModel.Instance.GetTextColor(ctgConfig.VipLevel);
+                vipTextOutline.OutlineColor = InvestModel.Instance.GetOutlineColor(ctgConfig.VipLevel);
+            }
+
             rateImage.SetActive(true);
             rateText.text = Language.Get("DailySpecials07", ctgConfig.Percentage);
             for (int i = 0; i < itemCells.Length; i++)
diff --git a/Main/System/OSActivity/OSRankHeroCallGiftCell.cs b/Main/System/OSActivity/OSRankHeroCallGiftCell.cs
index b1b2a18..2b23760 100644
--- a/Main/System/OSActivity/OSRankHeroCallGiftCell.cs
+++ b/Main/System/OSActivity/OSRankHeroCallGiftCell.cs
@@ -7,6 +7,7 @@
 {
     [SerializeField] ImageEx vipImage;
     [SerializeField] TextEx vipText;
+    [SerializeField] OutlineEx vipTextOutline;
     [SerializeField] ImageEx rateImage;
     [SerializeField] TextEx rateText;
     [SerializeField] Text nameText;
@@ -28,8 +29,16 @@
             id -= 100000000;
             var ctgConfig = CTGConfig.Get(id);
             nameText.text = ctgConfig.Title;
+
             vipImage.SetActive(ctgConfig.VipLevel > 0);
-            vipText.text = ctgConfig.VipLevel > 0 ? Language.Get($"VipLevelInfo{ctgConfig.VipLevel}") : string.Empty;
+            if (ctgConfig.VipLevel > 0)
+            {
+                vipImage.SetSprite($"VipLevel{ctgConfig.VipLevel}");
+                vipText.text = Language.Get($"VipLevelInfo{ctgConfig.VipLevel}");
+                vipText.color = InvestModel.Instance.GetTextColor(ctgConfig.VipLevel);
+                vipTextOutline.OutlineColor = InvestModel.Instance.GetOutlineColor(ctgConfig.VipLevel);
+            }
+
             rateImage.SetActive(true);
             rateText.text = Language.Get("DailySpecials07", ctgConfig.Percentage);
             for (int i = 0; i < itemCells.Length; i++)
diff --git a/Main/System/TimeRush/TimeRushGiftCell.cs b/Main/System/TimeRush/TimeRushGiftCell.cs
index 9fa7079..10944a6 100644
--- a/Main/System/TimeRush/TimeRushGiftCell.cs
+++ b/Main/System/TimeRush/TimeRushGiftCell.cs
@@ -5,6 +5,7 @@
 {
     [SerializeField] ImageEx vipImage;
     [SerializeField] TextEx vipText;
+    [SerializeField] OutlineEx vipTextOutline;
     [SerializeField] ImageEx rateImage;
     [SerializeField] TextEx rateText;
     [SerializeField] TextEx titleText;
@@ -51,8 +52,16 @@
             return;
 
         CTGConfig config = CTGConfig.Get(ctgId);
+
         vipImage.SetActive(config.VipLevel > 0);
-        vipText.text = config.VipLevel > 0 ? Language.Get($"VipLevelInfo{config.VipLevel}") : string.Empty;
+        if (config.VipLevel > 0)
+        {
+            vipImage.SetSprite($"VipLevel{config.VipLevel}");
+            vipText.text = Language.Get($"VipLevelInfo{config.VipLevel}");
+            vipText.color = InvestModel.Instance.GetTextColor(config.VipLevel);
+            vipTextOutline.OutlineColor = InvestModel.Instance.GetOutlineColor(config.VipLevel);
+        }
+
         rateText.text = Language.Get("DailySpecials07", config.Percentage);
 
         bool isCanBuy = manager.IsCanBuyCTG(ctgId);
diff --git a/Main/System/TimeRush/TimeRushManager.cs b/Main/System/TimeRush/TimeRushManager.cs
index c2fe788..d2cae6b 100644
--- a/Main/System/TimeRush/TimeRushManager.cs
+++ b/Main/System/TimeRush/TimeRushManager.cs
@@ -5,8 +5,6 @@
 
 public class TimeRushManager : GameSystemManager<TimeRushManager>, IOpenServerActivity
 {
-
-
     public Action PlayAnimationSync;
 
     private bool isPlayAnimation = false;

--
Gitblit v1.8.0