Esempio n. 1
0
    private void openScoreInfo()
    {
        if (m_ScoreDialog != null ||
            ServerApi.IsExists)
        {
            return;
        }

        SoundUtil.PlaySE(SEID.SE_MENU_OK);

        m_ScoreDialog = ScoreEventDialog.Create(SceneObjReferMainMenu.Instance.m_MainMenuGroupCamera.GetComponent <Camera>());

        int[] event_ids = new int[scoreEventList.Count];
        for (int i = 0; i < scoreEventList.Count; i++)
        {
            event_ids[i] = (int)scoreEventList[i].event_id;
        }
        ServerDataUtilSend.SendPacketAPI_GetUserScoreInfo(event_ids)
        .setSuccessAction((data) =>
        {
            RecvGetUserScoreInfo scoreInfo = data.GetResult <RecvGetUserScoreInfo>();
            if (scoreInfo != null &&
                scoreInfo.result != null &&
                scoreInfo.result.score_infos != null)
            {
                for (int i = 0; i < scoreInfo.result.score_infos.Length; i++)
                {
                    PacketStructUserScoreInfo Info = scoreInfo.result.score_infos[i];
                    if (Info == null)
                    {
                        continue;
                    }

                    MasterDataScoreEvent scoreEventMaster = scoreEventList.Find((m) => m.event_id == Info.event_id);
                    if (scoreEventMaster == null)
                    {
                        continue;
                    }

                    m_ScoreDialog.addScoreInfo(Info, scoreEventMaster);
                }


                bool isTutorial = (LocalSaveManagerRN.Instance.GetIsShowTutorialDialog(TutorialDialog.FLAG_TYPE.SCORE) == false);
                if (isTutorial)
                {
#if BUILD_TYPE_DEBUG
                    Debug.LogError(string.Format("チュートリアルを表示する FLAG_TYPE:{0}", TutorialDialog.FLAG_TYPE.SCORE.ToString()));
#endif
                    TutorialDialog.Create().SetTutorialType(TutorialDialog.FLAG_TYPE.SCORE).Show(() =>
                    {
                        isTutorial = false;
                    });
                }

                m_HomeMenu.IsViewScoreInfo = false;
                m_ScoreDialog.Show(() =>
                {
                    m_ScoreDialog = null;
                    m_HomeMenu.IsViewScoreInfo = true;
                });
            }
            else
            {
                DestroyObject(m_ScoreDialog.gameObject);
                m_ScoreDialog = null;

                Dialog errorDialog = Dialog.Create(DialogType.DialogOK);
                errorDialog.SetDialogText(DialogTextType.Title, "警告");
                errorDialog.SetDialogText(DialogTextType.MainText, "スコアイベントは開催されていません。");
                errorDialog.SetDialogText(DialogTextType.OKText, "閉じる");
                errorDialog.SetDialogEvent(DialogButtonEventType.OK, () =>
                {
                    m_HomeMenu.IsViewScoreInfo = false;
                });
                errorDialog.Show();
            }
        })
        .setErrorAction((data) =>
        {
            DestroyObject(m_ScoreDialog.gameObject);
            m_ScoreDialog = null;
        })
        .SendStart();
    }
Esempio n. 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();
    }
Esempio n. 3
0
    //----------------------------------------------------------------------------

    /*!
     *          @brief	通信処理
     */
    //----------------------------------------------------------------------------
    private void ServerCommunicate()
    {
        //--------------------------------
        // サーバーに送る情報を構築
        //--------------------------------
        uint unQuestID    = (uint)MainMenuParam.m_QuestSelectMissionID;
        uint unQuestState = 0;

        if (MainMenuParam.m_QuestSelectAreaAmendStamina != 100)
        {
            unQuestState = (int)MasterDataDefineLabel.AmendType.STAMINA;
        }                                                                                                                           // エリア補正タイプ:補正:スタミナ半減
        else if (MainMenuParam.m_QuestSelectAreaAmendEXP != 100)
        {
            unQuestState = (int)MasterDataDefineLabel.AmendType.EXP;
        }                                                                                                                       // エリア補正タイプ:補正:経験値アップ
        else if (MainMenuParam.m_QuestSelectAreaAmendCoin != 100)
        {
            unQuestState = (int)MasterDataDefineLabel.AmendType.MONEY;
        }                                                                                                                           // エリア補正タイプ:補正:コイン
        else if (MainMenuParam.m_QuestSelectAreaAmendDrop != 100)
        {
            unQuestState = (int)MasterDataDefineLabel.AmendType.DROP;
        }                                                                                                                       // エリア補正タイプ:補正:ドロップ率
        else if (MainMenuParam.m_QuestSelectAreaAmendTicket != 100)
        {
            unQuestState = (int)MasterDataDefineLabel.AmendType.TICKET;
        }                                                                                                                           // エリア補正タイプ:補正:チケット

        //----------------------------------------
        // 選択されている助っ人を取得
        //----------------------------------------
        //		PacketStructFriend cHelper = UserDataAdmin.Instance.SearchHelper( MainMenuParam.m_QuestHelperUserID );
        PacketStructFriend cHelper = MainMenuParam.m_QuestHelper;

        if (cHelper == null)
        {
            Debug.LogError("SelectFriendNone");
            return;
        }

        //----------------------------------------
        // フレンド使用のサイクルをもとにFP発生判定。
        // ここでも使用宣言が走るので使用情報を書き込んでおく
        //----------------------------------------
        // 指定のフレンドがフレンドポイント取得可能かどうか
        // bugweb3907対応、以前はクエストの取得可能情報も得ていたが、サーバーサイドに移動し、フレンドのみ見るように
        bool bFriendPointActive = (LocalSaveManager.Instance.GetLocalSaveUseFriend(cHelper.user_id) == null);

        //----------------------------------------
        // フレンドポイント付与情報をセーブ。
        //----------------------------------------
        uint unGetFriendPt = 0;

        if (bFriendPointActive == true)
        {
            // フレンドポイントを取得
            unGetFriendPt = MainMenuUtil.GetSelectFriendPoint(cHelper, MainMenuParam.m_QuestEventFP);
        }
        LocalSaveManager.Instance.SaveFuncQuestFriendPointActive(unGetFriendPt, UserDataAdmin.Instance.m_StructPlayer.have_friend_pt);

        //----------------------------------------
        //エリア補正リストを取得
        //----------------------------------------
        TemplateList <MasterDataAreaAmend> AreaAmendList = MainMenuParam.m_QuestAreaAmendList;

        uint[] aunAreaAmendID = new uint[AreaAmendList.m_BufferSize];

        for (int cnt = 0; cnt < AreaAmendList.m_BufferSize; cnt++)
        {
            aunAreaAmendID[cnt] = AreaAmendList[cnt].fix_id;
        }


        bool             is_auto_play = false;
        MasterDataQuest2 master       = MasterDataUtil.GetQuest2ParamFromID(unQuestID);

        if (master.enable_autoplay != MasterDataDefineLabel.BoolType.ENABLE)
        {
            LocalSaveOption cOption = LocalSaveManager.Instance.LoadFuncOption();
            is_auto_play = (cOption.m_OptionAutoPlayEnable == (int)LocalSaveDefine.OptionAutoPlayEnable.ON);
        }

        //--------------------------------
        // API通信リクエスト発行
        //--------------------------------
        switch (MasterDataUtil.GetQuestType(unQuestID))
        {
        case MasterDataDefineLabel.QuestType.NORMAL:
        {
            ServerDataUtilSend.SendPacketAPI_Quest2Start(
                unQuestID
                , unQuestState
                , cHelper.user_id
                , cHelper.unit
                , bFriendPointActive
                , UserDataAdmin.Instance.m_StructPlayer.unit_party_current
                , MainMenuParam.m_QuestEventFP
                , (MainMenuParam.m_BeginnerBoost != null) ? (int)MainMenuParam.m_BeginnerBoost.fix_id : 0
                , aunAreaAmendID
                , is_auto_play
                , cHelper.unit_link
                )
            .setSuccessAction(_data =>
                {
                    requestSuccessQuest2(_data);
                })
            .setErrorAction(_data =>
                {
                    requestError(_data);
                })
            .SendStart();
        }
        break;

        case MasterDataDefineLabel.QuestType.CHALLENGE:
        {
            ServerDataUtilSend.SendPacketAPI_ChallengeQuestStart(
                unQuestID
                , (uint)MainMenuParam.m_ChallengeQuestLevel
                , MainMenuParam.m_bChallengeQuestSkip
                , unQuestState
                , cHelper.user_id
                , cHelper.unit
                , bFriendPointActive
                , UserDataAdmin.Instance.m_StructPlayer.unit_party_current
                , MainMenuParam.m_QuestEventFP
                , (MainMenuParam.m_BeginnerBoost != null) ? (int)MainMenuParam.m_BeginnerBoost.fix_id : 0
                , aunAreaAmendID
                , is_auto_play
                , cHelper.unit_link
                )
            .setSuccessAction(_data =>
                {
                    requestSuccessChallengeQuest(_data);
                })
            .setErrorAction(_data =>
                {
                    requestError(_data);
                })
            .SendStart();
        }
        break;

        case MasterDataDefineLabel.QuestType.NONE:
            break;

        default:
            break;
        }
    }
    /// <summary>
    /// 成長ボス情報取得API呼び出し
    /// </summary>
    private void sendGetUserChallenge()
    {
        List <MasterDataChallengeEvent> eventList = MasterDataUtil.GetActiveChallengeEvent();

        if (eventList == null ||
            eventList.Count == 0)
        {
            //有効なデータがない
            openReturnHomeDialog();
            return;
        }

        int[] event_ids = new int[eventList.Count];
        for (int i = 0; i < eventList.Count; i++)
        {
            event_ids[i] = (int)eventList[i].event_id;
        }

        ServerDataUtilSend.SendPacketAPI_GetChallengeInfo(event_ids)
        .setSuccessAction((data) =>
        {
            //
            m_ChallengeSelect.ClearAll();

            RecvGetChallengeInfo challengeInfo = data.GetResult <RecvGetChallengeInfo>();
            if (challengeInfo != null &&
                challengeInfo.result != null &&
                challengeInfo.result.challenge_infos != null)
            {
                for (int i = 0; i < challengeInfo.result.challenge_infos.Length; i++)
                {
                    PacketStructChallengeInfo info = challengeInfo.result.challenge_infos[i];
                    if (info == null)
                    {
                        continue;
                    }

                    MasterDataChallengeEvent master = eventList.Find((m) => m.event_id == info.event_id);
                    if (master == null)
                    {
                        continue;
                    }

                    m_ChallengeSelect.AddEventData(master, info);
                }
            }
            if (m_ChallengeSelect.Events.Count != 0)
            {
                uint select_event_id = m_ChallengeSelect.Events[0].eventMaster.event_id;

                //
                if (MainMenuParam.m_ChallengeQuestMissionID != 0 &&
                    MasterDataUtil.GetQuestType(MainMenuParam.m_ChallengeQuestMissionID) == MasterDataDefineLabel.QuestType.CHALLENGE)
                {
                    MasterDataChallengeQuest master = (MasterDataChallengeQuest)MasterDataUtil.GetQuest2ParamFromID(MainMenuParam.m_ChallengeQuestMissionID);
                    if (master != null)
                    {
                        select_event_id = (uint)master.event_id;
                    }
                }

                m_ChallengeSelect.setup(select_event_id);
            }
            else
            {
                //有効なデータがない
                openReturnHomeDialog();
            }
        })
        .setErrorAction((data) =>
        {
            //エラー
        })
        .SendStart();
    }
