135 lines
2.1 KiB
Protocol Buffer
Executable File
135 lines
2.1 KiB
Protocol Buffer
Executable File
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;
|
|
} |