using System.Collections.Generic; using ET; namespace GFGGame { public class DailyTaskDataManager : SingletonBase { private Dictionary _livenessBoxInfos = new Dictionary(); // public Dictionary LivenessBoxInfos => _livenessBoxInfos; public void Clear() { _livenessBoxInfos.Clear(); } public void UpdateLivenessBoxInfo(int boxId, int state) { if (!_livenessBoxInfos.ContainsKey(boxId)) { _livenessBoxInfos.Add(boxId, state); } else { _livenessBoxInfos[boxId] = state; } } /// /// 根据宝箱id获取宝箱状态 /// 0不可领取,1可领取,2已领取 /// /// public int GetBoxStateById(int boxId) { //已领取 if (_livenessBoxInfos.ContainsKey(boxId) && _livenessBoxInfos[boxId] == ConstBonusStatus.GOT) return 2; //获取宝箱配置 var cfg = DailyActiveRewardCfgArray.Instance.GetCfg(boxId); if (cfg == null) { Log.Error($"出现了没有配置的宝箱id{boxId}"); return ConstBonusStatus.CAN_NOT_GET; } //判断是否满足领取条件 return RoleDataManager.Liveness >= cfg.count ? ConstBonusStatus.CAN_GET : ConstBonusStatus.CAN_NOT_GET; } /// /// 获取下一个奖励宝箱的活跃度 /// /// public int GetShowLivenessBoxNum() { var cfgs = DailyActiveRewardCfgArray.Instance.dataArray; foreach (var t in cfgs) { if (!_livenessBoxInfos.ContainsKey(t.id) || _livenessBoxInfos[t.id] != ConstBonusStatus.GOT) { return t.count; } } var index = cfgs.Length - 1; return cfgs[index].count; } } }