Esempio n. 5
0
 /// <summary>
 /// API開始:フレンド一覧取得
 /// </summary>
 void SendGetFriendList()
 {
     ServerDataUtilSend.SendPacketAPI_FriendListGet().setSuccessAction(ReceiveGetFriendListSuccess).setErrorAction(ReceiveGetFriendListError).SendStart();
 }
Esempio n. 6
0
    // Update is called once per frame
    void Update()
    {
        if (DebugOptionInGame.Instance == null)
        {
            return;
        }

        if (m_TestGameManager == null)
        {
            return;
        }

        switch (m_Status)
        {
        case eStatus.API_QUEST_START:
        {
            if (DebugOptionInGame.Instance.inGameDebugDO.m_UseAPI == true)
            {
                m_HelperIndex = RandManager.GetRand(0, (uint)(UserDataAdmin.Instance.m_StructHelperList.Length - 1));
                PacketStructFriend cHelper = null;
                if (UserDataAdmin.Instance.m_StructFriendList.Length > 0 &&
                    UserDataAdmin.Instance.m_StructFriendList[0] != null)
                {
                    cHelper = UserDataAdmin.Instance.m_StructFriendList[0];
                }
                else if (UserDataAdmin.Instance.m_StructHelperList.Length > 0)
                {
                    cHelper = UserDataAdmin.Instance.m_StructHelperList[m_HelperIndex];
                }
                {
                    ServerDataUtilSend.SendPacketAPI_Quest2Start(
                        DebugOptionInGame.Instance.inGameDebugDO.m_QuestId,
                        0,
                        cHelper.user_id,
                        cHelper.unit,
                        false,
                        UserDataAdmin.Instance.m_StructPlayer.unit_party_current,
                        0,
                        0,
                        null,
                        false
                        )
                    .setSuccessAction(_data =>
                        {
                            if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build == null)
                            {
                                SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build();
                            }
                            SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = _data.GetResult <RecvQuest2Start>().result.quest;
                            m_Status = eStatus.DATA_CREATE;
                        })
                    .setErrorAction(data =>
                        {
                            Debug.LogErrorFormat("[TestGameMain] Quest2Start API Error [{0}] : QuestId = {1}", data.m_PacketCode.ToString(), DebugOptionInGame.Instance.inGameDebugDO.m_QuestId.ToString());
                            m_TestGameManager.Message_text = "API Error\r\n [" + data.m_PacketCode.ToString() + "]";
                        })
                    .SendStart();
                    m_Status = eStatus.NONE;
                }
            }
            else
            {
                if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build == null)
                {
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build();
                }
                {
                    MasterDataQuest2        masterDataQuest2 = MasterDataUtil.GetQuest2ParamFromID(DebugOptionInGame.Instance.inGameDebugDO.m_QuestId);
                    PacketStructQuest2Build cQuestBuild      = new PacketStructQuest2Build();
                    int floor_size = 2;
                    //----------------------------------------
                    // 最終的な構築情報を格納する領域を確保
                    //----------------------------------------
                    TemplateList <PacketStructQuest2BuildBattle> acQuestBuildBattle = new TemplateList <PacketStructQuest2BuildBattle>();
                    TemplateList <PacketStructQuest2BuildDrop>   acQuestBuildDrop   = new TemplateList <PacketStructQuest2BuildDrop>();
                    acQuestBuildBattle.Alloc(64);

                    int nFloorDataAccess = 0;
                    cQuestBuild.boss = new int[floor_size];

                    for (int i = 0; i < floor_size; i++)
                    {
                        nFloorDataAccess = (i - 1);
                        if (nFloorDataAccess < 0)
                        {
                            continue;
                        }
                        //----------------------------------------
                        //	0番目要素ダミーデータの入力
                        //----------------------------------------
                        PacketStructQuest2BuildBattle build_param_battle = new PacketStructQuest2BuildBattle();
                        if (build_param_battle != null)
                        {
                            build_param_battle.unique_id         = 0;
                            build_param_battle.enemy_list        = null;
                            build_param_battle.drop_list         = null;
                            build_param_battle.chain             = 0;
                            build_param_battle.chain_turn_offset = 0;
                            build_param_battle.bgm_id            = 0;

                            acQuestBuildBattle.Add(build_param_battle);
                        }

                        //----------------------------------------
                        // 戦闘情報を設定
                        //----------------------------------------
                        int battle_num = MasterDataUtil.GetQuest2BattleNum(masterDataQuest2.fix_id);
                        for (int j = 0; j < battle_num; j++)
                        {
                            uint enemy_group_id = MasterDataUtil.GetQuest2EnemyGroup(masterDataQuest2.fix_id, j);
                            if (enemy_group_id == 0)
                            {
                                continue;
                            }

                            MasterDataEnemyGroup acMasterGroupEnemy = ServerFogery_GetEnemyGroupFromID(enemy_group_id);
                            if (acMasterGroupEnemy == null)
                            {
                                Debug.LogError("EnemyGroup not found id = " + enemy_group_id);
                                continue;
                            }
                            CreateQuestBuildBattle(
                                i
                                , ref acQuestBuildBattle
                                , ref acQuestBuildDrop
                                , acMasterGroupEnemy
                                );
                        }
                        //----------------------------------------
                        // ボス戦闘情報を設定
                        //----------------------------------------
                        cQuestBuild.boss[i] = 0;
                        if (masterDataQuest2.boss_group_id > 0)
                        {
                            MasterDataEnemyGroup cBossEnemyGroup = ServerFogery_GetEnemyGroupFromID(masterDataQuest2.boss_group_id);
                            if (cBossEnemyGroup != null)
                            {
                                cQuestBuild.boss[i] = CreateQuestBuildBattle(
                                    i
                                    , ref acQuestBuildBattle
                                    , ref acQuestBuildDrop
                                    , cBossEnemyGroup
                                    );
                            }
                            else
                            {
                                Debug.LogError("EnemyGroup not found Boss id = " + masterDataQuest2.boss_group_id);
                            }
                        }
                    }

                    TemplateList <MasterDataParamEnemy>       e_param_list     = new TemplateList <MasterDataParamEnemy>();
                    TemplateList <MasterDataEnemyActionParam> e_act_param_list = new TemplateList <MasterDataEnemyActionParam>();
                    TemplateList <MasterDataEnemyActionTable> e_act_table_list = new TemplateList <MasterDataEnemyActionTable>();

                    for (int i = 0; i < acQuestBuildBattle.m_BufferSize; i++)
                    {
                        if (acQuestBuildBattle[i] == null)
                        {
                            continue;
                        }

                        if (acQuestBuildBattle[i].enemy_list == null)
                        {
                            continue;
                        }

                        for (int j = 0; j < acQuestBuildBattle[i].enemy_list.Length; j++)
                        {
                            if (acQuestBuildBattle[i].enemy_list[j] == 0)
                            {
                                continue;
                            }

                            MasterDataParamEnemy enemy_param = ServerForgery_GetEnemyParamFromID(acQuestBuildBattle[i].enemy_list[j]);
                            e_param_list.Add(enemy_param);

                            int[] table_id = { enemy_param.act_table1,
                                               enemy_param.act_table2,
                                               enemy_param.act_table3,
                                               enemy_param.act_table4,
                                               enemy_param.act_table5,
                                               enemy_param.act_table6,
                                               enemy_param.act_table7,
                                               enemy_param.act_table8 };

                            for (int k = 0; k < table_id.Length; k++)
                            {
                                if (table_id[k] == 0)
                                {
                                    continue;
                                }

                                MasterDataEnemyActionTable table = ServerFogery_GetEnemyActionTable(table_id[k]);
                                e_act_table_list.Add(table);

                                int[] action_id = { table.action_param_id1,
                                                    table.action_param_id2,
                                                    table.action_param_id3,
                                                    table.action_param_id4,
                                                    table.action_param_id5,
                                                    table.action_param_id6,
                                                    table.action_param_id7,
                                                    table.action_param_id8 };

                                for (int l = 0; l < action_id.Length; l++)
                                {
                                    e_act_param_list.Add(GetEnemyActionParam(action_id[l]));
                                }
                            }
                        }
                    }


                    //----------------------------------------
                    // 構築した動的要素を配列化して受け渡し
                    //----------------------------------------
                    cQuestBuild.list_drop       = acQuestBuildDrop.ToArray();
                    cQuestBuild.list_battle     = acQuestBuildBattle.ToArray();
                    cQuestBuild.list_e_param    = e_param_list.ToArray();
                    cQuestBuild.list_e_actparam = e_act_param_list.ToArray();
                    cQuestBuild.list_e_acttable = e_act_table_list.ToArray();

                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = cQuestBuild;
                }
                m_Status = eStatus.DATA_CREATE;
            }
        }
        break;

        case eStatus.DATA_CREATE:
        {
            {
                MasterDataQuest2 masterDataQuest = MasterDataUtil.GetQuest2ParamFromID(DebugOptionInGame.Instance.inGameDebugDO.m_QuestId);
                //----------------------------------------
                // ダミーパラメータを設定
                //----------------------------------------
                if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2 == null)
                {
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2 = new SceneGoesParamToQuest2();
                }
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_QuestAreaID    = masterDataQuest.area_id;
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_QuestMissionID = masterDataQuest.fix_id;
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_QuestRandSeed  = RandManager.GetRand();
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_IsUsedAutoPlay = false;

                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param = new UserDataUnitParam();
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param = new UserDataUnitParam();
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param = new UserDataUnitParam();
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param = new UserDataUnitParam();
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param = new UserDataUnitParam();

                if (DebugOptionInGame.Instance.inGameDebugDO.m_DebugParty == false &&
                    UserDataAdmin.Instance != null &&
                    UserDataAdmin.Instance.m_StructHelperList.IsNullOrEmpty() != true &&
                    UserDataAdmin.Instance.m_StructPartyAssign.IsNullOrEmpty() != true)
                {
                    PacketStructFriend cHelper      = UserDataAdmin.Instance.m_StructHelperList[m_HelperIndex];
                    int nPartyCurrent               = UserDataAdmin.Instance.m_StructPlayer.unit_party_current;
                    PacketStructUnit[] acUnitStruct =
                    {
                        UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][0]
                        , UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][1]
                        , UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][2]
                        , UserDataAdmin.Instance.m_StructPartyAssign[nPartyCurrent][3]
                        , cHelper.unit
                    };
                    UserDataUnitParam[] acUnitParam =
                    {
                        SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param,
                        SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param,
                        SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param,
                        SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param,
                        SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param,
                    };
                    for (int i = 0; i < acUnitStruct.Length; i++)
                    {
                        if (acUnitStruct[i] != null)
                        {
                            acUnitParam[i].m_UnitDataID            = acUnitStruct[i].id;
                            acUnitParam[i].m_UnitParamLevel        = (int)acUnitStruct[i].level;
                            acUnitParam[i].m_UnitParamEXP          = (int)acUnitStruct[i].exp;
                            acUnitParam[i].m_UnitParamUniqueID     = acUnitStruct[i].unique_id;
                            acUnitParam[i].m_UnitParamLimitBreakLV = (int)acUnitStruct[i].limitbreak_lv;
                            acUnitParam[i].m_UnitParamLimitOverLV  = (int)acUnitStruct[i].limitover_lv;
                            acUnitParam[i].m_UnitParamPlusPow      = (int)acUnitStruct[i].add_pow;
                            acUnitParam[i].m_UnitParamPlusHP       = (int)acUnitStruct[i].add_hp;
                        }
                    }
                }
                else
                {
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitDataID     = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara0_id;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitDataID     = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara1_id;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitDataID     = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara2_id;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitDataID     = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara3_id;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitDataID     = DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara4_id;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara0_level;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara1_level;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara2_level;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara3_level;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitParamLevel = (int)DebugOptionInGame.Instance.inGameDebugDO.m_MasterDataDefaultParty.party_chara4_level;

                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitParamEXP = 100;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitParamEXP = 100;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitParamEXP = 100;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitParamEXP = 100;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitParamEXP = 100;

                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara0Param.m_UnitParamUniqueID = 1;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara1Param.m_UnitParamUniqueID = 2;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara2Param.m_UnitParamUniqueID = 3;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara3Param.m_UnitParamUniqueID = 4;
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyChara4Param.m_UnitParamUniqueID = 5;
                }

                LocalSaveManager.Instance.SaveFuncGoesToQuest2Start(SceneGoesParam.Instance.m_SceneGoesParamToQuest2);
                LocalSaveManager.Instance.SaveFuncGoesToQuest2Restore(null);
                DebugOptionInGame.Instance.m_Quest2Build = SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild;
                SceneCommon.Instance.ChangeScene(SceneType.SceneQuest2);
            }
            m_Status = eStatus.NONE;
        }
        break;

        case eStatus.DATA_RESTORE:
        {
            {
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2        = LocalSaveManager.Instance.LoadFuncGoesToQuest2Start();
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2Restore = LocalSaveManager.Instance.LoadFuncGoesToQuest2Restore();
                if (SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build == null)
                {
                    SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build();
                }
                SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = DebugOptionInGame.Instance.m_Quest2Build;
                SceneCommon.Instance.ChangeScene(SceneType.SceneQuest2);
            }
            m_Status = eStatus.NONE;
        }
        break;

        default:
            break;
        }
    }
