/// <summary> /// 获取服务器数据 /// </summary> /// <param name="endAction"></param> public static void GetServersData(Action <bool, List <SCGetTaskInfoStruct> > endAction) { CSEmptyGetTaskInfo cSEmptyGetTaskInfo = new CSEmptyGetTaskInfo(); ProtocalManager.Instance().SendCSEmptyGetTaskInfo(new CSEmptyGetTaskInfo(), (data) => { SCGetTaskInfo sCGetTaskInfo = data; List <SCGetTaskInfoStruct> datas = new List <SCGetTaskInfoStruct>(); if (data != null) { for (int i = 0; i < data.TaskInfo.Count; i++) { SCGetTaskInfoStruct datainfo = data.TaskInfo[i]; //datainfo.IsGet = true; datas.Add(datainfo); } } RecordData(true, datas); endAction?.Invoke(true, datas); }, (er) => { RecordData(false, null); endAction?.Invoke(false, null); }); }
public static bool IsOpenDot() { bool isOpen = false; Dictionary <int, TaskDefine> allDataDic = GetAllData(); Dictionary <int, SCGetTaskInfoStruct> sCGetTaskInfoStructDic = new Dictionary <int, SCGetTaskInfoStruct>(); for (int i = 0; i < _sCGetTaskInfoStructs.Count; i++) { SCGetTaskInfoStruct infoStruct = _sCGetTaskInfoStructs[i]; if (sCGetTaskInfoStructDic.ContainsKey(infoStruct.TaskID)) { sCGetTaskInfoStructDic[infoStruct.TaskID] = infoStruct; } else { sCGetTaskInfoStructDic.Add(infoStruct.TaskID, infoStruct); } } int finishIndex = 0; foreach (var item in sCGetTaskInfoStructDic) { if (allDataDic.ContainsKey(item.Key)) { if (item.Value.Schedule >= allDataDic[item.Key].FinishNum && !item.Value.IsGet) { finishIndex = finishIndex + 1; } } } if (finishIndex >= allDataDic.Count) { isOpen = false; _isOpenTaskTag = false; } else { //更新状态 foreach (var item in allDataDic) { if (sCGetTaskInfoStructDic.ContainsKey(item.Key)) { if (sCGetTaskInfoStructDic[item.Key].IsGet) { isOpen = true; _isOpenTaskTag = true; return(isOpen); } } } //没有可以领取的任务 isOpen = false; _isOpenTaskTag = false; return(isOpen); } return(isOpen); }
/// <summary> /// 领取奖励 /// </summary> /// <param name="taskIds"></param> /// <param name="awardData"></param> public void GetAward(SCGetTaskAward awardData) { Dictionary <int, SCGetTaskInfoStruct> dataDic = new Dictionary <int, SCGetTaskInfoStruct>(); foreach (var item in _sCGetTaskInfoStructDic) { dataDic.Add(item.Key, item.Value); } if (awardData == null) { return; } for (int i = 0; i < awardData.TaskIDList.Count; i++) { int id = awardData.TaskIDList[i]; if (_allDataDic.ContainsKey(id)) { if (dataDic.ContainsKey(id)) { dataDic[id].IsGet = false; dataDic[id].Schedule = _allDataDic[id].FinishNum; } else { SCGetTaskInfoStruct sCGetTaskInfoStruct = new SCGetTaskInfoStruct(); sCGetTaskInfoStruct.TaskID = id; sCGetTaskInfoStruct.IsGet = false; sCGetTaskInfoStruct.Schedule = _allDataDic[id].FinishNum; switch (_allDataDic[id].TaskType) { case Company.Cfg.TaskType.None: sCGetTaskInfoStruct.Type = Game.Protocal.TaskType.None; break; case Company.Cfg.TaskType.GuidanceTask: sCGetTaskInfoStruct.Type = Game.Protocal.TaskType.GuidanceTaskType; break; case Company.Cfg.TaskType.DailyTask: sCGetTaskInfoStruct.Type = Game.Protocal.TaskType.DailyTaskType; break; } dataDic.Add(id, sCGetTaskInfoStruct); } } } AwardBePutInStorage(awardData.AwardInfo); List <SCGetTaskInfoStruct> sCGetTaskInfoStructs = new List <SCGetTaskInfoStruct>(); foreach (var item in dataDic) { sCGetTaskInfoStructs.Add(item.Value); } GetServersDataAction(true, sCGetTaskInfoStructs); }
/// <summary> /// 获取服务器数据回调 /// </summary> /// <param name="isSucceed"></param> /// <param name="datas"></param> public async void GetServersDataAction(bool isSucceed, List <SCGetTaskInfoStruct> datas) { if (isSucceed) { _sCGetTaskInfoStructDic.Clear(); _sCGetTaskInfoStructs.Clear(); _sCGetTaskInfoStructs.AddRange(datas); for (int i = 0; i < _sCGetTaskInfoStructs.Count; i++) { SCGetTaskInfoStruct data = _sCGetTaskInfoStructs[i]; if (!_sCGetTaskInfoStructDic.ContainsKey(data.TaskID)) { _sCGetTaskInfoStructDic.Add(data.TaskID, data); } } } else { Debug.Log("获取服务器任务数据失败"); } //刷新面板 RefreshCurrItemS(); await UniTask.Delay(TimeSpan.FromMilliseconds(100)); //初始判断是否开启新手任务面板左右按钮是否打开 TyroTaskBoxSlideEndDrag(); if (_currPagingIndex == -1) { if (!StaticData.IsOpenFunction(10014, false)) { ClickTryoTaskToggle(true); //PlayVideo(); 注释掉多余调用 } else { ClickDailyTaskToggle(true); } } else { switch (_currPagingIndex) { case 0: ClickDailyTaskToggle(true); break; case 1: ClickTryoTaskToggle(true); //PlayVideo(); break; } } }