1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System.Collections.Generic;
- using ET;
- namespace GFGGame
- {
- public class DailyTaskDataManager : SingletonBase<DailyTaskDataManager>
- {
- private Dictionary<int, int> _livenessBoxInfos = new Dictionary<int, int>();
- public Dictionary<int, int> 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;
- }
- }
- /// <summary>
- /// 根据宝箱id获取宝箱状态
- /// </summary>0不可领取,1可领取,2已领取
- /// <param name="boxId"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 获取下一个奖励宝箱的活跃度
- /// </summary>
- /// <returns></returns>
- 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;
- }
- }
- }
|