628 节假日活动 入口统一用渐变字,活动表添加统一配置渐变项
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: YYL |
| | | // [ Date ]: Monday, May 11, 2026 |
| | | // [ Date ]: 2026年6月22日 |
| | | //-------------------------------------------------------- |
| | | |
| | | using System.Collections.Generic; |
| | |
| | | public int[][] PopItems; |
| | | public float[] OriginalPrices; |
| | | public float[] PercentageTexts; |
| | | public string[] GradientColor; |
| | | public string OutlineColor; |
| | | |
| | | public override int LoadKey(string _key) |
| | | { |
| | |
| | | float.TryParse(PercentageTextsStringArray[i],out PercentageTexts[i]); |
| | | } |
| | | } |
| | | |
| | | GradientColor = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); |
| | | |
| | | OutlineColor = tables[8]; |
| | | } |
| | | catch (Exception exception) |
| | | { |
| | |
| | | [SerializeField] ButtonEx closeButton; |
| | | [SerializeField] TextEx timeText; |
| | | [SerializeField] FestivalActivityCheckInCell[] cells; |
| | | [SerializeField] GradientText titleText; |
| | | [SerializeField] OutlineEx titleOutline; |
| | | FestivalActivityCheckInManager manager => FestivalActivityCheckInManager.Instance; |
| | | protected override void InitComponent() |
| | | { |
| | |
| | | GeneralActInfoManager.Instance.OnUpdateActSignInfosEvent += OnUpdateActSignInfosEvent; |
| | | TimeMgr.Instance.OnDayEvent += OnDayEvent; |
| | | GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; |
| | | FestivalActivityManager.Instance.ApplyTitleStyle(titleText, titleOutline); |
| | | Display(); |
| | | } |
| | | protected override void OnPreClose() |
| | |
| | | [SerializeField] ScrollerController scroller; |
| | | [SerializeField] TextEx timeText; |
| | | FestivalActivityManager manager => FestivalActivityManager.Instance; |
| | | [SerializeField] GradientText titleText; |
| | | [SerializeField] OutlineEx titleOutline; |
| | | StoreModel storeModel => StoreModel.Instance; |
| | | protected override void InitComponent() |
| | | { |
| | |
| | | protected override void OnPreOpen() |
| | | { |
| | | scroller.OnRefreshCell += OnRefreshCell; |
| | | manager.ApplyTitleStyle(titleText, titleOutline); |
| | | GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; |
| | | RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent; |
| | | storeModel.RefreshBuyShopLimitEvent += RefreshBuyShopLimitEvent; |
| | |
| | | }; |
| | | } |
| | | |
| | | /// <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; |
| | |
| | | [SerializeField] Toggle todayPopToggle; |
| | | [SerializeField] ScrollerController scroller; |
| | | |
| | | [SerializeField] GradientText titleText; |
| | | [SerializeField] OutlineEx titleOutline; |
| | | |
| | | FestivalActivityManager manager => FestivalActivityManager.Instance; |
| | | protected override void InitComponent() |
| | | { |
| | |
| | | { |
| | | scroller.OnRefreshCell += OnRefreshCell; |
| | | todayPopToggle.isOn = !manager.IsTodayPop; |
| | | manager.ApplyTitleStyle(titleText, titleOutline); |
| | | DisplayTime(); |
| | | CreateScroller(); |
| | | } |
| | |
| | | [SerializeField] ButtonEx closeButton; |
| | | [SerializeField] TextEx timeText; |
| | | [SerializeField] ScrollerController scroller; |
| | | [SerializeField] GradientText titleText; |
| | | [SerializeField] OutlineEx titleOutline; |
| | | FestivalActivityMissionManager manager => FestivalActivityMissionManager.Instance; |
| | | protected override void InitComponent() |
| | | { |
| | |
| | | StoreModel.Instance.RefreshShopEvent += CreateScroller; |
| | | StoreModel.Instance.RefreshBuyShopLimitEvent += CreateScroller; |
| | | GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; |
| | | FestivalActivityManager.Instance.ApplyTitleStyle(titleText, titleOutline); |
| | | if (!manager.IsShopVisitedToday) |
| | | { |
| | | manager.SaveShopVisitTimeData(); |
| | |
| | | [SerializeField] RedpointBehaviour giftRedpoint; |
| | | [SerializeField] RedpointBehaviour rechargeRedpoint; |
| | | |
| | | [SerializeField] GradientText titleText; |
| | | [SerializeField] OutlineEx titleOutline; |
| | | |
| | | FestivalActivityManager manager => FestivalActivityManager.Instance; |
| | | protected override void InitComponent() |
| | | { |
| | |
| | | protected override void OnPreOpen() |
| | | { |
| | | InitRedpoint(); |
| | | manager.ApplyTitleStyle(titleText, titleOutline); |
| | | |
| | | GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; |
| | | RechargeManager.Instance.rechargeCountEvent += OnRechargeCountEvent; |
| | |
| | | [SerializeField] HeroReturnCell heroReturnCell; |
| | | [SerializeField] HeroSkinFlashSaleCell heroSkinFlashSaleCell; |
| | | [SerializeField] Button festivalActivityBtn; |
| | | [SerializeField] GradientText festivalTitleText; |
| | | [SerializeField] OutlineEx festivalTitleOutline; |
| | | [SerializeField] Button superVIPBtn; |
| | | |
| | | //坐骑 |
| | |
| | | { |
| | | bool isOpen = FestivalActivityManager.Instance.IsFestivalActivityOpen(); |
| | | festivalActivityBtn.SetActive(isOpen); |
| | | if (isOpen) |
| | | FestivalActivityManager.Instance.ApplyTitleStyle(festivalTitleText, festivalTitleOutline); |
| | | } |
| | | |
| | | void DisplaySuperVipBtn() |