示例#1
0
    /// <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);
        });
    }
示例#2
0
    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);
    }
示例#3
0
    /// <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);
    }
示例#4
0
    /// <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;
            }
        }
    }