From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- Client/Assets/Scripts/XMainClient/XTaskRecord.cs | 97 ++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XTaskRecord.cs (limited to 'Client/Assets/Scripts/XMainClient/XTaskRecord.cs') diff --git a/Client/Assets/Scripts/XMainClient/XTaskRecord.cs b/Client/Assets/Scripts/XMainClient/XTaskRecord.cs new file mode 100644 index 00000000..fe653a9a --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XTaskRecord.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using KKSG; + +namespace XMainClient +{ + internal class XTaskRecord + { + public List Tasks + { + get + { + return this.m_TaskList; + } + } + + public XTaskInfo MainTask + { + get + { + return this.m_MainTask; + } + } + + private List m_TaskList = new List(); + + private HashSet m_FinishedTasks = new HashSet(); + + private XTaskInfo m_MainTask = null; + + public void InitFromServerData(RoleTask roleTask) + { + this.m_TaskList.Clear(); + this.m_FinishedTasks.Clear(); + bool flag = roleTask == null; + if (!flag) + { + for (int i = 0; i < roleTask.tasks.Count; i++) + { + XTaskInfo xtaskInfo = new XTaskInfo(); + bool flag2 = xtaskInfo.Init(roleTask.tasks[i]); + if (flag2) + { + this.m_TaskList.Add(xtaskInfo); + this._UpdateMainTask(xtaskInfo); + } + } + for (int j = 0; j < roleTask.finished.Count; j++) + { + this.m_FinishedTasks.Add(roleTask.finished[j]); + } + this.m_TaskList.Sort(new Comparison(XTaskDocument.SortInTaskList)); + } + } + + public XTaskInfo AddTask(TaskInfo info) + { + XTaskInfo xtaskInfo = new XTaskInfo(); + bool flag = xtaskInfo.Init(info); + if (flag) + { + this.m_TaskList.Add(xtaskInfo); + this.m_TaskList.Sort(new Comparison(XTaskDocument.SortInTaskList)); + this._UpdateMainTask(xtaskInfo); + } + else + { + xtaskInfo = null; + } + return xtaskInfo; + } + + public void FinishTask(uint taskid) + { + this.m_FinishedTasks.Add(taskid); + bool flag = this.m_MainTask != null && this.m_MainTask.ID == taskid; + if (flag) + { + this.m_MainTask = null; + } + } + + public bool IsTaskFinished(uint taskid) + { + return this.m_FinishedTasks.Contains(taskid); + } + + private void _UpdateMainTask(XTaskInfo info) + { + bool flag = this.m_MainTask == null && info.TableData.TaskType == 1u; + if (flag) + { + this.m_MainTask = info; + } + } + } +} -- cgit v1.1-26-g67d0