Esempio n. 7
0
    // ダイアログの初期化
    public void Create(EventRecordListItemContex contex, bool _future)
    {
        EventId   = contex.EventId;
        FixId     = contex.FixId;
        IsFuture  = _future;
        QuestType = contex.questType;

        if (IsFuture)
        {
            LocalSaveEventNotification cEventNotification = LocalSaveManager.Instance.CheckFuncNotificationRequest((uint)FixId);
            if (cEventNotification != null)
            {
                IsOnNotif = cEventNotification.m_Push;
            }
        }

        MasterDataEvent eventMaster = MasterFinder <MasterDataEvent> .Instance.Find(FixId);

        if (eventMaster == null)
        {
#if BUILD_TYPE_DEBUG
            Debug.LogError("Eventがみつかりません fix_id: " + FixId);
#endif
            return;
        }

        // テキスト
        Title0       = "開催期間";
        Title1       = eventMaster.head_titel_1;
        Title2       = eventMaster.head_titel_2;
        OverviewText = eventMaster.head_text;

        //サイクルタイプで終了が設定されていない場合、規定文字列を表示
        if (eventMaster.period_type == MasterDataDefineLabel.PeriodType.CYCLE &&
            eventMaster.timing_end == 0)
        {
            DateText = GameTextUtil.GetText("schedule_text");
        }
        else
        {
            DateText = string.Format("{0}~{1}",
                                     EventSchedule.TimingFormat(eventMaster.timing_start),
                                     ((eventMaster.timing_end != 0 ? EventSchedule.TimingFormat(eventMaster.timing_end, true) : ""))); // イベント開催~終了まで
        }

        // メインイメージを読み込み
        MainImage = null;
        string bannerUrl = eventMaster.banner_img_url;
        if (bannerUrl.IsNullOrEmpty() == false)
        {
            bannerUrl = GlobalDefine.GetEventScheduleBannerUrl() + bannerUrl;

            WebResource.Instance.GetSprite(bannerUrl,
                                           (Sprite sprite) =>
            {
                MainImage = sprite;
            },
                                           () => { });
        }

        // 通知情報
        var notification = MasterDataUtil.GetMasterDataNotification(eventMaster.fix_id,
                                                                    ServerDataDefine.NOTIFICATION_TYPE.EVENT);
        if (notification == null)
        {
            notificationTitle = null;
            notificationBody  = null;
            notificationdelay = 0;
        }
        else
        {
            notificationTitle = notification.notification_title;
            notificationBody  = notification.notification_body;
            var delay = TimeUtil.GetDateTime(notification.timing_start) - TimeManager.Instance.m_TimeNow;
            notificationdelay = delay.Milliseconds;
        }

        // デバッグ用
        //OverviewText += "\n";

        // エリア情報
        AreaId = (uint)eventMaster.area_id;
        var areaMaster = MasterFinder <MasterDataArea> .Instance.FindAll();

        var areaCateId = areaMaster.Where(x => x.fix_id == AreaId).Select(x => x.area_cate_id).ToList();
        AreaCateId = areaCateId.Count() != 0 ? areaCateId[0] : 0;

        List <uint> bossUnits = new List <uint>();
        switch (QuestType)
        {
        case MasterDataDefineLabel.QuestType.NORMAL:
        {
            var questMaster = MasterFinder <MasterDataQuest2> .Instance.FindAll();

            bossUnits = questMaster.Where(x => x.area_id == AreaId).Select(x => x.boss_chara_id).ToList();
        }
        break;

        case MasterDataDefineLabel.QuestType.CHALLENGE:
        {
            var challengeMaster = MasterFinder <MasterDataChallengeQuest> .Instance.FindAll();

            bossUnits = challengeMaster.Where(x => x.area_id == AreaId).Select(x => x.boss_chara_id).ToList();
        }
        break;

        default:
            break;
        }

        // ゲリラボスユニット(複数)
        var guerrillaUnits = new List <uint>();
        var area_id_list   = new int[] { (int)AreaId };
        var serverApi      = ServerDataUtilSend.SendPacketAPI_GetGuerrillaBossInfo(area_id_list);

        // ゲリラボスユニット取得成功時の振る舞い
        serverApi.setSuccessAction(_data =>
        {
            var guerrilla = _data.GetResult <ServerDataDefine.RecvGetGuerrillaBossInfo>().result.guerrilla_boss_list;
            if (guerrilla != null)
            {
                for (int i = 0; i < guerrilla.Length; i++)
                {
                    for (int j = 0; j < guerrilla[i].boss_id_list.Length; j++)
                    {
                        guerrillaUnits.Add((uint)guerrilla[i].boss_id_list[j]);
                    }
                }
            }

            // 出現ユニット
            List <uint> units = new List <uint>();

            // ボス・ゲリラボスIDの結合
            units.AddRange(bossUnits);
            units.AddRange(guerrillaUnits);

            // ソート
            units.Sort();

            // 重複を削除
            List <uint> unique = units.Distinct().ToList();

            // バトルが無いクエストはユニットが出現しないので削除(設定:UnitID=0)
            unique.RemoveAll(x => x == 0);

            // 該当ユニットの追加
            for (int i = 0; i < unique.Count; i++)
            {
                var icon            = new CircleButtonListItemContex(i, unique[i]);
                icon.IsEnableSelect = false;
                Icons.Add(icon);

                // デバッグ用
                //OverviewText += i + ":" + "出現ユニットID[" + unique[i] + "]" + "\n";

                // レイアウト再構成
                m_LastUpdateCount = 5;
            }
        });

        // SendStartの失敗時の振る舞い
        serverApi.setErrorAction(_date =>
        {
#if BUILD_TYPE_DEBUG
            Debug.Log("MASTER_HASH_GET:Error");
#endif
        });

        // ゲリラボス取得API
        serverApi.SendStart();
    }
    /// <summary>
    /// API送信:ユニットパーティ編成設定
    /// </summary>
    void SendUnitPartyAssign(Action <bool> finishAction = null)
    {
        PacketStructUnit leader = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.LEADER).UnitData;
        PacketStructUnit mob_1  = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_1).UnitData;
        PacketStructUnit mob_2  = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_2).UnitData;
        PacketStructUnit mob_3  = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_3).UnitData;

        PacketStructUnit[][] partys = UserDataAdmin.Instance.m_StructPartyAssign;

        PacketStructPartyAssign[] partyAssigns = new PacketStructPartyAssign[partys.Length]; // パーティアサイン情報配列

        for (int i = 0; i < partys.Length; ++i)
        {
            partyAssigns[i] = new PacketStructPartyAssign();
            if (i == m_CurrentSelectPartyIndex)
            {
                partyAssigns[i].unit0_unique_id = leader != null ? leader.unique_id : 0;
                partyAssigns[i].unit1_unique_id = mob_1 != null ? mob_1.unique_id : 0;
                partyAssigns[i].unit2_unique_id = mob_2 != null ? mob_2.unique_id : 0;
                partyAssigns[i].unit3_unique_id = mob_3 != null ? mob_3.unique_id : 0;
            }
            else
            {
                partyAssigns[i].unit0_unique_id = partys[i][0] != null ? partys[i][0].unique_id : 0;
                partyAssigns[i].unit1_unique_id = partys[i][1] != null ? partys[i][1].unique_id : 0;
                partyAssigns[i].unit2_unique_id = partys[i][2] != null ? partys[i][2].unique_id : 0;
                partyAssigns[i].unit3_unique_id = partys[i][3] != null ? partys[i][3].unique_id : 0;
            }
        }

        ServerDataUtilSend.SendPacketAPI_UnitPartyAssign(partyAssigns, m_CurrentSelectPartyIndex)
        .setSuccessAction(_data =>
        {
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvUnitPartyAssign>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();
            m_IsPartyMemberChange = false;

            // ダイアログの表示
            Dialog newDialog = Dialog.Create(DialogType.DialogOK);
            newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "un72q_title");
            newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "un72q_content");
            newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
            newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() =>
            {
                if (finishAction != null)
                {
                    finishAction(true);
                }
            }));
            newDialog.Show();
        })
        .setErrorAction(_data =>
        {
            m_IsPartyMemberChange = false;

            if (finishAction != null)
            {
                finishAction(false);
            }
        })
        .SendStart();
    }
