using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using LitJson; using System.Text.RegularExpressions; using System.Text; using UnityEngine.Events; //任务信息的存储 /** 任务结构 */ public class TaskDetailDates { public int TaskGroup; // 任务组,0-主线 public int TaskID; // 当前任务ID,可能为0,表示该分组暂时没有任务 public int CurValue; // 当前进度值 public int State; // 任务状态 1-进行中 2-可领取 } public enum TaskTypenum//任务类型分类 { MainlineTaskType = 0,//主线 SideQuestsType = 1,//支线 } public class TaskManager : GameSystemManager { //任务组:任务信息;只有任务包没有删除包,可以认为一个任务组只有一个任务 //public Dictionary allMissionDict = new Dictionary(); //主线任务,暂且只处理主线任务 public TaskDetailDates mainTask = new TaskDetailDates(); public event Action OnTaskUpdate; public override void Init() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; } public override void Release() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitialize; } public void OnBeforePlayerDataInitialize() { mainTask = new TaskDetailDates(); } public void UpdateTask(HB110_tagMCTaskInfo netPack) { for (int i = 0; i < netPack.TaskList.Length; i++) { if (netPack.TaskList[i].TaskGroup == 0) { mainTask.TaskGroup = netPack.TaskList[i].TaskGroup; mainTask.TaskID = (int)netPack.TaskList[i].TaskID; mainTask.CurValue = (int)netPack.TaskList[i].CurValue; mainTask.State = netPack.TaskList[i].State; break; } } OnTaskUpdate?.Invoke(); } // 任务状态 1-进行中 2-可领取 public int GetMainTaskState() { return mainTask.State; } }