using FairyGUI; using UI.Main; using UnityEngine; using System.Collections.Generic; using ET; using System.Linq; using Assets.Game.HotUpdate.Data; using System.Collections; using System; using System.Globalization; using GFGGame.Launcher; using YooAsset; namespace GFGGame { public class MainUIView : BaseView { private UI_MainUI _ui; private GameObject _sceneObject; private ValueBarController _valueBarController; private SwipeGesture swipeGesture; private const int swipeDistance = 100; private bool isOpen = false; DateTime dateTime; DateTime unixStartTime; private List _adIds = new List(); private Vector2 _startPos; private Vector2 _endPos; private GButton _btnGongGao; private GButton _btnHaoYou; private GButton _btnYouJian; private GButton _btnRenWu; private GButton _btnLeague; private GButton _btnStore; private GButton _btnTuJian; private GButton _btnStudio; private GButton _btnField; private GButton _btnBag; private GButton _btnActivityDay7; private GButton _btnGallery; private GButton _btnPoem; private List _effectUIList = new List(); private UI_ButtonModle1[] _btns; private bool firstIn; //用于分帧更新红点 private int redPointUpdateFrame = -1; private EffectUI _effectUI1; public override void Dispose() { if (_valueBarController != null) { _valueBarController.Dispose(); _valueBarController = null; } // Clear Effect for (int i = 0; i < _effectUIList.Count; i++) { EffectUIPool.Recycle(_effectUIList[i]); } _effectUIList.Clear(); if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_MainUI.PACKAGE_NAME; _ui = UI_MainUI.Create(); viewCom = _ui.target; isfullScreen = true; isReturnView = true; _valueBarController = new ValueBarController(_ui.m_valueBar); _btnYouJian = _ui.m_btnYouJian; _btnGongGao = _ui.m_btnGongGao; _btnHaoYou = _ui.m_list.GetChild("btnHaoYou").asButton; _btnRenWu = _ui.m_list.GetChild("btnRenWu").asButton; _btnLeague = _ui.m_list.GetChild("btnLeague").asButton; _btnStore = _ui.m_list.GetChild("btnStore").asButton; _btnTuJian = _ui.m_list.GetChild("btnTuJian").asButton; _btnBag = _ui.m_list.GetChild("btnBag").asButton; _btnGallery = _ui.m_list.GetChild("btnGallery").asButton; _btnPoem = _ui.m_list.GetChild("btnPoem").asButton; _btnActivityDay7 = _ui.m_btnActivityDay7.target; _btns = new UI_ButtonModle1[] { _ui.m_btnHuanZhuang, _ui.m_btnZhaiXing, _ui.m_btnXiuFang, _ui.m_btnCiPai }; _ui.m_btnMain.target.onClick.Add(OnClickBtnMain); _ui.m_btnHuanZhuang.target.onClick.Add(OnClickBtnHuanZhuang); _ui.m_btnZhaiXing.target.onClick.Add(OnClickBtnZhaiXing); _ui.m_btnXiuFang.target.onClick.Add(OnClickBtnXiuFang); _ui.m_btnCiPai.target.onClick.Add(OnClickBtnCiPai); _ui.m_headBar.target.onClick.Add(OnClickHeadBar); _ui.m_guideBtn.onClick.Add(OnClickHeadBar); _ui.m_btnDailyWelfare.target.onClick.Add(OnClickBtnDailyWelfare); _ui.m_btnNewYearRedEnvelope.target.onClick.Add(OnClickBtnNewYearRedEnvelope); _ui.m_btnActivityLuckyBox.target.onClick.Add(OnClickBtnActivityLuckyBox); _ui.m_btnOpenServerActivity.target.onClick.Add(OnClickBtnOpenServerActivity); _ui.m_btnWanShiLi.target.onClick.Add(OnClickBtnWanShiLi); _ui.m_btnTea.target.onClick.Add(OnClickBtnTea); _ui.m_btnActivityZCJB.target.onClick.Add(OnClickBtnZCJB); _ui.m_btnGetYuanXiao.target.onClick.Add(OnClickBtnGetYuanXiao); _ui.m_btnActivityZQ.target.onClick.Add(OnClickBtnGetZhongQiu); _ui.m_btnActivityFYJY.target.visible = false; _ui.m_btnActivityFYJY.target.onClick.Add(OnClickBtnFYJY); _btnLeague.onClick.Add(OnClickBtnLeague); _btnStore.onClick.Add(OnClickBtnStore); _btnTuJian.onClick.Add(OnClickBtnTuJian); _btnYouJian.onClick.Add(OnClickBtnYouJian); _btnHaoYou.onClick.Add(OnClickBtnHaoYou); _btnGongGao.onClick.Add(OnClickBtnGongGao); _btnRenWu.onClick.Add(OnClickBtnRenWu); _ui.m_btnActivityAfuGift.target.onClick.Add(OnClickBtnAfuGift); _btnActivityDay7.onClick.Add(OnClickBtnDay7); _ui.m_btnFirstRecharge.target.onClick.Add(OnClickBtnFirstRecharge); _btnBag.onClick.Add(OnClickBtnBag); _ui.m_btnGiftBag1.target.onClick.Add(OnClickBtnGiftBag2); _ui.m_btnGiftBag2.target.onClick.Add(OnClickBtnGiftBag1); _ui.m_btnWeeklyGift.target.onClick.Add(OnClickBtnWeeklyGift); _ui.m_btnHaiZhiShi.target.onClick.Add(OnClickBtnInstanceZones); _ui.m_touchMask.onClick.Add(ShowMainUI); _ui.m_btnShow.target.onClick.Add(HideMainUI); _ui.m_btnNewPlayerReward.target.onClick.Add(OnClickNewPlayerReward); _ui.m_btnSevenReward.target.onClick.Add(OnClickSevenReward); _ui.m_btnPearRebate.target.onClick.Add(OnClickPearRabate); _ui.m_btnTapTapJump.target.onClick.Add(OnClickTapTapJump); _btnGallery.onClick.Add(OnClickGallery); _btnPoem.onClick.Add(OnClickPoem); _ui.m_btnActivityXDMH.target.onClick.Add(OnClickBtnXDMH); _ui.m_comListAd.m_listAd.itemRenderer = RenderListAdItem; _ui.m_comListAd.m_listAd.SetVirtualAndLoop(); _ui.m_comListAd.m_listAd.scrollPane.onScrollEnd.Add(OnListAdScrollEnd); _ui.m_comListAd.m_listAd.scrollPane.decelerationRate = 0.8f; _ui.m_list.ResizeToFit(); _ui.m_btnChange.target.onClick.Add(OnBtnChangClick); _ui.m_btnChange.m_c1.selectedIndex = 1; _ui.m_btnChange.target.selected = true; _ui.m_storageBtn.target.onClick.Add(OnBtnStorageClick); firstIn = true; //这个是东8时区的0时间戳 unixStartTime = new DateTime(1970, 1, 1, 8, 0, 0); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, OnNumericChange); EventAgent.AddEventListener(ConstMessage.STORY_LEVEL_CHANGE, CheckFunOpen); EventAgent.AddEventListener(ConstMessage.RED_CHANGE, OnRedDotChanged); EventAgent.AddEventListener(ConstMessage.CHANGE_ROLE_HEAD, UpdateHead); EventAgent.AddEventListener(ConstMessage.RESET_DAILY_DATA, ResetDailyData); EventAgent.AddEventListener(ConstMessage.AFU_GIFT_CHANGED, ChangeAfuActivityState); EventAgent.AddEventListener(ConstMessage.VIEW_CLOSED, CheckAutoShowViews); EventAgent.AddEventListener(ConstMessage.AFTER_DATA_INITED, OnAfterDataInited); EventAgent.AddEventListener(ConstMessage.NEW_YEAR_RED_ENVELOPE_INFO, RefreshBtnNewYearRedEnvelope); EventAgent.AddEventListener(ConstMessage.ACTIVITY_RED_CHANGE, UpdateActivityRedDot); EventAgent.AddEventListener(ConstMessage.STORY_LEVEL_CHANGE, UpdateNewPlayerReward); EventAgent.AddEventListener(ConstMessage.CARD_INFO, CardBgRes); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, OnNumericChange); EventAgent.RemoveEventListener(ConstMessage.STORY_LEVEL_CHANGE, CheckFunOpen); EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, OnRedDotChanged); EventAgent.RemoveEventListener(ConstMessage.CHANGE_ROLE_HEAD, UpdateHead); EventAgent.RemoveEventListener(ConstMessage.AFU_GIFT_CHANGED, ChangeAfuActivityState); EventAgent.RemoveEventListener(ConstMessage.VIEW_CLOSED, CheckAutoShowViews); EventAgent.RemoveEventListener(ConstMessage.AFTER_DATA_INITED, OnAfterDataInited); EventAgent.RemoveEventListener(ConstMessage.NEW_YEAR_RED_ENVELOPE_INFO, RefreshBtnNewYearRedEnvelope); EventAgent.RemoveEventListener(ConstMessage.ACTIVITY_RED_CHANGE, UpdateActivityRedDot); EventAgent.RemoveEventListener(ConstMessage.RESET_DAILY_DATA, ResetDailyData); EventAgent.RemoveEventListener(ConstMessage.STORY_LEVEL_CHANGE, UpdateNewPlayerReward); EventAgent.RemoveEventListener(ConstMessage.CARD_INFO, CardBgRes); } protected override void OnShown() { base.OnShown(); MainDataManager.Instance.CanSwipe = false; //防止引导检测之前触发点击事件 GRoot.inst.touchable = false; _ui.m_loaGuidestudio.visible = true; _ui.m_headBar.m_txtName.text = RoleDataManager.roleName; if (_sceneObject == null) { _sceneObject = PrefabManager.Instance.InstantiateSync(ResPathUtil.GetPrefabPath("SceneMain")); } _ui.m_btnNewYearRedEnvelope.target.visible = false; _ui.m_btnNewPlayerReward.target.visible = false; SceneController.UpdateMainScene(_sceneObject); UpdateRoleLvl(); UpdateHead(); CardBgRes(); _valueBarController.OnShown(); CheckFunOpen(); UpdateBtnFirstRecharge(); Timers.inst.Remove(Update); Timers.inst.Remove(CheckGuide); Timers.inst.AddUpdate(CheckGuide); Timers.inst.AddUpdate(Update); Update(null); //让主界面先显示出来,其他逐步处理 Timers.inst.Remove(OnShowLater); Timers.inst.Add(0.1f, 1, OnShowLater); // 先隐藏茶会提示 _ui.m_grpLeagueTips.visible = false; // 刚进游戏不播放主界面入场动画 if (firstIn) { firstIn = false; MainUIAnimFinished(); AddEffect(); } else { _ui.m_openViewAction.Play(MainUIAnimFinished); } //StorageSProxy.ReqSetClientValue(1012, 4).Coroutine(); // 临时设置内网显示时间 _ui.m_serverTime.visible = false; Timers.inst.AddUpdate(ServerTimeUpdate); } protected override void OnHide() { base.OnHide(); GRoot.inst.touchable = true; if (_sceneObject != null) { PrefabManager.Instance.Restore(_sceneObject); _sceneObject = null; } _valueBarController.OnHide(); Timers.inst.Remove(Update); Timers.inst.Remove(CheckGuide); Timers.inst.Remove(UpdateAdListTime); Timers.inst.Remove(OnShowLater); Timers.inst.Remove(ServerTimeUpdate); } private void OnShowLater(object param) { CheckProbabilityUp(); if (!GameGlobal.AfterDataInited) { GameController.AfterShowMainUI(); } else { OnAfterDataInited(); } } private void OnAfterDataInited() { GetAdIds(); UpdateButtons(); OnRedDotChanged(); CheckAutoShowViews(); } private async void UpdateButtons() { // 刚进游戏请求数据 if (MainDataManager.Instance.needUpdateProxyData) { MainDataManager.Instance.needUpdateProxyData = false; var result = await NewYearRedEnvelopeSProxy.ReqGetRedPacketInfo(); if (result) { RefreshBtnNewYearRedEnvelope(); } result = await ActivityGetYuanXiaoProxy.ReqGetActivityGameInfos(); if (result) { RefreshBtnYuanXiaoActivity(); } result = await ActivityFYJYProxy.ReqGetActivityGameInfos(); if (result) { RefreshBtnActivityFYJY(); if (_ui.m_btnActivityFYJY.target.visible) { RedDotController.Instance.SetComRedDot(_ui.m_btnActivityFYJY.target , RedDotDataManager.Instance.GetActivityFYJYRed(), "", -15, -1); } } int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.BlindBoxType); if (activityId > 0) { RefreshBtnXdmhActivity(); } } // 后续活动按钮的刷新检测 else { RefreshBtnNewYearRedEnvelope(); RefreshBtnYuanXiaoActivity(); RefreshBtnActivityFYJY(); RefreshBtnXdmhActivity(); } RefreshBtnYuanXiaoActivity(); } private void RefreshBtnNewYearRedEnvelope() { int actRedPacketId = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.NewYearRedPacket); _ui.m_btnNewYearRedEnvelope.target.visible = (actRedPacketId > 0 && NewYearRedEnvelopeDataManager.Status > 0 && NewYearRedEnvelopeDataManager.Status != RedPacketStatus.Double); } private void RefreshBtnYuanXiaoActivity() { _ui.m_btnGetYuanXiao.target.visible = ActivityGetYuanXiaoDataManager.Instance.CheckOpen(); _ui.m_btnActivityZQ.target.visible = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityDataManager.Instance .TurnTableActivityType) == 0 ? false : true; } //限定盲盒按钮显示 private void RefreshBtnXdmhActivity() { _ui.m_btnActivityXDMH.target.visible = ActivityGlobalDataManager.Instance.IsActivityOpen(10302); } private void RefreshBtnActivityFYJY() { _ui.m_btnActivityFYJY.target.visible = (ActivityGlobalDataManager.Instance.IsActivityOpen(5016)); } private void AddEffect() { _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnMain.m_holder, "ui_zjm", "ZJM_szl_down_3")); _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnMain.m_holder1, "ui_zjm", "ZJM_szl_top_1")); _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnHaiZhiShi.m_holder, "ui_zjm", "ZJM_hzs_down_3")); _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnHaiZhiShi.m_holder1, "ui_zjm", "ZJM_hzs_top_1")); _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_BottomEffectHolder, "ui_zjm", "ZJM_DiBan")); _effectUIList.Add(EffectUIPool.CreateEffectUI(_ui.m_btnZhaiXing.m_holder1, "ui_zjm", "ZJM_ZX")); } private void OnClickBtnInstanceZones() { TryCompleteGuide(); ViewManager.Show(); } private void OnBtnChangClick() { int count = 0; for (int i = 0; i < _ui.m_list.numItems; i++) { if (_ui.m_list.GetChildAt(i).visible == true) count++; } int oneItemHeight = 97 + _ui.m_list.lineGap; float height = count * oneItemHeight; if (_ui.m_btnChange.target.selected == true) { _ui.m_btnChange.m_c1.selectedIndex = 1; GTween.To(_ui.m_list.height, height, 0.4f).SetTarget(_ui.m_list) .OnUpdate((GTweener t) => { _ui.m_list.height = t.value.x; }).SetEase(EaseType.QuintInOut); } else { _ui.m_btnChange.m_c1.selectedIndex = 0; GTween.To(_ui.m_list.height, oneItemHeight, 0.4f).SetTarget(_ui.m_list) .OnUpdate((GTweener t) => { _ui.m_list.height = t.value.x; }).SetEase(EaseType.QuintInOut); } } private void OnBtnStorageClick() { if (MainDataManager.Instance.StorageStatus == 0) { MainDataManager.Instance.StorageStatus = 1; _ui.m_listGroud.visible = false; } else { MainDataManager.Instance.StorageStatus = 0; _ui.m_listGroud.visible = true; } _ui.m_storageBtn.m_c1.selectedIndex = MainDataManager.Instance.StorageStatus; } private void OnClickBtnMain() { MainStoryDataManager.currentChapterType = 0; isOpen = MainControllerr.GotoStoryChapter(isOpen); } private void OnClickBtnHuanZhuang() { if (isOpen) return; isOpen = true; _ui.m_btnHuanZhuang.m_holder1.visible = true; _ui.m_btnHuanZhuang.m_holder1.visible = false; ViewManager.Show(); isOpen = false; } private void OnClickBtnZhaiXing() { LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.ZAI_XING, 1); if (isOpen) return; isOpen = true; _ui.m_btnZhaiXing.m_holder1.visible = false; ViewManager.Show(null, false); isOpen = false; } private void OnClickBtnXiuFang() { if (isOpen) return; isOpen = true; _ui.m_btnXiuFang.m_holder1.visible = true; _ui.m_btnXiuFang.m_holder1.visible = false; ViewManager.Show(); isOpen = false; } private void OnClickBtnDailyLogin() { LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.MEI_RI_DNEG_LU, 1); ViewManager.Show(); } private void OnClickBtnDailyWelfare() { ViewManager.Show(); } private void OnClickBtnNewYearRedEnvelope() { ViewManager.Show(); } private void OnClickBtnActivityLuckyBox() { ViewManager.Show(null, true); } private void OnClickBtnOpenServerActivity() { var titleIndex = PlayerPrefs.GetString("seeOpenServerActivityStoryGQ" + GameGlobal.userId); if (titleIndex == null || titleIndex == "") { ViewManager.Show( new object[] { "10238", false, new OnCompleteStoryDialogCall(OnCompletePriorStoryDialog), null, false }, true); } else ViewManager.Show(); } private static void OnCompletePriorStoryDialog(bool done, object param) { if (done) { PlayerPrefs.SetString("seeOpenServerActivityStoryGQ" + GameGlobal.userId, "1"); ViewManager.DeleteViewStackCountDown(null, 1); ViewManager.Show(); } } private void OnClickBtnWanShiLi() { ViewManager.Show(); } private void OnClickBtnTea() { ViewManager.Show(); } private void OnClickBtnZCJB() { ViewManager.Show(); } private void OnClickBtnCiPai() { LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.CI_PAI, 1); if (isOpen) return; isOpen = true; _ui.m_btnCiPai.m_holder1.visible = true; _ui.m_btnCiPai.m_holder1.visible = false; CardDataManager.isFilter = false; ViewManager.Show(); isOpen = false; } private void OnClickBtnBag() { ViewManager.Show(); } private void OnClickGallery() { ViewManager.Show(); } private void OnClickPoem() { ViewManager.Show(); } private void OnClickBtnLeague() { // LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.SHANG_CHENG, 1); if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LeagueView).Name)) return; // if (LeagueDataManager.Instance.Type == 0) // { // PromptController.Instance.ShowFloatTextPrompt("数据来的有点慢,稍后再试下吧"); // return; // } if (LeagueDataManager.Instance.Type == LeagueJoinType.Join) //已加入联盟 { ViewManager.Show(); } else //未加入联盟 { ViewManager.Show(); } } private void OnClickBtnStore() { LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.SHANG_CHENG, 1); GuideSimulationDataManager.Instance.GuideMonthlyJumpType = 1; ViewManager.Show(); } private void OnClickBtnTuJian() { LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.TU_JIAN, 1); ViewManager.Show(); } private void OnClickPearRabate() { ViewManager.Show(); } private void OnClickTapTapJump() { #if PT_DouYouTap QDDouYouManager.Instance.JumpInfo(); #elif PT_IosLocal double number = double.Parse(LauncherConfig.apkVersion, CultureInfo.InvariantCulture); Log.Debug($"一个测试:{number}"); if (number > 2.2) { Log.Debug($"一个测试dd:{number}"); QDDouYouManagerIos.Instance.Share(); } #else _ui.m_btnTapTapJump.target.visible = false; #endif } private void OnClickBtnYouJian() { ViewManager.Show(); } private void OnClickBtnHaoYou() { ViewManager.Show(); } private void OnClickBtnGongGao() { ViewManager.Show(); } private void OnClickBtnRenWu() { ViewManager.Show(); } private void OnClickBtnAfuGift() { if (!ActivityAfuGiftDataManager.Instance.IsOpen) { return; } ViewManager.Show(); } private void OnClickBtnDay7() { ViewManager.Show(); } private void OnClickBtnFirstRecharge() { ViewManager.Show(); } private void OnClickHeadBar() { ViewManager.Show(); } private void OnClickNewPlayerReward() { ViewManager.Show(); } private void OnClickSevenReward() { ViewManager.Show(); } private void OnClickBtnWeeklyGift() { ViewManager.Show(); } //列表 private void OnClickBtnGiftBag1() { var activityInfoByTypeList = ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLB1); var list = activityInfoByTypeList .Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList(); if (list.Count == 0) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); } else { ViewManager.Show(); } } //圆形 private void OnClickBtnGiftBag2() { //var activityInfoByTypeList = // ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLB2); //var list = activityInfoByTypeList // .Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList(); //if (list.Count == 0) //{ // PromptController.Instance.ShowFloatTextPrompt("活动已结束"); //} //else //{ // ViewManager.Show(new object[] { ActivityType.XSLB2, this.viewData }); //} ViewManager.Show(); } //列表样式 private void UpGiftBox1() { _ui.m_btnGiftBag2.target.visible = LimitedTimeGiftBoxDataManager.Instance.SpecialOfferGiftBoxCanBuy(); if (_ui.m_btnGiftBag2.target.visible) { var activityInfoByTypeList = ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLB1); var list = activityInfoByTypeList .Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList(); _ui.m_btnGiftBag2.m_txtTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime); } _ui.m_btnWeeklyGift.m_c1.selectedIndex = 0; if (_ui.m_btnGiftBag2.target.visible) { _ui.m_btnWeeklyGift.target.visible = false; } else { if (ActivityDataManager.Instance.GetCurOpenActiveByType(101) == 0) { _ui.m_btnWeeklyGift.target.visible = false; } else { ActivityOpenCfg activityCfg = ActivityOpenCfgArray.Instance.GetCfg(ActivityDataManager.Instance.GetCurOpenActiveByType(101)); int giftShopId = activityCfg.paramsArr[0]; ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(giftShopId); var remainBuyNum = shopCfg.maxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.id); if (remainBuyNum == 0) { //已售完 _ui.m_btnWeeklyGift.target.visible = false; } else { //未售完 _ui.m_btnWeeklyGift.target.visible = true; } } } } //圆形样式 private void UpGiftBox2() { var activityInfoByTypeList = ActivityGlobalDataManager.Instance.GetActivityInfoByType(ActivityType.XSLB2); var list = activityInfoByTypeList .Where(a => a.EndTime > TimeInfo.Instance.ServerNow()).ToList(); if (list.Count == 0) { _ui.m_btnGiftBag1.target.visible = false; } else { bool isSoldOut = true; foreach (var activityInfo in list) { ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(activityInfo.ActivityId); var paramsArr = activityOpenCfg.paramsArr; foreach (var shopCfgId in paramsArr) { var shopCfg = ShopCfgArray.Instance.GetCfg(shopCfgId); var remainBuyNum = shopCfg.maxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfgId); //只要有一个商品还能购买,就不是售罄 if (remainBuyNum > 0) { isSoldOut = false; break; } } } if (isSoldOut) { _ui.m_btnGiftBag1.target.visible = false; } else { _ui.m_btnGiftBag1.m_txtTime.text = TimeUtil.GetTimeLeft(TimeInfo.Instance.ServerNow(), list[0].EndTime); _ui.m_btnGiftBag1.target.visible = false; } } } private void Update(object param) { UpdateActLuckyBox(); UpdateOpenServerActivity(); UpdateLimitedActvityState(); //UpdateTime(); //特惠礼包/限时礼包窗口内的倒计时 UpGiftBox1(); //UpGiftBox2(); EventAgent.DispatchEvent(ConstMessage.LUCKY_BOX_TIME); UpdateRedDot(); } private void UpdateActLuckyBox() { int actLuckyBoxId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox); _ui.m_btnActivityLuckyBox.target.visible = actLuckyBoxId > 0; if (actLuckyBoxId > 0) { if (actLuckyBoxId != ActivityDataManager.Instance.lastActLuckyBoxId) { ActivitySProxy.ReqGetTimeLimitLuckyBoxInfo(actLuckyBoxId).Coroutine(); ActivityDataManager.Instance.lastActLuckyBoxId = actLuckyBoxId; } ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(actLuckyBoxId); _ui.m_btnActivityLuckyBox.target.title = activityOpenCfg.themeName; string path = "zjm_icon_" + activityOpenCfg.res.Split('_')[1]; _ui.m_btnActivityLuckyBox.target.icon = ResPathUtil.GetActivityPath(path, "png"); //"ui://Main/zjm_icon_" + activityOpenCfg.res.Split('_')[1]; //long time = TimeUtil.DateTimeToTimestamp(activityOpenCfg.endTime) - TimeHelper.ServerNow(); //_ui.m_btnActivityLuckyBox.m_txtTime.text = time > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(time) : TimeUtil.FormattingTimeTo_HHmmss(time); } ActivityOpenCfg zcjbCfg = ActivityOpenCfgArray.Instance.GetCfg(ActivityDataManager.Instance.GetCurOpenActiveByType(17)); if (zcjbCfg != null) { _ui.m_btnActivityZCJB.m_iconMain.url = ResPathUtil.GetActivityPath(zcjbCfg.res, "png"); } } private void UpdateOpenServerActivity() { int actLimitId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc); if (actLimitId > 0) { ActivityOpenCfg activityOpenCfg = ActivityOpenCfgArray.Instance.GetCfg(actLimitId); long time = TimeUtil.DateTimeToTimestamp(activityOpenCfg.endTime) - TimeHelper.ServerNow(); _ui.m_btnOpenServerActivity.m_txtTime.text = TimeUtil.FormattingTimeTo_DDHHmm(time); } } private void UpdateLimitedActvityState() { _ui.m_btnNewPlayerReward.target.visible = false; int actLimitTsyId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy); if (actLimitTsyId > 0) { if (actLimitTsyId != ActivityDataManager.Instance.lastActLimitTsyId) { ActivitySProxy.ReqGetTimeLimitLuckyBoxInfo(actLimitTsyId).Coroutine(); ActivityDataManager.Instance.lastActLimitTsyId = actLimitTsyId; } } int actLimitStlycId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc); if (actLimitStlycId > 0) { if (actLimitStlycId != ActivityDataManager.Instance.lastActLimitStlycId) { ActivitySProxy.ReqGetTimeLimitLuckyBoxInfo(actLimitStlycId).Coroutine(); ActivityDataManager.Instance.lastActLimitStlycId = actLimitStlycId; } } List actListChargeIds = ActivityGlobalDataManager.Instance.GetActivityInfoIdsByType(ConstLimitTimeActivityType .ActLimitOpenServerCharge); int actLimitChargeId = actListChargeIds.Count > 0 ? actListChargeIds[0] : 0; if (ActivityDataManager.Instance.lastActLimitChargeId != actLimitChargeId) { ActivityDataManager.Instance.actLimitChargeId = actLimitChargeId; //_ui.m_btnDailyWelfare.target.visible = actLimitChargeId > 0 || //FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailyWelfareView).Name, false) && ( //FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySignView).Name, false) || //FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySupplyView).Name, false) || //!(!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(SevenDayLoginView).Name, false) || //ActivityDataManager.Instance.AllSevenDayBonusGot())); _ui.m_btnDailyWelfare.target.visible = false; } int activeNewYearRedPacketId = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.NewYearRedPacket); _ui.m_btnNewYearRedEnvelope.target.visible = (activeNewYearRedPacketId > 0 && NewYearRedEnvelopeDataManager.Status >= 0 && NewYearRedEnvelopeDataManager.Status != RedPacketStatus.Double); _ui.m_btnActivityDay7.target.visible = ActivityDay7DataManager.Instance.CheckOpen(); _ui.m_btnWanShiLi.target.visible = ActivityWanShiLiDataManager.Instance.CheckOpen(); _ui.m_btnTea.target.visible = ActivityDataManager.Instance.GetCurOpenActiveByType(12) == 0 ? false : true; _ui.m_btnActivityZCJB.target.visible = ActivityDataManager.Instance.isExtendTime(2) || ((ActivityDataManager.Instance.GetCurOpenActiveByType(17) == 0) ? false : true); _ui.m_btnNewPlayerReward.target.visible = (!ActivityDataManager.Instance.IsGetNewPlayerReward && GameGlobal.AutoNewPlayersTips); _ui.m_btnSevenReward.target.visible = !ActivityDataManager.Instance.AllSevenDayBonusGot(); _ui.m_btnPearRebate.target.visible = ActivityDataManager.Instance.CheckPearRebateTips(6000); //#if PT_DouYouTap // _ui.m_btnTapTapJump.target.visible = true; //#else _ui.m_btnTapTapJump.target.visible = false; //#endif //是否是IOS,并且要验证版本 //#if PT_IosLocal // double number = double.Parse(LauncherConfig.apkVersion, CultureInfo.InvariantCulture); // if (number > 2.2) // { // _ui.m_btnTapTapJump.target.visible = true; // } //#endif _ui.m_btnGiftBag1.target.visible = false; //ActivityDataManager.Instance.CheckPearRebateTips(6002); var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(6002); long endTime = 0; if (activityInfo != null) { endTime = activityInfo.EndTime; } var leftTime = endTime - TimeHelper.ServerNow(); _ui.m_btnGiftBag1.m_txtTime.text = TimeUtil.FormattingTimeTo_DDHHmm((int)leftTime); UpdateSevenIcon(); if (!ActivityDataManager.Instance.IsGetNewPlayerReward) { RedDotController.Instance.SetComRedDot(_ui.m_btnNewPlayerReward.target, true, "", -8); } } private void UpdateSevenIcon() { if (ActivityDataManager.Instance.CanGetSevenDayBonus()) { //显示今日可领取 int id = DailyLoginCfgArray.Instance.dataArray[ActivityDataManager.Instance.NowSevenDayBonusDay(true)] .rewardsArr[0][0]; if (DailyLoginCfgArray.Instance.dataArray[ActivityDataManager.Instance.NowSevenDayBonusDay(true)] .type == 2) { _ui.m_btnSevenReward.m_Icon.url = ResPathUtil.GetIconPath("tz_kongquednf", "png"); } else { _ui.m_btnSevenReward.m_Icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(id).res, "png"); } _ui.m_btnSevenReward.m_textIcon.url = "ui://Main/zjm_hdjrkl"; RedDotController.Instance.SetComRedDot(_ui.m_btnSevenReward.target, true, "", -8); } else if (ActivityDataManager.Instance.HaveGetSevenDayBonus() && ActivityDataManager.Instance.NowSevenDayBonusDay(false) < 6) { //显示明日可领取 int id = DailyLoginCfgArray.Instance .dataArray[ActivityDataManager.Instance.NowSevenDayBonusDay(false) + 1].rewardsArr[0][0]; if (DailyLoginCfgArray.Instance.dataArray[ActivityDataManager.Instance.NowSevenDayBonusDay(false) + 1] .type == 2) { _ui.m_btnSevenReward.m_Icon.url = ResPathUtil.GetIconPath("tz_kongquednf", "png"); } else { _ui.m_btnSevenReward.m_Icon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(id).res, "png"); } _ui.m_btnSevenReward.m_textIcon.url = "ui://Main/zjm_hdmrkl"; RedDotController.Instance.SetComRedDot(_ui.m_btnSevenReward.target, false, "", -8); } } private void UpdateTime() { //if (_ui.m_btnTea.target.visible) //{ // long time = ActivityTeaDataManager.Instance.GetEndTime(ActivityType.TEA) - TimeHelper.ServerNow(); // _ui.m_btnTea.m_txtTime.text = time > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(time) : TimeUtil.FormattingTimeTo_HHmmss(time); //} //if (_ui.m_btnActivityDay7.target.visible) //{ // long time = ActivityDay7DataManager.Instance.GetEndTime() - TimeHelper.ServerNow(); // _ui.m_btnActivityDay7.m_txtTime.text = time > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(time) : TimeUtil.FormattingTimeTo_HHmmss(time); //} //if (_ui.m_btnWanShiLi.target.visible) //{ // long time = ActivityWanShiLiDataManager.Instance.GetEndTime() - TimeHelper.ServerNow(); // _ui.m_btnWanShiLi.m_txtTime.text = time > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(time) : TimeUtil.FormattingTimeTo_HHmmss(time); //} //if (_ui.m_btnActivityAfuGift.target.visible) //{ // var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.AFZL); // if (activityInfo == null) // { // _ui.m_btnActivityAfuGift.target.visible = false; // } // else // { // long time = activityInfo.EndTime - TimeHelper.ServerNow(); // _ui.m_btnActivityAfuGift.m_txtTime.text = time > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(time) : TimeUtil.FormattingTimeTo_HHmmss(time); // } //} } private void OnNumericChange(EventContext context) { var numericType = (int)context.data; if (numericType == NumericType.Lvl) { UpdateRoleLvl(); CheckFunOpen(); } if (numericType == NumericType.FirstRechargeBonusStatus || numericType == NumericType.FirstRechargeTotal) { UpdateBtnFirstRecharge(); } } private void UpdateBtnFirstRecharge() { _ui.m_btnFirstRecharge.target.visible = ActivityDataManager.Instance.firstChargeBonusStatus != ConstBonusStatus.GOT; if (_ui.m_btnFirstRecharge.target.visible) { bool canget = ActivityDataManager.Instance.firstChargeBonusStatus == ConstBonusStatus.CAN_GET; RedDotController.Instance.SetComRedDot(_ui.m_btnFirstRecharge.target, canget, "", -50, 3); } } private void UpdateRoleLvl() { _ui.m_headBar.m_txtLvl.text = "" + GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl); } private void UpdateHead() { RoleInfoManager.Instance.UpdateHead(_ui.m_headBar.m_comHead, RoleDataManager.headId, RoleDataManager.headBorderId); } private async void CardBgRes() { await RoleInfoSProxy.GetThemeID(); if (_effectUI1 != null) { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; } if (MainDataManager.Instance.CardBgID == 0) { _ui.m_cardBgIcon.target.visible = false; _ui.m_cardBg.target.visible = false; return; } ItemCfg cardItem = ItemCfgArray.Instance.GetCfg(MainDataManager.Instance.CardBgID); string resName = cardItem.res; string resPath = ResPathUtil.GetCardAnimationPath(resName); var _cardData = CardDataManager.GetCardDataById(MainDataManager.Instance.CardBgID); Vector2 omCardImgResTargetSize = new Vector2( (ViewGlobal.GetRealTopOffset() + _ui.target.height) * CardDataManager.CardResInitWidth / CardDataManager.CardResInitHight, (ViewGlobal.GetRealTopOffset() + _ui.target.height)); if (_cardData != null && _cardData.itemCfg.animationCardStar > 0 && _cardData.star >= _cardData.itemCfg.animationCardStar && YooAssets.CheckResExist(resPath)) { await LoadManager.Instance.CheckResExsitedOrDownload(resPath); _effectUI1 = new EffectUI(); _effectUI1.Reset(_ui.m_cardBg.m_comCardHolder.m_holder, resName, resName, 110, EffectUIType.Card); float offY = GRoot.inst.height / 1000; _ui.m_cardBg.target.visible = true; _ui.m_cardBgIcon.target.visible = false; _ui.m_cardBg.m_comCardHolder.m_holder.y = _ui.m_cardBg.m_comCardHolder.m_holder.y + (offY * 50); } else { _ui.m_cardBg.target.visible = false; _ui.m_cardBgIcon.target.visible = true; _ui.m_cardBgIcon.m_ComCardImgRes.target.size = omCardImgResTargetSize; _ui.m_cardBgIcon.m_ComCardImgRes.m_loaCard.url = ResPathUtil.GetCardPath(resName); } } /// /// 获取当前开启的滚动广告列表 /// private void GetAdIds() { _adIds.Clear(); for (int i = 0; i < AdCfgArray.Instance.dataArray.Length; i++) { AdCfg adCfg = AdCfgArray.Instance.dataArray[i]; if (adCfg.res == "" || adCfg.res == null) continue; if (adCfg.activityId > 0) { if (ActivityGlobalDataManager.Instance.GetActivityInfo(adCfg.activityId) == null) continue; ActivityInfo activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(adCfg.activityId); if (TimeHelper.ServerNow() < activityInfo.StartTime || TimeHelper.ServerNow() > activityInfo.EndTime) continue; } if (!string.IsNullOrEmpty(adCfg.startTime) && !string.IsNullOrEmpty(adCfg.endTime)) { long startTime = TimeUtil.DateTimeToTimestamp(adCfg.startTime); long endTime = TimeUtil.DateTimeToTimestamp(adCfg.endTime); if (TimeHelper.ServerNow() < startTime || TimeHelper.ServerNow() > endTime) continue; } _adIds.Add(adCfg); } _ui.m_comListAd.m_listAd.numItems = _adIds.Count; _ui.m_comListAd.m_listAdSelect.numItems = _adIds.Count; if (_ui.m_comListAd.m_listAd.numItems > 0) { _ui.m_comListAd.m_listAd.ScrollToView(0); _ui.m_comListAd.m_listAdSelect.selectedIndex = 0; } _ui.m_comListAd.target.visible = _ui.m_comListAd.m_listAd.numItems > 0; if (_ui.m_comListAd.target.visible) { Timers.inst.Remove(UpdateAdListTime); Timers.inst.Add(3, 0, UpdateAdListTime); } } private void UpdateAdListTime(object param) { int itemIndex = _ui.m_comListAd.m_listAd.ChildIndexToItemIndex(0) + 1; itemIndex = itemIndex == _ui.m_comListAd.m_listAd.numItems ? 0 : itemIndex; _ui.m_comListAd.m_listAdSelect.selectedIndex = itemIndex; _ui.m_comListAd.m_listAd.scrollPane.ScrollRight(0.8f, true); CheckProbabilityUp(); } private void RenderListAdItem(int index, GObject obj) { UI_ListAdItem item = UI_ListAdItem.Proxy(obj); item.m_loaRes.url = ResPathUtil.GetActivityPath(_adIds[index].res, "png"); if (item.m_loaRes.data == null) { item.m_loaRes.onClick.Add(OnBtnAdJump); } item.m_loaRes.data = _adIds[index]; UI_ListAdItem.ProxyEnd(); } private void OnBtnAdJump(EventContext context) { GObject obj = context.sender as GObject; AdCfg adCfg = obj.data as AdCfg; object[] param = null; int jumpIndex = 0; //if (adCfg.jumpId == nameof(LimitChargeView)) //{ // param = new object[] { adCfg.activityId }; //} //if (adCfg.jumpId == nameof(NewLimitChargeView)) //{ // param = new object[] { adCfg.activityId }; //} //if (adCfg.jumpId == nameof(LuckyBoxView)) //{ // jumpIndex = adCfg.jumpParamArr[0]; //} //if (jumpIndex != 0) // ViewManager.Show($"GFGGame.{adCfg.jumpId}", jumpIndex); //else // ViewManager.Show($"GFGGame.{adCfg.jumpId}", param); ViewManager.Show(); } private void OnListAdScrollEnd() { int itemIndex = _ui.m_comListAd.m_listAd.ChildIndexToItemIndex(0); _ui.m_comListAd.m_listAdSelect.selectedIndex = itemIndex; } private void CheckFunOpen() { _ui.m_btnGiftBag1.target.visible = false; _ui.m_btnGiftBag2.target.visible = false; _ui.m_btnNewPlayerReward.target.visible = false; _ui.m_btnHaiZhiShi.m_loaLockIcons.visible = false; _ui.m_btnXiuFang.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(XiuFangView).Name, false); _ui.m_btnHuanZhuang.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DressUpView).Name, false); _ui.m_btnCiPai.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(CardDetailView).Name, false); _ui.m_btnZhaiXing.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LuckyBoxView).Name, false); _ui.m_btnMain.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StoryChapterListView).Name, false); _ui.m_btnActivityLuckyBox.target.visible = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox) > 0; _ui.m_btnOpenServerActivity.target.visible = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitStlyc) > 0; List actListChargeIds = ActivityGlobalDataManager.Instance.GetActivityInfoIdsByType(ConstLimitTimeActivityType .ActLimitChargeId); int actLimitChargeId = actListChargeIds.Count > 0 ? actListChargeIds[0] : 0; //_ui.m_btnDailyWelfare.target.visible = actLimitChargeId > 0 || //FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailyWelfareView).Name, false) && ( //FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySignView).Name, false) || //FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DailySupplyView).Name, false) || //!(!FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(SevenDayLoginView).Name, false) || //ActivityDataManager.Instance.AllSevenDayBonusGot())); _ui.m_btnDailyWelfare.target.visible = false; _ui.m_btnNewPlayerReward.target.visible = (!ActivityDataManager.Instance.IsGetNewPlayerReward && GameGlobal.AutoNewPlayersTips); if (!ActivityDataManager.Instance.IsGetNewPlayerReward) { RedDotController.Instance.SetComRedDot(_ui.m_btnNewPlayerReward.target, true, "", -8); } _ui.m_btnSevenReward.target.visible = !ActivityDataManager.Instance.AllSevenDayBonusGot(); UpdateSevenIcon(); _btnPoem.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(PoemPhotoView).Name, false); _btnGongGao.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(NoticeView).Name, false); _btnHaoYou.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FriendView).Name, false); _btnYouJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MailView).Name, false); _btnLeague.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LeagueView).Name, false); _btnStore.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StoreView).Name, false); _btnTuJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldGuideView).Name, false); _btnActivityDay7.visible = ActivityDay7DataManager.Instance.CheckOpen(); _ui.m_btnActivityAfuGift.target.visible = ActivityAfuGiftDataManager.Instance.CheckIconShow(); _ui.m_list.ResizeToFit(); } private void OnRedDotChanged() { //LogUtil.LogEditor($"MainUIView OnRedDotChanged GameGlobal.AfterDataInited {GameGlobal.AfterDataInited} AutoShowCompleted {GameGlobal.AutoShowCompleted}"); //暂时用这种方法优化下,红点的实现要重构!!! //LogUtil.LogEditor("MainUIView UpdateRedDot OnRedDotChanged"); redPointUpdateFrame = 0; } private void UpdateRedDot() { if (redPointUpdateFrame < 0) return; if (!GameGlobal.AfterDataInited) return; if (!ViewManager.CheckIsTopView(this.viewCom)) return; LogUtil.LogEditor($"MainUIView UpdateRedDot redPointUpdateFrame {redPointUpdateFrame}"); if (redPointUpdateFrame == 0) _valueBarController.UpdateRedPoint(); if (redPointUpdateFrame == 1) RedDotController.Instance.SetComRedDot(_btnGongGao, RedDotDataManager.Instance.GetNoticeRed(), "", -9, 12); if (redPointUpdateFrame == 2) RedDotController.Instance.SetComRedDot(_btnRenWu, RedDotDataManager.Instance.GetTaskRed(), "", -8); if (redPointUpdateFrame == 3) RedDotController.Instance.SetComRedDot(_btnYouJian, RedDotDataManager.Instance.GetMailRed(), "", -9, 12); if (redPointUpdateFrame == 4) RedDotController.Instance.SetComRedDot(_btnTuJian, RedDotDataManager.Instance.GetFieldGuideRed() || RedDotDataManager.Instance.GetTravelGuideRed(), "", -8); if (redPointUpdateFrame == 5) RedDotController.Instance.SetComRedDot(_btnHaoYou, RedDotDataManager.Instance.GetFriendRed(), "", -8); if (redPointUpdateFrame == 6) RedDotController.Instance.SetComRedDot(_btnStore, RedDotDataManager.Instance.GetShopRed(), "", -8); if (redPointUpdateFrame == 7) RedDotController.Instance.SetComRedDot(_ui.m_headBar.m_comHead, RedDotDataManager.Instance.GetHeadRed() || RedDotDataManager.Instance.GetHeadBorderRed(), "", -26, 42); if (redPointUpdateFrame == 8) RedDotController.Instance.SetComRedDot(_btnLeague, RedDotDataManager.Instance.GetLeagueRed(), "", -8); if (redPointUpdateFrame == 9) RedDotController.Instance.SetComRedDot(_ui.m_comListAd.target, RedDotDataManager.Instance.GetDailyWelfareRed(), "", 0, 5); if (redPointUpdateFrame == 10) RedDotController.Instance.SetComRedDot(_ui.m_btnActivityLuckyBox.target, RedDotDataManager.Instance.GetMeiRiTeHuiRed() || RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitLuckyBox) || RedDotDataManager.Instance.GetActLuckyBoxTaskdRed() || RedDotDataManager.Instance.GetActLuckyBoxStudioFilingRed() || RedDotDataManager.Instance.GetGiftBagRewardRed(), "", -21, 2); if (redPointUpdateFrame == 11) RedDotController.Instance.SetComRedDot(_btnBag, RedDotDataManager.Instance.GetMainBagGiftRed(), "", -8); if (redPointUpdateFrame == 12) RedDotController.Instance.SetComRedDot(_ui.m_btnActivityDay7.target, RedDotDataManager.Instance.GetActivityDay7Red(), "", -10, 17); RedDotController.Instance.SetComRedDot(_ui.m_btnWanShiLi.target, RedDotDataManager.Instance.GetActivityWanShiLiRed(), "", -24, -9); if (redPointUpdateFrame == 13) RedDotController.Instance.SetComRedDot(_ui.m_btnXiuFang.target, RedDotDataManager.Instance.GetClothingFosterRed() || RedDotDataManager.Instance.GetClothingSyntheticRed() || CollectPartDataManager.Instance.CheckAllOpenPartCanUP(), "icon_tanhao", -17, 24); if (redPointUpdateFrame == 14) { RedDotController.Instance.SetComRedDot(_ui.m_btnCiPai.target, RedDotDataManager.Instance.GetCardRed(), "icon_tanhao", -44, 33); } if (redPointUpdateFrame == 15) { int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy); Vector2 pos = new Vector2(-30, 20); if (activityId > 0) { pos = Vector2.zero; } RedDotController.Instance.SetComRedDot(_ui.m_btnZhaiXing.target, RedDotDataManager.Instance.GetActLuckyBoxRewardRed(ConstLimitTimeActivityType.ActLimitTsy) || RedDotDataManager.Instance.GetLuckyBoxFreeTimes(), "icon_tanhao", (int)pos.x, (int)pos.y); } //神都宸游 if (redPointUpdateFrame == 16) RedDotController.Instance.SetComRedDot(_ui.m_btnOpenServerActivity.target, RedDotDataManager.Instance.GetOpenServerRed(), "", -21, 2); // 阿福赠礼 if (_ui.m_btnActivityAfuGift.target.visible) { if (redPointUpdateFrame == 17) RedDotController.Instance.SetComRedDot(_ui.m_btnActivityAfuGift.target, ActivityAfuGiftDataManager.Instance.HaveCanGetReward(), "", -39, -6); } //海之市 if (redPointUpdateFrame == 18) { RedDotController.Instance.SetComRedDot(_ui.m_btnHaiZhiShi.target, RedDotDataManager.Instance.GetTravelRed() || TimeTracingDataManager.Instance.GetLevelRewardStatus() || TimeTracingDataManager.Instance.GetAllChapterReward(), "icon_tanhao", -39, 15); } // 新春活动 if (_ui.m_btnTea.target.visible) { if (redPointUpdateFrame == 19) RedDotController.Instance.SetComRedDot(_ui.m_btnTea.target, ActivityTeaDataManager.Instance.GetRewardRed() || ActivityTeaDataManager.Instance.CheckHRDRed() || ActivityTeaDataManager.Instance.GetActivitySyntheticRed() || ActivityTeaDataManager.Instance.CheckVisitTaskRed(), "", -24, -3); } // 招财进宝活动 if (_ui.m_btnActivityZCJB.target.visible) { if (redPointUpdateFrame == 20) RedDotController.Instance.SetComRedDot(_ui.m_btnActivityZCJB.target, ActivityDataManager.Instance.CheckZCJBRed(), "", -12, 5); } // 新年红包活动 if (_ui.m_btnNewYearRedEnvelope.target.visible) { if (redPointUpdateFrame == 21) RedDotController.Instance.SetComRedDot(_ui.m_btnNewYearRedEnvelope.target, NewYearRedEnvelopeDataManager.Instance.CheckNewYearRedEnvelopeRed(), "", -19, 5); } // 元宵活动 if (_ui.m_btnGetYuanXiao.target.visible) { if (redPointUpdateFrame == 22) { RedDotController.Instance.SetComRedDot(_ui.m_btnGetYuanXiao.target , RedDotDataManager.Instance.GetActivityYuanXiaoRed(), "", 0, 0); } } // 逢缘解语活动(华容道小游戏) if (_ui.m_btnActivityFYJY.target.visible) { if (redPointUpdateFrame == 23) { RedDotController.Instance.SetComRedDot(_ui.m_btnActivityFYJY.target , RedDotDataManager.Instance.GetActivityFYJYRed(), "", -15, -1); } } if (redPointUpdateFrame == 24) { RedDotController.Instance.SetComRedDot(_ui.m_btnMain.target , MainStoryDataManager.GetChapterRewardStatus(), "icon_tanhao", -40, 40); } if (redPointUpdateFrame == 25) { RedDotController.Instance.SetComRedDot(_ui.m_btnActivityZQ.target , ActivityDataManager.Instance.TurnTableRewardRed(), "", -15, -1); } redPointUpdateFrame++; if (redPointUpdateFrame > 26) { redPointUpdateFrame = -1; } } /// /// 刷新指定活动的红点 /// /// private void UpdateActivityRedDot(EventContext context) { int activityType = (int)context.data; switch (activityType) { case ActivityType.AfternoonLeisure: if (_ui.m_btnActivityFYJY.target.visible) { RedDotController.Instance.SetComRedDot(_ui.m_btnActivityFYJY.target, RedDotDataManager.Instance.GetActivityFYJYRed(), "", -15, -1, false); } break; } } private void UpdateNewPlayerReward(EventContext context) { ActivitySProxy.ReqGetNewPlayerBonusStatus().Coroutine(); } private void CheckProbabilityUp() { //long curTime = TimeHelper.ServerNow(); //long endTime = TimeUtil.DateTimeToTimestamp("[2024][2][2][00:00]"); //int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitTsy); //if (activityId > 0) //if (endTime >= curTime) // _ui.m_btnZhaiXing.m_ProbabilityUpType.selectedIndex = 1; //else // _ui.m_btnZhaiXing.m_ProbabilityUpType.selectedIndex = 0; } private void CheckGuide(object param) { MainDataManager.Instance.CanSwipe = true; GRoot.inst.touchable = true; if (GuideDataManager.IsGuideFinish(ConstGuideId.FREEDOM_DRESS) <= 0 //|| GuideDataManager.IsGuideFinish(ConstGuideId.CLOTHING_DECOMPOSE) <= 0 //|| GuideDataManager.IsGuideFinish(ConstGuideId.CLOTHING_SYNTHETIC) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_LV) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0 //|| GuideDataManager.IsGuideFinish(ConstGuideId.FIELD) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PORCELAIN) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_1) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_2) <= 0 //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_3) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_5) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.SUIT_LIST_VIEW) <= 0 || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0) { UpdateToCheckGuide(null); } else { _ui.m_loaGuidestudio.visible = false; Timers.inst.Remove(CheckGuide); } } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.FREEDOM_DRESS, 2, "在这里,自由搭配服饰和分享哦~", -1, false); GuideController.TryGuide(_ui.m_btnMain.target, ConstGuideId.ENTER_CHAPTER, 3, "海市蜃楼,镜花水月,是所有故事开始的地方。", -1, false); //GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_DECOMPOSE, 2, "绣坊里增添了新功能。", -1, false); //GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_SYNTHETIC, 1, "进入绣坊界面。", -1, false); //GuideController.TryCompleteGuide(ConstGuideId.CLOTHING_SYNTHETIC, 7); GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_LV, 2, "“词牌”可进行升级和管理。", -1, false); GuideController.TryGuide(_ui.m_btnMain.target, ConstGuideId.ENTER_CHAPTER_1, 2, "", -1, false); GuideController.TryGuide(_ui.m_btnMain.target, ConstGuideId.ENTER_CHAPTER_2, 2, "", -1, false); //GuideController.TryGuide(_ui.m_btnMain.target, ConstGuideId.ENTER_CHAPTER_3, 1, "", -1, false); GuideController.TryGuide(_ui.m_btnMain.target, ConstGuideId.ENTER_CHAPTER_4, 1, "", -1, false); GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_STAR, 2, "“词牌”可进行升星。", -1, false); GuideController.TryGuide(_ui.m_btnMain.target, ConstGuideId.ENTER_CHAPTER_5, 2, "", -1, false); GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.SUIT_LIST_VIEW, 1, "获得套装“国色”或“天衣”服饰后,可进行养护和焕新,到绣坊看看。", -1, false); GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, ConstGuideId.ARENA_OPEN, 2, "新玩法-飞花令开启了哦", -1, false); bool isStudioMetalGuide = GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, ConstGuideId.STUDIO_PORCELAIN, 2, "进入副本", -1, false, _ui.target.height - 700); bool isStudioFilingGuide = GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, ConstGuideId.STUDIO_FILING, 2, "进入副本", -1, false, _ui.target.height - 700); //bool isFieldGuide = GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, ConstGuideId.FIELD, 1, "进入副本", -1, false, _ui.target.height - 700); bool isStudioPropertyGuide = GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, ConstGuideId.STUDIO_PROPERTY, 1, "进入副本", -1, false, _ui.target.height - 700); bool isGuide13 = GuideController.TryGuide(_ui.m_btnXiuFang.target, "ClothingSelectView", 2, "进入绣纺。"); bool isGuide14 = GuideController.TryGuide(_ui.m_btnHaiZhiShi.target, "TimeTracingShowView", 2, "进入副本。"); if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 1) { GuideController.TryGuide(_ui.m_guideBtn, ConstGuideId.SHEZHI_ZHUJIEMBG, 2, "开启背景更换特权"); } _ui.m_loaGuidestudio.visible = false; // if (isStudioMetalGuide || isStudioFilingGuide || isFieldGuide || isStudioPropertyGuide) // { // _ui.m_loaGuidestudio.visible = true; // MainDataManager.Instance.CanSwipe = true; // } // else // { // _ui.m_loaGuidestudio.visible = false; // } } private void MainUIAnimFinished() { // 摘星特效 在未解锁的时候不显示 _ui.m_btnZhaiXing.m_holder1.visible = !_ui.m_btnZhaiXing.m_loaLockIcons.visible; _ui.m_grpLeagueTips.visible = _btnLeague.visible && LeagueDataManager.Instance.CheckLeagueMainTips() != ""; if (_ui.m_grpLeagueTips.visible) { _ui.m_grpLeaguetext.text = LeagueDataManager.Instance.CheckLeagueMainTips(); Vector2 pos = _ui.m_list.TransformPoint(_btnLeague.position, _ui.target); _ui.m_grpLeagueTips.SetPosition(pos.x - _ui.m_grpLeagueTips.width + 20, pos.y + 20, 0); } } private void ChangeAfuActivityState() { _ui.m_btnActivityAfuGift.target.visible = ActivityAfuGiftDataManager.Instance.IsOpen; } private void ResetDailyData() { CheckFunOpen(); OnRedDotChanged(); UpdateHead(); UpdateBtnFirstRecharge(); CheckAutoShowViews(); RefreshBtnNewYearRedEnvelope(); RefreshBtnYuanXiaoActivity(); RefreshBtnActivityFYJY(); RefreshBtnXdmhActivity(); } private void ServerTimeUpdate(object param = null) { long timestamp = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds; if (Math.Abs(TimeHelper.ServerNow() - timestamp) >= 60000) { dateTime = unixStartTime.AddMilliseconds(TimeHelper.ServerNow()); _ui.m_serverTime.text = dateTime.ToString(); _ui.m_serverTime.visible = true; } else { _ui.m_serverTime.visible = false; } } private void HideMainUI() { _ui.m_hide.Play(); } private void ShowMainUI() { _ui.m_show.Play(); } private void OnClickBtnGetYuanXiao() { ViewManager.Show(); } private void OnClickBtnGetZhongQiu() { ViewManager.Show(); } private void OnClickBtnFYJY() { ViewManager.Show(5016); } private void OnClickBtnXDMH() { ViewManager.Show(); } public static bool IsOutsideWorkingHours() { // 获取当前时间 DateTime now = DateTime.Now; // 判断今天是否是星期一到星期五(DayOfWeek.Monday 到 DayOfWeek.Friday) if (now.DayOfWeek >= DayOfWeek.Monday && now.DayOfWeek <= DayOfWeek.Friday) { // 判断当前时间是否在 10:00 到 19:00 之间 if (now.Hour >= 10 && now.Hour < 19) { return false; // 在工作时间内返回 false } } else { // 判断当前时间是否在 10:00 到 19:00 之间 if (now.Hour >= 10 && now.Hour < 11) { return false; // 在工作时间内返回 false } } // 否则,返回 true return true; } private void CheckAutoShowViews() { if (GameConfig.tsStatus > 0) return; //提审时不显示弹窗 if (GuideDataManager.currentGuideId > 0) return; if (GameGlobal.AutoShowCompleted) return; #if !GFGZSB if (LauncherConfig.ChannelId != 101) { int isRegisterRoleInfo = GameGlobal.myNumericComponent.GetAsInt(NumericType.IsRegisterRoleInfo); if (isRegisterRoleInfo == 0) { ViewManager.Show(); return; } } if (IsOutsideWorkingHours()) { if (LauncherConfig.platformId == 1 && LauncherConfig.ChannelId == (int)ChannelID.DouYou) { ViewManager.Show(); return; } } #endif if (!GameGlobal.AfterDataInited) return; if (!ViewManager.CheckIsTopView(this.viewCom)) return; if (RoleDataManager.lvl < 5) return; //if (!TimeUtil.CheckIsSameTime(lastTime * 1000, TimeHelper.ClientNow())) if (GameGlobal.AutoNewPlayersTips) { if (GameGlobal.NewPlayerOnceTips) { ViewManager.Show(); return; } } //招财进宝弹窗 if (GameGlobal.AutoZCJBTips) { GameGlobal.AutoZCJBTips = false; if (ActivityDataManager.Instance.GetCurOpenActiveByType(17) != 0) { ViewManager.Show(); return; } } if (GameGlobal.AutoSevenDayLoginView) { if (ActivityDataManager.Instance.CanGetSevenDayBonus()) { ViewManager.Show(); return; } //GameGlobal.lastLoginTime = GameGlobal.myNumericComponent.GetAsInt(NumericType.OnlineTimeSecs); } if (GameGlobal.AutoDailySignView) { if (RedDotDataManager.Instance.DailySignGot()) { ViewManager.Show(new object[] { 1 }); return; } } //月卡弹窗 暂时屏蔽该两个弹窗 //if (GameGlobal.AutoMonthlyCardView) //{ // GameGlobal.AutoMonthlyCardView = false; // if (GameGlobal.myNumericComponent.GetAsInt(NumericType.IsPropCzykActivity) == 0) // { // long endTime1 = GameGlobal.myNumericComponent.GetAsLong(NumericType.MonthCardGoldEndTime); // long endTime2 = GameGlobal.myNumericComponent.GetAsLong(NumericType.MonthCardBlackGoldEndTime); // if (endTime1 < TimeHelper.ServerNow()) // { // if (endTime2 < TimeHelper.ServerNow()) // { // ViewManager.Show(); // return; // } // } // } //} //活动公告弹窗 if (GameGlobal.AutoAcitivtyTipsLoginView) { GameGlobal.AutoAcitivtyTipsLoginView = false; if (GameGlobal.myNumericComponent.GetAsInt(NumericType.IsPropYchmActivity) == 0) { ViewManager.Show(); return; } } //直购648弹窗 if (GameGlobal.AutoZGTHTips) { if (TimeHelper.ServerNow() > 1724637600000) { return; } GameGlobal.AutoZGTHTips = false; long tips; if (!ActivityDataManager.Instance.TipsStatusDic.TryGetValue(6002, out tips)) { if (ActivityDataManager.Instance.CheckPearRebateTips(6002)) { ViewManager.Show(); return; } } //判断弹窗时间 if (ActivityDataManager.Instance.CheckPearRebateTips(6002) && tips == 0) { ViewManager.Show(); return; } } //直购特惠弹窗 if (GameGlobal.AutoZGTHDCTips) { if (TimeHelper.ServerNow() > 1724637600000) { return; } GameGlobal.AutoZGTHDCTips = false; long tips; if (!ActivityDataManager.Instance.TipsStatusDic.TryGetValue(6001, out tips)) { if (ActivityDataManager.Instance.CheckPearRebateTips(6001)) { ViewManager.Show(); return; } } //判断弹窗时间 if (ActivityDataManager.Instance.CheckPearRebateTips(6001) && tips == 0) { ViewManager.Show(); return; } } //珍珠赠礼弹窗 if (GameGlobal.AutoPearRebateTips) { GameGlobal.AutoPearRebateTips = false; long tips; if (!ActivityDataManager.Instance.TipsStatusDic.TryGetValue(6000, out tips)) { if (ActivityDataManager.Instance.CheckPearRebateTips(6000)) { ViewManager.Show(); return; } } //判断弹窗时间 if (ActivityDataManager.Instance.CheckPearRebateTips(6000) && tips == 0) { ViewManager.Show(); return; } } //if (GameGlobal.AutoSpecialOfferGiftBoxView) //{ // //List shopListId = new List() { 40012, 40013 }; // //if (ShopDataManager.Instance.GetShopIdCanBuyInShop(ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY, shopListId)) // //{ // // ViewManager.Show(new object[] { ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY }); // // return; // //} // if (LimitedTimeGiftBoxDataManager.Instance.SpecialOfferGiftBoxCanBuy()) // { // ViewManager.Show(); // return; // } //} if (FieldDataManager.Instance.waitToShowFieldFightEndView) { ViewManager.Show(); return; } GameGlobal.AutoShowCompleted = true; } } }