From 4923f8cdbe7035fff6a657eb3ad0f91bf10e4ccc Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期一, 22 六月 2026 16:32:24 +0800
Subject: [PATCH] 628 节假日活动 入口统一用渐变字,活动表添加统一配置渐变项
---
Main/Config/Configs/ActSpecialSaleConfig.cs | 8 +++
Main/System/FestivalActivity/FestivalActivityPopWin.cs | 4 ++
Main/System/FestivalActivity/FestivalActivityWin.cs | 4 ++
Main/System/FestivalActivity/FestivalActivityCheckInWin.cs | 3 +
Main/System/FestivalActivity/FestivalActivityShopWin.cs | 3 +
Main/System/Main/HomeWin.cs | 4 ++
Main/System/FestivalActivity/FestivalActivityGiftWin.cs | 3 +
Main/System/FestivalActivity/FestivalActivityManager.cs | 36 ++++++++++++++++++
8 files changed, 64 insertions(+), 1 deletions(-)
diff --git a/Main/Config/Configs/ActSpecialSaleConfig.cs b/Main/Config/Configs/ActSpecialSaleConfig.cs
index 8ab72d1..bcf47b6 100644
--- a/Main/Config/Configs/ActSpecialSaleConfig.cs
+++ b/Main/Config/Configs/ActSpecialSaleConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: Monday, May 11, 2026
+// [ Date ]: 2026骞�6鏈�22鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -23,6 +23,8 @@
public int[][] PopItems;
public float[] OriginalPrices;
public float[] PercentageTexts;
+ public string[] GradientColor;
+ public string OutlineColor;
public override int LoadKey(string _key)
{
@@ -83,6 +85,10 @@
float.TryParse(PercentageTextsStringArray[i],out PercentageTexts[i]);
}
}
+
+ GradientColor = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+
+ OutlineColor = tables[8];
}
catch (Exception exception)
{
diff --git a/Main/System/FestivalActivity/FestivalActivityCheckInWin.cs b/Main/System/FestivalActivity/FestivalActivityCheckInWin.cs
index 5880a8d..5b8be72 100644
--- a/Main/System/FestivalActivity/FestivalActivityCheckInWin.cs
+++ b/Main/System/FestivalActivity/FestivalActivityCheckInWin.cs
@@ -5,6 +5,8 @@
[SerializeField] ButtonEx closeButton;
[SerializeField] TextEx timeText;
[SerializeField] FestivalActivityCheckInCell[] cells;
+ [SerializeField] GradientText titleText;
+ [SerializeField] OutlineEx titleOutline;
FestivalActivityCheckInManager manager => FestivalActivityCheckInManager.Instance;
protected override void InitComponent()
{
@@ -15,6 +17,7 @@
GeneralActInfoManager.Instance.OnUpdateActSignInfosEvent += OnUpdateActSignInfosEvent;
TimeMgr.Instance.OnDayEvent += OnDayEvent;
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
+ FestivalActivityManager.Instance.ApplyTitleStyle(titleText, titleOutline);
Display();
}
protected override void OnPreClose()
diff --git a/Main/System/FestivalActivity/FestivalActivityGiftWin.cs b/Main/System/FestivalActivity/FestivalActivityGiftWin.cs
index 24be001..2f48fd7 100644
--- a/Main/System/FestivalActivity/FestivalActivityGiftWin.cs
+++ b/Main/System/FestivalActivity/FestivalActivityGiftWin.cs
@@ -8,6 +8,8 @@
[SerializeField] ScrollerController scroller;
[SerializeField] TextEx timeText;
FestivalActivityManager manager => FestivalActivityManager.Instance;
+ [SerializeField] GradientText titleText;
+ [SerializeField] OutlineEx titleOutline;
StoreModel storeModel => StoreModel.Instance;
protected override void InitComponent()
{
@@ -17,6 +19,7 @@
protected override void OnPreOpen()
{
scroller.OnRefreshCell += OnRefreshCell;
+ manager.ApplyTitleStyle(titleText, titleOutline);
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent;
diff --git a/Main/System/FestivalActivity/FestivalActivityManager.cs b/Main/System/FestivalActivity/FestivalActivityManager.cs
index 48ac297..eab0b79 100644
--- a/Main/System/FestivalActivity/FestivalActivityManager.cs
+++ b/Main/System/FestivalActivity/FestivalActivityManager.cs
@@ -227,6 +227,42 @@
};
}
+ /// <summary>
+ /// 灏嗗綋鏈� FestivalActivity 瀵瑰簲鐨� ActSpecialSaleConfig 娓愬彉棰滆壊/鎻忚竟棰滆壊濂楃敤鍒版爣棰樼粍浠躲��
+ /// 閰嶇疆涓虹┖鏃朵繚鎸侀鍒朵綋榛樿棰滆壊銆�
+ /// </summary>
+ public void ApplyTitleStyle(GradientText titleText, OutlineEx titleOutline)
+ {
+ var act = GetActInfo();
+ if (act == null) return;
+ var config = ActSpecialSaleConfig.Get(act.CfgID);
+ if (config == null) return;
+
+ if (titleText != null && config.GradientColor != null && config.GradientColor.Length >= 2
+ && TryParseHexColor(config.GradientColor[0], out var top)
+ && TryParseHexColor(config.GradientColor[1], out var bottom))
+ {
+ titleText.SetVerticalGradient(top, bottom);
+ }
+
+ if (titleOutline != null && !string.IsNullOrWhiteSpace(config.OutlineColor)
+ && TryParseHexColor(config.OutlineColor, out var outlineCol))
+ {
+ titleOutline.OutlineColor = outlineCol;
+ }
+ }
+
+ private static bool TryParseHexColor(string hex, out Color color)
+ {
+ if (string.IsNullOrWhiteSpace(hex))
+ {
+ color = Color.white;
+ return false;
+ }
+ if (hex[0] != '#') hex = "#" + hex;
+ return UnityEngine.ColorUtility.TryParseHtmlString(hex, out color);
+ }
+
public bool IsFestivalActivityOpen()
{
if (!IsOpen) return false;
diff --git a/Main/System/FestivalActivity/FestivalActivityPopWin.cs b/Main/System/FestivalActivity/FestivalActivityPopWin.cs
index e72d533..bb9016c 100644
--- a/Main/System/FestivalActivity/FestivalActivityPopWin.cs
+++ b/Main/System/FestivalActivity/FestivalActivityPopWin.cs
@@ -9,6 +9,9 @@
[SerializeField] Toggle todayPopToggle;
[SerializeField] ScrollerController scroller;
+ [SerializeField] GradientText titleText;
+ [SerializeField] OutlineEx titleOutline;
+
FestivalActivityManager manager => FestivalActivityManager.Instance;
protected override void InitComponent()
{
@@ -38,6 +41,7 @@
{
scroller.OnRefreshCell += OnRefreshCell;
todayPopToggle.isOn = !manager.IsTodayPop;
+ manager.ApplyTitleStyle(titleText, titleOutline);
DisplayTime();
CreateScroller();
}
diff --git a/Main/System/FestivalActivity/FestivalActivityShopWin.cs b/Main/System/FestivalActivity/FestivalActivityShopWin.cs
index 94441db..6b6bec7 100644
--- a/Main/System/FestivalActivity/FestivalActivityShopWin.cs
+++ b/Main/System/FestivalActivity/FestivalActivityShopWin.cs
@@ -6,6 +6,8 @@
[SerializeField] ButtonEx closeButton;
[SerializeField] TextEx timeText;
[SerializeField] ScrollerController scroller;
+ [SerializeField] GradientText titleText;
+ [SerializeField] OutlineEx titleOutline;
FestivalActivityMissionManager manager => FestivalActivityMissionManager.Instance;
protected override void InitComponent()
{
@@ -18,6 +20,7 @@
StoreModel.Instance.RefreshShopEvent += CreateScroller;
StoreModel.Instance.RefreshBuyShopLimitEvent += CreateScroller;
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
+ FestivalActivityManager.Instance.ApplyTitleStyle(titleText, titleOutline);
if (!manager.IsShopVisitedToday)
{
manager.SaveShopVisitTimeData();
diff --git a/Main/System/FestivalActivity/FestivalActivityWin.cs b/Main/System/FestivalActivity/FestivalActivityWin.cs
index 235fb47..c0ecd19 100644
--- a/Main/System/FestivalActivity/FestivalActivityWin.cs
+++ b/Main/System/FestivalActivity/FestivalActivityWin.cs
@@ -18,6 +18,9 @@
[SerializeField] RedpointBehaviour giftRedpoint;
[SerializeField] RedpointBehaviour rechargeRedpoint;
+ [SerializeField] GradientText titleText;
+ [SerializeField] OutlineEx titleOutline;
+
FestivalActivityManager manager => FestivalActivityManager.Instance;
protected override void InitComponent()
{
@@ -32,6 +35,7 @@
protected override void OnPreOpen()
{
InitRedpoint();
+ manager.ApplyTitleStyle(titleText, titleOutline);
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent;
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
index 3d28aa5..7f03812 100644
--- a/Main/System/Main/HomeWin.cs
+++ b/Main/System/Main/HomeWin.cs
@@ -76,6 +76,8 @@
[SerializeField] HeroReturnCell heroReturnCell;
[SerializeField] HeroSkinFlashSaleCell heroSkinFlashSaleCell;
[SerializeField] Button festivalActivityBtn;
+ [SerializeField] GradientText festivalTitleText;
+ [SerializeField] OutlineEx festivalTitleOutline;
[SerializeField] Button superVIPBtn;
//鍧愰獞
@@ -1010,6 +1012,8 @@
{
bool isOpen = FestivalActivityManager.Instance.IsFestivalActivityOpen();
festivalActivityBtn.SetActive(isOpen);
+ if (isOpen)
+ FestivalActivityManager.Instance.ApplyTitleStyle(festivalTitleText, festivalTitleOutline);
}
void DisplaySuperVipBtn()
--
Gitblit v1.8.0