From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/UI/XMainInterfaceTaskHandler.cs | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/UI/XMainInterfaceTaskHandler.cs (limited to 'Client/Assets/Scripts/XMainClient/UI/XMainInterfaceTaskHandler.cs') diff --git a/Client/Assets/Scripts/XMainClient/UI/XMainInterfaceTaskHandler.cs b/Client/Assets/Scripts/XMainClient/UI/XMainInterfaceTaskHandler.cs new file mode 100644 index 00000000..8fec09d1 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/UI/XMainInterfaceTaskHandler.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using KKSG; +using UILib; +using UnityEngine; +using XUtliPoolLib; + +namespace XMainClient.UI +{ + internal class XMainInterfaceTaskHandler : DlgHandlerBase + { + private IXUIScrollView m_ScrollView; + + private IXUIWrapContent m_WrapContent; + + private GameObject m_Emtpy; + + private XTaskDocument doc; + + protected override void Init() + { + base.Init(); + this.m_Emtpy = base.PanelObject.transform.Find("Empty").gameObject; + this.m_ScrollView = (base.PanelObject.transform.Find("Panel").GetComponent("XUIScrollView") as IXUIScrollView); + this.m_WrapContent = (this.m_ScrollView.gameObject.transform.Find("WrapContent").GetComponent("XUIWrapContent") as IXUIWrapContent); + this.doc = XDocuments.GetSpecificDocument(XTaskDocument.uuID); + } + + public override void RegisterEvent() + { + base.RegisterEvent(); + this.m_WrapContent.RegisterItemInitEventHandler(new WrapItemInitEventHandler(this._OnWrapInit)); + this.m_WrapContent.RegisterItemUpdateEventHandler(new WrapItemUpdateEventHandler(this._OnWrapUpdated)); + } + + protected override void OnShow() + { + base.OnShow(); + this.RefreshData(); + } + + private void _OnWrapInit(Transform t, int index) + { + } + + private void _OnWrapUpdated(Transform t, int index) + { + bool flag = index < 0 || index >= this.doc.TaskRecord.Tasks.Count; + if (!flag) + { + XTaskInfo xtaskInfo = this.doc.TaskRecord.Tasks[index]; + TaskTableNew.RowData tableData = xtaskInfo.TableData; + IXUISprite ixuisprite = t.Find("BackDrop").GetComponent("XUISprite") as IXUISprite; + IXUILabel ixuilabel = t.Find("Title").GetComponent("XUILabel") as IXUILabel; + IXUILabelSymbol ixuilabelSymbol = t.Find("Target").GetComponent("XUILabelSymbol") as IXUILabelSymbol; + GameObject gameObject = ixuilabelSymbol.gameObject.transform.Find("Fx").gameObject; + GameObject gameObject2 = ixuilabelSymbol.gameObject.transform.Find("RedPoint").gameObject; + bool flag2 = tableData == null; + if (flag2) + { + ixuisprite.RegisterSpriteClickEventHandler(null); + ixuilabel.SetText(string.Empty); + ixuilabelSymbol.InputText = string.Empty; + gameObject.SetActive(false); + gameObject2.SetActive(false); + } + else + { + ixuisprite.ID = (ulong)xtaskInfo.ID; + ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this._OnTaskClicked)); + ixuilabel.SetText(XSingleton.singleton.StringCombine(XStringDefineProxy.GetString(XSingleton.singleton.StringCombine("TaskTypePrefix", tableData.TaskType.ToString())), tableData.TaskTitle)); + ixuilabelSymbol.InputText = this.doc.ParseTaskDesc(tableData, xtaskInfo, true); + gameObject.SetActive(this.doc.NaviTask == xtaskInfo.ID); + gameObject2.SetActive(false); + bool flag3 = tableData.TaskType == 4u; + if (flag3) + { + gameObject2.SetActive(xtaskInfo.Status == TaskStatus.TaskStatus_CanTake || XSingleton.singleton.GetSysRedPointStateConsiderBlock(XSysDefine.XSys_GuildDailyTask)); + } + bool flag4 = tableData.TaskType == 7u; + if (flag4) + { + gameObject2.SetActive(xtaskInfo.Status == TaskStatus.TaskStatus_CanTake || XSingleton.singleton.GetSysRedPointStateConsiderBlock(XSysDefine.XSys_GuildWeeklyBountyTask)); + } + bool flag5 = tableData.TaskType == 8u; + if (flag5) + { + gameObject2.SetActive(xtaskInfo.Status != TaskStatus.TaskStatus_Finish); + } + } + } + } + + public override void RefreshData() + { + base.RefreshData(); + List tasks = this.doc.TaskRecord.Tasks; + this.m_WrapContent.SetContentCount(tasks.Count, false); + bool flag = tasks.Count == 0; + if (flag) + { + this.m_Emtpy.SetActive(true); + } + else + { + this.m_Emtpy.SetActive(false); + this.m_ScrollView.ResetPosition(); + } + } + + public void RefreshVisibleContents() + { + this.m_WrapContent.RefreshAllVisibleContents(); + } + + private void _OnTaskClicked(IXUISprite iSp) + { + this.doc.DoTask((uint)iSp.ID); + this.m_WrapContent.RefreshAllVisibleContents(); + } + } +} -- cgit v1.1-26-g67d0