Пример #1
0
 public void OnSendGetAchivement()
 {
     ServerDataUtilSend.SendPacketAPI_GetMasterDataAchievement(groupId, page, sortType).
     setSuccessAction(_data =>
     {
         Debug.LogError("FINISH");
         RecvMasterDataAchievementValue recvMasterDataAchievementValueTest = (RecvMasterDataAchievementValue)_data.GetResult <RecvMasterDataAchievement>().result;
     }).
     setErrorAction(_data =>
     {
         Debug.LogError("ERROR:" + _data.m_PacketCode);
     }).
     SendStart();
 }
Пример #2
0
    private void sendMissionGet(System.Action callback = null)
    {
        m_QuestDetailMission.MissionList.Clear();
        ServerDataUtilSend.SendPacketAPI_GetMasterDataAchievement(4, 0, 0, MainMenuParam.m_QuestSelectMissionID)
        .setSuccessAction(_data =>
        {
            RecvMasterDataAchievementValue _result = _data.GetResult <RecvMasterDataAchievement>().result;

            MasterDataAchievementConverted[] achievementArray = _result.master_array_achievement;
            // 未達成と達成済みを分ける
            List <MasterDataAchievementConverted> notAchievedList = new List <MasterDataAchievementConverted>();
            List <MasterDataAchievementConverted> achievedList    = new List <MasterDataAchievementConverted>();
            for (int i = 0; i < achievementArray.Length; ++i)
            {
                if (achievementArray[i].IsState_Achieve)
                {
                    achievedList.Add(achievementArray[i]);
                }
                else
                {
                    notAchievedList.Add(achievementArray[i]);
                }
            }

            // 未達成と達成済みを結合する
            notAchievedList.AddRange(achievedList);
            achievementArray = notAchievedList.ToArray();

            int clearCount = 0;
            for (int i = 0; i < achievementArray.Length; i++)
            {
                MasterDataAchievementConverted _master = achievementArray[i];
                QuestMissionContext newMission         = new QuestMissionContext();
                newMission.Title    = _master.draw_msg;
                newMission.ItemName = _master.PresentName;
                newMission.Count    = (int)_master.ProgressCount;
                newMission.CountMax = (int)_master.TotalCount;
                _master.GetPresentIcon(sprite => { newMission.IconImage = sprite; });
                newMission.IsActiveLeftTime = false;
                newMission.ItemValue        = (_master.PresentCount > 0) ? _master.PresentCount.ToString() : "";

                if (_master.event_id != 0)
                {
                    uint unTimingEnd = MainMenuUtil.GetEventTimingEnd(_master.event_id);

                    if (unTimingEnd != 0)
                    {
                        DateTime endTime            = TimeUtil.GetDateTime(unTimingEnd);
                        DateTime nowTime            = TimeManager.Instance.m_TimeNow;
                        TimeSpan leftTime           = endTime - nowTime;
                        newMission.LeftValue        = GameTextUtil.GetRemainStr(leftTime, GameTextUtil.GetText("general_time_01"));
                        newMission.IsActiveLeftTime = true;
                    }
                }
                if (_master.IsState_Achieve)
                {
                    newMission.Count = newMission.CountMax;
                    clearCount++;
                }
                m_QuestDetailMission.MissionList.Add(newMission);
            }
            m_QuestDetailMission.Count    = clearCount;
            m_QuestDetailMission.CountMax = achievementArray.Length;

            if (callback != null)
            {
                callback();
            }
        })
        .setErrorAction(_data =>
        {
            if (callback != null)
            {
                callback();
            }
        })
        .SendStart();
    }
Пример #3
0
    public void Activate(int pageNo = 1, Action finishAction = null)
    {
#if BUILD_TYPE_DEBUG
        Debug.Log("Call MissionGroup#Activate:" + missionGroupType + ":" + pageNo);
#endif
        if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED)
        {
            mission.filterButton.SetActive(false);
            mission.receivedItemDisplayLimtText.gameObject.SetActive(true);
            mission.receivedItemDisplayLimtText.text = GameTextUtil.GetText("RECEIVED_ITEM_DISPLAY_LIMIT");
        }
        else
        {
            mission.filterButton.SetActive(true);
            mission.receivedItemDisplayLimtText.gameObject.SetActive(false);
        }

        Pager.onClickLeftArrow = () =>
        {
            Prev();
        };
        Pager.onClickRightArrow = () =>
        {
            Next();
        };

        //---------------------------------------
        // 一括受け取りボタンの表示設定
        //---------------------------------------
        if (CheckViewRecevieAllButtonType(missionGroupType) == false)
        {
            SetEnableRecevieAllButton(MasterDataDefineLabel.BoolType.NONE);
        }
        else
        {
            SetEnableRecevieAllButton((m_isReword) ? MasterDataDefineLabel.BoolType.ENABLE : MasterDataDefineLabel.BoolType.DISABLE);
        }

        uint p = (uint)missionGroupType;
        if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED)
        {
            p = (uint)ACHIEVEMENT_CATEGORY_TYPE.NORMAL;
        }

        uint filterType = (uint)MasterDataDefineLabel.AchievementFilterType.ALL;
        if (mission.m_FilterInfo != null)
        {
            filterType = (uint)mission.m_FilterInfo.m_filter_type;
        }

        StartCoroutine(WaitSentStart(() =>
        {
            ServerDataUtilSend.SendPacketAPI_GetMasterDataAchievement(p, (uint)pageNo, 0, 0, filterType).
            setSuccessAction(_data =>
            {
#if BUILD_TYPE_DEBUG
                Debug.Log("FINISH");
#endif
                mission.CurrentMissionGroup             = this;
                RecvMasterDataAchievementValue response = (RecvMasterDataAchievementValue)_data.GetResult <RecvMasterDataAchievement>().result;

                if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED)
                {
                    Collection = response.clear_array_achievement.ToList();
                }
                else
                {
                    Collection = response.master_array_achievement.ToList();
                }

                UpdateGetReword();

                //タブについているバッジの更新
                mission.SetBadgeNum(response.achievement_category_clear_num.clear_num_1, response.achievement_category_clear_num.clear_num_2, response.achievement_category_clear_num.clear_num_3);

                if (Collection.Count == 0)
                {
                    emptyMessage.enabled = true;
                    Pager.Refresh(0, 0);
                    return;
                }

                //Pagerの更新
                if (missionGroupType == ACHIEVEMENT_CATEGORY_TYPE.REWARDED)
                {
                    Pager.Refresh(pageNo, REWARDED_COUNT_MAX);
                }
                else
                {
                    Pager.Refresh(pageNo, response.achievement_all_num);
                }
            }).
            setErrorAction(_data =>
            {
                Debug.LogError("ERROR:" + _data.m_PacketCode);
                SetEnaleReceiveButtonAll(true);
            }).
            SendStart();
        }));
    }