Esempio n. 9
0
    //----------------------------------------------------------------------------

    /*!
     *          @brief	基底継承:MainMenuSeq:ページ切り替えにより有効化された際に呼ばれる関数
     *          @note	ページのレイアウト再構築を兼ねる
     */
    //----------------------------------------------------------------------------
    protected override void PageSwitchSetting(bool initalize)
    {
        base.PageSwitchSetting(initalize);

        //--------------------------------
        // ゲームからメインメニューに渡されたリザルトをサーバーに送るクラスなので、
        // ここで情報が存在しないことはあり得ない。
        //
        //--------------------------------
        if (SceneGoesParam.Instance == null ||
            SceneGoesParam.Instance.m_SceneGoesParamToMainMenu == null
            )
        {
            Debug.LogError("SceneGoesParam.Instance.m_SceneGoesParamToMainMenu Instance None!");
            return;
        }

        m_QuestID = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_QuestID;
        m_AreaID  = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_AreaID;

        //--------------------------------
        // リザルト情報を反映する前に項目を記録しておく
        //--------------------------------
#if BUILD_TYPE_DEBUG
        Debug.Log("MainMenuResultServerSend - SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_Quest2:" + SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_Quest2);
        Debug.Log("MainMenuResultServerSend - SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_PartyFriend:" + SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_PartyFriend);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.unit_list:" + UserDataAdmin.Instance.m_StructPlayer.unit_list);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.rank:" + UserDataAdmin.Instance.m_StructPlayer.rank);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.exp:" + UserDataAdmin.Instance.m_StructPlayer.exp);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_money:" + UserDataAdmin.Instance.m_StructPlayer.have_money);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_stone:" + UserDataAdmin.Instance.m_StructPlayer.have_stone);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_ticket:" + UserDataAdmin.Instance.m_StructPlayer.have_ticket);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.have_friend_pt:" + UserDataAdmin.Instance.m_StructPlayer.have_friend_pt);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.m_StructPlayer.flag_unit_get:" + UserDataAdmin.Instance.m_StructPlayer.flag_unit_get);
        Debug.Log("MainMenuResultServerSend - UserDataAdmin.Instance.getCurrentHero():" + UserDataAdmin.Instance.getCurrentHero());
#endif

        MainMenuParam.m_ResultQuest2          = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_Quest2;
        MainMenuParam.m_ResultPrevFriend      = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_PartyFriend;
        MainMenuParam.m_ResultPrevUnit        = UserDataAdmin.Instance.m_StructPlayer.unit_list;
        MainMenuParam.m_ResultPrevRank        = UserDataAdmin.Instance.m_StructPlayer.rank;
        MainMenuParam.m_ResultPrevExp         = UserDataAdmin.Instance.m_StructPlayer.exp;
        MainMenuParam.m_ResultPrevMoney       = UserDataAdmin.Instance.m_StructPlayer.have_money;
        MainMenuParam.m_ResultPrevStone       = UserDataAdmin.Instance.m_StructPlayer.have_stone;
        MainMenuParam.m_ResultPrevTicket      = UserDataAdmin.Instance.m_StructPlayer.have_ticket;
        MainMenuParam.m_ResultPrevFriendPoint = UserDataAdmin.Instance.m_StructPlayer.have_friend_pt;
        MainMenuParam.m_ResultPrevUnitGetFlag = UserDataAdmin.Instance.m_StructPlayer.flag_unit_get;
        MainMenuParam.m_ResultPrevHero        = UserDataAdmin.Instance.getCurrentHero();

        MainMenuParam.m_ResultNextArea = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu.m_NextAreaCleard;

        if (TutorialManager.IsExists &&
            TutorialManager.PP.IsNewUser)
        {
            MainMenuParam.m_ResultPrevRank = 1;
            MainMenuParam.m_ResultPrevExp  = 0;
        }


        {
            SendEnemyKill[]                enemy_kill_list            = null;
            bool                           no_damage                  = false;
            int                            max_damage                 = 0;
            SendSkillExecCount[]           active_skill_execute_count = null;
            int                            hero_skill_execute_count   = 0;
            ServerDataDefine.PlayScoreInfo play_score_info            = new PlayScoreInfo();
            bool                           is_auto_play               = false;

            if (!TutorialManager.IsExists)
            {
                SceneGoesParamToMainMenu _data = SceneGoesParam.Instance.m_SceneGoesParamToMainMenu;

                //プレイ情報を設定
                no_damage  = _data.m_NoDamagePlayer;
                max_damage = _data.m_MaxDamageToEnemy;
                hero_skill_execute_count = _data.m_HeroSkillUseCount;

                enemy_kill_list = new SendEnemyKill[_data.m_EnemyKillCountList.Length];
                for (int i = 0; i < _data.m_EnemyKillCountList.Length; i++)
                {
                    enemy_kill_list[i]          = new SendEnemyKill();
                    enemy_kill_list[i].enemy_id = (uint)_data.m_EnemyKillCountList[i].m_EnemyFixID;
                    enemy_kill_list[i].value    = (uint)_data.m_EnemyKillCountList[i].m_KillCount;
                }

                active_skill_execute_count = new SendSkillExecCount[_data.m_LimitBreakUseList.Length];
                for (int i = 0; i < _data.m_LimitBreakUseList.Length; i++)
                {
                    active_skill_execute_count[i]          = new SendSkillExecCount();
                    active_skill_execute_count[i].skill_id = (uint)_data.m_LimitBreakUseList[i].m_LimitBreakSkillID;
                    active_skill_execute_count[i].value    = (uint)_data.m_LimitBreakUseList[i].m_UseCount;
                }

                //スコア情報を設定
                play_score_info = _data.m_PlayScoreInfo;

                is_auto_play = _data.m_IsUsedAutoPlay;
            }

            //--------------------------------
            // API通信リクエスト発行
            //--------------------------------
            switch (MasterDataUtil.GetQuestType(m_QuestID))
            {
            case MasterDataDefineLabel.QuestType.NORMAL:
            {
                //--------------------------------
                // 新クエスト用のリザルトAPIを発行
                //--------------------------------
                ServerDataUtilSend.SendPacketAPI_Quest2Clear(
                    m_QuestID,
                    enemy_kill_list,
                    no_damage,
                    max_damage,
                    active_skill_execute_count,
                    hero_skill_execute_count,
                    play_score_info,
                    is_auto_play
                    )
                .setSuccessAction(_data =>
                    {
                        quest2ClearSuccess(_data);
                    })
                .setErrorAction(_data =>
                    {
                        requestError(_data);
                    })
                .SendStart();
            }
            break;

            case MasterDataDefineLabel.QuestType.CHALLENGE:
            {
                //--------------------------------
                // 成長ボスクエスト用のリザルトAPIを発行
                //--------------------------------
                ServerDataUtilSend.SendPacketAPI_ChallengeQuestClear(
                    m_QuestID,
                    enemy_kill_list,
                    no_damage,
                    max_damage,
                    active_skill_execute_count,
                    hero_skill_execute_count,
                    play_score_info,
                    is_auto_play
                    )
                .setSuccessAction(_data =>
                    {
                        challengeQuestClearSuccess(_data);
                    })
                .setErrorAction(_data =>
                    {
                        requestError(_data);
                    })
                .SendStart();
            }
            break;
            }
        }
        m_PageSwitchResultInfo = false;

        //--------------------------------
        // 一度発行したらもう不要なので削除
        //--------------------------------
        SceneGoesParam.Instance.m_SceneGoesParamToMainMenu = null;
    }
