Ejemplo n.º 1
0
    private void openDebugScrachDialog()
    {
        Dialog newDialog = Dialog.Create(DialogType.DialogYesNo).SetStrongYes();

        newDialog.SetDialogText(DialogTextType.Title, "DebugScrach");
        newDialog.SetDialogText(DialogTextType.MainText, "デバッグ用の機能です\n" +
                                "1枚引くを連続で2回送信します。");

        newDialog.SetDialogTextFromTextkey(DialogTextType.YesText, "common_button4");
        newDialog.SetDialogTextFromTextkey(DialogTextType.NoText, "common_button5");

        newDialog.SetDialogEvent(DialogButtonEventType.YES, new System.Action(() =>
        {
            int count    = 1;
            int tutorial = (TutorialManager.IsExists) ? 1 : 0;

            SendScratch(count);

#if BUILD_TYPE_DEBUG
            Debug.Log("Scratch Debug Send");
#endif
            var serverApi = ServerDataUtilSend.SendPacketAPI_GachaPlay(Context.gachaMaster.fix_id, (uint)count, (uint)tutorial);

            // SendStartの成功時の振る舞い
            serverApi.setSuccessAction(_data =>
            {
#if BUILD_TYPE_DEBUG
                Debug.Log("Scratch Debug Send Success");
#endif
                UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvGachaPlay>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
                UserDataAdmin.Instance.ConvertPartyAssing();
            });
            // SendStartの失敗時の振る舞い
            serverApi.setErrorAction(_date =>
            {
#if BUILD_TYPE_DEBUG
                Debug.Log("Scratch Debug Send ng");
#endif
            });

            serverApi.SendStart();
        }));
        newDialog.DisableCancelButton();
        newDialog.Show();
    }
Ejemplo n.º 2
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();
    }