using ET; using FairyGUI; using System.Collections.Generic; using UI.ActivityThemeLuckyBox; namespace GFGGame { public class ActivityThemeLuckyBoxView : BaseWindow { private UI_ActivityThemeLuckyBoxUI _ui; private ActivityOpenCfg _activityCfg; private int _activityId; private Dictionary _effectUIDic = new Dictionary(); public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ActivityThemeLuckyBoxUI.PACKAGE_NAME; _ui = UI_ActivityThemeLuckyBoxUI.Create(); this.viewCom = _ui.target; isfullScreen = true; isReturnView = true; _ui.m_btnBack.onClick.Add(OnBtnBackClick); _ui.m_btnTask.target.onClick.Add(OnBtnTaskClick); _ui.m_btnChapter.target.onClick.Add(OnBtnChapterClick); _ui.m_btnLuckyBox.target.onClick.Add(OnBtnLuckyBoxClick); _ui.m_btnShop.target.onClick.Add(OnBtnShopClick); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); } protected override void OnShown() { base.OnShown(); bool showTask = this.viewData == null ? false : (bool)this.viewData; if (showTask) { OnBtnTaskClick(); } _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox); // 界面根据ID改变 _ui.m_c1.SetSelectedPage(_activityId.ToString()); // 活动主界面入场动画 _ui.target.GetTransition("In_" + _activityId.ToString())?.Play(); _activityCfg = ActivityOpenCfgArray.Instance.GetCfg(_activityId); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath(_activityCfg.res); UpdateEffect(); UpdateRedDot(); UpdateTime(); Timers.inst.Add(1, 0, UpdateTime); } protected override void OnHide() { base.OnHide(); Timers.inst.Remove(UpdateTime); // Clear Effect foreach (var v in _effectUIDic) { EffectUIPool.Recycle(v.Value); } _effectUIDic.Clear(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); } private void OnBtnBackClick() { Hide(); } private void OnBtnTaskClick() { _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox); if (_activityId <= 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); return; } ViewManager.Show(); } private void OnBtnChapterClick() { _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox); if (_activityId <= 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); return; } ViewManager.Show(); } private void OnBtnLuckyBoxClick() { _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox); if (_activityId <= 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); return; } long endTime = TimeUtil.DateTimeToTimestamp(_activityCfg.endTime); long curTime = TimeHelper.ServerNow(); if (endTime < curTime) return; ViewManager.Show(ConstLimitTimeActivityType.ActLimitLuckyBox); } private void OnBtnShopClick() { _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox); if (_activityId <= 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); return; } ViewManager.Show(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE }); } private void UpdateTime(object param = null) { long endTime = TimeUtil.DateTimeToTimestamp(_activityCfg.endTime); long curTime = TimeHelper.ServerNow(); if (endTime < curTime) { Timers.inst.Remove(UpdateTime); return; } TimeUtil.FormattingTime(curTime, endTime, out int num, out string str); _ui.m_txtTime.text = TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime); } private void UpdateRedDot() { RedDotController.Instance.SetComRedDot(_ui.m_btnLuckyBox.target , RedDotDataManager.Instance.GetMeiRiTeHuiRed() || RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitLuckyBox) || RedDotDataManager.Instance.GetGiftBagRewardRed(), "", -36, 39); RedDotController.Instance.SetComRedDot(_ui.m_btnTask.target, RedDotDataManager.Instance.GetActLuckyBoxTaskdRed()); RedDotController.Instance.SetComRedDot(_ui.m_btnChapter.target, RedDotDataManager.Instance.GetActLuckyBoxStudioFilingRed()); } private void UpdateEffect() { // 2表示 阳春花蔓 if (_activityId == 2) { // Effect _effectUIDic.Add("All_tx", EffectUIPool.CreateEffectUI(_ui.m_bgEffectHolder, "ui_Activity/New_CK_Flower", "All_tx")); _effectUIDic.Add("L", EffectUIPool.CreateEffectUI(_ui.m_btnLuckyBox.m_effectHolder, "ui_Activity/New_CK_Flower", "L")); _effectUIDic.Add("R", EffectUIPool.CreateEffectUI(_ui.m_btnChapter.m_effectHolder, "ui_Activity/New_CK_Flower", "R")); } } } }