This commit is contained in:
2018-01-05 18:01:51 +03:00
parent fbbeec9c86
commit 54abb75102
23 changed files with 248 additions and 676 deletions

View File

@@ -1,135 +0,0 @@
package ru.m.tankz.proto;
message Person {
required int32 id = 1;
required string name = 2;
}
message Account {
required int32 id = 1;
required string login = 2;
repeated Person persons = 3;
}
message LoginRequest {
required string login = 1;
required string password = 2;
}
message LoginResponse {
required Account account = 1;
}
message PersonSelectRequest {
required int32 person_id = 1;
}
message PersonSelectResponse {
required Person person = 1;
}
message ErrorResponse {
required int32 code = 1;
required string message = 2;
}
enum GameState {
READY = 1;
STARTED = 2;
ENDED = 3;
}
message Game {
required int32 id = 1;
required Person creator = 2;
repeated Person persons = 3;
required GameState state = 4;
}
message GamesSubscribeRequest {
}
message GamesUnSubscribeRequest {
}
message GamesResponse {
repeated Game games = 1;
}
message CreateGameRequest {
}
message CreateGameResponse {
required Game game = 1;
}
message JoinGameRequest {
required int32 game_id = 1;
}
message JoinGameResponse {
required Game game = 1;
}
message LeaveGameRequest {
}
message LeaveGameResponse {
required Game game = 1;
}
message StartGameRequest {
}
message StartGameResponse {
required Game game = 1;
}
/**
Game
*/
enum GameActionType {
MOVE = 1;
SHOT = 2;
STOP = 3;
}
message GameActionRequest {
required GameActionType type = 1;
optional int32 directionX = 2;
optional int32 directionY = 3;
}
enum GameObjectType {
TANK = 1;
BULLET = 2;
}
enum GameChangeType {
MOVED = 1;
DESTROED = 2;
MODIFIED = 3;
APPEND = 4;
DIRECTION = 5;
}
message GameChange {
required GameChangeType type = 1;
required GameObjectType objectType = 2;
optional int32 personId = 3;
required int32 objectId = 4;
optional float x = 5;
optional float y = 6;
optional int32 directionX = 7;
optional int32 directionY = 8;
}
message GameUpdateResponse {
repeated GameChange changes = 1;
}

View File

@@ -0,0 +1,27 @@
syntax = "proto3";
package ru.m.tankz.proto.core;
message Player {
int32 id = 1;
string name = 2;
}
enum GameType {
CLASSIC = 0;
}
enum GameState {
READY = 0;
STARTED = 1;
ENDED = 2;
}
message Game {
int32 id = 1;
GameType type = 2;
Player creator = 3;
repeated Player players = 4;
GameState state = 5;
}

View File

@@ -0,0 +1,33 @@
syntax = "proto3";
package ru.m.tankz.proto.game;
enum GameActionType {
MOVE = 0;
SHOT = 1;
STOP = 2;
}
enum GameObjectType {
TANK = 0;
BULLET = 1;
}
enum GameChangeType {
MOVED = 0;
DESTROED = 1;
MODIFIED = 2;
APPEND = 3;
DIRECTION = 4;
}
message GameChange {
GameChangeType type = 1;
GameObjectType objectType = 2;
int32 objectId = 3;
float x = 4;
float y = 5;
int32 directionX = 6;
int32 directionY = 7;
}

View File

@@ -0,0 +1,56 @@
syntax = "proto3";
import "core.proto";
import "game.proto";
package ru.m.tankz.proto.pack;
message ErrorResponse {
int32 code = 1;
string message = 2;
}
message GameListRequest {}
message GameListResponse {
repeated ru.m.tankz.proto.core.Game games = 1;
}
message CreateGameRequest {
ru.m.tankz.proto.core.GameType type = 1;
}
message CreateGameResponse {
ru.m.tankz.proto.core.Game game = 1;
}
message JoinGameRequest {
int32 game_id = 1;
}
message JoinGameResponse {
ru.m.tankz.proto.core.Game game = 1;
}
message LeaveGameRequest {}
message LeaveGameResponse {
ru.m.tankz.proto.core.Game game = 1;
}
message StartGameRequest {}
message StartGameResponse {
ru.m.tankz.proto.core.Game game = 1;
}
message GameActionRequest {
ru.m.tankz.proto.game.GameActionType type = 1;
int32 directionX = 2;
int32 directionY = 3;
}
message GameUpdateResponse {
repeated ru.m.tankz.proto.game.GameChange changes = 1;
}