using UnityEngine; using FairyGUI; using UI.ActivityAfternoonTea; using System; using Assets.Game.HotUpdate.Data; using ET; namespace GFGGame { public class ActivityTeaVisitView : BaseWindow { private UI_ActivityTeaVisitUI _ui; private int time; private int activityID; private EffectUI _effectUI1; public override void Dispose() { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void Init() { base.Init(); } protected override void OnInit() { base.OnInit(); packageName = UI_ActivityTeaVisitUI.PACKAGE_NAME; _ui = UI_ActivityTeaVisitUI.Create(); viewCom = _ui.target; isfullScreen = true; isReturnView = true; _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_ruleIcon.onClick.Add(RuleController.ShowRuleView); _ui.m_taskList.itemRenderer = RenderTaskList; _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_effectBg, "ui_Activity", "XNBH_BG_tx"); } protected override void OnShown() { base.OnShown(); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("xnbh_bg"); _ui.m_ruleIcon.data = 300028; activityID = 5004; RoleLimitData limitData = RoleLimitDataManager.GetLimitData(ActivityVisitCfgArray.Instance.dataArray[0].limitId); time = limitData.TotalPlayMax - limitData.PlayTimes; _ui.m_visitNum.text = "当前拜访次数:" + time + "/" + limitData.TotalPlayMax; _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray.Length; ActivityOpenCfg _activityCfg = ActivityOpenCfgArray.Instance.GetCfg(activityID); long endTime = TimeUtil.DateTimeToTimestamp(_activityCfg.endTime); long curTime = TimeHelper.ServerNow(); TimeUtil.FormattingTime(curTime, endTime, out int num, out string str); _ui.m_time.text = "剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime); Timers.inst.Add(1, 0, UpdateTime); } protected override void OnHide() { Timers.inst.Remove(UpdateTime); base.OnHide(); } protected override void AddEventListener() { EventAgent.AddEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, UpdateVisitNum); } protected override void RemoveEventListener() { EventAgent.RemoveEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, UpdateVisitNum); } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(ActivityTeaVisitView).FullName); } private void UpdateTime(object param = null) { ActivityOpenCfg _activityCfg = ActivityOpenCfgArray.Instance.GetCfg(activityID); long endTime = TimeUtil.DateTimeToTimestamp(_activityCfg.endTime); long curTime = TimeHelper.ServerNow(); if (endTime < curTime) { PromptController.Instance.ShowFloatTextPrompt("活动已结束"); Timers.inst.Remove(UpdateTime); GameController.GoBackToMainView(); return; } TimeUtil.FormattingTime(curTime, endTime, out int num, out string str); _ui.m_time.text = "剩余时间:" + TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime); } private void UpdateVisitNum(EventContext context = null) { if ((int)context.data != ActivityVisitCfgArray.Instance.dataArray[0].limitId) { return; } RoleLimitData limitData = RoleLimitDataManager.GetLimitData(ActivityVisitCfgArray.Instance.dataArray[0].limitId); time = limitData.TotalPlayMax - limitData.PlayTimes; _ui.m_visitNum.text = "当前拜访次数:" + time + "/" + limitData.TotalPlayMax; } private void RenderTaskList(int index, GObject obj) { UI_ActivityVIsitItemUI item = UI_ActivityVIsitItemUI.Proxy(obj); item.m_head.m_loaIcon.url = ResPathUtil.GetNpcHeadPath(ActivityVisitCfgArray.Instance.dataArray[index].picRes); item.m_name.text = ActivityVisitCfgArray.Instance.dataArray[index].name; if (index != 0) { item.m_unLock.visible = ActivityTeaDataManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? true : false; item.m_lockTitle.visible = ActivityTeaDataManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? true : false; item.m_visitG.visible = ActivityTeaDataManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? false : true; } else { item.m_unLock.visible = false; item.m_lockTitle.visible = false; item.m_visitG.visible = true; } item.m_lockIcon.visible = ActivityTeaDataManager.Instance.NpcInfoList[index].RewrdStatus == 2 ? true : false; item.m_rewardIcon.visible = ActivityTeaDataManager.Instance.NpcInfoList[index].RewrdStatus == 2 ? false : true; if (item.m_visitBtn.target.visible == true) { item.m_visitBtn.m_c1.selectedIndex = ActivityTeaDataManager.Instance.NpcInfoList[index].UnlockStatus == 1 ? 1 : 0; RedDotController.Instance.SetComRedDot(item.m_visitBtn.target, (ActivityTeaDataManager.Instance.NpcInfoList[index].UnlockStatus == 1 && time > 0) || ActivityTeaDataManager.Instance.NpcInfoList[index].RewrdStatus == 1 ||ActivityTeaDataManager.Instance.CheckVisitTaskRed(index+1)); } if(item.m_visitBtn.target.data == null) { item.m_visitBtn.target.onClick.Add(OnClickVisitBtn); } item.m_visitBtn.target.data = index; UI_ActivityVIsitItemUI.ProxyEnd(); } private async void OnClickVisitBtn(EventContext context) { if (!(context.sender is GObject btnVisit)) return; int itemID = (int)btnVisit.data; if (ActivityTeaDataManager.Instance.NpcInfoList[itemID].UnlockStatus == 1) { bool result = await ActivityTeaSProxy.ReqUnLockNPCVisit(5004,itemID+1); if (!result) return; bool res = await ActivityTeaSProxy.ReqGetNPCVisitInfo(5004); if (!res) return; _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray.Length; } ViewManager.Show(itemID); } } }