using System; using System.Collections.Generic; using ET; using FairyGUI; using UI.CommonGame; using UI.TimeTracing; using UnityEngine; namespace GFGGame { public class TimeTracingSwitchView : BaseWindow { private UI_TimeTracingSwitchUI _ui; private List suitIdList = new List() { 201030, 201010, 202006, 0}; private List chapterIdList = new List() { 61001,62002,62003 ,0}; private List NumStringList = new List() {"", "一", "二", "三", "四", "五" }; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_TimeTracingSwitchUI.PACKAGE_NAME; _ui = UI_TimeTracingSwitchUI.Create(); this.viewCom = _ui.target; isfullScreen = true; modal = true; _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_List.itemRenderer = RenderListItem; _ui.m_List.scrollPane.onScroll.Add(DoSpecialEffect);//滚动时派发事件 } protected override void OnShown() { base.OnShown(); UpdateList(); _ui.m_List.numItems = 6; for(int i = 0;i< suitIdList.Count;i++) { if(TimeTracingDataManager.SuitID == suitIdList[i]) { _ui.m_List.ScrollToView(i, true, true); break; } } DoSpecialEffect(); } protected override void OnHide() { base.OnHide(); } private void RenderListItem(int index, GObject obj) { UI_TimeTracingSwitchItem listItem = UI_TimeTracingSwitchItem.Proxy(obj); int isLock = 1; if (index == 0 || index == _ui.m_List.numItems - 1) { listItem.target.visible = false; UI_TimeTracingSwitchItem.ProxyEnd(); return; } if (index != _ui.m_List.numItems - 2) { listItem.m_TimeTracingSwitchItm.m_periodsNumText.text = "第" + NumStringList[index] + "期"; listItem.m_TimeTracingSwitchItm.m_periodsNameText.text = ""; listItem.m_TimeTracingSwitchItm.m_suitIcon.icon = string.Format("ui://TimeTracing/select{0}",index); listItem.m_TimeTracingSwitchItm.m_waitText.visible = false; } else { listItem.m_TimeTracingSwitchItm.m_periodsNumText.visible = false; listItem.m_TimeTracingSwitchItm.m_periodsNameText.visible = false; listItem.m_TimeTracingSwitchItm.m_suitIcon.icon = ""; listItem.m_TimeTracingSwitchItm.m_waitText.visible = true; } if (index > 1 && index < _ui.m_List.numItems - 2) { int count; int totalCount; DressUpMenuSuitDataManager.GetSuitProgressBySuitId(suitIdList[index - 2], out count, out totalCount); if (count >= totalCount) { isLock = 1; } else { isLock = 0; } } if (listItem.target.data == null) { listItem.target.onClick.Add(OnClickListChapterItem); } RedDotController.Instance.SetComRedDot(listItem.target, TimeTracingDataManager.Instance.GetChapterIDRewardStatus(chapterIdList[index - 1])); listItem.target.data = new List() { index, suitIdList[index - 1], chapterIdList[index - 1], isLock }; UI_TimeTracingSwitchItem.ProxyEnd(); } private void OnClickListChapterItem(EventContext context) { GObject chapterItem = context.sender as GObject; List chapterID = (List)chapterItem.data; StoryChapterCfg chapterCfg = StoryChapterCfgArray.Instance.GetCfg(chapterID[1]); //这里变成-1,是因为调整了item,最左右两边现在有item但是是透明没数据的 int index = chapterID[0]; int firstChildIndex = _ui.m_List.GetFirstChildInView(); if (firstChildIndex + 1 != index) { _ui.m_List.ScrollToView(index - 1, true, true); } else { //if (chapterID[3] == 1) { if(chapterID[0] == _ui.m_List.numItems - 2 || chapterID[1] == 0) { return; } TimeTracingDataManager.SuitID = chapterID[1]; TimeTracingDataManager._currentChapterId = chapterID[2]; EventAgent.DispatchEvent(ConstMessage.TIMETRACINGUPDATE); this.Hide(); } //else //{ // PromptController.Instance.ShowFloatTextPrompt("需集齐前置套装"); // return; //} } } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(TimeTracingSwitchView).FullName); } private void UpdateList() { chapterIdList.Clear(); suitIdList.Clear(); for (int i = 0;i