123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- 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<DailyTaskDataManager>
- {
- private Dictionary<int, TaskInfo> _taskInfos = new Dictionary<int, TaskInfo>();
- public Dictionary<int, TaskInfo> TaskInfo
- {
- get
- {
- return _taskInfos;
- }
- }
- private Dictionary<int, int> _livenessBoxInfos = new Dictionary<int, int>();
- public Dictionary<int, int> LivenessBoxInfos
- {
- get
- {
- return _livenessBoxInfos;
- }
- }
- 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;
- }
- }
- /// <summary>
- /// 获取任务列表
- /// </summary>
- /// <returns></returns>
- public List<DailyTaskCfg> GetDailyTaskCfgs()
- {
- List<DailyTaskCfg> cfgs = new List<DailyTaskCfg>();
- 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;
- }
- /// <summary>
- /// 根据任务id获取任务状态
- /// </summary>0未完成,1可领取,2已领取
- /// <param name="taskId"></param>
- /// <returns></returns>
- public int GetTaskStateById(int taskId)
- {
- if (!_taskInfos.ContainsKey(taskId))
- {
- return 0;
- }
- else
- {
- return _taskInfos[taskId].state;
- }
- }
- /// <summary>
- /// 根据任务id获取任务进度
- /// </summary>
- /// <param name="taskId"></param>
- /// <returns></returns>
- public int GetTaskProgressById(int taskId)
- {
- if (!_taskInfos.ContainsKey(taskId))
- {
- return 0;
- }
- else
- {
- return _taskInfos[taskId].progress;
- }
- }
- /// <summary>
- /// 根据宝箱id获取宝箱状态
- /// </summary>0未完成,1可领取,2已领取
- /// <param name="taskId"></param>
- /// <returns></returns>
- public int GetBoxStateById(int boxId)
- {
- if (!_livenessBoxInfos.ContainsKey(boxId))
- {
- return 0;
- }
- else
- {
- return _livenessBoxInfos[boxId];
- }
- }
- public string GetTaskDesc(int taskId)
- {
- DailyTaskCfg taskCfg = DailyTaskCfgArray.Instance.GetCfg(taskId);
- DailyTaskTypeCfg activeRewardCfg = DailyTaskTypeCfgArray.Instance.GetCfg(taskCfg.type);
- switch ((ConstDailyTaskType)activeRewardCfg.id)
- {
- case ConstDailyTaskType.CompleteInstanceZones:
- string name = "";
- name = EctypeCfgArray.Instance.GetCfgs(taskCfg.paramsArr[0])[0].typeName;
- if (taskCfg.paramsArr.Length > 1)
- {
- name = EctypeCfgArray.Instance.GetCfgBytypeAndsubType(taskCfg.paramsArr[0], taskCfg.paramsArr[1]).subName;
- }
- return string.Format(activeRewardCfg.desc, taskCfg.count, name);
- case ConstDailyTaskType.UseItem:
- ItemCfg cfg = ItemCfgArray.Instance.GetCfg(taskCfg.paramsArr[0]);
- return string.Format(activeRewardCfg.desc, taskCfg.count, cfg.name);
- case ConstDailyTaskType.UpgradeCardLvl:
- case ConstDailyTaskType.PlayLuckBox:
- return string.Format(activeRewardCfg.desc, taskCfg.count);
- }
- return "";
- }
- /// <summary>
- /// 获取下一个奖励宝箱的活跃度
- /// </summary>
- /// <returns></returns>
- public int GetShowLivenessBoxNum()
- {
- DailyActiveRewardCfg[] cfgs = DailyActiveRewardCfgArray.Instance.dataArray;
- for (int i = 0; i < cfgs.Length; i++)
- {
- if (!_livenessBoxInfos.ContainsKey(cfgs[i].id) || _livenessBoxInfos[cfgs[i].id] != ConstBonusStatus.GOT)
- {
- return cfgs[i].count;
- }
- }
- int index = cfgs.Length - 1;
- return cfgs[index].count;
- }
- }
- }
|