Esempio n. 10
0
    public void setup(MasterDataGacha gachaMaster,
                      MasterDataStepUpGachaManage stepUpManageMaster,
                      uint assgin_id,
                      bool usedTip,
                      string title)
    {
        if (gachaMaster == null)
        {
            return;
        }

        MasterDataGacha _master = gachaMaster;

        if (_master.type != MasterDataDefineLabel.GachaType.STEP_UP &&
            _master.rainbow_decide == assgin_id)
        {
            // 確定ラインナップの場合
            _master = MasterFinder <MasterDataGacha> .Instance.Find(_master.rainbow_decide);

            if (_master == null)
            {
                return;
            }
        }

        TitleText = title;

        uint startTimeU = _master.timing_start;
        uint endTimeU   = _master.timing_end;

        // 販売日程(終了日が無期限のときは表示しない)
        DateText = "";
        if (endTimeU != 0)
        {
            string   dateFormat = GameTextUtil.GetText("scratch_display2");
            DateTime startTime  = TimeUtil.GetDateTime(startTimeU);
            DateTime endTime    = TimeUtil.GetDateTime(endTimeU).SubtractAMinute();
            DateText = String.Format(dateFormat,
                                     startTime.ToString("yyyy/MM/dd(HH:mm)"),
                                     endTime.ToString("yyyy/MM/dd(HH:mm)"));
        }

        var guide_master_type = EMASTERDATA_SERVER.GACHA_GROUP;
        var gachatextreftype  = MasterDataDefineLabel.GachaTextRefType.NONE;

        uint gacha_fix_id = 0;
        uint _step_id     = 0;
        uint _assgin_id   = 0;

        if (_master.type == MasterDataDefineLabel.GachaType.STEP_UP)
        {
            guide_master_type = EMASTERDATA_SERVER.STEP_UP_GACHA;

            var _stepUpGachaMaster = MasterDataUtil.GetMasterDataStepUpGachaFromGachaID(_master.fix_id);
            if (_stepUpGachaMaster != null)
            {
                gacha_fix_id = _stepUpGachaMaster.fix_id;
            }
            else
            {
#if BUILD_TYPE_DEBUG
                string text = String.Format("StepUpGachaMaster.gacha_idに\n「{0}」が未定義です", _master.fix_id);
                DialogManager.Open1B_Direct("ScratchLineUpDialog",
                                            text,
                                            "common_button7", true, true).
                SetOkEvent(() =>
                {
                });
#endif
            }

            _step_id = stepUpManageMaster.fix_id;

            _assgin_id = assgin_id;

            if (stepUpManageMaster.normal1_assign_id == assgin_id)
            {
                gachatextreftype = MasterDataDefineLabel.GachaTextRefType.NOMAL1_RATE_URL;
            }
            else if (stepUpManageMaster.normal2_assign_id == assgin_id)
            {
                gachatextreftype = MasterDataDefineLabel.GachaTextRefType.NOMAL2_RATE_URL;
            }
            else if (stepUpManageMaster.special_assign_id == assgin_id)
            {
                gachatextreftype = MasterDataDefineLabel.GachaTextRefType.SPECIAL_RATE_URL;
            }

            if (gachatextreftype != MasterDataDefineLabel.GachaTextRefType.NONE)
            {
                m_ProbabilityUrl = MasterDataUtil.GetGachaText(EMASTERDATA_SERVER.STEP_UP_GACHA_MANAGE,
                                                               _step_id,
                                                               gachatextreftype);
            }
        }
        else
        {
            guide_master_type = EMASTERDATA_SERVER.GACHA_GROUP;
            gacha_fix_id      = _master.gacha_group_id;

            gachatextreftype = MainMenuParam.m_GachaRainbowDecide == assgin_id
                                ? MasterDataDefineLabel.GachaTextRefType.SPECIAL_RATE_URL
                                : MasterDataDefineLabel.GachaTextRefType.NOMAL1_RATE_URL;

            m_ProbabilityUrl = MasterDataUtil.GetGachaText(guide_master_type,
                                                           gacha_fix_id,
                                                           gachatextreftype);
        }

        //ガイドライン
        m_GuidLineText = MasterDataUtil.GetGachaText(guide_master_type,
                                                     gacha_fix_id,
                                                     MasterDataDefineLabel.GachaTextRefType.GUIDLINE);


        //確率URL
        if (m_ProbabilityUrl.Length > 0)
        {
            ProbabilityText = GameTextUtil.GetText("Gacha_step_05");
            IsProbability   = true;
        }
        else
        {
            IsProbability = false;
        }

        // ガイドラインボタン表示フラグ
        IsUsedTip = usedTip;

        // 排出ユニット一覧
        ServerDataUtilSend.SendPacketAPI_GetGachaLineup((int)_master.fix_id, _step_id, _assgin_id)
        .setSuccessAction(_data =>
        {
            SortList <LineUpListItemContex> tmpLineup = new SortList <LineUpListItemContex>();
            PacketStructGachaLineup[] lineup          = _data.GetResult <RecvGetGachaLineup>().result.gacha_assign_unit_list;
            for (int i = 0; i < lineup.Length; i++)
            {
                LineUpListItemContex newItem = new LineUpListItemContex(i, lineup[i]);
                //newItem.DidSelectItem += OnSelectItem;
                tmpLineup.Body.Add(newItem);
            }
            tmpLineup.AddSortInfo(SORT_PARAM.RATIO_UP, SORT_ORDER.DESCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.LIMITED, SORT_ORDER.DESCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.GROUP_ID, SORT_ORDER.ASCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.RARITY, SORT_ORDER.DESCENDING);
            tmpLineup.AddSortInfo(SORT_PARAM.ID, SORT_ORDER.ASCENDING);

            m_RecvGachaLineup = tmpLineup.Exec(SORT_OBJECT_TYPE.LINUP_LIST);

            scrollContent.Initialize(this);
        })
        .setErrorAction(_date =>
        {
            Close();
        })
        .SendStart();

        //BackKey設定
        AndroidBackKeyManager.Instance.StackPush(gameObject, OnCloseButton);
    }
Esempio n. 11
0
    void OnGoBattle()
    {
        DestroyStoryView();
        uint             unAreaID           = GlobalDefine.TUTORIAL_AREA_1;
        uint             unQuestID          = GlobalDefine.TUTORIAL_QUEST_1;
        uint             unQuestState       = 0;
        uint             unHelperUserID     = 0;
        PacketStructUnit sHelperUnit        = null;
        bool             bHelperPointActive = false;
        int nBeginnerBoostID = 0;

        uint[] aunareaAmendID = null;

        Debug.LogError("USER:"******"guest";
            friend.user_rank    = 999;
            friend.last_play    = friendUnit.get_time;
            friend.friend_point = 0;
            friend.friend_state = (uint)FRIEND_STATE.FRIEND_STATE_SUCCESS;
            SceneGoesParam.Instance.m_SceneGoesParamToQuest2.m_PartyFriend = friend;
        }

        ServerDataUtilSend.SendPacketAPI_Quest2StartTutorial(
            unQuestID,
            unQuestState,
            unHelperUserID,
            sHelperUnit,
            bHelperPointActive,
            UserDataAdmin.Instance.m_StructPlayer.unit_party_current,
            MainMenuParam.m_QuestEventFP,
            (MainMenuParam.m_BeginnerBoost != null) ? (int)MainMenuParam.m_BeginnerBoost.fix_id : 0,
            null     //aunAreaAmendID
            ).
        setSuccessAction(
            _data =>
        {
            //----------------------------------------
            // サーバーで求めたクエスト開始情報を反映
            //----------------------------------------
            SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build = new SceneGoesParamToQuest2Build();
            SceneGoesParam.Instance.m_SceneGoesParamToQuest2Build.m_QuestBuild = _data.GetResult <RecvQuest2Start>().result.quest;

            //----------------------------------------
            // BGM停止処理:暫定対応
            //----------------------------------------
            SoundUtil.StopBGM(false);

            //----------------------------------------
            // サーバーに受理されたのでゲームへ移行
            //----------------------------------------
            SoundUtil.PlaySE(SEID.SE_MENU_OK2);
            SceneCommon.Instance.ChangeScene(SceneType.SceneQuest2, false);

            TutorialFSM.Instance.SendFsmNextEvent();
        }).
        setErrorAction(
            _data =>
        {
            Debug.LogError("ERROR:" + _data);
        }).
        SendStart();
    }
