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 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; _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray.Length; RoleLimitData limitData = RoleLimitDataManager.GetLimitData(ActivityVisitCfgArray.Instance.dataArray[0].limitId); time = limitData.TotalPlayMax - limitData.PlayTimes; _ui.m_visitNum.text = "当前拜访次数:" + time + "/" + limitData.TotalPlayMax; long timeActivity = ActivityTeaDataManager.Instance.GetEndTime(ActivityType.NewYearVisit) - TimeHelper.ServerNow(); _ui.m_time.text = timeActivity > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(timeActivity) : TimeUtil.FormattingTimeTo_HHmmss(timeActivity); Timers.inst.Add(60.0f, 0, UpdateTime); } protected override void OnHide() { Timers.inst.Remove(UpdateTime); base.OnHide(); } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(ActivityTeaVisitView).FullName); } private void UpdateTime(object param = null) { long timeActivity = ActivityTeaDataManager.Instance.GetEndTime(ActivityType.NewYearVisit) - TimeHelper.ServerNow(); _ui.m_time.text = timeActivity > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(timeActivity) : TimeUtil.FormattingTimeTo_HHmmss(timeActivity); } 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 = MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? true : false; item.m_lockTitle.visible = MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 0 ? true : false; item.m_visitG.visible = MiniGameDateManager.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 = MiniGameDateManager.Instance.NpcInfoList[index].RewrdStatus == 2 ? true : false; if (item.m_visitBtn.target.visible == true) { item.m_c1.selectedIndex = MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 1? 1:0; RedDotController.Instance.SetComRedDot(item.m_visitBtn.target, (MiniGameDateManager.Instance.NpcInfoList[index].UnlockStatus == 1 && time > 0)); } 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 (MiniGameDateManager.Instance.NpcInfoList[itemID].UnlockStatus == 1) { bool result = await ActivityTeaSProxy.ReqUnLockNPCVisit(5004,itemID+1); if (!result) return; _ui.m_taskList.numItems = ActivityVisitCfgArray.Instance.dataArray.Length; } ViewManager.Show(itemID); } } }