diff --git a/MariesWonderland.sln b/MariesWonderland.sln new file mode 100644 index 0000000..90d24b4 --- /dev/null +++ b/MariesWonderland.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MariesWonderland", "src/MariesWonderland.csproj", "{CA577316-1B99-4730-B5BC-52B3B914F4A1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CA577316-1B99-4730-B5BC-52B3B914F4A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA577316-1B99-4730-B5BC-52B3B914F4A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA577316-1B99-4730-B5BC-52B3B914F4A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA577316-1B99-4730-B5BC-52B3B914F4A1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DFE0158F-EDF3-483A-B024-896B0BB7D843} + EndGlobalSection +EndGlobal diff --git a/src/MariesWonderland.csproj b/src/MariesWonderland.csproj new file mode 100644 index 0000000..03afbe8 --- /dev/null +++ b/src/MariesWonderland.csproj @@ -0,0 +1,17 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + diff --git a/src/Program.cs b/src/Program.cs new file mode 100644 index 0000000..195058c --- /dev/null +++ b/src/Program.cs @@ -0,0 +1,42 @@ +using MariesWonderland.Services; +using Microsoft.AspNetCore.Server.Kestrel.Core; + +namespace MariesWonderland; + +public static class Program +{ + public static void Main(string[] args) + { + var builder = WebApplication.CreateBuilder(args); + + // Enforce HTTP/2 + builder.WebHost.ConfigureKestrel(options => options.ListenLocalhost(7777, x => x.Protocols = HttpProtocols.Http2)); + builder.WebHost.ConfigureKestrel(options => options.ListenLocalhost(7776, x => + { + x.UseHttps(); + x.Protocols = HttpProtocols.Http2; + })); + + // Add GRPC + builder.Services.AddGrpc(); + + var app = builder.Build(); + + // Add GRPC services + app.MapGrpcService(); + app.MapGrpcService(); + app.MapGrpcService(); + app.MapGrpcService(); + app.MapGrpcService(); + + // Add HTTP middleware + app.MapGet("/", () => "Marie's Wonderland is open for business :marie:"); + app.MapGet("/{**catchAll}", (string catchAll) => $"You requested: {catchAll}"); + app.MapPost("/{**catchAll}", (string catchAll) => $"You requested: {catchAll}"); + app.MapPut("/{**catchAll}", (string catchAll) => $"You requested: {catchAll}"); + app.MapDelete("/{**catchAll}", (string catchAll) => $"You requested: {catchAll}"); + app.MapPatch("/{**catchAll}", (string catchAll) => $"You requested: {catchAll}"); + + app.Run(); + } +} \ No newline at end of file diff --git a/src/Properties/launchSettings.json b/src/Properties/launchSettings.json new file mode 100644 index 0000000..3a22cd7 --- /dev/null +++ b/src/Properties/launchSettings.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "profiles": { + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:7776;http://localhost:7777", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/src/Services/ConfigService.cs b/src/Services/ConfigService.cs new file mode 100644 index 0000000..4c41326 --- /dev/null +++ b/src/Services/ConfigService.cs @@ -0,0 +1,13 @@ +using Art.Framework.ApiNetwork.Grpc.Api.Config; +using Google.Protobuf.WellKnownTypes; +using Grpc.Core; + +namespace MariesWonderland.Services; + +public class ConfigService : Art.Framework.ApiNetwork.Grpc.Api.Config.ConfigService.ConfigServiceBase +{ + public override Task GetReviewServerConfig(Empty request, ServerCallContext context) + { + return Task.FromResult(new GetReviewServerConfigResponse()); + } +} diff --git a/src/Services/DataService.cs b/src/Services/DataService.cs new file mode 100644 index 0000000..3c34306 --- /dev/null +++ b/src/Services/DataService.cs @@ -0,0 +1,18 @@ +using Art.Framework.ApiNetwork.Grpc.Api.Data; +using Google.Protobuf.WellKnownTypes; +using Grpc.Core; + +namespace MariesWonderland.Services; + +public class DataService : Art.Framework.ApiNetwork.Grpc.Api.Data.DataService.DataServiceBase +{ + public override Task GetLatestMasterDataVersion(Empty request, ServerCallContext context) + { + return Task.FromResult(new MasterDataGetLatestVersionResponse()); + } + + public override Task GetUserData(UserDataGetRequest request, ServerCallContext context) + { + return Task.FromResult(new UserDataGetResponse()); + } +} diff --git a/src/Services/GameplayService.cs b/src/Services/GameplayService.cs new file mode 100644 index 0000000..2d96197 --- /dev/null +++ b/src/Services/GameplayService.cs @@ -0,0 +1,12 @@ +using Art.Framework.ApiNetwork.Grpc.Api.GamePlay; +using Grpc.Core; + +namespace MariesWonderland.Services; + +public class GameplayService : Art.Framework.ApiNetwork.Grpc.Api.GamePlay.GameplayService.GameplayServiceBase +{ + public override Task CheckBeforeGamePlay(CheckBeforeGamePlayRequest request, ServerCallContext context) + { + return Task.FromResult(new CheckBeforeGamePlayResponse()); + } +} diff --git a/src/Services/GreeterService.cs b/src/Services/GreeterService.cs new file mode 100644 index 0000000..fd255af --- /dev/null +++ b/src/Services/GreeterService.cs @@ -0,0 +1,17 @@ +using Grpc.Core; + +namespace MariesWonderland.Services; + +/// +/// Dummy service for testing +/// +public class GreeterService : Greeter.GreeterBase +{ + public override Task SayHello(HelloRequest request, ServerCallContext context) + { + return Task.FromResult(new HelloReply + { + Message = "Hello " + request.Name + }); + } +} diff --git a/src/Services/UserService.cs b/src/Services/UserService.cs new file mode 100644 index 0000000..ed70ca8 --- /dev/null +++ b/src/Services/UserService.cs @@ -0,0 +1,130 @@ +using Art.Framework.ApiNetwork.Grpc.Api.User; +using Google.Protobuf.WellKnownTypes; +using Grpc.Core; + +namespace MariesWonderland.Services; + +public class UserService : Art.Framework.ApiNetwork.Grpc.Api.User.UserService.UserServiceBase +{ + public override Task GetAndroidArgs(GetAndroidArgsRequest request, ServerCallContext context) + { + return Task.FromResult(new GetAndroidArgsResponse + { + ApiKey = "1234567890", + Nonce = "Mama" + }); + } + + public override Task Auth(AuthUserRequest request, ServerCallContext context) + { + return Task.FromResult(new AuthUserResponse + { + ExpireDatetime = Timestamp.FromDateTime(DateTime.UtcNow.AddDays(30)), + UserId = 1234567890123450000, + SessionKey = "1234567890", + Signature = "V2UnbGxQbGF5QWdhaW5Tb21lZGF5TXJNb25zdGVyIQ==" // Possibly base64 encoded + }); + } + + public override Task CheckTransferSetting(Empty request, ServerCallContext context) + { + return Task.FromResult(new CheckTransferSettingResponse()); + } + + public override Task GameStart(Empty request, ServerCallContext context) + { + return Task.FromResult(new GameStartResponse()); + } + + public override Task GetBackupToken(GetBackupTokenRequest request, ServerCallContext context) + { + return Task.FromResult(new GetBackupTokenResponse + { + BackupToken = "1234567890" + }); + } + + public override Task GetBirthYearMonth(Empty request, ServerCallContext context) + { + return Task.FromResult(new GetBirthYearMonthResponse()); + } + + public override Task GetChargeMoney(Empty request, ServerCallContext context) + { + return Task.FromResult(new GetChargeMoneyResponse()); + } + + public override Task GetUserGamePlayNote(GetUserGamePlayNoteRequest request, ServerCallContext context) + { + return Task.FromResult(new GetUserGamePlayNoteResponse()); + } + + public override Task GetUserProfile(GetUserProfileRequest request, ServerCallContext context) + { + return Task.FromResult(new GetUserProfileResponse()); + } + + public override Task RegisterUser(RegisterUserRequest request, ServerCallContext context) + { + return Task.FromResult(new RegisterUserResponse()); + } + + public override Task SetAppleAccount(SetAppleAccountRequest request, ServerCallContext context) + { + return Task.FromResult(new SetAppleAccountResponse()); + } + + public override Task SetBirthYearMonth(SetBirthYearMonthRequest request, ServerCallContext context) + { + return Task.FromResult(new SetBirthYearMonthResponse()); + } + + public override Task SetFacebookAccount(SetFacebookAccountRequest request, ServerCallContext context) + { + return Task.FromResult(new SetFacebookAccountResponse()); + } + + public override Task SetUserFavoriteCostumeId(SetUserFavoriteCostumeIdRequest request, ServerCallContext context) + { + return Task.FromResult(new SetUserFavoriteCostumeIdResponse()); + } + + public override Task SetUserMessage(SetUserMessageRequest request, ServerCallContext context) + { + return Task.FromResult(new SetUserMessageResponse()); + } + + public override Task SetUserName(SetUserNameRequest request, ServerCallContext context) + { + return Task.FromResult(new SetUserNameResponse()); + } + + public override Task SetUserSetting(SetUserSettingRequest request, ServerCallContext context) + { + return Task.FromResult(new SetUserSettingResponse()); + } + + public override Task TransferUser(TransferUserRequest request, ServerCallContext context) + { + return Task.FromResult(new TransferUserResponse + { + UserId = 1234567890123450000, + Signature = "V2UnbGxQbGF5QWdhaW5Tb21lZGF5TXJNb25zdGVyIQ==" // Possibly base64 encoded + }); + } + + public override Task TransferUserByApple(TransferUserByAppleRequest request, ServerCallContext context) + { + return Task.FromResult(new TransferUserByAppleResponse()); + } + + public override Task TransferUserByFacebook(TransferUserByFacebookRequest request, ServerCallContext context) + { + return Task.FromResult(new TransferUserByFacebookResponse()); + } + + public override Task UnsetFacebookAccount(Empty request, ServerCallContext context) + { + return Task.FromResult(new UnsetFacebookAccountResponse()); + } +} diff --git a/src/appsettings.Development.json b/src/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/src/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/src/appsettings.json b/src/appsettings.json new file mode 100644 index 0000000..e939636 --- /dev/null +++ b/src/appsettings.json @@ -0,0 +1,16 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Microsoft.AspNetCore.Hosting": "Information", + "Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information" + } + }, + "AllowedHosts": "*", + "Kestrel": { + "EndpointDefaults": { + "Protocols": "Http2" + } + } +} diff --git a/src/proto/banner.proto b/src/proto/banner.proto new file mode 100644 index 0000000..a338d60 --- /dev/null +++ b/src/proto/banner.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Banner"; + +import "proto/mission.proto"; +import "proto/data.proto"; + +package apb.api.banner; + +service BannerService { + rpc GetMamaBanner (GetMamaBannerRequest) returns (GetMamaBannerResponse); +} + +message GetMamaBannerRequest { + apb.api.mission.CageMeasurableValues cageMeasurableValues = 50; +} + +message GetMamaBannerResponse { + repeated GachaBanner termLimitedGacha = 2; + GachaBanner latestChapterGacha = 3; + bool isExistUnreadPop = 4; + map diffUserData = 99; +} + +message GachaBanner { + int32 gachaLabelType = 1; + string gachaAssetName = 2; + int32 gachaId = 3; +} \ No newline at end of file diff --git a/src/proto/battle.proto b/src/proto/battle.proto new file mode 100644 index 0000000..cf86a30 --- /dev/null +++ b/src/proto/battle.proto @@ -0,0 +1,138 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Battle"; + +import "proto/data.proto"; + +package apb.api.battle; + +service BattleService { + rpc StartWave (StartWaveRequest) returns (StartWaveResponse); + rpc FinishWave (FinishWaveRequest) returns (FinishWaveResponse); +} + +message BattleReportRandomDisplay { + int32 randomDisplayValueType = 1; + int64 randomDisplayValue = 2; +} + +message CostumeBattleInfo { + int32 deckCharacterNumber = 1; + int64 totalDamage = 2; + bool isAlive = 4; + int32 hitCount = 5; + int64 maxHp = 6; + int64 remainingHp = 7; + int32 userDeckNumber = 30; + BattleReportRandomDisplay battleReportRandomDisplay = 50; +} + +message StartWaveRequest { + repeated UserPartyInitialInfo userPartyInitialInfoList = 1; + repeated NpcPartyInitialInfo npcPartyInitialInfoList = 2; +} + +message UserPartyInitialInfo { + int64 userId = 1; + int32 deckType = 2; + int64 userDeckNumber = 3; + int64 totalHp = 4; + string vt = 200; +} + +message NpcPartyInitialInfo { + int64 npcId = 1; + int32 deckType = 2; + int32 battleNpcDeckNumber = 3; + int64 totalHp = 4; +} + +message StartWaveResponse { + map diffUserData = 99; +} + +message FinishWaveRequest { + bytes battleBinary = 1; + BattleDetail battleDetail = 2; + repeated UserPartyResultInfo userPartyResultInfoList = 3; + repeated NpcPartyResultInfo npcPartyResultInfoList = 4; + int64 elapsedFrameCount = 5; + string vt = 200; +} + +message BattleDetail { + int32 characterDeathCount = 1; + int32 maxDamage = 2; + int32 playerCostumeActiveSkillUsedCount = 3; + int32 playerWeaponActiveSkillUsedCount = 4; + int32 playerCompanionSkillUsedCount = 5; + int32 criticalCount = 6; + int32 comboCount = 7; + int32 comboMaxDamage = 8; + repeated CostumeBattleInfo costumeBattleInfo = 9; + int64 totalRecoverPoint = 10; +} + +message UserPartyResultInfo { + int64 userId = 1; + int32 deckType = 2; + int32 userDeckNumber = 3; + repeated AddUserDamageInfo addDamageInfoList = 4; + repeated UserRecoverInfo userRecoverInfo = 5; + repeated SkillUseInfo skillUseInfo = 6; + int32 characterDeathCount = 7; + int32 characterReviveCount = 8; + int32 characterHpDepletedCount = 9; +} + +message AddUserDamageInfo { + int64 userId = 1; + int32 deckType = 2; + int32 deckNumber = 3; + int64 totalDamage = 4; + int64 totalUnclampedDamage = 5; +} + +message UserRecoverInfo { + int64 userId = 1; + int32 deckType = 2; + int32 deckNumber = 3; + int64 totalRecoverPoint = 4; +} + +message SkillUseInfo { + string deckCharacterUuid = 1; + int32 skillDetailId = 2; + int32 useCount = 3; +} + +message NpcPartyResultInfo { + int64 npcId = 1; + int32 deckType = 2; + int32 battleNpcDeckNumber = 3; + repeated AddNpcDamageInfo addDamageInfoList = 4; + repeated NpcRecoverInfo npcRecoverInfo = 5; + repeated SkillUseInfo skillUseInfo = 6; + int32 characterDeathCount = 7; + int32 characterReviveCount = 8; + int32 characterHpDepletedCount = 9; +} + +message AddNpcDamageInfo { + int64 npcId = 1; + int32 deckType = 2; + int32 deckNumber = 3; + int64 totalDamage = 4; + int64 totalUnclampedDamage = 5; +} + +message NpcRecoverInfo { + int64 npcId = 1; + int32 deckType = 2; + int32 deckNumber = 3; + int64 totalRecoverPoint = 4; +} + +message FinishWaveResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/bighunt.proto b/src/proto/bighunt.proto new file mode 100644 index 0000000..537ee75 --- /dev/null +++ b/src/proto/bighunt.proto @@ -0,0 +1,142 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.BigHunt"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; +import "proto/battle.proto"; + +package apb.api.bighunt; + +service BighuntService { + rpc StartBigHuntQuest (StartBigHuntQuestRequest) returns (StartBigHuntQuestResponse); + rpc UpdateBigHuntQuestSceneProgress (UpdateBigHuntQuestSceneProgressRequest) returns (UpdateBigHuntQuestSceneProgressResponse); + rpc FinishBigHuntQuest (FinishBigHuntQuestRequest) returns (FinishBigHuntQuestResponse); + rpc RestartBigHuntQuest (RestartBigHuntQuestRequest) returns (RestartBigHuntQuestResponse); + rpc SkipBigHuntQuest (SkipBigHuntQuestRequest) returns (SkipBigHuntQuestResponse); + rpc SaveBigHuntBattleInfo (SaveBigHuntBattleInfoRequest) returns (SaveBigHuntBattleInfoResponse); + rpc GetBigHuntTopData (google.protobuf.Empty) returns (GetBigHuntTopDataResponse); +} + +message WeeklyScoreResult { + int32 attributeType = 1; + int64 beforeMaxScore = 2; + int64 currentMaxScore = 3; + int32 beforeAssetGradeIconId = 4; + int32 currentAssetGradeIconId = 5; + int64 afterMaxScore = 6; + int32 afterAssetGradeIconId = 7; +} + +message BigHuntReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message StartBigHuntQuestRequest { + int32 bigHuntBossQuestId = 1; + int32 bigHuntQuestId = 2; + int32 userDeckNumber = 3; + bool isDryRun = 4; +} + +message StartBigHuntQuestResponse { + map diffUserData = 99; +} + +message UpdateBigHuntQuestSceneProgressRequest { + int32 questSceneId = 1; +} + +message UpdateBigHuntQuestSceneProgressResponse { + map diffUserData = 99; +} + +message FinishBigHuntQuestRequest { + int32 bigHuntBossQuestId = 1; + int32 bigHuntQuestId = 2; + bool isRetired = 3; + string vt = 200; +} + +message FinishBigHuntQuestResponse { + BigHuntScoreInfo scoreInfo = 1; + repeated BigHuntReward scoreReward = 2; + BigHuntBattleReport battleReport = 3; + map diffUserData = 99; +} + +message BigHuntScoreInfo { + int64 userScore = 1; + bool isHighScore = 2; + int64 totalDamage = 3; + int64 baseScore = 4; + int32 difficultyBonusPermil = 5; + int32 aliveBonusPermil = 6; + int32 maxComboBonusPermil = 7; + int32 assetGradeIconId = 8; +} + +message BigHuntBattleReport { + repeated BigHuntBattleReportWave battleReportWave = 1; +} + +message BigHuntBattleReportWave { + repeated BigHuntBattleReportCostume battleReportCostume = 1; +} + +message BigHuntBattleReportCostume { + int32 costumeId = 1; + int64 totalDamage = 2; + int32 hitCount = 3; + apb.api.battle.BattleReportRandomDisplay battleReportRandomDisplay = 4; +} + +message RestartBigHuntQuestRequest { + int32 bigHuntBossQuestId = 1; + int32 bigHuntQuestId = 2; +} + +message RestartBigHuntQuestResponse { + bytes battleBinary = 1; + int32 deckNumber = 2; + map diffUserData = 99; +} + +message SkipBigHuntQuestRequest { + int32 bigHuntBossQuestId = 1; + int32 skipCount = 2; +} + +message SkipBigHuntQuestResponse { + repeated BigHuntReward scoreReward = 1; + map diffUserData = 99; +} + +message SaveBigHuntBattleInfoRequest { + bytes battleBinary = 1; + BigHuntBattleDetail bigHuntBattleDetail = 2; + int64 elapsedFrameCount = 3; + string vt = 200; +} + +message BigHuntBattleDetail { + int32 deckType = 1; + int32 userTripleDeckNumber = 2; + int32 bossKnockDownCount = 3; + int32 maxComboCount = 4; + repeated apb.api.battle.CostumeBattleInfo costumeBattleInfo = 9; +} + +message SaveBigHuntBattleInfoResponse { + map diffUserData = 99; +} + +message GetBigHuntTopDataResponse { + repeated WeeklyScoreResult weeklyScoreResult = 1; + repeated BigHuntReward weeklyScoreReward = 2; + bool isReceivedWeeklyScoreReward = 3; + repeated BigHuntReward lastWeekWeeklyScoreReward = 4; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/cageornament.proto b/src/proto/cageornament.proto new file mode 100644 index 0000000..659f254 --- /dev/null +++ b/src/proto/cageornament.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.CageOrnament"; + +import "proto/data.proto"; + +package apb.api.cageornament; + +service CageornamentService { + rpc ReceiveReward (ReceiveRewardRequest) returns (ReceiveRewardResponse); + rpc RecordAccess (RecordAccessRequest) returns (RecordAccessResponse); +} + +message ReceiveRewardRequest { + int32 cageOrnamentId = 1; +} + +message ReceiveRewardResponse { + repeated CageOrnamentReward cageOrnamentReward = 1; + map diffUserData = 99; +} + +message CageOrnamentReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message RecordAccessRequest { + int32 cageOrnamentId = 1; +} + +message RecordAccessResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/character.proto b/src/proto/character.proto new file mode 100644 index 0000000..8c2bb47 --- /dev/null +++ b/src/proto/character.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Character"; + +import "proto/data.proto"; + +package apb.api.character; + +service CharacterService { + rpc Rebirth (RebirthRequest) returns (RebirthResponse); +} + +message RebirthRequest { + int32 characterId = 1; + int32 rebirthCount = 2; +} + +message RebirthResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/characterboard.proto b/src/proto/characterboard.proto new file mode 100644 index 0000000..2de1af6 --- /dev/null +++ b/src/proto/characterboard.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.CharacterBoard"; + +import "proto/data.proto"; + +package apb.api.characterboard; + +service CharacterboardService { + rpc ReleasePanel (ReleasePanelRequest) returns (ReleasePanelResponse); +} + +message ReleasePanelRequest { + repeated int32 characterBoardPanelId = 1; +} + +message ReleasePanelResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/characterviewer.proto b/src/proto/characterviewer.proto new file mode 100644 index 0000000..679884a --- /dev/null +++ b/src/proto/characterviewer.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.CharacterViewer"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.characterviewer; + +service CharacterviewerService { + rpc CharacterViewerTop (google.protobuf.Empty) returns (CharacterViewerTopResponse); +} + +message CharacterViewerTopResponse { + repeated int32 releaseCharacterViewerFieldId = 1; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/companion.proto b/src/proto/companion.proto new file mode 100644 index 0000000..3501425 --- /dev/null +++ b/src/proto/companion.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Companion"; + +import "proto/data.proto"; + +package apb.api.companion; + +service CompanionService { + rpc Enhance (EnhanceRequest) returns (EnhanceResponse); +} + +message EnhanceRequest { + string userCompanionUuid = 1; + int32 addLevelCount = 2; +} + +message EnhanceResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/config.proto b/src/proto/config.proto new file mode 100644 index 0000000..027701f --- /dev/null +++ b/src/proto/config.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Config"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.config; + +service ConfigService { + rpc GetReviewServerConfig (google.protobuf.Empty) returns (GetReviewServerConfigResponse); +} + +message GetReviewServerConfigResponse { + ApiConfig api = 1; + OctoConfig octo = 2; + WebViewConfig webView = 3; + MasterDataConfig masterData = 4; + map diffUserData = 99; +} + +message ApiConfig { + string hostname = 1; + int32 port = 2; +} + +message OctoConfig { + int32 version = 1; + int32 appId = 2; + string clientSecretKey = 3; + string aesKey = 4; + string url = 5; +} + +message WebViewConfig { + string baseUrl = 1; +} + +message MasterDataConfig { + string urlFormat = 1; +} \ No newline at end of file diff --git a/src/proto/consumableitem.proto b/src/proto/consumableitem.proto new file mode 100644 index 0000000..6484dfc --- /dev/null +++ b/src/proto/consumableitem.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.ConsumableItem"; + +import "proto/data.proto"; + +package apb.api.consumableitem; + +service ConsumableitemService { + rpc UseEffectItem (UseEffectItemRequest) returns (UseEffectItemResponse); + rpc Sell (SellRequest) returns (SellResponse); +} + +message UseEffectItemRequest { + int32 consumableItemId = 1; + int32 count = 2; +} + +message UseEffectItemResponse { + map diffUserData = 99; +} + +message SellRequest { + repeated SellPossession consumableItemPossession = 1; +} + +message SellPossession { + int32 consumableItemId = 1; + int32 count = 2; +} + +message SellResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/contentsstory.proto b/src/proto/contentsstory.proto new file mode 100644 index 0000000..08e4f65 --- /dev/null +++ b/src/proto/contentsstory.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.ContentsStory"; + +import "proto/data.proto"; + +package apb.api.contentsstory; + +service ContentsstoryService { + rpc RegisterPlayed (RegisterPlayedRequest) returns (RegisterPlayedResponse); +} + +message RegisterPlayedRequest { + int32 contentsStoryId = 1; +} + +message RegisterPlayedResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/costume.proto b/src/proto/costume.proto new file mode 100644 index 0000000..4459d22 --- /dev/null +++ b/src/proto/costume.proto @@ -0,0 +1,92 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Costume"; + +import "proto/data.proto"; + +package apb.api.costume; + +service CostumeService { + rpc Enhance (EnhanceRequest) returns (EnhanceResponse); + rpc LimitBreak (LimitBreakRequest) returns (LimitBreakResponse); + rpc Awaken (AwakenRequest) returns (AwakenResponse); + rpc EnhanceActiveSkill (EnhanceActiveSkillRequest) returns (EnhanceActiveSkillResponse); + rpc RegisterLevelBonusConfirmed (RegisterLevelBonusConfirmedRequest) returns (RegisterLevelBonusConfirmedResponse); + rpc UnlockLotteryEffectSlot (UnlockLotteryEffectSlotRequest) returns (UnlockLotteryEffectSlotResponse); + rpc DrawLotteryEffect (DrawLotteryEffectRequest) returns (DrawLotteryEffectResponse); + rpc ConfirmLotteryEffect (ConfirmLotteryEffectRequest) returns (ConfirmLotteryEffectResponse); +} + +message EnhanceRequest { + string userCostumeUuid = 1; + map materials = 2; +} + +message EnhanceResponse { + bool isGreatSuccess = 1; + map surplusEnhanceMaterial = 2; + map diffUserData = 99; +} + +message LimitBreakRequest { + string userCostumeUuid = 1; + map materials = 2; +} + +message LimitBreakResponse { + map diffUserData = 99; +} + +message AwakenRequest { + string userCostumeUuid = 1; + map materials = 2; +} + +message AwakenResponse { + map diffUserData = 99; +} + +message EnhanceActiveSkillRequest { + string userCostumeUuid = 1; + int32 addLevelCount = 2; +} + +message EnhanceActiveSkillResponse { + map diffUserData = 99; +} + +message RegisterLevelBonusConfirmedRequest { + int32 costumeId = 1; + int32 level = 2; +} + +message RegisterLevelBonusConfirmedResponse { + map diffUserData = 99; +} + +message UnlockLotteryEffectSlotRequest { + string userCostumeUuid = 1; + int32 slotNumber = 2; +} + +message UnlockLotteryEffectSlotResponse { + map diffUserData = 99; +} + +message DrawLotteryEffectRequest { + string userCostumeUuid = 1; + int32 slotNumber = 2; +} + +message DrawLotteryEffectResponse { + map diffUserData = 99; +} + +message ConfirmLotteryEffectRequest { + string userCostumeUuid = 1; + bool isAccept = 2; +} + +message ConfirmLotteryEffectResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/data.proto b/src/proto/data.proto new file mode 100644 index 0000000..29e14b7 --- /dev/null +++ b/src/proto/data.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Data"; + +import "google/protobuf/empty.proto"; + +package apb.api.data; + +service DataService { + rpc GetLatestMasterDataVersion (google.protobuf.Empty) returns (MasterDataGetLatestVersionResponse); + rpc GetUserDataNameV2 (google.protobuf.Empty) returns (UserDataGetNameResponseV2); + rpc GetUserData (UserDataGetRequest) returns (UserDataGetResponse); +} + +message DiffData { + string updateRecordsJson = 1; + string deleteKeysJson = 2; +} + +message MasterDataGetLatestVersionResponse { + string latestMasterDataVersion = 1; +} + +message UserDataGetNameResponseV2 { + repeated TableNameList tableNameList = 1; +} + +message TableNameList { + repeated string tableName = 1; +} + +message UserDataGetRequest { + repeated string tableName = 1; +} + +message UserDataGetResponse { + map userDataJson = 1; +} \ No newline at end of file diff --git a/src/proto/deck.proto b/src/proto/deck.proto new file mode 100644 index 0000000..91a9f95 --- /dev/null +++ b/src/proto/deck.proto @@ -0,0 +1,158 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Deck"; + +import "proto/data.proto"; + +package apb.api.deck; + +service DeckService { + rpc UpdateName (UpdateNameRequest) returns (UpdateNameResponse); + rpc ReplaceDeck (ReplaceDeckRequest) returns (ReplaceDeckResponse); + rpc SetPvpDefenseDeck (SetPvpDefenseDeckRequest) returns (SetPvpDefenseDeckResponse); + rpc CopyDeck (CopyDeckRequest) returns (CopyDeckResponse); + rpc RemoveDeck (RemoveDeckRequest) returns (RemoveDeckResponse); + rpc RefreshDeckPower (RefreshDeckPowerRequest) returns (RefreshDeckPowerResponse); + rpc UpdateTripleDeckName (UpdateTripleDeckNameRequest) returns (UpdateTripleDeckNameResponse); + rpc ReplaceTripleDeck (ReplaceTripleDeckRequest) returns (ReplaceTripleDeckResponse); + rpc ReplaceMultiDeck (ReplaceMultiDeckRequest) returns (ReplaceMultiDeckResponse); + rpc RefreshMultiDeckPower (RefreshMultiDeckPowerRequest) returns (RefreshMultiDeckPowerResponse); +} + +message Deck { + DeckCharacter character01 = 1; + DeckCharacter character02 = 2; + DeckCharacter character03 = 3; +} + +message DeckCharacter { + string userCostumeUuid = 1; + string mainUserWeaponUuid = 2; + repeated string subUserWeaponUuid = 3; + string userCompanionUuid = 4; + repeated string userPartsUuid = 5; + int32 dressupCostumeId = 6; + string userThoughtUuid = 7; +} + +message UpdateNameRequest { + int32 deckType = 1; + int32 userDeckNumber = 2; + string name = 3; +} + +message UpdateNameResponse { + map diffUserData = 99; +} + +message ReplaceDeckRequest { + int32 deckType = 1; + int32 userDeckNumber = 2; + Deck deck = 3; +} + +message ReplaceDeckResponse { + map diffUserData = 99; +} + +message SetPvpDefenseDeckRequest { + int32 userDeckNumber = 1; + DeckPower deckPower = 2; +} + +message DeckPower { + int32 power = 1; + DeckCharacterPower deckCharacterPower01 = 2; + DeckCharacterPower deckCharacterPower02 = 3; + DeckCharacterPower deckCharacterPower03 = 4; +} + +message DeckCharacterPower { + string userDeckCharacterUuid = 1; + int32 power = 2; +} + +message SetPvpDefenseDeckResponse { + map diffUserData = 99; +} + +message CopyDeckRequest { + int32 fromDeckType = 1; + int32 fromUserDeckNumber = 2; + int32 toDeckType = 3; + int32 toUserDeckNumber = 4; +} + +message CopyDeckResponse { + int32 resultType = 1; + map diffUserData = 99; +} + +message RemoveDeckRequest { + int32 deckType = 1; + int32 userDeckNumber = 2; +} + +message RemoveDeckResponse { + map diffUserData = 99; +} + +message RefreshDeckPowerRequest { + int32 deckType = 1; + int32 userDeckNumber = 2; + DeckPower deckPower = 3; +} + +message RefreshDeckPowerResponse { + map diffUserData = 99; +} + +message UpdateTripleDeckNameRequest { + int32 deckType = 1; + int32 userDeckNumber = 2; + string name = 3; +} + +message UpdateTripleDeckNameResponse { + map diffUserData = 99; +} + +message ReplaceTripleDeckRequest { + int32 deckType = 1; + int32 userDeckNumber = 2; + DeckDetail deckDetail01 = 3; + DeckDetail deckDetail02 = 4; + DeckDetail deckDetail03 = 5; +} + +message DeckDetail { + int32 deckType = 1; + int32 userDeckNumber = 2; + Deck deck = 3; +} + +message ReplaceTripleDeckResponse { + map diffUserData = 99; +} + +message ReplaceMultiDeckRequest { + repeated DeckDetail deckDetail = 1; +} + +message ReplaceMultiDeckResponse { + map diffUserData = 99; +} + +message RefreshMultiDeckPowerRequest { + repeated DeckPowerInfo deckPowerInfo = 1; +} + +message DeckPowerInfo { + int32 deckType = 1; + int32 userDeckNumber = 2; + DeckPower deckPower = 3; +} + +message RefreshMultiDeckPowerResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/dokan.proto b/src/proto/dokan.proto new file mode 100644 index 0000000..b407bb2 --- /dev/null +++ b/src/proto/dokan.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Dokan"; + +import "proto/data.proto"; + +package apb.api.dokan; + +service DokanService { + rpc RegisterDokanConfirmed (RegisterDokanConfirmedRequest) returns (RegisterDokanConfirmedResponse); +} + +message RegisterDokanConfirmedRequest { + repeated int32 dokanId = 1; +} + +message RegisterDokanConfirmedResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/explore.proto b/src/proto/explore.proto new file mode 100644 index 0000000..54b6c8c --- /dev/null +++ b/src/proto/explore.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Explore"; + +import "proto/data.proto"; + +package apb.api.explore; + +service ExploreService { + rpc StartExplore (StartExploreRequest) returns (StartExploreResponse); + rpc FinishExplore (FinishExploreRequest) returns (FinishExploreResponse); + rpc RetireExplore (RetireExploreRequest) returns (RetireExploreResponse); +} + +message StartExploreRequest { + int32 exploreId = 1; + int32 useConsumableItemId = 2; +} + +message StartExploreResponse { + map diffUserData = 99; +} + +message FinishExploreRequest { + int32 exploreId = 1; + int32 score = 2; + string vt = 200; +} + +message FinishExploreResponse { + int32 acquireStaminaCount = 1; + repeated ExploreReward exploreReward = 2; + int32 assetGradeIconId = 3; + map diffUserData = 99; +} + +message ExploreReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message RetireExploreRequest { + int32 exploreId = 1; +} + +message RetireExploreResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/friend.proto b/src/proto/friend.proto new file mode 100644 index 0000000..0f44234 --- /dev/null +++ b/src/proto/friend.proto @@ -0,0 +1,135 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Friend"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; +import "google/protobuf/timestamp.proto"; +import "proto/mission.proto"; + +package apb.api.friend; + +service FriendService { + rpc GetUser (GetUserRequest) returns (GetUserResponse); + rpc SearchRecommendedUsers (google.protobuf.Empty) returns (SearchRecommendedUsersResponse); + rpc GetFriendList (GetFriendListRequest) returns (GetFriendListResponse); + rpc GetFriendRequestList (google.protobuf.Empty) returns (GetFriendRequestListResponse); + rpc SendFriendRequest (SendFriendRequestRequest) returns (SendFriendRequestResponse); + rpc AcceptFriendRequest (AcceptFriendRequestRequest) returns (AcceptFriendRequestResponse); + rpc DeclineFriendRequest (DeclineFriendRequestRequest) returns (DeclineFriendRequestResponse); + rpc DeleteFriend (DeleteFriendRequest) returns (DeleteFriendResponse); + rpc CheerFriend (CheerFriendRequest) returns (CheerFriendResponse); + rpc BulkCheerFriend (google.protobuf.Empty) returns (BulkCheerFriendResponse); + rpc ReceiveCheer (ReceiveCheerRequest) returns (ReceiveCheerResponse); + rpc BulkReceiveCheer (google.protobuf.Empty) returns (BulkReceiveCheerResponse); +} + +message GetUserRequest { + int64 playerId = 1; +} + +message GetUserResponse { + User user = 1; + map diffUserData = 99; +} + +message User { + int64 playerId = 1; + string userName = 2; + google.protobuf.Timestamp lastLoginDatetime = 3; + int32 maxDeckPower = 4; + int32 favoriteCostumeId = 5; + int32 level = 6; +} + +message SearchRecommendedUsersResponse { + repeated User users = 1; + map diffUserData = 99; +} + +message GetFriendListRequest { + apb.api.mission.CageMeasurableValues cageMeasurableValues = 50; +} + +message GetFriendListResponse { + repeated FriendUser friendUser = 1; + int32 sendCheerCount = 2; + int32 receivedCheerCount = 3; + map diffUserData = 99; +} + +message FriendUser { + int64 playerId = 1; + string userName = 2; + google.protobuf.Timestamp lastLoginDatetime = 3; + int32 maxDeckPower = 4; + int32 favoriteCostumeId = 5; + int32 level = 6; + bool cheerReceived = 7; + bool cheerSent = 8; + bool staminaReceived = 9; +} + +message GetFriendRequestListResponse { + repeated User user = 1; + map diffUserData = 99; +} + +message SendFriendRequestRequest { + int64 playerId = 1; +} + +message SendFriendRequestResponse { + map diffUserData = 99; +} + +message AcceptFriendRequestRequest { + int64 playerId = 1; +} + +message AcceptFriendRequestResponse { + map diffUserData = 99; +} + +message DeclineFriendRequestRequest { + int64 playerIdOld = 1; + repeated int64 playerId = 2; +} + +message DeclineFriendRequestResponse { + map diffUserData = 99; +} + +message DeleteFriendRequest { + int64 playerId = 1; +} + +message DeleteFriendResponse { + map diffUserData = 99; +} + +message CheerFriendRequest { + int64 playerId = 1; +} + +message CheerFriendResponse { + map diffUserData = 99; +} + +message BulkCheerFriendResponse { + repeated int64 playerId = 1; + map diffUserData = 99; +} + +message ReceiveCheerRequest { + int64 playerId = 1; +} + +message ReceiveCheerResponse { + map diffUserData = 99; +} + +message BulkReceiveCheerResponse { + repeated int64 playerId = 1; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/gacha.proto b/src/proto/gacha.proto new file mode 100644 index 0000000..f5042f5 --- /dev/null +++ b/src/proto/gacha.proto @@ -0,0 +1,174 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Gacha"; + +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; +import "proto/data.proto"; + +package apb.api.gacha; + +service GachaService { + rpc GetGachaList (GetGachaListRequest) returns (GetGachaListResponse); + rpc GetGacha (GetGachaRequest) returns (GetGachaResponse); + rpc Draw (DrawRequest) returns (DrawResponse); + rpc ResetBoxGacha (ResetBoxGachaRequest) returns (ResetBoxGachaResponse); + rpc GetRewardGacha (google.protobuf.Empty) returns (GetRewardGachaResponse); + rpc RewardDraw (RewardDrawRequest) returns (RewardDrawResponse); +} + +message MenuGachaBadgeInfo { + google.protobuf.Timestamp displayStartDatetime = 1; + google.protobuf.Timestamp displayEndDatetime = 2; +} + +message GetGachaListRequest { + repeated int32 gachaLabelType = 1; +} + +message GetGachaListResponse { + repeated Gacha gacha = 1; + ConvertedGachaMedal convertedGachaMedal = 2; + map diffUserData = 99; +} + +message Gacha { + int32 gachaId = 1; + int32 gachaLabelType = 2; + int32 gachaModeType = 4; + int32 gachaAutoResetType = 5; + int32 gachaAutoResetPeriod = 6; + google.protobuf.Timestamp nextAutoResetDatetime = 7; + repeated GachaUnlockCondition gachaUnlockCondition = 8; + bool isUserGachaUnlock = 9; + google.protobuf.Timestamp startDatetime = 10; + google.protobuf.Timestamp endDatetime = 13; + repeated GachaPricePhase gachaPricePhase = 14; + int32 relatedMainQuestChapterId = 16; + int32 relatedEventQuestChapterId = 17; + int32 promotionMovieAssetId = 18; + int32 gachaMedalId = 19; + int32 gachaDecorationType = 20; + int32 sortOrder = 21; + bool isInactive = 22; + int32 informationId = 23; + bytes gachaMode = 24; +} + +message GachaUnlockCondition { + int32 gachaUnlockConditionType = 1; + int32 conditionValue = 2; +} + +message GachaPricePhase { + int32 gachaPricePhaseId = 1; + bool isEnabled = 2; + google.protobuf.Timestamp endDatetime = 3; + int32 limitExecCount = 4; + int32 userExecCount = 5; + int32 gachaBadgeType = 6; + int32 priceType = 7; + int32 priceId = 8; + int32 price = 9; + int32 regularPrice = 10; + int32 drawCount = 11; + int32 eachMaxExecCount = 12; + repeated GachaBonus gachaBonus = 13; + GachaOddsFixedRarity gachaOddsFixedRarity = 14; +} + +message GachaBonus { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message GachaOddsFixedRarity { + int32 fixedRarityTypeLowerLimit = 1; + int32 fixedCount = 2; +} + +message ConvertedGachaMedal { + repeated ConsumableItemPossession convertedMedalPossession = 1; + ConsumableItemPossession obtainPossession = 2; +} + +message ConsumableItemPossession { + int32 consumableItemId = 1; + int32 count = 2; +} + +message GetGachaRequest { + repeated int32 gachaId = 1; +} + +message GetGachaResponse { + map gacha = 1; + map diffUserData = 99; +} + +message DrawRequest { + int32 gachaId = 1; + int32 gachaPricePhaseId = 2; + int32 execCount = 3; + string consumeUserWeaponUuid = 4; +} + +message DrawResponse { + Gacha nextGacha = 1; + repeated DrawGachaOddsItem gachaResult = 2; + repeated GachaBonus gachaBonus = 3; + repeated MenuGachaBadgeInfo menuGachaBadgeInfo = 4; + map diffUserData = 99; +} + +message DrawGachaOddsItem { + GachaItem gachaItem = 1; + GachaItem gachaItemBonus = 2; + int32 duplicationBonusGrade = 3; + repeated GachaBonus duplicationBonus = 4; + GachaBonus medalBonus = 5; + bool isTarget = 6; +} + +message GachaItem { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; + int32 promotionOrder = 4; + bool isNew = 5; +} + +message ResetBoxGachaRequest { + int32 gachaId = 1; +} + +message ResetBoxGachaResponse { + Gacha gacha = 1; + map diffUserData = 99; +} + +message GetRewardGachaResponse { + bool available = 1; + int32 todaysCurrentDrawCount = 2; + int32 dailyMaxCount = 3; + map diffUserData = 99; +} + +message RewardDrawRequest { + string placementName = 1; + string rewardName = 2; + string rewardAmount = 3; +} + +message RewardDrawResponse { + repeated RewardGachaItem rewardGachaResult = 1; + map diffUserData = 99; +} + +message RewardGachaItem { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; + bool isNew = 4; +} \ No newline at end of file diff --git a/src/proto/gameplay.proto b/src/proto/gameplay.proto new file mode 100644 index 0000000..fd27ce5 --- /dev/null +++ b/src/proto/gameplay.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.GamePlay"; + +import "proto/gacha.proto"; +import "proto/data.proto"; + +package apb.api.gameplay; + +service GameplayService { + rpc CheckBeforeGamePlay (CheckBeforeGamePlayRequest) returns (CheckBeforeGamePlayResponse); +} + +message CheckBeforeGamePlayRequest { + string tr = 1; + int32 voiceClientSystemLanguageTypeId = 2; + int32 textClientSystemLanguageTypeId = 3; +} + +message CheckBeforeGamePlayResponse { + bool isExistUnreadPop = 1; + repeated apb.api.gacha.MenuGachaBadgeInfo menuGachaBadgeInfo = 2; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/gift.proto b/src/proto/gift.proto new file mode 100644 index 0000000..819e462 --- /dev/null +++ b/src/proto/gift.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Gift"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; +import "google/protobuf/timestamp.proto"; + +package apb.api.gift; + +service GiftService { + rpc ReceiveGift (ReceiveGiftRequest) returns (ReceiveGiftResponse); + rpc GetGiftList (GetGiftListRequest) returns (GetGiftListResponse); + rpc GetGiftReceiveHistoryList (google.protobuf.Empty) returns (GetGiftReceiveHistoryListResponse); +} + +message ReceiveGiftRequest { + repeated string userGiftUuid = 1; +} + +message ReceiveGiftResponse { + repeated string receivedGiftUuid = 1; + repeated string expiredGiftUuid = 2; + repeated string overflowGiftUuid = 3; + map diffUserData = 99; +} + +message GetGiftListRequest { + repeated int32 rewardKindType = 1; + int32 expirationType = 2; + bool isAscendingSort = 3; + int64 nextCursor = 4; + int64 previousCursor = 5; + int32 getCount = 6; +} + +message GetGiftListResponse { + repeated NotReceivedGift gift = 1; + int32 totalPageCount = 2; + int64 nextCursor = 3; + int64 previousCursor = 4; + map diffUserData = 99; +} + +message NotReceivedGift { + GiftCommon giftCommon = 1; + google.protobuf.Timestamp expirationDatetime = 2; + string userGiftUuid = 3; +} + +message GiftCommon { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; + google.protobuf.Timestamp grantDatetime = 4; + int32 descriptionGiftTextId = 5; + bytes equipmentData = 6; +} + +message GetGiftReceiveHistoryListResponse { + repeated ReceivedGift gift = 1; + map diffUserData = 99; +} + +message ReceivedGift { + GiftCommon giftCommon = 1; + google.protobuf.Timestamp receivedDatetime = 2; +} \ No newline at end of file diff --git a/src/proto/gimmick.proto b/src/proto/gimmick.proto new file mode 100644 index 0000000..28432c0 --- /dev/null +++ b/src/proto/gimmick.proto @@ -0,0 +1,64 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Gimmick"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.gimmick; + +service GimmickService { + rpc UpdateSequence (UpdateSequenceRequest) returns (UpdateSequenceResponse); + rpc UpdateGimmickProgress (UpdateGimmickProgressRequest) returns (UpdateGimmickProgressResponse); + rpc InitSequenceSchedule (google.protobuf.Empty) returns (InitSequenceScheduleResponse); + rpc Unlock (UnlockRequest) returns (UnlockResponse); +} + +message UpdateSequenceRequest { + int32 gimmickSequenceScheduleId = 1; + int32 gimmickSequenceId = 2; +} + +message UpdateSequenceResponse { + map diffUserData = 99; +} + +message UpdateGimmickProgressRequest { + int32 gimmickSequenceScheduleId = 1; + int32 gimmickSequenceId = 2; + int32 gimmickId = 3; + int32 gimmickOrnamentIndex = 4; + int32 progressValueBit = 5; + int32 flowType = 6; +} + +message UpdateGimmickProgressResponse { + repeated GimmickReward gimmickOrnamentReward = 1; + bool isSequenceCleared = 2; + repeated GimmickReward gimmickSequenceClearReward = 3; + map diffUserData = 99; +} + +message GimmickReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message InitSequenceScheduleResponse { + map diffUserData = 99; +} + +message UnlockRequest { + repeated GimmickKey gimmickKey = 1; +} + +message GimmickKey { + int32 gimmickSequenceScheduleId = 1; + int32 gimmickSequenceId = 2; + int32 gimmickId = 3; +} + +message UnlockResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/greet.proto b/src/proto/greet.proto new file mode 100644 index 0000000..153b666 --- /dev/null +++ b/src/proto/greet.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +option csharp_namespace = "MariesWonderland"; + +package greet; + +// The greeting service definition. +service Greeter { + // Sends a greeting + rpc SayHello (HelloRequest) returns (HelloReply); +} + +// The request message containing the user's name. +message HelloRequest { + string name = 1; +} + +// The response message containing the greetings. +message HelloReply { + string message = 1; +} diff --git a/src/proto/individualpop.proto b/src/proto/individualpop.proto new file mode 100644 index 0000000..d5d9a78 --- /dev/null +++ b/src/proto/individualpop.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.IndividualPop"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.individualpop; + +service IndividualpopService { + rpc GetUnreadPop (google.protobuf.Empty) returns (GetUnreadPopResponse); +} + +message GetUnreadPopResponse { + repeated string unreadPop = 1; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/labyrinth.proto b/src/proto/labyrinth.proto new file mode 100644 index 0000000..6b25ecc --- /dev/null +++ b/src/proto/labyrinth.proto @@ -0,0 +1,54 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Labyrinth"; + +import "proto/data.proto"; + +package apb.api.labyrinth; + +service LabyrinthService { + rpc UpdateSeasonData (UpdateSeasonDataRequest) returns (UpdateSeasonDataResponse); + rpc ReceiveStageClearReward (ReceiveStageClearRewardRequest) returns (ReceiveStageClearRewardResponse); + rpc ReceiveStageAccumulationReward (ReceiveStageAccumulationRewardRequest) returns (ReceiveStageAccumulationRewardResponse); +} + +message LabyrinthSeasonResult { + int32 eventQuestChapterId = 1; + int32 headQuestId = 2; + repeated LabyrinthReward seasonReward = 3; + int32 headStageOrder = 4; +} + +message LabyrinthReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message UpdateSeasonDataRequest { + int32 eventQuestChapterId = 1; +} + +message UpdateSeasonDataResponse { + repeated LabyrinthSeasonResult seasonResult = 1; + map diffUserData = 99; +} + +message ReceiveStageClearRewardRequest { + int32 eventQuestChapterId = 1; + int32 stageOrder = 2; +} + +message ReceiveStageClearRewardResponse { + map diffUserData = 99; +} + +message ReceiveStageAccumulationRewardRequest { + int32 eventQuestChapterId = 1; + int32 stageOrder = 2; + int32 questMissionClearCount = 3; +} + +message ReceiveStageAccumulationRewardResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/loginbonus.proto b/src/proto/loginbonus.proto new file mode 100644 index 0000000..ee19b76 --- /dev/null +++ b/src/proto/loginbonus.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.LoginBonus"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.loginbonus; + +service LoginbonusService { + rpc ReceiveStamp (google.protobuf.Empty) returns (ReceiveStampResponse); +} + +message ReceiveStampResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/material.proto b/src/proto/material.proto new file mode 100644 index 0000000..5db73bb --- /dev/null +++ b/src/proto/material.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Material"; + +import "proto/data.proto"; + +package apb.api.material; + +service MaterialService { + rpc Sell (SellRequest) returns (SellResponse); +} + +message SellRequest { + repeated SellPossession materialPossession = 1; +} + +message SellPossession { + int32 materialId = 1; + int32 count = 2; +} + +message SellResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/mission.proto b/src/proto/mission.proto new file mode 100644 index 0000000..b2b133f --- /dev/null +++ b/src/proto/mission.proto @@ -0,0 +1,70 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Mission"; + +import "proto/data.proto"; + +package apb.api.mission; + +service MissionService { + rpc ReceiveMissionRewardsById (ReceiveMissionRewardsByIdRequest) returns (ReceiveMissionRewardsResponse); + rpc UpdateMissionProgress (UpdateMissionProgressRequest) returns (UpdateMissionProgressResponse); + rpc ReceiveMissionPassRewards (ReceiveMissionPassRewardsRequest) returns (ReceiveMissionPassRewardsResponse); +} + +message CageMeasurableValues { + int32 runningDistanceMeters = 1; + int32 mamaTappedCount = 2; +} + +message ReceiveMissionRewardsByIdRequest { + repeated int32 missionId = 1; +} + +message ReceiveMissionRewardsResponse { + repeated MissionReward receivedPossession = 1; + repeated MissionReward expiredPossession = 2; + repeated MissionReward overflowPossession = 3; + map diffUserData = 99; +} + +message MissionReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message UpdateMissionProgressRequest { + CageMeasurableValues cageMeasurableValues = 50; + PictureBookMeasurableValues pictureBookMeasurableValues = 51; +} + +message PictureBookMeasurableValues { + int32 defeatWizardCount = 1; + RhythmInteractionMeasurableValues rhythmInteractionMeasurableValues = 2; +} + +message RhythmInteractionMeasurableValues { + int32 liveTypeId = 1; + int32 tapCount = 2; +} + +message UpdateMissionProgressResponse { + map diffUserData = 99; +} + +message ReceiveMissionPassRewardsRequest { + int32 missionPassId = 1; +} + +message ReceiveMissionPassRewardsResponse { + repeated MissionPassReward receivedPossession = 1; + repeated MissionPassReward overflowPossession = 2; + map diffUserData = 99; +} + +message MissionPassReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} \ No newline at end of file diff --git a/src/proto/movie.proto b/src/proto/movie.proto new file mode 100644 index 0000000..20eb697 --- /dev/null +++ b/src/proto/movie.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Movie"; + +import "proto/data.proto"; + +package apb.api.movie; + +service MovieService { + rpc SaveViewedMovie (SaveViewedMovieRequest) returns (SaveViewedMovieResponse); +} + +message SaveViewedMovieRequest { + repeated int32 movieId = 1; +} + +message SaveViewedMovieResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/navicutin.proto b/src/proto/navicutin.proto new file mode 100644 index 0000000..88583ed --- /dev/null +++ b/src/proto/navicutin.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.NaviCutIn"; + +import "proto/data.proto"; + +package apb.api.navicutin; + +service NavicutinService { + rpc RegisterPlayed (RegisterPlayedRequest) returns (RegisterPlayedResponse); +} + +message RegisterPlayedRequest { + int32 naviCutId = 1; +} + +message RegisterPlayedResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/notification.proto b/src/proto/notification.proto new file mode 100644 index 0000000..e4d9906 --- /dev/null +++ b/src/proto/notification.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Notification"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.notification; + +service NotificationService { + rpc GetHeaderNotification (google.protobuf.Empty) returns (GetHeaderNotificationResponse); +} + +message GetHeaderNotificationResponse { + int32 giftNotReceiveCount = 1; + int32 friendRequestReceiveCount = 2; + bool isExistUnreadInformation = 3; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/omikuji.proto b/src/proto/omikuji.proto new file mode 100644 index 0000000..04509af --- /dev/null +++ b/src/proto/omikuji.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Omikuji"; + +import "proto/data.proto"; + +package apb.api.omikuji; + +service OmikujiService { + rpc OmikujiDraw (OmikujiDrawRequest) returns (OmikujiDrawResponse); +} + +message OmikujiDrawRequest { + int32 omikujiId = 1; +} + +message OmikujiDrawResponse { + int32 omikujiResultAssetId = 1; + repeated OmikujiItem omikujiItem = 2; + map diffUserData = 99; +} + +message OmikujiItem { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} \ No newline at end of file diff --git a/src/proto/parts.proto b/src/proto/parts.proto new file mode 100644 index 0000000..dd10409 --- /dev/null +++ b/src/proto/parts.proto @@ -0,0 +1,108 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Parts"; + +import "proto/data.proto"; + +package apb.api.parts; + +service PartsService { + rpc Sell (SellRequest) returns (SellResponse); + rpc Protect (ProtectRequest) returns (ProtectResponse); + rpc Unprotect (UnprotectRequest) returns (UnprotectResponse); + rpc Enhance (EnhanceRequest) returns (EnhanceResponse); + rpc UpdatePresetName (UpdatePresetNameRequest) returns (UpdatePresetNameResponse); + rpc UpdatePresetTagNumber (UpdatePresetTagNumberRequest) returns (UpdatePresetTagNumberResponse); + rpc UpdatePresetTagName (UpdatePresetTagNameRequest) returns (UpdatePresetTagNameResponse); + rpc ReplacePreset (ReplacePresetRequest) returns (ReplacePresetResponse); + rpc CopyPreset (CopyPresetRequest) returns (CopyPresetResponse); + rpc RemovePreset (RemovePresetRequest) returns (RemovePresetResponse); +} + +message SellRequest { + repeated string userPartsUuid = 1; +} + +message SellResponse { + map diffUserData = 99; +} + +message ProtectRequest { + repeated string userPartsUuid = 1; +} + +message ProtectResponse { + map diffUserData = 99; +} + +message UnprotectRequest { + repeated string userPartsUuid = 1; +} + +message UnprotectResponse { + map diffUserData = 99; +} + +message EnhanceRequest { + string userPartsUuid = 1; +} + +message EnhanceResponse { + bool isSuccess = 1; + map diffUserData = 99; +} + +message UpdatePresetNameRequest { + int32 userPartsPresetNumber = 1; + string name = 2; +} + +message UpdatePresetNameResponse { + map diffUserData = 99; +} + +message UpdatePresetTagNumberRequest { + int32 userPartsPresetNumber = 1; + int32 userPartsPresetTagNumber = 2; +} + +message UpdatePresetTagNumberResponse { + map diffUserData = 99; +} + +message UpdatePresetTagNameRequest { + int32 userPartsPresetTagNumber = 1; + string name = 2; +} + +message UpdatePresetTagNameResponse { + map diffUserData = 99; +} + +message ReplacePresetRequest { + int32 userPartsPresetNumber = 1; + string userPartsUuid01 = 2; + string userPartsUuid02 = 3; + string userPartsUuid03 = 4; +} + +message ReplacePresetResponse { + map diffUserData = 99; +} + +message CopyPresetRequest { + int32 fromUserPartsPresetNumber = 1; + int32 toUserPartsPresetNumber = 2; +} + +message CopyPresetResponse { + map diffUserData = 99; +} + +message RemovePresetRequest { + int32 userPartsPresetNumber = 1; +} + +message RemovePresetResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/portalcage.proto b/src/proto/portalcage.proto new file mode 100644 index 0000000..186ae13 --- /dev/null +++ b/src/proto/portalcage.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.PortalCage"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.portalcage; + +service PortalcageService { + rpc UpdatePortalCageSceneProgress (UpdatePortalCageSceneProgressRequest) returns (UpdatePortalCageSceneProgressResponse); + rpc GetDropItem (google.protobuf.Empty) returns (GetDropItemResponse); +} + +message UpdatePortalCageSceneProgressRequest { + int32 portalCageSceneId = 1; +} + +message UpdatePortalCageSceneProgressResponse { + map diffUserData = 99; +} + +message GetDropItemResponse { + repeated PortalCageDropItem portalCageDropItem = 1; + map diffUserData = 99; +} + +message PortalCageDropItem { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} \ No newline at end of file diff --git a/src/proto/pvp.proto b/src/proto/pvp.proto new file mode 100644 index 0000000..95aab18 --- /dev/null +++ b/src/proto/pvp.proto @@ -0,0 +1,279 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Pvp"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; +import "google/protobuf/timestamp.proto"; + +package apb.api.pvp; + +service PvpService { + rpc GetTopData (google.protobuf.Empty) returns (GetTopDataResponse); + rpc GetMatchingList (google.protobuf.Empty) returns (GetMatchingListResponse); + rpc UpdateMatchingList (google.protobuf.Empty) returns (UpdateMatchingListResponse); + rpc StartBattle (StartBattleRequest) returns (StartBattleResponse); + rpc FinishBattle (FinishBattleRequest) returns (FinishBattleResponse); + rpc GetRanking (GetRankingRequest) returns (GetRankingResponse); + rpc GetSeasonResult (google.protobuf.Empty) returns (GetSeasonResultResponse); + rpc GetAttackLogList (google.protobuf.Empty) returns (GetAttackLogListResponse); + rpc GetDefenseLogList (google.protobuf.Empty) returns (GetDefenseLogListResponse); +} + +message WeeklyGradeResult { + int32 targetSeasonId = 1; + int32 pvpPoint = 2; + int32 pvpGradeWeeklyRewardGroupId = 3; +} + +message SeasonRankResult { + int32 targetSeasonId = 1; + int32 rank = 2; + int32 pvpSeasonRankRewardGroupId = 3; +} + +message WeeklyRankResult { + int32 targetSeasonId = 1; + int32 rank = 2; + int32 pvpWeeklyRankRewardGroupId = 3; +} + +message GetTopDataResponse { + int32 currentSeasonId = 1; + int32 pvpPoint = 2; + int32 rank = 3; + WeeklyGradeResult weeklyGradeResult = 4; + SeasonRankResult seasonRankResult = 5; + WeeklyRankResult weeklyRankResult = 6; + map diffUserData = 99; +} + +message GetMatchingListResponse { + repeated MatchingOpponent matching = 1; + map diffUserData = 99; +} + +message MatchingOpponent { + int64 playerId = 1; + string name = 2; + int32 pvpPoint = 3; + int32 rank = 4; + int32 deckPower = 5; + repeated int32 deckMainWeaponAttributeType = 6; + int32 mostPowerfulCostumeId = 7; +} + +message UpdateMatchingListResponse { + repeated MatchingOpponent matching = 1; + map diffUserData = 99; +} + +message StartBattleRequest { + int64 opponentPlayerId = 1; + int32 useDeckNumber = 2; +} + +message StartBattleResponse { + repeated DeckCharacter opponentDeckCharacter = 1; + map diffUserData = 99; +} + +message DeckCharacter { + CostumeInfo costume = 1; + CompanionInfo companion = 2; + WeaponInfo mainWeapon = 3; + repeated WeaponInfo subWeapon = 4; + repeated PartsInfo parts = 5; + repeated CharacterBoardAbilityInfo characterBoardAbilities = 6; + repeated CharacterBoardStatusUpInfo characterBoardStatusUps = 7; + repeated CostumeLevelBonusStatusUpInfo costumeLevelBonusStatusUps = 8; + repeated AwakenAbilityInfo awakenAbilities = 9; + repeated AwakenStatusUpInfo awakenStatusUps = 10; + ThoughtInfo thought = 11; + repeated StainedGlassStatusUpInfo stainedGlassStatusUps = 12; + repeated CostumeLotteryEffectAbilityInfo costumeLotteryEffectAbilities = 13; + repeated CostumeLotteryEffectStatusUpInfo costumeLotteryEffectStatusUps = 14; +} + +message CostumeInfo { + int32 costumeId = 1; + int32 limitBreakCount = 2; + int32 level = 3; + int32 activeSkillLevel = 4; + int32 characterLevel = 5; + int32 costumeLotteryEffectUnlockedSlotCount = 6; +} + +message CompanionInfo { + int32 companionId = 1; + int32 level = 2; +} + +message WeaponInfo { + int32 weaponId = 1; + int32 limitBreakCount = 2; + int32 level = 3; + repeated WeaponAbilityInfo weaponAbility = 4; + repeated WeaponSkillInfo weaponSkill = 5; + AwakenAbilityInfo weaponAwakenAbility = 6; + repeated AwakenStatusUpInfo weaponAwakenStatusUps = 7; +} + +message WeaponAbilityInfo { + int32 abilityId = 1; + int32 level = 2; +} + +message WeaponSkillInfo { + int32 skillId = 1; + int32 level = 2; +} + +message AwakenAbilityInfo { + int32 abilityId = 1; + int32 level = 2; +} + +message AwakenStatusUpInfo { + int32 statusCalculationType = 1; + int32 hp = 2; + int32 attack = 3; + int32 vitality = 4; + int32 agility = 5; + int32 criticalRatio = 6; + int32 criticalAttack = 7; +} + +message PartsInfo { + int32 partsId = 1; + int32 level = 2; + int32 partsMainStatusId = 3; + repeated PartsSubStatusInfo subPartsStatus = 4; +} + +message PartsSubStatusInfo { + int32 level = 1; + int32 statusKindType = 2; + int32 statusCalculationType = 3; + int32 statusChangeValue = 4; +} + +message CharacterBoardAbilityInfo { + int32 abilityId = 1; + int32 level = 2; +} + +message CharacterBoardStatusUpInfo { + int32 statusCalculationType = 1; + int32 hp = 2; + int32 attack = 3; + int32 vitality = 4; + int32 agility = 5; + int32 criticalRatio = 6; + int32 criticalAttack = 7; +} + +message CostumeLevelBonusStatusUpInfo { + int32 statusCalculationType = 1; + int32 hp = 2; + int32 attack = 3; + int32 vitality = 4; + int32 agility = 5; + int32 criticalRatio = 6; + int32 criticalAttack = 7; +} + +message ThoughtInfo { + int32 thoughtId = 1; +} + +message StainedGlassStatusUpInfo { + int32 statusCalculationType = 1; + int32 hp = 2; + int32 attack = 3; + int32 vitality = 4; + int32 agility = 5; + int32 criticalRatio = 6; + int32 criticalAttack = 7; +} + +message CostumeLotteryEffectAbilityInfo { + int32 abilityId = 1; + int32 level = 2; +} + +message CostumeLotteryEffectStatusUpInfo { + int32 statusCalculationType = 1; + int32 hp = 2; + int32 attack = 3; + int32 vitality = 4; + int32 agility = 5; + int32 criticalRatio = 6; + int32 criticalAttack = 7; +} + +message FinishBattleRequest { + int64 opponentPlayerId = 1; + bool isVictory = 2; +} + +message FinishBattleResponse { + int32 beforePvpPoint = 1; + int32 beforeRank = 2; + int32 afterPvpPoint = 3; + int32 afterRank = 4; + int32 pvpGradeOneMatchRewardId = 5; + int32 pvpGradeGroupId = 6; + map diffUserData = 99; +} + +message GetRankingRequest { + int32 rankFrom = 1; +} + +message GetRankingResponse { + repeated RankingUser rankingUser = 1; + int32 userCount = 2; + int32 rankingPosition = 3; + map diffUserData = 99; +} + +message RankingUser { + int32 rank = 1; + int64 playerId = 2; + string name = 3; + int32 pvpPoint = 4; + int32 deckPower = 5; + int32 favoriteCostumeId = 6; +} + +message GetSeasonResultResponse { + int32 attackWinCount = 1; + int32 attackLoseCount = 2; + int32 attackPvpPoint = 3; + int32 defenseWinRatePermil = 4; + int32 defensePvpPoint = 5; + map diffUserData = 99; +} + +message GetAttackLogListResponse { + repeated BattleLog attackLog = 1; + map diffUserData = 99; +} + +message BattleLog { + int64 playerId = 1; + string name = 2; + int32 pvpPoint = 3; + int32 deckPower = 4; + repeated int32 deckCostumeId = 5; + bool isVictory = 6; + google.protobuf.Timestamp battleDatetime = 7; + int32 fluctuatedPvpPoint = 8; + int32 rank = 9; +} + +message GetDefenseLogListResponse { + repeated BattleLog defenseLog = 1; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/quest.proto b/src/proto/quest.proto new file mode 100644 index 0000000..fba8f7b --- /dev/null +++ b/src/proto/quest.proto @@ -0,0 +1,333 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Quest"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; +import "proto/mission.proto"; + +package apb.api.quest; + +service QuestService { + rpc UpdateMainFlowSceneProgress (UpdateMainFlowSceneProgressRequest) returns (UpdateMainFlowSceneProgressResponse); + rpc UpdateReplayFlowSceneProgress (UpdateReplayFlowSceneProgressRequest) returns (UpdateReplayFlowSceneProgressResponse); + rpc UpdateMainQuestSceneProgress (UpdateMainQuestSceneProgressRequest) returns (UpdateMainQuestSceneProgressResponse); + rpc UpdateExtraQuestSceneProgress (UpdateExtraQuestSceneProgressRequest) returns (UpdateExtraQuestSceneProgressResponse); + rpc UpdateEventQuestSceneProgress (UpdateEventQuestSceneProgressRequest) returns (UpdateEventQuestSceneProgressResponse); + rpc StartMainQuest (StartMainQuestRequest) returns (StartMainQuestResponse); + rpc RestartMainQuest (RestartMainQuestRequest) returns (RestartMainQuestResponse); + rpc FinishMainQuest (FinishMainQuestRequest) returns (FinishMainQuestResponse); + rpc StartExtraQuest (StartExtraQuestRequest) returns (StartExtraQuestResponse); + rpc RestartExtraQuest (RestartExtraQuestRequest) returns (RestartExtraQuestResponse); + rpc FinishExtraQuest (FinishExtraQuestRequest) returns (FinishExtraQuestResponse); + rpc StartEventQuest (StartEventQuestRequest) returns (StartEventQuestResponse); + rpc RestartEventQuest (RestartEventQuestRequest) returns (RestartEventQuestResponse); + rpc FinishEventQuest (FinishEventQuestRequest) returns (FinishEventQuestResponse); + rpc FinishAutoOrbit (google.protobuf.Empty) returns (FinishAutoOrbitResponse); + rpc SetRoute (SetRouteRequest) returns (SetRouteResponse); + rpc SetQuestSceneChoice (SetQuestSceneChoiceRequest) returns (SetQuestSceneChoiceResponse); + rpc ReceiveTowerAccumulationReward (ReceiveTowerAccumulationRewardRequest) returns (ReceiveTowerAccumulationRewardResponse); + rpc SkipQuest (SkipQuestRequest) returns (SkipQuestResponse); + rpc SkipQuestBulk (SkipQuestBulkRequest) returns (SkipQuestBulkResponse); + rpc SetAutoSaleSetting (SetAutoSaleSettingRequest) returns (SetAutoSaleSettingResponse); + rpc StartGuerrillaFreeOpen (google.protobuf.Empty) returns (StartGuerrillaFreeOpenResponse); + rpc ResetLimitContentQuestProgress (ResetLimitContentQuestProgressRequest) returns (ResetLimitContentQuestProgressResponse); + rpc ReceiveDailyQuestGroupCompleteReward (google.protobuf.Empty) returns (ReceiveDailyQuestGroupCompleteRewardResponse); +} + +message UpdateMainFlowSceneProgressRequest { + int32 questSceneId = 1; +} + +message UpdateMainFlowSceneProgressResponse { + map diffUserData = 99; +} + +message UpdateReplayFlowSceneProgressRequest { + int32 questSceneId = 1; +} + +message UpdateReplayFlowSceneProgressResponse { + map diffUserData = 99; +} + +message UpdateMainQuestSceneProgressRequest { + int32 questSceneId = 1; +} + +message UpdateMainQuestSceneProgressResponse { + map diffUserData = 99; +} + +message UpdateExtraQuestSceneProgressRequest { + int32 questSceneId = 1; +} + +message UpdateExtraQuestSceneProgressResponse { + map diffUserData = 99; +} + +message UpdateEventQuestSceneProgressRequest { + int32 questSceneId = 1; +} + +message UpdateEventQuestSceneProgressResponse { + map diffUserData = 99; +} + +message StartMainQuestRequest { + int32 questId = 1; + bool isMainFlow = 2; + int32 userDeckNumber = 3; + bool isBattleOnly = 4; + int32 maxAutoOrbitCount = 5; + bool isReplayFlow = 6; + apb.api.mission.CageMeasurableValues cageMeasurableValues = 50; +} + +message StartMainQuestResponse { + repeated BattleDropReward battleDropReward = 1; + map diffUserData = 99; +} + +message BattleDropReward { + int32 questSceneId = 1; + int32 battleDropCategoryId = 2; + int32 battleDropEffectId = 3; +} + +message RestartMainQuestRequest { + int32 questId = 1; + bool isMainFlow = 2; +} + +message RestartMainQuestResponse { + repeated BattleDropReward battleDropReward = 1; + bytes battleBinary = 2; + int32 deckNumber = 3; + map diffUserData = 99; +} + +message FinishMainQuestRequest { + int32 questId = 1; + bool isRetired = 2; + bool isMainFlow = 3; + bool isAnnihilated = 4; + bool isAutoOrbit = 5; + int32 storySkipType = 6; + bool isReplayFlow = 7; + string vt = 200; +} + +message FinishMainQuestResponse { + repeated QuestReward dropReward = 1; + repeated QuestReward firstClearReward = 2; + repeated QuestReward missionClearReward = 3; + repeated QuestReward missionClearCompleteReward = 4; + repeated QuestReward autoOrbitResult = 5; + bool isBigWin = 6; + repeated int32 bigWinClearedQuestMissionIdList = 7; + repeated QuestReward replayFlowFirstClearReward = 8; + repeated QuestReward userStatusCampaignReward = 9; + QuestAutoOrbitResult autoOrbitReward = 10; + map diffUserData = 99; +} + +message QuestReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; + int32 rewardEffectId = 4; + bool isAutoSale = 5; + bytes equipmentData = 6; +} + +message QuestAutoOrbitResult { + repeated QuestReward dropReward = 1; + repeated QuestReward userStatusCampaignReward = 2; +} + +message StartExtraQuestRequest { + int32 questId = 1; + int32 userDeckNumber = 2; +} + +message StartExtraQuestResponse { + repeated BattleDropReward battleDropReward = 1; + map diffUserData = 99; +} + +message RestartExtraQuestRequest { + int32 questId = 1; +} + +message RestartExtraQuestResponse { + repeated BattleDropReward battleDropReward = 1; + bytes battleBinary = 2; + int32 deckNumber = 3; + map diffUserData = 99; +} + +message FinishExtraQuestRequest { + int32 questId = 1; + bool isRetired = 2; + bool isAnnihilated = 3; + int32 storySkipType = 4; + string vt = 200; +} + +message FinishExtraQuestResponse { + repeated QuestReward dropReward = 1; + repeated QuestReward firstClearReward = 2; + repeated QuestReward missionClearReward = 3; + repeated QuestReward missionClearCompleteReward = 4; + bool isBigWin = 5; + repeated int32 bigWinClearedQuestMissionIdList = 6; + repeated QuestReward userStatusCampaignReward = 7; + map diffUserData = 99; +} + +message StartEventQuestRequest { + int32 eventQuestChapterId = 1; + int32 questId = 2; + int32 userDeckNumber = 3; + bool isBattleOnly = 4; + int32 maxAutoOrbitCount = 5; +} + +message StartEventQuestResponse { + repeated BattleDropReward battleDropReward = 1; + map diffUserData = 99; +} + +message RestartEventQuestRequest { + int32 eventQuestChapterId = 1; + int32 questId = 2; +} + +message RestartEventQuestResponse { + repeated BattleDropReward battleDropReward = 1; + bytes battleBinary = 2; + int32 deckNumber = 3; + map diffUserData = 99; +} + +message FinishEventQuestRequest { + int32 eventQuestChapterId = 1; + int32 questId = 2; + bool isRetired = 3; + bool isAnnihilated = 4; + bool isAutoOrbit = 5; + int32 storySkipType = 6; + string vt = 200; +} + +message FinishEventQuestResponse { + repeated QuestReward dropReward = 1; + repeated QuestReward firstClearReward = 2; + repeated QuestReward missionClearReward = 3; + repeated QuestReward missionClearCompleteReward = 4; + repeated QuestReward autoOrbitResult = 5; + bool isBigWin = 6; + repeated int32 bigWinClearedQuestMissionIdList = 7; + repeated QuestReward userStatusCampaignReward = 8; + QuestAutoOrbitResult autoOrbitReward = 9; + map diffUserData = 99; +} + +message FinishAutoOrbitResponse { + repeated QuestReward autoOrbitResult = 1; + QuestAutoOrbitResult autoOrbitReward = 2; + map diffUserData = 99; +} + +message SetRouteRequest { + int32 mainQuestRouteId = 1; +} + +message SetRouteResponse { + map diffUserData = 99; +} + +message SetQuestSceneChoiceRequest { + int32 questSceneId = 1; + int32 choiceNumber = 2; + int32 questFlowType = 3; +} + +message SetQuestSceneChoiceResponse { + map diffUserData = 99; +} + +message ReceiveTowerAccumulationRewardRequest { + int32 eventQuestChapterId = 1; + int32 targetMissionClearCount = 2; +} + +message ReceiveTowerAccumulationRewardResponse { + map diffUserData = 99; +} + +message SkipQuestRequest { + int32 questId = 1; + int32 questType = 2; + int32 userDeckNumber = 3; + int32 skipCount = 4; + repeated UseEffectItem useEffectItem = 5; + int32 questChapterId = 6; +} + +message UseEffectItem { + int32 consumableItemId = 1; + int32 count = 2; +} + +message SkipQuestResponse { + repeated QuestReward dropReward = 1; + repeated QuestReward userStatusCampaignReward = 2; + map diffUserData = 99; +} + +message SkipQuestBulkRequest { + repeated SkipQuestInfo skipQuestInfo = 1; + int32 userDeckNumber = 2; + repeated UseEffectItem useEffectItem = 3; +} + +message SkipQuestInfo { + int32 questId = 1; + int32 questType = 2; + int32 questChapterId = 3; + int32 skipCount = 4; +} + +message SkipQuestBulkResponse { + repeated QuestReward dropReward = 1; + repeated QuestReward userStatusCampaignReward = 2; + map diffUserData = 99; +} + +message SetAutoSaleSettingRequest { + map autoSaleSettingItem = 1; +} + +message SetAutoSaleSettingResponse { + map diffUserData = 99; +} + +message StartGuerrillaFreeOpenResponse { + map diffUserData = 99; +} + +message ResetLimitContentQuestProgressRequest { + int32 eventQuestChapterId = 1; + int32 questId = 2; +} + +message ResetLimitContentQuestProgressResponse { + map diffUserData = 99; +} + +message ReceiveDailyQuestGroupCompleteRewardResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/reward.proto b/src/proto/reward.proto new file mode 100644 index 0000000..7c83961 --- /dev/null +++ b/src/proto/reward.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Reward"; + +import "google/protobuf/empty.proto"; +import "proto/pvp.proto"; +import "proto/data.proto"; +import "proto/bighunt.proto"; +import "proto/labyrinth.proto"; + +package apb.api.reward; + +service RewardService { + rpc ReceivePvpReward (google.protobuf.Empty) returns (ReceivePvpRewardResponse); + rpc ReceiveBigHuntReward (google.protobuf.Empty) returns (ReceiveBigHuntRewardResponse); + rpc ReceiveLabyrinthSeasonReward (google.protobuf.Empty) returns (ReceiveLabyrinthSeasonRewardResponse); + rpc ReceiveMissionPassRemainingReward (google.protobuf.Empty) returns (ReceiveMissionPassRemainingRewardResponse); +} + +message ReceivePvpRewardResponse { + apb.api.pvp.WeeklyGradeResult weeklyGradeResult = 1; + apb.api.pvp.SeasonRankResult seasonRankResult = 2; + apb.api.pvp.WeeklyRankResult weeklyRankResult = 3; + map diffUserData = 99; +} + +message ReceiveBigHuntRewardResponse { + repeated apb.api.bighunt.WeeklyScoreResult weeklyScoreResult = 1; + repeated apb.api.bighunt.BigHuntReward weeklyScoreReward = 2; + bool isReceivedWeeklyScoreReward = 3; + repeated apb.api.bighunt.BigHuntReward lastWeekWeeklyScoreReward = 4; + map diffUserData = 99; +} + +message ReceiveLabyrinthSeasonRewardResponse { + repeated apb.api.labyrinth.LabyrinthSeasonResult seasonResult = 1; + map diffUserData = 99; +} + +message ReceiveMissionPassRemainingRewardResponse { + int32 rewardReceivedMissionPassId = 1; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/shop.proto b/src/proto/shop.proto new file mode 100644 index 0000000..53eceb8 --- /dev/null +++ b/src/proto/shop.proto @@ -0,0 +1,73 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Shop"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; + +package apb.api.shop; + +service ShopService { + rpc Buy (BuyRequest) returns (BuyResponse); + rpc RefreshUserData (RefreshRequest) returns (RefreshResponse); + rpc GetCesaLimit (google.protobuf.Empty) returns (GetCesaLimitResponse); + rpc CreatePurchaseTransaction (CreatePurchaseTransactionRequest) returns (CreatePurchaseTransactionResponse); + rpc PurchaseGooglePlayStoreProduct (PurchaseGooglePlayStoreProductRequest) returns (PurchaseGooglePlayStoreProductResponse); +} + +message BuyRequest { + int32 shopId = 1; + map shopItems = 2; +} + +message BuyResponse { + repeated Possession overflowPossession = 1; + map diffUserData = 99; +} + +message Possession { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message RefreshRequest { + bool isGemUsed = 1; +} + +message RefreshResponse { + map diffUserData = 99; +} + +message GetCesaLimitResponse { + repeated CesaLimit cesaLimit = 1; + map diffUserData = 99; +} + +message CesaLimit { + int32 age = 1; + int32 limit = 2; +} + +message CreatePurchaseTransactionRequest { + int32 shopId = 1; + int32 shopItemId = 2; + string productId = 3; + string amazonUserId = 4; +} + +message CreatePurchaseTransactionResponse { + string purchaseTransactionId = 1; + map diffUserData = 99; +} + +message PurchaseGooglePlayStoreProductRequest { + string purchaseTransactionId = 1; + string purchaseData = 2; + string dataSignature = 3; +} + +message PurchaseGooglePlayStoreProductResponse { + repeated Possession overflowPossession = 1; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/sidestoryquest.proto b/src/proto/sidestoryquest.proto new file mode 100644 index 0000000..48dcb12 --- /dev/null +++ b/src/proto/sidestoryquest.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.SideStoryQuest"; + +import "proto/data.proto"; + +package apb.api.sidestoryquest; + +service SidestoryquestService { + rpc MoveSideStoryQuestProgress (MoveSideStoryQuestRequest) returns (MoveSideStoryQuestResponse); + rpc UpdateSideStoryQuestSceneProgress (UpdateSideStoryQuestSceneProgressRequest) returns (UpdateSideStoryQuestSceneProgressResponse); +} + +message MoveSideStoryQuestRequest { + int32 sideStoryQuestId = 1; +} + +message MoveSideStoryQuestResponse { + map diffUserData = 99; +} + +message UpdateSideStoryQuestSceneProgressRequest { + int32 sideStoryQuestId = 1; + int32 sideStoryQuestSceneId = 2; +} + +message UpdateSideStoryQuestSceneProgressResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/tutorial.proto b/src/proto/tutorial.proto new file mode 100644 index 0000000..0183a21 --- /dev/null +++ b/src/proto/tutorial.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Tutorial"; + +import "proto/data.proto"; +import "proto/deck.proto"; + +package apb.api.tutorial; + +service TutorialService { + rpc SetTutorialProgress (SetTutorialProgressRequest) returns (SetTutorialProgressResponse); + rpc SetTutorialProgressAndReplaceDeck (SetTutorialProgressAndReplaceDeckRequest) returns (SetTutorialProgressAndReplaceDeckResponse); +} + +message SetTutorialProgressRequest { + int32 tutorialType = 1; + int32 progressPhase = 2; + int32 choiceId = 3; +} + +message SetTutorialProgressResponse { + repeated TutorialChoiceReward tutorialChoiceReward = 1; + map diffUserData = 99; +} + +message TutorialChoiceReward { + int32 possessionType = 1; + int32 possessionId = 2; + int32 count = 3; +} + +message SetTutorialProgressAndReplaceDeckRequest { + int32 tutorialType = 1; + int32 progressPhase = 2; + int32 deckType = 3; + int32 userDeckNumber = 4; + apb.api.deck.Deck deck = 5; +} + +message SetTutorialProgressAndReplaceDeckResponse { + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/user.proto b/src/proto/user.proto new file mode 100644 index 0000000..f7655e4 --- /dev/null +++ b/src/proto/user.proto @@ -0,0 +1,262 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.User"; + +import "google/protobuf/empty.proto"; +import "proto/data.proto"; +import "google/protobuf/timestamp.proto"; + +package apb.api.user; + +service UserService { + rpc RegisterUser (RegisterUserRequest) returns (RegisterUserResponse); + rpc TransferUser (TransferUserRequest) returns (TransferUserResponse); + rpc Auth (AuthUserRequest) returns (AuthUserResponse); + rpc GameStart (google.protobuf.Empty) returns (GameStartResponse); + rpc SetUserName (SetUserNameRequest) returns (SetUserNameResponse); + rpc SetUserMessage (SetUserMessageRequest) returns (SetUserMessageResponse); + rpc SetUserFavoriteCostumeId (SetUserFavoriteCostumeIdRequest) returns (SetUserFavoriteCostumeIdResponse); + rpc GetUserProfile (GetUserProfileRequest) returns (GetUserProfileResponse); + rpc SetBirthYearMonth (SetBirthYearMonthRequest) returns (SetBirthYearMonthResponse); + rpc GetBirthYearMonth (google.protobuf.Empty) returns (GetBirthYearMonthResponse); + rpc GetChargeMoney (google.protobuf.Empty) returns (GetChargeMoneyResponse); + rpc SetUserSetting (SetUserSettingRequest) returns (SetUserSettingResponse); + rpc GetAndroidArgs (GetAndroidArgsRequest) returns (GetAndroidArgsResponse); + rpc GetBackupToken (GetBackupTokenRequest) returns (GetBackupTokenResponse); + rpc CheckTransferSetting (google.protobuf.Empty) returns (CheckTransferSettingResponse); + rpc SetFacebookAccount (SetFacebookAccountRequest) returns (SetFacebookAccountResponse); + rpc UnsetFacebookAccount (google.protobuf.Empty) returns (UnsetFacebookAccountResponse); + rpc SetAppleAccount (SetAppleAccountRequest) returns (SetAppleAccountResponse); + rpc TransferUserByFacebook (TransferUserByFacebookRequest) returns (TransferUserByFacebookResponse); + rpc TransferUserByApple (TransferUserByAppleRequest) returns (TransferUserByAppleResponse); + rpc GetUserGamePlayNote (GetUserGamePlayNoteRequest) returns (GetUserGamePlayNoteResponse); +} + +message RegisterUserRequest { + string uuid = 1; + string terminalId = 2; + string registerSignature = 3; +} + +message RegisterUserResponse { + int64 userId = 1; + string signature = 2; + map diffUserData = 99; +} + +message TransferUserRequest { + string uuid = 1; +} + +message TransferUserResponse { + int64 userId = 1; + string signature = 2; + map diffUserData = 99; +} + +message AuthUserRequest { + string uuid = 1; + string signature = 2; + string advertisingId = 3; + bool isTrackingEnabled = 4; + UserDeviceInherent deviceInherent = 5; + string tr = 6; +} + +message UserDeviceInherent { + string identifierForVendor = 1; + string deviceToken = 2; + string macAddress = 3; + string registrationId = 4; +} + +message AuthUserResponse { + string sessionKey = 1; + google.protobuf.Timestamp expireDatetime = 2; + string signature = 3; + int64 userId = 4; + map diffUserData = 99; +} + +message GameStartResponse { + map diffUserData = 99; +} + +message SetUserNameRequest { + string name = 1; +} + +message SetUserNameResponse { + map diffUserData = 99; +} + +message SetUserMessageRequest { + string message = 1; +} + +message SetUserMessageResponse { + map diffUserData = 99; +} + +message SetUserFavoriteCostumeIdRequest { + int32 favoriteCostumeId = 1; +} + +message SetUserFavoriteCostumeIdResponse { + map diffUserData = 99; +} + +message GetUserProfileRequest { + int64 playerId = 1; +} + +message GetUserProfileResponse { + int32 level = 1; + string name = 2; + int32 favoriteCostumeId = 3; + string message = 4; + bool isFriend = 5; + ProfileDeck latestUsedDeck = 6; + ProfilePvpInfo pvpInfo = 7; + GamePlayHistory gamePlayHistory = 8; + map diffUserData = 99; +} + +message ProfileDeck { + int32 power = 1; + repeated ProfileDeckCharacter deckCharacter = 2; +} + +message ProfileDeckCharacter { + int32 costumeId = 1; + int32 mainWeaponId = 2; + int32 mainWeaponLevel = 3; +} + +message ProfilePvpInfo { + int32 currentRank = 1; + int32 currentGradeId = 2; + int32 maxSeasonRank = 3; +} + +message GamePlayHistory { + repeated PlayHistoryItem historyItem = 1; + repeated PlayHistoryCategoryGraphItem historyCategoryGraphItem = 2; +} + +message PlayHistoryItem { + int32 historyItemId = 1; + int64 count = 2; +} + +message PlayHistoryCategoryGraphItem { + int32 categoryTypeId = 1; + int32 progressPermil = 2; +} + +message SetBirthYearMonthRequest { + int32 birthYear = 1; + int32 birthMonth = 2; +} + +message SetBirthYearMonthResponse { + map diffUserData = 99; +} + +message GetBirthYearMonthResponse { + int32 birthYear = 1; + int32 birthMonth = 2; + map diffUserData = 99; +} + +message GetChargeMoneyResponse { + int64 chargeMoneyThisMonth = 1; + map diffUserData = 99; +} + +message SetUserSettingRequest { + bool isNotifyPurchaseAlert = 1; +} + +message SetUserSettingResponse { + map diffUserData = 99; +} + +message GetAndroidArgsRequest { + string uuid = 1; + string signature = 2; + UserDeviceInherent deviceInherent = 3; + string packageName = 4; +} + +message GetAndroidArgsResponse { + string nonce = 1; + string apiKey = 2; + map diffUserData = 99; +} + +message GetBackupTokenRequest { + string uuid = 1; +} + +message GetBackupTokenResponse { + string backupToken = 1; + map diffUserData = 99; +} + +message CheckTransferSettingResponse { + map diffUserData = 99; +} + +message SetFacebookAccountRequest { + string token = 1; +} + +message SetFacebookAccountResponse { + map diffUserData = 99; +} + +message UnsetFacebookAccountResponse { + map diffUserData = 99; +} + +message SetAppleAccountRequest { + string token = 1; +} + +message SetAppleAccountResponse { + map diffUserData = 99; +} + +message TransferUserByFacebookRequest { + string token = 1; + string uuid = 2; + string terminalId = 3; +} + +message TransferUserByFacebookResponse { + int64 userId = 1; + string signature = 2; + map diffUserData = 99; +} + +message TransferUserByAppleRequest { + string token = 1; + string uuid = 2; + string terminalId = 3; +} + +message TransferUserByAppleResponse { + int64 userId = 1; + string signature = 2; + map diffUserData = 99; +} + +message GetUserGamePlayNoteRequest { + int32 gamePlayHistoryTypeId = 1; +} + +message GetUserGamePlayNoteResponse { + int32 progressValue = 1; + map diffUserData = 99; +} \ No newline at end of file diff --git a/src/proto/weapon.proto b/src/proto/weapon.proto new file mode 100644 index 0000000..0c0c60d --- /dev/null +++ b/src/proto/weapon.proto @@ -0,0 +1,121 @@ +syntax = "proto3"; + +option csharp_namespace = "Art.Framework.ApiNetwork.Grpc.Api.Weapon"; + +import "proto/data.proto"; + +package apb.api.weapon; + +service WeaponService { + rpc Sell (SellRequest) returns (SellResponse); + rpc Protect (ProtectRequest) returns (ProtectResponse); + rpc Unprotect (UnprotectRequest) returns (UnprotectResponse); + rpc EnhanceByWeapon (EnhanceByWeaponRequest) returns (EnhanceByWeaponResponse); + rpc EnhanceByMaterial (EnhanceByMaterialRequest) returns (EnhanceByMaterialResponse); + rpc EnhanceSkill (EnhanceSkillRequest) returns (EnhanceSkillResponse); + rpc EnhanceAbility (EnhanceAbilityRequest) returns (EnhanceAbilityResponse); + rpc LimitBreakByWeapon (LimitBreakByWeaponRequest) returns (LimitBreakByWeaponResponse); + rpc LimitBreakByMaterial (LimitBreakByMaterialRequest) returns (LimitBreakByMaterialResponse); + rpc Evolve (EvolveRequest) returns (EvolveResponse); + rpc Awaken (AwakenRequest) returns (AwakenResponse); +} + +message SellRequest { + repeated string userWeaponUuid = 1; +} + +message SellResponse { + map diffUserData = 99; +} + +message ProtectRequest { + repeated string userWeaponUuid = 1; +} + +message ProtectResponse { + map diffUserData = 99; +} + +message UnprotectRequest { + repeated string userWeaponUuid = 1; +} + +message UnprotectResponse { + map diffUserData = 99; +} + +message EnhanceByWeaponRequest { + string userWeaponUuid = 1; + repeated string materialUserWeaponUuids = 2; +} + +message EnhanceByWeaponResponse { + bool isGreatSuccess = 1; + repeated string surplusEnhanceWeapon = 2; + map diffUserData = 99; +} + +message EnhanceByMaterialRequest { + string userWeaponUuid = 1; + map materials = 2; +} + +message EnhanceByMaterialResponse { + bool isGreatSuccess = 1; + map surplusEnhanceMaterial = 2; + map diffUserData = 99; +} + +message EnhanceSkillRequest { + string userWeaponUuid = 1; + int32 skillId = 2; + int32 addLevelCount = 3; +} + +message EnhanceSkillResponse { + map diffUserData = 99; +} + +message EnhanceAbilityRequest { + string userWeaponUuid = 1; + int32 abilityId = 2; + int32 addLevelCount = 3; +} + +message EnhanceAbilityResponse { + map diffUserData = 99; +} + +message LimitBreakByWeaponRequest { + string userWeaponUuid = 1; + repeated string materialUserWeaponUuids = 2; +} + +message LimitBreakByWeaponResponse { + map diffUserData = 99; +} + +message LimitBreakByMaterialRequest { + string userWeaponUuid = 1; + map materials = 2; +} + +message LimitBreakByMaterialResponse { + map diffUserData = 99; +} + +message EvolveRequest { + string userWeaponUuid = 1; +} + +message EvolveResponse { + map diffUserData = 99; +} + +message AwakenRequest { + string userWeaponUuid = 1; +} + +message AwakenResponse { + map diffUserData = 99; +} \ No newline at end of file