1
+ // version 1
2
+
1
3
syntax = "proto3" ;
2
4
3
5
package protos ;
@@ -19,13 +21,26 @@ message RegisterRequest {
19
21
AgentType agent_type = 1 ;
20
22
string team_name = 2 ;
21
23
int32 uniform_number = 3 ;
24
+ int32 rpc_version = 4 ;
25
+ }
26
+
27
+ enum RpcServerLanguageType {
28
+ UNKNOWN_LANGUAGE = 0 ;
29
+ PYThON = 1 ;
30
+ JAVA = 2 ;
31
+ CPP = 3 ;
32
+ CSHARP = 4 ;
33
+ RUBY = 5 ;
34
+ JAVE_SCRIPT = 6 ;
35
+ GO = 7 ;
22
36
}
23
37
24
38
message RegisterResponse {
25
39
int32 client_id = 1 ;
26
40
AgentType agent_type = 2 ;
27
41
string team_name = 3 ;
28
42
int32 uniform_number = 4 ;
43
+ RpcServerLanguageType rpc_server_language_type = 5 ;
29
44
}
30
45
31
46
message Ball {
@@ -81,6 +96,12 @@ enum LoggerLevel{
81
96
// LEVEL_ANY = 0xffffffff;
82
97
}
83
98
99
+ enum CardType {
100
+ NO_CARD = 0 ;
101
+ YELLOW = 1 ;
102
+ RED = 2 ;
103
+ }
104
+
84
105
message Player {
85
106
RpcVector2D position = 1 ;
86
107
RpcVector2D seen_position = 2 ;
@@ -151,6 +172,9 @@ message Self {
151
172
ViewWidth view_width = 34 ;
152
173
int32 type_id = 35 ;
153
174
float kick_rate = 36 ;
175
+ float recovery = 37 ;
176
+ float stamina_capacity = 38 ;
177
+ CardType card = 39 ;
154
178
}
155
179
156
180
enum InterceptActionType {
@@ -254,6 +278,10 @@ message WorldModel {
254
278
int32 their_team_score = 29 ;
255
279
bool is_penalty_kick_mode = 30 ;
256
280
map <int32 , RpcVector2D > helios_home_positions = 31 ;
281
+ double our_defense_line_x = 32 ;
282
+ double their_defense_line_x = 33 ;
283
+ double our_defense_player_line_x = 34 ;
284
+ double their_defense_player_line_x = 35 ;
257
285
}
258
286
259
287
message State {
@@ -748,7 +776,7 @@ message HeliosGoalieKick {}
748
776
749
777
message HeliosShoot {}
750
778
751
- message HeliosChainAction {
779
+ message HeliosOffensivePlanner {
752
780
bool direct_pass = 1 ;
753
781
bool lead_pass = 2 ;
754
782
bool through_pass = 3 ;
@@ -758,6 +786,7 @@ message HeliosChainAction {
758
786
bool simple_pass = 7 ;
759
787
bool simple_dribble = 8 ;
760
788
bool simple_shoot = 9 ;
789
+ bool server_side_decision = 10 ;
761
790
}
762
791
763
792
message HeliosBasicOffensive {}
@@ -830,12 +859,13 @@ message PlayerAction {
830
859
HeliosGoalieMove helios_goalie_move = 56 ;
831
860
HeliosGoalieKick helios_goalie_kick = 57 ;
832
861
HeliosShoot helios_shoot = 58 ;
833
- HeliosChainAction helios_chain_action = 59 ;
862
+ HeliosOffensivePlanner helios_offensive_planner = 59 ;
834
863
HeliosBasicOffensive helios_basic_offensive = 60 ;
835
864
HeliosBasicMove helios_basic_move = 61 ;
836
865
HeliosSetPlay helios_set_play = 62 ;
837
866
HeliosPenalty helios_penalty = 63 ;
838
867
HeliosCommunicaion helios_communication = 64 ;
868
+
839
869
}
840
870
}
841
871
@@ -1202,6 +1232,59 @@ message PlayerType {
1202
1232
float player_speed_max = 34 ;
1203
1233
}
1204
1234
1235
+ enum RpcActionCategory {
1236
+ AC_Hold = 0 ;
1237
+ AC_Dribble = 1 ;
1238
+ AC_Pass = 2 ;
1239
+ AC_Shoot = 3 ;
1240
+ AC_Clear = 4 ;
1241
+ AC_Move = 5 ;
1242
+ AC_NoAction = 6 ;
1243
+ }
1244
+ message RpcCooperativeAction {
1245
+ RpcActionCategory category = 1 ;
1246
+ int32 index = 2 ;
1247
+ int32 sender_unum = 3 ;
1248
+ int32 target_unum = 4 ;
1249
+ RpcVector2D target_point = 5 ;
1250
+ double first_ball_speed = 6 ;
1251
+ double first_turn_moment = 7 ;
1252
+ double first_dash_power = 8 ;
1253
+ double first_dash_angle_relative = 9 ;
1254
+ int32 duration_step = 10 ;
1255
+ int32 kick_count = 11 ;
1256
+ int32 turn_count = 12 ;
1257
+ int32 dash_count = 13 ;
1258
+ bool final_action = 14 ;
1259
+ string description = 15 ;
1260
+ int32 parent_index = 16 ;
1261
+ }
1262
+
1263
+ message RpcPredictState {
1264
+ int32 spend_time = 1 ;
1265
+ int32 ball_holder_unum = 2 ;
1266
+ RpcVector2D ball_position = 3 ;
1267
+ RpcVector2D ball_velocity = 4 ;
1268
+ double our_defense_line_x = 5 ;
1269
+ double our_offense_line_x = 6 ;
1270
+ }
1271
+
1272
+ message RpcActionState {
1273
+ RpcCooperativeAction action = 1 ;
1274
+ RpcPredictState predict_state = 2 ;
1275
+ double evaluation = 3 ;
1276
+ }
1277
+
1278
+ message BestPlannerActionRequest {
1279
+ RegisterResponse register_response = 1 ;
1280
+ map <int32 , RpcActionState > pairs = 2 ;
1281
+ State state = 3 ;
1282
+ }
1283
+
1284
+ message BestPlannerActionResponse {
1285
+ int32 index = 1 ;
1286
+ }
1287
+
1205
1288
message Empty {
1206
1289
}
1207
1290
@@ -1215,4 +1298,5 @@ service Game {
1215
1298
rpc SendPlayerType (PlayerType ) returns (Empty ) {} //should be PlayerTypes
1216
1299
rpc Register (RegisterRequest ) returns (RegisterResponse ) {}
1217
1300
rpc SendByeCommand (RegisterResponse ) returns (Empty ) {}
1301
+ rpc GetBestPlannerAction (BestPlannerActionRequest ) returns (BestPlannerActionResponse ) {}
1218
1302
}
0 commit comments