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<TaskManager>
|
{
|
//任务组:任务信息;只有任务包没有删除包,可以认为一个任务组只有一个任务
|
//public Dictionary<int, TaskDetailDates> allMissionDict = new Dictionary<int, TaskDetailDates>();
|
//主线任务,暂且只处理主线任务
|
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;
|
}
|
|
|
}
|