using System.Collections.Generic; using ET; namespace GFGGame { public class TaskInfo { public int id; public int state;//任务奖励状态 由ConstBonusStatus定义 public int progress;//进度 } public class DailyTaskDataManager : SingletonBase { private Dictionary _taskInfos = new Dictionary(); private Dictionary _livenessBoxInfos = new Dictionary(); public void UpdateTaskInfo(int taskId, TaskInfo info) { if (!_taskInfos.ContainsKey(taskId)) { _taskInfos.Add(taskId, info); } else { _taskInfos[taskId] = info; } } public void UpdateTaskState(int taskId, int state) { _taskInfos[taskId].state = state; } public void UpdateLivenessBoxInfo(int boxId, int state) { if (!_livenessBoxInfos.ContainsKey(boxId)) { _livenessBoxInfos.Add(boxId, state); } else { _livenessBoxInfos[boxId] = state; } } /// /// 获取任务列表 /// /// public List GetDailyTaskCfgs() { List cfgs = new List(); foreach (int key in _taskInfos.Keys) { DailyTaskCfg cfg = DailyTaskCfgArray.Instance.GetCfg(key); cfgs.Add(cfg); } cfgs.Sort((DailyTaskCfg a, DailyTaskCfg b) => { int stateA = _taskInfos[a.id].state == 1 ? 1 : -1; int stateB = _taskInfos[b.id].state == 1 ? 1 : -1; if (stateA > stateB) return -1; if (stateB > stateA) return 1; return _taskInfos[a.id].state.CompareTo(_taskInfos[b.id].state); }); return cfgs; } /// /// 根据任务id获取任务状态 /// 0未完成,1可领取,2已领取 /// /// public int GetTaskStateById(int taskId) { if (!_taskInfos.ContainsKey(taskId)) { return 0; } else { return _taskInfos[taskId].state; } } /// /// 根据宝箱id获取宝箱状态 /// 0未完成,1可领取,2已领取 /// /// public int GetBoxStateById(int boxId) { if (!_livenessBoxInfos.ContainsKey(boxId)) { return 0; } else { return _livenessBoxInfos[boxId]; } } } }