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(); }
// ガチャ実行 // 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(); }