Esempio n. 12
0
    void OnShowDialog_ScratchInitial()
    {
        new SerialProcess().Add(
            (System.Action next) =>
        {
            TutorialDialog.Create().SetTutorialType(TutorialDialog.FLAG_TYPE.GACHA).Show(() =>
            {
                next();
            });
        }).Add(
            (System.Action next) =>
        {
            Dialog.Create(DialogType.DialogOK).
            SetTitleFromTextKey(("TUTORIAL_SCRATCH_RESULT01_TITLE").ToLower()).
            SetMainFromTextKey(("TUTORIAL_SCRATCH_RESULT01_MAIN").ToLower()).
            SetOkEvent(
                () =>
            {
                next();
            }).Show();
        }).Add(
            (System.Action next) =>
        {
            Dialog.Create(DialogType.DialogOK).
            SetTitleFromTextKey(("TUTORIAL_SCRATCH_RESULT02_TITLE").ToLower()).
            SetMainFromTextKey(("TUTORIAL_SCRATCH_RESULT02_MAIN").ToLower()).
            SetOkEvent(
                () =>
            {
                next();
            }).Show();
        })
        .Add(next =>
        {
            ServerDataUtilSend.SendPacketAPI_UserAuthentication().
            setSuccessAction(_data =>
            {
                next();
            }).
            setErrorAction(_data =>
            {
                //authError(_data.m_PacketCode, _data.m_PacketUniqueNum);
                next();
            }).
            SendStart();
        })
        .Add(
            (System.Action next) =>
        {
            InputLock(true);
            TutorialManager.SendStep(
                601,
                () =>
            {
                InputLock(false);
                TutorialFSM.Instance.SendFsmNextEvent();

                next();
            });
        }).Flush();
    }
Esempio n. 13
0
    // ガチャ実行
    // fix_id:  count:回数   tutorial:チュートリアルフラグ
    private void SendScratch(int count)
    {
        //連打防止
        if (ServerApi.IsExists)
        {
            return;
        }

        //スクラッチのリザルトが終わるまでHomeに戻るバックキー無効
        if (MainMenuManager.HasInstance)
        {
            MainMenuManager.Instance.DisableBackKey();
        }

        //ユニット取得フラグ保存
        MainMenuParam.m_GachaPrevUnitGetFlag = UserDataAdmin.Instance.m_StructPlayer.flag_unit_get;

#if BUILD_TYPE_DEBUG
        Debug.Log("Scratch Send");
#endif
        int tutorial  = (TutorialManager.IsExists) ? 1 : 0;
        var serverApi = ServerDataUtilSend.SendPacketAPI_GachaPlay(Context.gachaMaster.fix_id, (uint)count, (uint)tutorial);

        // SendStartの成功時の振る舞い
        serverApi.setSuccessAction(_data =>
        {
#if BUILD_TYPE_DEBUG
            Debug.Log("Scratch Send Success");
#endif
            // DG0-2733 Tutorial時、StructPlayer.renew_tutorial_step == 602 に更新される
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvGachaPlay>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();

            RecvGachaPlayValue result = _data.GetResult <RecvGachaPlay>().result;
            //----------------------------------------
            // ガチャの結果表示画面で使う情報入力
            //----------------------------------------
            MainMenuParam.m_GachaUnitUniqueID = result.unit_unique_id;
            MainMenuParam.m_GachaBlankUnitID  = result.blank_unit_id;
            MainMenuParam.m_GachaOmakeID      = result.gacha_bonus_data;
            MainMenuParam.m_GachaGetUnitNum   = MainMenuParam.m_GachaUnitUniqueID.Length;

            if (result.gacha_status != null)
            {
                UserDataAdmin.Instance.UpdateGachaStatusList(result.gacha_status);
            }

            if (result.result_present != null)
            {
                UserDataAdmin.Instance.m_StructPresentList = UserDataAdmin.PresentListClipTimeLimit(result.result_present.present);
            }

            Context.m_IsMoveScratchResult = true;
            if (MainMenuManager.HasInstance)
            {
                MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_GACHA_RESULT, false, false);
            }
        });

        // SendStartの失敗時の振る舞い
        serverApi.setErrorAction(_data =>
        {
            // ステップが更新された
            if (_data.m_PacketCode == API_CODE.API_CODE_STEP_UP_GACHA_REST_TIME_NOW)
            {
                RecvGachaPlayValue result = _data.GetResult <RecvGachaPlay>().result;
                if (result.gacha_status != null)
                {
                    UserDataAdmin.Instance.UpdateGachaStatusList(result.gacha_status);
                }
                MainMenuManager.Instance.SetResetSubTabFlag();
                MainMenuManager.Instance.AddSwitchRequest(MAINMENU_SEQ.SEQ_GACHA_MAIN, false, false);
            }

#if BUILD_TYPE_DEBUG
            Debug.Log("Scratch Send Error");
#endif
        });

        serverApi.SendStart();
    }
    /// <summary>
    /// API送信:ユニットパーティ編成設定
    /// </summary>
    void SendUnitPartyAssign(Action finishedSendAction = null)
    {
        Action endAction = () =>
        {
            m_UnitPartyCurrent = DefaultUnitPartyCurrent;
        };

        if (UserDataAdmin.Instance.m_StructPlayer.unit_party_current != m_PartyParamPanel.m_CurrentIndex)
        {                                                                                                                            // 選択パーティが変わっている場合
            PacketStructPartyAssign[] partyAssigns = new PacketStructPartyAssign[UserDataAdmin.Instance.m_StructPartyAssign.Length]; // パーティアサイン情報配列

            // パーティアサイン情報設定
            for (int i = 0; i < UserDataAdmin.Instance.m_StructPartyAssign.Length; ++i)
            {
                PartySelectGroupUnitContext party = m_PartySelectGroup.GetParty(i);
                partyAssigns[i] = new PacketStructPartyAssign();
                if (party != null)
                {
                    partyAssigns[i].unit0_unique_id = party.PartyData[0] != null ? party.PartyData[0].unique_id : 0;
                    partyAssigns[i].unit1_unique_id = party.PartyData[1] != null ? party.PartyData[1].unique_id : 0;
                    partyAssigns[i].unit2_unique_id = party.PartyData[2] != null ? party.PartyData[2].unique_id : 0;
                    partyAssigns[i].unit3_unique_id = party.PartyData[3] != null ? party.PartyData[3].unique_id : 0;
                }
                else
                {
                    var partyAssign = UserDataAdmin.Instance.m_StructPartyAssign;
                    partyAssigns[i].unit0_unique_id = (partyAssign[i][0] != null) ? partyAssign[i][0].unique_id : 0;
                    partyAssigns[i].unit1_unique_id = (partyAssign[i][1] != null) ? partyAssign[i][1].unique_id : 0;
                    partyAssigns[i].unit2_unique_id = (partyAssign[i][2] != null) ? partyAssign[i][2].unique_id : 0;
                    partyAssigns[i].unit3_unique_id = (partyAssign[i][3] != null) ? partyAssign[i][3].unique_id : 0;
                }
            }

            // 送信開始
            ServerDataUtilSend.SendPacketAPI_UnitPartyAssign(partyAssigns, m_PartyParamPanel.m_CurrentIndex)
            .setSuccessAction(_data =>
            {
                UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvUnitPartyAssign>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
                UserDataAdmin.Instance.ConvertPartyAssing();
                m_IsSendApi = false;
                endAction();
                if (finishedSendAction != null)
                {
                    finishedSendAction();
                }
            })
            .setErrorAction(_data =>
            {
                m_IsSendApi = false;
                endAction();

                if (finishedSendAction != null)
                {
                    finishedSendAction();
                }
            })
            .SendStart();

            m_IsSendApi = true;
        }
        else
        {
            endAction();

            if (finishedSendAction != null)
            {
                finishedSendAction();
            }
        }
    }
Esempio n. 15
0
    //----------------------------------------------------------------------------

    /*!
     *          @brief	基底継承:MainMenuSeq:ページ切り替えにより有効化された際に呼ばれる関数
     *          @note	ページのレイアウト再構築を兼ねる
     */
    //----------------------------------------------------------------------------
    protected override void PageSwitchSetting(bool initalize)
    {
        base.PageSwitchSetting(initalize);

        m_Dialog      = null;
        m_bReturnHome = false;

        switch (MainMenuParam.m_DateChangeType)
        {
        case DATE_CHANGE_TYPE.RETURN_TITLE:
        {
            //--------------------------------
            // タイトルへ
            //--------------------------------
            m_Dialog = DialogManager.Open1B("CHANGE_DAY", "CHANGE_DAY_DETAIL", "common_button1", true, false);
        }
        break;

        case DATE_CHANGE_TYPE.LOGIN:
        {
            //ローカルに保存してあるWebリソースを全削除
            WebResource.Instance.RemoveAll();

            //ログインボーナスシーケンスへ
            MainMenuManagerFSM.Instance.SendFsmEvent("REQUEST_LOGIN_BONUS", 1.0f);
        }
        break;

        case DATE_CHANGE_TYPE.DAY_STRADDLE:
        {
            //次の日跨ぎ通信の時間を設定
            MainMenuParam.m_DayStraddleTime = MainMenuParam.m_DayStraddleTime.AddDays(1);
            //日またぎ通信
            ServerDataUtilSend.SendPacketAPI_DayStraddle()
            .setSuccessAction((data) =>
                {
                    RecvDayStraddleValue result = data.GetResult <RecvDayStraddle>().result;
                    if (result != null)
                    {
                        //プレイヤー情報更新
                        UserDataAdmin.Instance.m_StructPlayer = data.UpdateStructPlayer <RecvDayStraddle>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
                        UserDataAdmin.Instance.ConvertPartyAssing();

                        //ガチャ情報更新
                        if (result.gacha_status != null)
                        {
                            UserDataAdmin.Instance.UpdateGachaStatusList(result.gacha_status);
                        }

                        //Homeへ
                        m_bReturnHome = true;
                    }
                })
            .setErrorAction((data) =>
                {
                    //Homeへ
                    m_bReturnHome = true;
                })
            .SendStart();
        }
        break;

        default:
            //ここに来ることはないはず
            //Homeへ
            m_bReturnHome = true;
            break;
        }
    }
