using UnityEngine; using FairyGUI; using UI.OpenServerActivity; using ET; using System.Text.RegularExpressions; namespace GFGGame { public class OpenServerActivityView : BaseWindow { private UI_OpenServerActivityUI _ui; private EffectUI _effectUI1; private EffectUI _effectUI2; private EffectUI _effectUI3; private EffectUI _effectUI4; public override void Dispose() { EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; EffectUIPool.Recycle(_effectUI3); _effectUI3 = null; EffectUIPool.Recycle(_effectUI4); _effectUI4 = null; if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void Init() { base.Init(); } protected override void OnInit() { base.OnInit(); packageName = UI_OpenServerActivityUI.PACKAGE_NAME; _ui = UI_OpenServerActivityUI.Create(); viewCom = _ui.target; isfullScreen = true; isReturnView = true; _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_btnHeaven.target.onClick.Add(OnClickBtnHeaven); _ui.m_btnMingTong.target.onClick.Add(OnClickBtnMingTong); _ui.m_btnAnswerTianmen.target.onClick.Add(OnClickBtnAnswerTianmen); _ui.m_btnTenShu.onClick.Add(OnClickBtnTenShu); _ui.m_btnNineZhouPool.target.onClick.Add(OnClickBtnNineZhouPool); _ui.m_buttonNewYearLogin.onClick.Add(OnClickButtonNewYearLogin); AddEffect(); } private void AddEffect() { _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderSmallBg, "ui_Activity", "JXWJ_All_tx/JXWJ_All_tx"); _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_Activity", "JXWJ_Text/JXWJ_Text"); _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_holderFog, "ui_Activity", "JXWJ_Button/JXWJ_Button"); } protected override void OnShown() { base.OnShown(); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_jxwj"); _ui.m_buttonNewYearLogin.visible = false; RefreshTimeText(); UpdateRedDot(); //RefreshButtonNewYearLogin(); int actLimitId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc); ActivityOpenCfg activiyCfg = ActivityOpenCfgArray.Instance.GetCfg(actLimitId); if (activiyCfg != null) { _ui.m_timeText.text = GetTImeText(activiyCfg.endTime); } Timers.inst.Add(1, 0, UpdateTime); Timers.inst.Add(0.2f, 1, ShowEffTime); } private void ShowEffTime(object param) { //_effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_Activity", "NewAtv_Text"); } protected override void OnHide() { base.OnHide(); EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; Timers.inst.Remove(UpdateTime); Timers.inst.Remove(ShowEffTime); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot); } private void UpdateRedDot() { RedDotController.Instance.SetComRedDot(_ui.m_btnTenShu, (RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitStlyc) || RedDotDataManager.Instance.GetGiftBagRewardRed() || RedDotDataManager.Instance.GetMeiRiTeHuiRed()), "", -100, 11); //RedDotController.Instance.SetComRedDot(_ui.m_btnHeaven, MiniGameDateManager.Instance.GetRewardRot()); RedDotController.Instance.SetComRedDot(_ui.m_btnAnswerTianmen.target, RedDotDataManager.Instance.GetOpenServerStoryRed(), "", -80, 100); //RedDotController.Instance.SetComRedDot(_ui.m_buttonNewYearLogin, ActivityDataManager.Instance.CanGetNewYearLoginRed(), "", 0, 0); } private void UpdateTime(object param) { RefreshTimeText(); } private void RefreshTimeText() { int actLimitId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc); if (actLimitId <= 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); Timers.inst.Remove(UpdateTime); OnClickBtnBack(); return; } ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(actLimitId); if (actLimitId <= 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); Timers.inst.Remove(UpdateTime); OnClickBtnBack(); return; } long time = TimeUtil.DateTimeToTimestamp(activityOpenCfg.endTime) - TimeHelper.ServerNow(); string strTime = TimeUtil.FormattingTimeTo_DD_HH_mm(time); string[] str = strTime.Split(':'); } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(OpenServerActivityView).FullName); } private void OnClickBtnHeaven() { //小游戏入口 _ui.m_btnHeaven.m_t0.Play(() => { if (JudgeActivityExpire()) ViewManager.Show(); }); } private void OnClickBtnMingTong() { //副本入口 _ui.m_btnMingTong.m_t0.Play(() => { if (JudgeActivityExpire()) ViewManager.Show(ConstLimitTimeActivityType.ActLimitStlyc); }); } private void OnClickBtnAnswerTianmen() { //剧情入口 _ui.m_btnAnswerTianmen.m_t0.Play(()=> { if (JudgeActivityExpire()) ViewManager.Show(ConstLimitTimeActivityType.ActLimitStlyc); }); } private void OnClickBtnTenShu() { if (JudgeActivityExpire()) ViewManager.Show(ConstLimitTimeActivityType.ActLimitStlyc); } private void OnClickBtnNineZhouPool() { _ui.m_btnNineZhouPool.m_t0.Play(()=> { if (JudgeActivityExpire()) ViewManager.Show(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE }); }); } private void OnClickButtonNewYearLogin() { ViewManager.Show(); } //判断神都宸游活动是否过期 private bool JudgeActivityExpire() { int actLimitId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc); if (actLimitId <= 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); return false; } return true; } private string GetTImeText(string time) { string pattern = @"\[(.*?)\]"; // 创建一个Regex对象 Regex regex = new Regex(pattern); // 匹配输入字符串中的所有内容 MatchCollection matches = Regex.Matches(time, pattern); // 存储所有提取的内容 string TimeText = matches[0].Groups[1].Value; for (int i = 1; i < matches.Count; i++) { TimeText += "-" + matches[i].Groups[1].Value; } return TimeText; } } }