示例#1
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;
    }