Esempio n. 16
0
    public void Decision(MasterDataHero master, Action finishDecision = null, Action cancelAction = null)
    {
        m_decision = true;
        TutorialManager.SendStep((int)TutorialStep.HERO_SELECT,
                                 () =>
        {
            Dialog newDialog = Dialog.Create(DialogType.DialogYesNo).SetStrongYes();
            newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "tutorial_master_result_02_title");
            newDialog.SetDialogText(DialogTextType.MainText, string.Format(GameTextUtil.GetText("tutorial_master_result_02_main"), master.name));
            newDialog.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button4");
            newDialog.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button5");
            newDialog.SetDialogEvent(DialogButtonEventType.YES, new System.Action(() =>
            {
                ServerDataUtilSend.SendPacketAPI_SelectDefParty((uint)master.default_party_id).
                setSuccessAction(_data =>
                {
                    // DG0-2733 Tutorial時、StructPlayer.renew_tutorial_step == 100 に更新される
                    UserDataAdmin.Instance.m_StructPlayer   = _data.UpdateStructPlayer <RecvSelectDefParty>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
                    UserDataAdmin.Instance.m_StructHeroList = _data.GetResult <RecvSelectDefParty>().result.hero_list;
                    UserDataAdmin.Instance.ConvertPartyAssing();

                    if (finishDecision != null)
                    {
                        finishDecision();
                    }

                    m_finishDecision = true;

                    //旧チュートリアルでパーティ選択しているか
                    PacketStructPlayer player = UserDataAdmin.Instance.m_StructPlayer;
                    if (player.first_select_num == TutorialManager.FirstSelectNone)
                    {
                        //選択していない [新規ユーザー]
                        TutorialManager.PP.TutorialUserType = TutorialUserType.NEW;
                    }
                    else
                    {
                        //選択している [既存ユーザー]
                        TutorialManager.PP.TutorialUserType = TutorialUserType.ALREADY;
                    }
                    TutorialManager.PP.Save();

                    TutorialHeroSelectFSM.Instance.SendFsmPositiveEvent();
                }).
                setErrorAction(data =>
                {
                    if (cancelAction != null)
                    {
                        cancelAction();
                    }
                    SoundUtil.PlaySE(SEID.SE_MENU_NG);
                    //----------------------------------------
                    // ここでエラーが発生すると
                    // シャーディングの都合上サーバー側のセーブデータが使用不可能になるらしい。
                    //
                    // 例外対応として、UUIDを破棄して最初からゲームをやり直すようにする。
                    // ダイアログを出してボタン待ちとかやるとユーザーの操作で抜けが発生するので、
                    // そのままセーブ破棄してQuitを呼んでアプリを強制的に落とす
                    //----------------------------------------
                    DialogManager.Open1B("ERROR_MSG_USER_TITLE",
                                         "ERROR_MSG_USER",
                                         "common_button7", true, true).
                    SetOkEvent(() =>
                    {
                        PacketStructPlayer player = UserDataAdmin.Instance.m_StructPlayer;
                        if (player.first_select_num == TutorialManager.FirstSelectNone)
                        {
                            //選択していない [新規ユーザー]
                            LocalSaveManager.Instance.SaveFuncUUID("");
                        }
                        Application.Quit();
                    });
                }).
                SendStart();
            }));
            newDialog.SetDialogEvent(DialogButtonEventType.NO, new System.Action(() =>
            {
                if (cancelAction != null)
                {
                    cancelAction();
                }
                m_decision = false;
                TutorialHeroSelectFSM.Instance.SendFsmNegativeEvent();
            }));
            newDialog.EnableFadePanel();
            newDialog.DisableCancelButton();
            newDialog.Show();
            TutorialHeroSelectFSM.Instance.SendFsmPositiveEvent();
        });
    }
