aboutsummaryrefslogtreecommitdiff
path: root/proto/client_api.proto
diff options
context:
space:
mode:
authorIlion Beyst <ilion.beyst@gmail.com>2022-07-25 22:16:50 +0200
committerIlion Beyst <ilion.beyst@gmail.com>2022-07-25 22:16:50 +0200
commit67276bd0bbac15fe087edafd59d164c686509b35 (patch)
treeb844126c3d0987c4beb12cb60a968a9f53fc6ce9 /proto/client_api.proto
parent93c4306b1015594bb6d7e08d03138c12229ac598 (diff)
downloadplanetwars.dev-67276bd0bbac15fe087edafd59d164c686509b35.tar.xz
planetwars.dev-67276bd0bbac15fe087edafd59d164c686509b35.zip
rename bot_api to client_api
Diffstat (limited to 'proto/client_api.proto')
-rw-r--r--proto/client_api.proto45
1 files changed, 45 insertions, 0 deletions
diff --git a/proto/client_api.proto b/proto/client_api.proto
new file mode 100644
index 0000000..3f1b956
--- /dev/null
+++ b/proto/client_api.proto
@@ -0,0 +1,45 @@
+syntax = "proto3";
+
+package grpc.planetwars.client_api;
+
+// Provides the planetwars client API, allowing for remote play.
+service ClientApiService {
+ rpc CreateMatch(CreateMatchRequest) returns (CreateMatchResponse);
+ rpc ConnectPlayer(stream PlayerApiClientMessage) returns (stream PlayerApiServerMessage);
+}
+
+message CreateMatchRequest {
+ string opponent_name = 1;
+}
+
+message CreateMatchResponse {
+ int32 match_id = 1;
+ string player_key = 2;
+ string match_url = 3;
+}
+
+
+// Server messages
+message PlayerApiServerMessage {
+ oneof server_message {
+ PlayerActionRequest action_request = 1;
+ }
+}
+
+message PlayerActionRequest {
+ int32 action_request_id = 1;
+ bytes content = 2;
+}
+
+
+// Player messages
+message PlayerApiClientMessage {
+ oneof client_message {
+ PlayerAction action = 1;
+ }
+}
+
+message PlayerAction {
+ int32 action_request_id = 1;
+ bytes content = 2;
+}