| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System.Collections.Generic;
- using GFGGame;
- using MongoDB.Bson.Serialization.Attributes;
- using MongoDB.Bson.Serialization.Options;
- namespace ET
- {
- public class TaskInfosComponent : Entity, IAwake, IDestroy, IDeserialize, ITransfer, IUnitCache, IConfigHotLoad
- {
- public string StrId = "";
- //解锁的任务列表,不能单独添加和移除,必须使用封装的AddContainer、RemoveContainer、GetTaskInfo访问操作
- [BsonIgnore] public Dictionary<int, TaskInfo> TaskInfosDic = new Dictionary<int, TaskInfo>();
- //已解锁的任务类型对应的任务id列表,这里的类型为 功能类型TaskCfg.funcType定义
- [BsonIgnore] public readonly MultiMapSet<int, int> FuncType2TaskIds = new MultiMapSet<int, int>();
- //初始化时遍历任务数量,用来判断热加载配置后,任务数量是否变化,未变化就不需要重置未解锁列表
- [BsonIgnore] public int LastInitCount = 0;
- //未解锁的任务列表
- [BsonIgnore] public HashSet<int> LockTasks = new HashSet<int>();
- //待同步的任务列表
- [BsonIgnore] public readonly Queue<int> SyncTasks = new Queue<int>();
- //任务每日状态记录,用于每天只记一次进度的任务
- [BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
- public Dictionary<int, int> DailyCountDic = new Dictionary<int, int>();
- //待同步的任务分类,用于通知进度
- [BsonIgnore] public readonly UniqueQueue<int> SyncTaskAchievementTypes = new UniqueQueue<int>();
- //用于记录已经载入TaskInfosDic的任务分类 <LoadGroupTaskTypeFormat>
- [BsonIgnore] public HashSet<string> LoadGroupTaskTypes = new HashSet<string>();
- //LoadGroupTaskTypes -> funcType-achievementType-achievementSubType
- [BsonIgnore] public const string LoadGroupTaskTypeFormat = "{0}-{1}-{2}";
- // //成就任务分组
- // [BsonIgnore] public MultiMapSet<string, TaskInfo> GroupTaskType2TaskInfos = new MultiMapSet<string, TaskInfo>();
- //成就任务完成数量,<achievementType,完成数量>
- [BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
- public Dictionary<int, int> AcTypeCoutDic = new Dictionary<int, int>();
- }
- }
|