Esempio n. 17
0
    /*==========================================================================*/
    /*		var																	*/
    /*==========================================================================*/
    /*==========================================================================*/
    /*		prototype															*/
    /*==========================================================================*/
    /*==========================================================================*/
    /*		func																*/
    /*==========================================================================*/
    //----------------------------------------------------------------------------

    /*!
     *          @brief	APIパケット送信リトライ:
     *          @note	この処理は通信の結果「端末とサーバーの関連切れてるからユーザー認証しなおしてね」が発生した際に送りなおすことに特化している。
     *                          再送元のパケットは一度サーバーに届いて正式に拒否られているので、パケットユニークIDを別にしてから再度送りなおすことで受理を期待する
     */
    //----------------------------------------------------------------------------
    static public uint SendPacketAPIRetry(SERVER_API eAPIType, string strAPIData, uint unPacketUniqueID)
    {
#if true
        //-------------------------
        // 再送時にパケットにユニークIDを変えない方がサーバー側が対応しやすいらしい。
        // そのまま前に送ったものをもう一度送る形で対応する
        //-------------------------
        Debug.LogError("Packet Retry - " + eAPIType);
#else
        //-------------------------
        // 再送時にはヘッダのパケットユニークIDだけを更新してから送る
        //-------------------------
        PacketStructHeaderSend cSendHeader = ServerDataUtilSend.CreateStructHeader();
        switch (eAPIType)
        {
        //-------------------------
        // APIタイプ:ユーザー管理:ユーザー新規生成
        //-------------------------
        case SERVER_API.SERVER_API_USER_CREATE:
        {
            SendCreateUser cSendPacket = JsonMapper.ToObject <SendCreateUser>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユーザー管理:ユーザー承認
        //-------------------------
        case SERVER_API.SERVER_API_USER_AUTHENTICATION:
        {
            SendUserAuthentication cSendPacket = JsonMapper.ToObject <SendUserAuthentication>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユーザー管理:ユーザー名称変更
        //-------------------------
        case SERVER_API.SERVER_API_USER_RENAME:
        {
            SendRenameUser cSendPacket = JsonMapper.ToObject <SendRenameUser>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユーザー管理:ユーザー初期設定
        //-------------------------
        case SERVER_API.SERVER_API_USER_SELECT_DEF_PARTY:
        {
            SendSelectDefParty cSendPacket = JsonMapper.ToObject <SendSelectDefParty>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユーザー管理:ユーザー再構築
        //-------------------------
        case SERVER_API.SERVER_API_USER_RENEW:
        {
            SendRenewUser cSendPacket = JsonMapper.ToObject <SendRenewUser>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:マスターデータ操作:マスターデータ実体取得(全種)
        //-------------------------
        case SERVER_API.SERVER_API_MASTER_DATA_GET_ALL:
        {
            SendGetMasterDataAll cSendPacket = JsonMapper.ToObject <SendGetMasterDataAll>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ログイン情報:ログインパック情報取得
        //-------------------------
        case SERVER_API.SERVER_API_GET_LOGIN_PACK:
        {
            SendLoginPack cSendPacket = JsonMapper.ToObject <SendLoginPack>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ログイン情報:ログイン情報取得
        //-------------------------
        case SERVER_API.SERVER_API_GET_LOGIN_PARAM:
        {
            SendLoginParam cSendPacket = JsonMapper.ToObject <SendLoginParam>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:フレンド操作:フレンド一覧取得
        //-------------------------
        case SERVER_API.SERVER_API_FRIEND_LIST_GET:
        {
            SendFriendListGet cSendPacket = JsonMapper.ToObject <SendFriendListGet>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:フレンド操作:フレンド申請
        //-------------------------
        case SERVER_API.SERVER_API_FRIEND_REQUEST:
        {
            SendFriendRequest cSendPacket = JsonMapper.ToObject <SendFriendRequest>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:フレンド操作:フレンド申請承認
        //-------------------------
        case SERVER_API.SERVER_API_FRIEND_CONSENT:
        {
            SendFriendConsent cSendPacket = JsonMapper.ToObject <SendFriendConsent>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:フレンド操作:フレンド解除
        //-------------------------
        case SERVER_API.SERVER_API_FRIEND_REFUSAL:
        {
            SendFriendRefusal cSendPacket = JsonMapper.ToObject <SendFriendRefusal>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:フレンド操作:フレンドユーザー検索
        //-------------------------
        case SERVER_API.SERVER_API_FRIEND_SEARCH:
        {
            SendFriendSearch cSendPacket = JsonMapper.ToObject <SendFriendSearch>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユニット操作:ユニットパーティ編成設定
        //-------------------------
        case SERVER_API.SERVER_API_UNIT_PARTY_ASSIGN:
        {
            SendUnitPartyAssign cSendPacket = JsonMapper.ToObject <SendUnitPartyAssign>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユニット操作:ユニット売却
        //-------------------------
        case SERVER_API.SERVER_API_UNIT_SALE:
        {
            SendUnitSale cSendPacket = JsonMapper.ToObject <SendUnitSale>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユニット操作:ユニット強化合成
        //-------------------------
        case SERVER_API.SERVER_API_UNIT_BLEND_BUILDUP:
        {
            SendUnitBlendBuildUp cSendPacket = JsonMapper.ToObject <SendUnitBlendBuildUp>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユニット操作:ユニット進化合成
        //-------------------------
        case SERVER_API.SERVER_API_UNIT_BLEND_EVOL:
        {
            SendUnitBlendEvol cSendPacket = JsonMapper.ToObject <SendUnitBlendEvol>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:助っ人一覧取得
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_HELPER_GET:
        {
            SendQuestHelperGet cSendPacket = JsonMapper.ToObject <SendQuestHelperGet>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:助っ人一覧取得(進化合成用)
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_HELPER_GET_EVOL:
        {
            SendQuestHelperGetEvol cSendPacket = JsonMapper.ToObject <SendQuestHelperGetEvol>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:助っ人一覧取得(強化合成用)
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_HELPER_GET_BUILD:
        {
            SendQuestHelperGetBuild cSendPacket = JsonMapper.ToObject <SendQuestHelperGetBuild>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:クエスト開始
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_START:
        {
            SendQuestStart cSendPacket = JsonMapper.ToObject <SendQuestStart>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:クエストクリア
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_CLEAR:
        {
            SendQuestClear cSendPacket = JsonMapper.ToObject <SendQuestClear>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;
        //-------------------------

        //-------------------------
        // APIタイプ:クエスト操作:クエストリタイア
        //-------------------------
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_RETIRE:
        {
            SendQuestRetire cSendPacket = JsonMapper.ToObject <SendQuestRetire>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:クエスト受託情報取得
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_ORDER_GET:
        {
            SendQuestOrderGet cSendPacket = JsonMapper.ToObject <SendQuestOrderGet>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:インゲーム中:コンティニュー
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_CONTINUE:
        {
            SendQuestContinue cSendPacket = JsonMapper.ToObject <SendQuestContinue>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:インゲーム中:リセット
        //-------------------------
        case SERVER_API.SERVER_API_QUEST_RESET:
        {
            SendQuestReset cSendPacket = JsonMapper.ToObject <SendQuestReset>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:進化クエスト開始
        //-------------------------
        case SERVER_API.SERVER_API_EVOL_QUEST_START:
        {
            SendEvolQuestStart cSendPacket = JsonMapper.ToObject <SendEvolQuestStart>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:クエスト操作:進化クエストクリア
        //-------------------------
        case SERVER_API.SERVER_API_EVOL_QUEST_CLEAR:
        {
            SendEvolQuestClear cSendPacket = JsonMapper.ToObject <SendEvolQuestClear>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:不正検出関連:不正検出送信
        //-------------------------
        case SERVER_API.SERVER_API_INJUSTICE:
        {
            SendInjustice cSendPacket = JsonMapper.ToObject <SendInjustice>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        //-------------------------
        //-------------------------
        // APIタイプ:チュートリアル関連:進行集計
        //-------------------------
        case SERVER_API.SERVER_API_TUTORIAL:
        {
            SendTutorialStep cSendPacket = JsonMapper.ToObject <SendTutorialStep>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:魔法石使用:ユニット枠増設
        //-------------------------
        case SERVER_API.SERVER_API_STONE_USE_UNIT:
        {
            SendStoneUsedUnit cSendPacket = JsonMapper.ToObject <SendStoneUsedUnit>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:魔法石使用:フレンド枠増設
        //-------------------------
        case SERVER_API.SERVER_API_STONE_USE_FRIEND:
        {
            SendStoneUsedFriend cSendPacket = JsonMapper.ToObject <SendStoneUsedFriend>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:魔法石使用:スタミナ回復
        //-------------------------
        case SERVER_API.SERVER_API_STONE_USE_STAMINA:
        {
            SendStoneUsedStamina cSendPacket = JsonMapper.ToObject <SendStoneUsedStamina>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ガチャ操作:ガチャ実行
        //-------------------------
        case SERVER_API.SERVER_API_GACHA_PLAY:
        {
            SendGachaPlay cSendPacket = JsonMapper.ToObject <SendGachaPlay>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:課金操作:魔法石購入直前処理( iOS … AppStore )
        //-------------------------
        case SERVER_API.SERVER_API_STONE_PAY_PREV_IOS:
        {
            SendStorePayPrev_ios cSendPacket = JsonMapper.ToObject <SendStorePayPrev_ios>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:課金操作:魔法石購入直前処理( Android … GooglePlay )
        //-------------------------
        case SERVER_API.SERVER_API_STONE_PAY_PREV_ANDROID:
        {
            SendStorePayPrev_android cSendPacket = JsonMapper.ToObject <SendStorePayPrev_android>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:課金操作:魔法石購入反映処理( iOS … AppStore )
        //-------------------------
        case SERVER_API.SERVER_API_STONE_PAY_IOS:
        {
            SendStorePay_ios cSendPacket = JsonMapper.ToObject <SendStorePay_ios>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:課金操作:魔法石購入反映処理( Android … GooglePlay )
        //-------------------------
        case SERVER_API.SERVER_API_STONE_PAY_ANDROID:
        {
            SendStorePay_android cSendPacket = JsonMapper.ToObject <SendStorePay_android>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:ユーザーレビュー関連:レビュー遷移報酬
        //-------------------------
        case SERVER_API.SERVER_API_REVIEW_PRESENT:
        {
            SendReviewPresent cSendPacket = JsonMapper.ToObject <SendReviewPresent>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:プレゼント関連:プレゼント一覧取得
        //-------------------------
        case SERVER_API.SERVER_API_PRESENT_LIST_GET:
        {
            SendPresentListGet cSendPacket = JsonMapper.ToObject <SendPresentListGet>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

        //-------------------------
        // APIタイプ:プレゼント関連:プレゼント開封
        //-------------------------
        case SERVER_API.SERVER_API_PRESENT_OPEN:
        {
            SendPresentOpen cSendPacket = JsonMapper.ToObject <SendPresentOpen>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

            //-------------------------
            // APIタイプ:デバッグ機能関連:ユーザーランクアップ
            //-------------------------
#if BUILD_TYPE_DEBUG
        case SERVER_API.SERVER_API_DEBUG_RANKUP:
        {
            SendDebugUserRankUp cSendPacket = JsonMapper.ToObject <SendDebugUserRankUp>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;
#endif
            //-------------------------
            // APIタイプ:デバッグ機能関連:ユニット取得
            //-------------------------
#if BUILD_TYPE_DEBUG
        case SERVER_API.SERVER_API_DEBUG_UNIT_GET:
        {
            SendDebugUnitGet cSendPacket = JsonMapper.ToObject <SendDebugUnitGet>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;

            //-------------------------
            // APIタイプ:デバッグ機能関連:クエストクリア情報改変
            //-------------------------
#endif
#if BUILD_TYPE_DEBUG
        case SERVER_API.SERVER_API_DEBUG_QUEST_CLEAR:
        {
            SendDebugQuestClear cSendPacket = JsonMapper.ToObject <SendDebugQuestClear>(strAPIData);
            cSendPacket.header = cSendHeader;
            strAPIData         = JsonMapper.ToJson(cSendPacket);
        }
        break;
#endif
            //-------------------------
            //
            //-------------------------
        }
#endif

        //--------------------------------
        // API送信リクエスト発行
        //--------------------------------
        return(ServerDataManager.Instance.AddCommunicateRequest(
                   eAPIType
                   , strAPIData
                   , unPacketUniqueID
                   ));
    }
Esempio n. 18
0
    //一括受取ボタン
    public void OnClickReceiveAllButton()
    {
#if BUILD_TYPE_DEBUG
        Debug.Log("CALLOnClickReceiveAllButton");
#endif

        if (GlobalMenuManager.Instance.IsPageClosing() == true)
        {
            return;
        }

        //連打防止
        if (ServerApi.IsExists)
        {
            return;
        }

        if (GlobalMenuManager.Instance.IsCangeTime())
        {
            return;
        }

        SoundUtil.PlaySE(SEID.SE_MENU_OK);

        List <MasterDataAchievementConverted> tmpOpenCollection = CurrentMissionGroup.Collection.FindAll((v) => v.IsState_Achieve || v.IsState_AchieveEffect);
        List <MasterDataAchievementConverted> openCollection    = new List <MasterDataAchievementConverted>();

        //--------------------------------------
        // フィルター設定に該当するミッションを抽出する
        //--------------------------------------
        MasterDataDefineLabel.AchievementReceiveType filterType = MasterDataDefineLabel.AchievementReceiveType.NONE;
        if (m_FilterInfo != null)
        {
            filterType = m_FilterInfo.m_receive_type;
        }
        for (int i = 0; i < tmpOpenCollection.Count; ++i)
        {
            if (MasterDataUtil.CheckReceivePresentType(tmpOpenCollection[i].present_ids, filterType) == true)
            {
                openCollection.Add(tmpOpenCollection[i]);
            }
        }

        uint[] present = openCollection.Select((v) => v.fix_id).ToArray();  // 現在のタブで、報酬があるアチーブメントの配列

        // リクエスト
        ServerDataUtilSend.SendPacketAPI_AchievementOpen(present, new uint[]
        {
            (uint)CurrentMissionGroup.missionGroupType
        }).
        setSuccessAction((_data) =>
        {
            //ユーザー情報更新
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvOpenAchievement>(UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();

            RecvOpenAchievementValue result = _data.GetResult <RecvOpenAchievement>().result;
            MissionAllOpenResultMessage(result);
#if BUILD_TYPE_DEBUG
            Debug.Log("FINISH:" + result.achievement_opened);
#endif
            CurrentMissionGroup.SetEnaleReceiveButtonAll(false);     // 開封したミッションリストのボタンを押せなくする
            CurrentMissionGroup.Activate();

            // 開封した新規達成アチーブメントを削除
            ResidentParam.DelAchievementClear(result.achievement_opened);

            MainMenuManager.Instance.UpdateUserStatusFromGlobalMenu();
        }).
        setErrorAction((_data) =>
        {
            Debug.LogError("ERROR:" + _data.m_PacketCode);
            CurrentMissionGroup.SetEnaleReceiveButtonAll(true);
        }).
        SendStart();
    }
Esempio n. 19
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();
        }));
    }