diff --git a/.github/workflows/grpc-generate.yml b/.github/workflows/grpc-generate.yml new file mode 100644 index 0000000..5899136 --- /dev/null +++ b/.github/workflows/grpc-generate.yml @@ -0,0 +1,47 @@ +name: Generate gRPC Code + +on: + push: + branches: + - main + +jobs: + generate: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install gRPC tools + run: | + python3 -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run generate.sh + run: | + chmod +x ./generate.sh + ./generate.sh + - name: Check for changes + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git add . + if ! git diff --cached --quiet; then + git commit -m "Automated update: Generated Thrift classes" + else + echo "No changes detected, skipping commit." + fi + - name: Push changes + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + run: | + git push origin main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index f40d2b8..564bb03 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,5 @@ scripts/proxy scripts/rcssserver logs/ -__pycache__/check_requirements.cpython-310.pyc -__pycache__/service_pb2_grpc.cpython-310.pyc -__pycache__/service_pb2.cpython-310.pyc -utils/__pycache__/__init__.cpython-310.pyc -utils/__pycache__/logger_utils.cpython-310.pyc +__pycache__/ +utils/__pycache__/ diff --git a/idl/service.proto b/idl/service.proto index 5c6944c..bcac6a9 100644 --- a/idl/service.proto +++ b/idl/service.proto @@ -1,28 +1,41 @@ - -// version 1.6 +// version 1.7 syntax = "proto3"; package protos; +/** + * Enum representing the different view widths available in the soccer simulation. + * For more information, see the documentation at [link](https://link.com). + */ enum ViewWidth { - NARROW = 0; - NORMAL = 1; - WIDE = 2; + NARROW = 0; // Narrow view width (60 degrees). + NORMAL = 1; // Normal view width (90 degrees). + WIDE = 2; // Wide view width (180 degrees). } +/** + * RpcVector2D represents a 2D vector with additional properties. + * If you want to have access to geometric operations, you can use Vector2D class in [pyrusgeom package](https://github.com/Cyrus2D/PyrusGeom) + * To use this class, you need to install pyrusgeom package, import Vector2D class and create a Vector2D object with x and y values. + */ message RpcVector2D { - float x = 1; - float y = 2; - float dist = 3; - float angle = 4; + float x = 1; // The x-coordinate of the vector. + float y = 2; // The y-coordinate of the vector. + float dist = 3; // The distance magnitude of the vector. + float angle = 4; // The angle of the vector in degrees. In soccer simulation 2D environment, the 0 degree is opponent's goal, and the angle increases in the counter-clock direction. So, if your team is in left side, -90 degree is up, 0 degree is right (opponent gole), 90 degree is down. } +/** + * RegisterRequest is the message that the client sends to the server to register itself. + * The client should send this message to the server to register itself. + * The server will respond with a RegisterResponse message. + */ message RegisterRequest { - AgentType agent_type = 1; - string team_name = 2; - int32 uniform_number = 3; - int32 rpc_version = 4; + AgentType agent_type = 1; // The type of the agent. It can be PlayerT, CoachT, or TrainerT. + string team_name = 2; // The name of the team that the agent belongs to. + int32 uniform_number = 3; // The uniform number of the agent. + int32 rpc_version = 4; // The version of the RPC protocol that the client supports. } enum RpcServerLanguageType { @@ -36,32 +49,40 @@ enum RpcServerLanguageType { GO = 7; } +/** + * RegisterResponse is the message that the server sends to the client in response to a RegisterRequest message. + * The server will respond with this message after receiving a RegisterRequest message. + * The client should use the information in this message to identify itself to the server. + */ message RegisterResponse { - int32 client_id = 1; - AgentType agent_type = 2; - string team_name = 3; - int32 uniform_number = 4; - RpcServerLanguageType rpc_server_language_type = 5; + int32 client_id = 1; // The unique identifier assigned to the client by the server. + AgentType agent_type = 2; // The type of the agent. It can be PlayerT, CoachT, or TrainerT. + string team_name = 3; // The name of the team that the agent belongs to. + int32 uniform_number = 4; // The uniform number of the agent. + RpcServerLanguageType rpc_server_language_type = 5; // The language that the server is implemented in. } +/** + * Ball is the message that represents the ball in the soccer simulation. +*/ message Ball { - RpcVector2D position = 1; - RpcVector2D relative_position = 2; - RpcVector2D seen_position = 3; - RpcVector2D heard_position = 4; - RpcVector2D velocity = 5; - RpcVector2D seen_velocity = 6; - RpcVector2D heard_velocity = 7; - int32 pos_count = 8; - int32 seen_pos_count = 9; - int32 heard_pos_count = 10; - int32 vel_count = 11; - int32 seen_vel_count = 12; - int32 heard_vel_count = 13; - int32 lost_count = 14; + RpcVector2D position = 1; // The position of the ball. + RpcVector2D relative_position = 2; // The relative position of the ball to the agent who is sending the message. + RpcVector2D seen_position = 3; // The position of the ball that the agent has seen. + RpcVector2D heard_position = 4; // The position of the ball that the agent has heard. + RpcVector2D velocity = 5; // The velocity of the ball. + RpcVector2D seen_velocity = 6; // The velocity of the ball that the agent has seen. + RpcVector2D heard_velocity = 7; // The velocity of the ball that the agent has heard. + int32 pos_count = 8; // How many cycles ago the agent has seen or heard the ball. + int32 seen_pos_count = 9; // How many cycles ago the agent has seen the ball. + int32 heard_pos_count = 10; // How many cycles ago the agent has heard the ball. + int32 vel_count = 11; // How many cycles ago the agent has seen or heard the velocity of the ball. + int32 seen_vel_count = 12; // How many cycles ago the agent has seen the velocity of the ball. + int32 heard_vel_count = 13; // How many cycles ago the agent has heard the velocity of the ball. + int32 lost_count = 14; // How many cycles ago the agent has lost the ball. int32 ghost_count = 15; - float dist_from_self = 16; - float angle_from_self = 17; + float dist_from_self = 16; // The distance of the ball from the agent who is sending the message. + float angle_from_self = 17; // The angle of the ball from the agent who is sending the message. } enum Side { @@ -97,6 +118,9 @@ enum LoggerLevel{ // LEVEL_ANY = 0xffffffff; } +/** + * Type of player's card. +*/ enum CardType { NO_CARD = 0; YELLOW = 1; @@ -113,114 +137,131 @@ message PenaltyKickState { bool is_kick_taker = 7; } +/** + * Player is the message that represents a player in the soccer simulation. + * To get type information of the player, you can use the type_id field and player type information. +*/ message Player { - RpcVector2D position = 1; - RpcVector2D seen_position = 2; - RpcVector2D heard_position = 3; - RpcVector2D velocity = 4; - RpcVector2D seen_velocity = 5; - int32 pos_count = 6; - int32 seen_pos_count = 7; - int32 heard_pos_count = 8; - int32 vel_count = 9; - int32 seen_vel_count = 10; - int32 ghost_count = 11; - float dist_from_self = 12; - float angle_from_self = 13; - int32 id = 14; - Side side = 15; - int32 uniform_number = 16; - int32 uniform_number_count = 17; - bool is_goalie = 18; - float body_direction = 19; - int32 body_direction_count = 20; - float face_direction = 21; - int32 face_direction_count = 22; - float point_to_direction = 23; - int32 point_to_direction_count = 24; - bool is_kicking = 25; - float dist_from_ball = 26; - float angle_from_ball = 27; - int32 ball_reach_steps = 28; - bool is_tackling = 29; - int32 type_id = 30; -} - + RpcVector2D position = 1; // The position of the player. + RpcVector2D seen_position = 2; // The position of the player that the agent has seen. + RpcVector2D heard_position = 3; // The position of the player that the agent has heard. + RpcVector2D velocity = 4; // The velocity of the player. + RpcVector2D seen_velocity = 5; // The velocity of the player that the agent has seen. + int32 pos_count = 6; // How many cycles ago the agent has seen or heard the player. + int32 seen_pos_count = 7; // How many cycles ago the agent has seen the player. + int32 heard_pos_count = 8; // How many cycles ago the agent has heard the player. + int32 vel_count = 9; // How many cycles ago the agent has seen or heard the velocity of the player. + int32 seen_vel_count = 10; // How many cycles ago the agent has seen the velocity of the player. + int32 ghost_count = 11; // How many cycles ago the agent has lost the player. + float dist_from_self = 12; // The distance of the player from the agent who is sending the message. + float angle_from_self = 13; // The angle of the player from the agent who is sending the message. + int32 id = 14; // The unique identifier of the player. + Side side = 15; // The side of the player. It can be LEFT or RIGHT or UNKNOWN if the side is not known. + int32 uniform_number = 16; // The uniform number of the player. + int32 uniform_number_count = 17; // How many cycles ago the agent has seen the uniform number of the player. + bool is_goalie = 18; // Whether the player is a goalie or not. + float body_direction = 19; // The body direction of the player. + int32 body_direction_count = 20; // How many cycles ago the agent has seen the body direction of the player. + float face_direction = 21; // The face direction of the player. In soccer simulation 2D, face direction is the direction that the player is looking at. + int32 face_direction_count = 22; // How many cycles ago the agent has seen the face direction of the player. + float point_to_direction = 23; // The direction that the player is pointing to. + int32 point_to_direction_count = 24; // How many cycles ago the agent has seen the point to direction of the player. + bool is_kicking = 25; // Whether the player is kicking or not. + float dist_from_ball = 26; // The distance of the player from the ball. + float angle_from_ball = 27; // The angle of the player from the ball. + int32 ball_reach_steps = 28; // How many cycles the player needs to reach the ball. + bool is_tackling = 29; // Whether the player is tackling or not. + int32 type_id = 30; // The type identifier of the player. +} + +/** + * Self is the message that represents the agent itself in the soccer simulation. + * When an agent send a message to the playmaker server, self is information about the agent itself. +*/ message Self { - RpcVector2D position = 1; - RpcVector2D seen_position = 2; - RpcVector2D heard_position = 3; - RpcVector2D velocity = 4; - RpcVector2D seen_velocity = 5; - int32 pos_count = 6; - int32 seen_pos_count = 7; - int32 heard_pos_count = 8; - int32 vel_count = 9; - int32 seen_vel_count = 10; - int32 ghost_count = 11; - int32 id = 12; - Side side = 13; - int32 uniform_number = 14; - int32 uniform_number_count = 15; - bool is_goalie = 16; - float body_direction = 17; - int32 body_direction_count = 18; - float face_direction = 19; - int32 face_direction_count = 20; - float point_to_direction = 21; - int32 point_to_direction_count = 22; - bool is_kicking = 23; - float dist_from_ball = 24; - float angle_from_ball = 25; - int32 ball_reach_steps = 26; - bool is_tackling = 27; - float relative_neck_direction = 28; - float stamina = 29; - bool is_kickable = 30; - float catch_probability = 31; - float tackle_probability = 32; - float foul_probability = 33; - ViewWidth view_width = 34; - int32 type_id = 35; - float kick_rate = 36; - float recovery = 37; - float stamina_capacity = 38; - CardType card = 39; - int32 catch_time = 40; - float effort = 41; -} - + RpcVector2D position = 1; // The position of the agent. + RpcVector2D seen_position = 2; // The position of the agent that the agent has seen. (By using flags) + RpcVector2D heard_position = 3; // The position of the agent that the agent has heard. (This is not very useful) + RpcVector2D velocity = 4; // The velocity of the agent. + RpcVector2D seen_velocity = 5; // The velocity of the agent that the agent has seen. (By using flags) + int32 pos_count = 6; // How many cycles ago the agent has seen or heard itself. + int32 seen_pos_count = 7; // How many cycles ago the agent has seen itself. + int32 heard_pos_count = 8; // How many cycles ago the agent has heard itself. + int32 vel_count = 9; // How many cycles ago the agent has seen or heard the velocity of itself. + int32 seen_vel_count = 10; // How many cycles ago the agent has seen the velocity of itself. + int32 ghost_count = 11; // How many cycles ago the agent has lost itself. + int32 id = 12; // The ID number for this object in proxy. + Side side = 13; // The side of the agent. It can be LEFT or RIGHT or UNKNOWN if the side is not known. + int32 uniform_number = 14; // The uniform number of the agent. + int32 uniform_number_count = 15; // How many cycles ago the agent has seen the uniform number of itself. + bool is_goalie = 16; // Whether the agent is a goalie or not. + float body_direction = 17; // The body direction of the agent. + int32 body_direction_count = 18; // How many cycles ago the agent has seen the body direction of itself. + float face_direction = 19; // The face direction of the agent. In soccer simulation 2D, face direction is the direction that the agent is looking at. This is a global direction. + int32 face_direction_count = 20; // How many cycles ago the agent has seen the face direction of itself. + float point_to_direction = 21; // The direction that the agent is pointing to. This is a global direction. + int32 point_to_direction_count = 22; // How many cycles ago the agent has seen the point to direction of itself. + bool is_kicking = 23; // Whether the agent is kicking or not. + float dist_from_ball = 24; // The distance of the agent from the ball. + float angle_from_ball = 25; // The angle of the agent from the ball. + int32 ball_reach_steps = 26; // How many cycles the agent needs to reach the ball. + bool is_tackling = 27; // Whether the agent is tackling or not. + float relative_neck_direction = 28; // The relative neck direction of the agent to the body direction. + float stamina = 29; // The stamina of the agent. This number is between TODO + bool is_kickable = 30; // Whether the agent is kickable or not. Means the agent can kick the ball. + float catch_probability = 31; // The probability of the agent to catch the ball. This number is important for goalies. + float tackle_probability = 32; // The probability of the agent to tackle the ball. + float foul_probability = 33; // The probability of the agent to foul. + ViewWidth view_width = 34; // The view width of the agent. It can be NARROW, NORMAL, or WIDE. + int32 type_id = 35; // The type identifier of the agent. The RcssServer generates 18 different types of agents. The coach is reponsible to give the type information to the agent. + float kick_rate = 36; // The kick rate of the agent. This number is calculated by this formula: self.playerType().kickRate(wm.ball().distFromSelf(), (wm.ball().angleFromSelf() - self.body()).degree()), So, if the kick rate is more, the agent can kick the ball with more first speed to any angle. + float recovery = 37; // The current estimated recovery value. TODO more info + float stamina_capacity = 38; // The stamina capacity of the agent. This number is between 0 to ~130000 depending on the server param. + CardType card = 39; // The card type of the agent. It can be NO_CARD, YELLOW, or RED. + int32 catch_time = 40; // The time when the last catch command is performed. + float effort = 41; // The effort of the agent. TODO more info +} + +/** + * InterceptActionType is the enum that represents the different types of intercept actions. +*/ enum InterceptActionType { - UNKNOWN_Intercept_Action_Type = 0; - OMNI_DASH = 1; - TURN_FORWARD_DASH = 2; - TURN_BACKWARD_DASH = 3; + UNKNOWN_Intercept_Action_Type = 0; // Unknown intercept action type. + OMNI_DASH = 1; // Omni dash intercept action type. Means the agent will dash to the ball in any direction. + TURN_FORWARD_DASH = 2; // Turn forward dash intercept action type. Means the agent will turn to the ball and dash to the ball. + TURN_BACKWARD_DASH = 3; // Turn backward dash intercept action type. Means the agent will turn to the ball and dash to the ball in the backward direction. } +/** + * InterceptInfo is the message that represents the information about an intercept action. +*/ message InterceptInfo { - InterceptActionType action_type = 1; - int32 turn_steps = 2; - float turn_angle = 3; - int32 dash_steps = 4; - float dash_power = 5; - float dash_dir = 6; - RpcVector2D final_self_position = 7; - float final_ball_dist = 8; - float final_stamina = 9; - float value = 10; -} - + InterceptActionType action_type = 1; // The type of the intercept action. + int32 turn_steps = 2; // The number of steps that the agent needs to turn to the ball. + float turn_angle = 3; // The angle that the agent needs to turn to the ball. + int32 dash_steps = 4; // The number of steps that the agent needs to dash to the ball. + float dash_power = 5; // The power of the dash action. + float dash_dir = 6; // The direction of the dash action to player's body direction. + RpcVector2D final_self_position = 7; // The final position of the agent after the intercept action. + float final_ball_dist = 8; // The final distance of the ball from the agent after the intercept action. + float final_stamina = 9; // The final stamina of the agent after the intercept action. + float value = 10; // The value of the intercept action. TODO less is better or more is better? +} + +/** + * InterceptTable is the message that represents the intercept table of the agent. +*/ message InterceptTable { - int32 self_reach_steps = 1; - int32 first_teammate_reach_steps = 2; - int32 second_teammate_reach_steps = 3; - int32 first_opponent_reach_steps = 4; - int32 second_opponent_reach_steps = 5; - int32 first_teammate_id = 6; - int32 second_teammate_id = 7; - int32 first_opponent_id = 8; - int32 second_opponent_id = 9; - repeated InterceptInfo self_intercept_info = 10; + int32 self_reach_steps = 1; // The number of steps that the agent needs to reach the ball. + int32 first_teammate_reach_steps = 2; // The number of steps that the first teammate needs to reach the ball. + int32 second_teammate_reach_steps = 3; // The number of steps that the second teammate needs to reach the ball. + int32 first_opponent_reach_steps = 4; // The number of steps that the first opponent needs to reach the ball. + int32 second_opponent_reach_steps = 5; // The number of steps that the second opponent needs to reach the ball. + int32 first_teammate_id = 6; // The ID of the first teammate. This ID is unique for each player's object in the each agent proxy. If the ID is 0, it means the agent has no first teammate. + int32 second_teammate_id = 7; // The ID of the second teammate. This ID is unique for each player's object in the each agent proxy. If the ID is 0, it means the agent has no second teammate. + int32 first_opponent_id = 8; // The ID of the first opponent. This ID is unique for each player's object in the each agent proxy. If the ID is 0, it means the agent has no first opponent. + int32 second_opponent_id = 9; // The ID of the second opponent. This ID is unique for each player's object in the each agent proxy. If the ID is 0, it means the agent has no second opponent. + repeated InterceptInfo self_intercept_info = 10; // The intercept information of the agent. } enum GameModeType { @@ -259,58 +300,67 @@ enum GameModeType { MODE_MAX = 32; } +/** + * WorldModel is the message that represents the world model in the soccer simulation. The WorldModel message contains all the information about the current state of the game. +*/ message WorldModel { - InterceptTable intercept_table = 1; - string our_team_name = 2; - string their_team_name = 3; - Side our_side = 4; - int32 last_set_play_start_time = 5; - Self self = 6; - Ball ball = 7; + InterceptTable intercept_table = 1; // The intercept table of the agent. + string our_team_name = 2; // The name of our team. + string their_team_name = 3; // The name of their team. + Side our_side = 4; // The side of our team. It can be LEFT or RIGHT. + int32 last_set_play_start_time = 5; // The last set play start time. + Self self = 6; // The information about the agent itself. + Ball ball = 7; // The information about the ball. repeated Player teammates = 8; repeated Player opponents = 9; repeated Player unknowns = 10; map our_players_dict = 11; map their_players_dict = 12; - int32 our_goalie_uniform_number = 13; - int32 their_goalie_uniform_number = 14; - float offside_line_x = 15; - int32 ofside_line_x_count = 16; - int32 kickable_teammate_id = 17; - int32 kickable_opponent_id = 18; - Side last_kick_side = 19; - int32 last_kicker_uniform_number = 20; - int32 cycle = 21; - GameModeType game_mode_type = 22; - int32 left_team_score = 23; - int32 right_team_score = 24; - bool is_our_set_play = 25; - bool is_their_set_play = 26; - int32 stoped_cycle = 27; - int32 our_team_score = 28; - int32 their_team_score = 29; - bool is_penalty_kick_mode = 30; - map helios_home_positions = 31; - double our_defense_line_x = 32; - double their_defense_line_x = 33; - double our_defense_player_line_x = 34; - double their_defense_player_line_x = 35; - bool kickable_teammate_existance = 36; - bool kickable_opponent_existance = 37; - PenaltyKickState penalty_kick_state = 38; - int32 see_time = 39; + int32 our_goalie_uniform_number = 13; // The uniform number of our goalie. + int32 their_goalie_uniform_number = 14; // The uniform number of their goalie. + float offside_line_x = 15; // The x-coordinate of the offside line of opponent team. + int32 ofside_line_x_count = 16; // How many cycles ago the agent has seen (calculated) the offside line. + int32 kickable_teammate_id = 17; // The ID of the kickable teammate. To get the information about the kickable teammate, you can find a player in teammates or our_players_dict with this ID. + int32 kickable_opponent_id = 18; // The ID of the kickable opponent. To get the information about the kickable opponent, you can find a player in opponents or their_players_dict with this ID. + Side last_kick_side = 19; // The last side that the ball was kicked. + int32 last_kicker_uniform_number = 20; // The last uniform number that the ball was kicked. + int32 cycle = 21; // The current cycle of the game. + GameModeType game_mode_type = 22; // The current game mode type. + int32 left_team_score = 23; // The score of the left team. + int32 right_team_score = 24; // The score of the right team. + bool is_our_set_play = 25; // Whether it is our set play or not. + bool is_their_set_play = 26; // Whether it is their set play or not. + int32 stoped_cycle = 27; // The number of cycles that the game has stopped. For example, when the cycle is 90, and stoped_cycle is 10, it means the game has stopped at 90th cycle for 10 cycles. + int32 our_team_score = 28; // The score of our team. + int32 their_team_score = 29; // The score of their team. + bool is_penalty_kick_mode = 30; // Whether it is penalty kick mode or not. + map helios_home_positions = 31; // The home positions of the agents in the helios strategy. Helios base code is using Delanaray triangulation to calculate the home positions. + double our_defense_line_x = 32; // The x-coordinate of our defense line. The diffence line is minimum x-coordinate of our players (except goalie) and ball. + double their_defense_line_x = 33; // The x-coordinate of their defense line. The diffence line is minimum x-coordinate of their players (except goalie) and ball. + double our_defense_player_line_x = 34; // The x-coordinate of our defense player line. The diffence player line is minimum x-coordinate of our players (except goalie). + double their_defense_player_line_x = 35; // The x-coordinate of their defense player line. The diffence player line is minimum x-coordinate of their players (except goalie). + bool kickable_teammate_existance = 36; // Whether the kickable teammate exists or not. + bool kickable_opponent_existance = 37; // Whether the kickable opponent exists or not. + PenaltyKickState penalty_kick_state = 38; // The penalty kick state. + int32 see_time = 39; // The time that the agent has seen the world model. int32 time_stopped = 40; int32 set_play_count = 41; Side game_mode_side = 42; } +/** + * State is the message that represents the state of the agent in the soccer simulation. +*/ message State { - RegisterResponse register_response = 1; - WorldModel world_model = 2; - WorldModel full_world_model = 3; - bool need_preprocess = 4; + RegisterResponse register_response = 1; // The response of the agent registration. The agent should use this information to identify itself to the playermaker server. + WorldModel world_model = 2; // The world model of the agent. The agent should use this information to make decisions. If the server is in full state mode, the world model will be full state without noise. + WorldModel full_world_model = 3; // The full world model of the agent. This value will be set only if the server is in full state mode and proxy agent is in debug mode. TODO add more information + bool need_preprocess = 4; // Whether the agent needs to preprocess the world model or not. If the agent needs to do some preprocessing actions, it means the proxy agent will igonre the playmaker actions, you can ignore preprocessing. } +/** + * AgentType is the enum that represents the different types of agents. +*/ enum AgentType { PlayerT = 0; CoachT = 1; @@ -322,13 +372,23 @@ message InitMessage { bool debug_mode = 2; } +/** + * Dash is the message that represents the dash action in the soccer simulation. + * By using this action, agent can dash (run or walk) to a direction with a power. + * The rcssserver, calculates the next position and velocity of the agent based on current position, velocity, power and direction. +*/ message Dash { - float power = 1; - float relative_direction = 2; + float power = 1; // The power of the dash action. The power can be between -100 to 100. If the power is negative, the agent will dash in the backward direction by using two times of the power. + float relative_direction = 2; // The relative direction of the dash action to the body direction of the agent. The direction can be between -180 to 180. } +/** + * Turn is the message that represents the turn action in the soccer simulation. + * By using this action, agent can turn to a direction relative to the current body direction. + * The rcssserver, calculates the next body direction of the agent based on current body direction, relative direction and velocity of the agent. +*/ message Turn { - float relative_direction = 1; + float relative_direction = 1; // The relative direction of the turn action to the body direction of the agent. The direction can be between -180 to 180. } message Kick { @@ -796,17 +856,422 @@ message HeliosGoalieKick {} message HeliosShoot {} +/** + * HeliosOffensivePlanner is the message that represents the offensive planner of the agent in the soccer simulation. + * The offensive planner is responsible for making decisions about the offensive actions of the agent by creating a tree of actions, + finding the best chain of actions, and executing the first action in the chain, when the agent is ball owner. + * The best action is an action with best incomming predicted state. + * The best predicted state is the state that has the best evaluation value by using this formula: value = ball.x + max(0.0, 40.0 - ball.dist(opponent goal center)) + * Due to the complexity of the not simple actions, the agent can not calculate the best action in the first layer of the tree. So, the agent can use the simple actions in the first layer of the tree. + * To create the tree, the planner create all possible edges (actions) and create the next state of the agent by using each action. + Then the planner starts to create the next layer of the tree by using the next state of the agent. The planner continues to create the tree until + the max depth of the tree or number of edges is reached. + * For more information check this paper: [HELIOS Base: An Open Source Package for the RoboCup Soccer 2D Simulation](https://link.springer.com/chapter/10.1007/978-3-662-44468-9_46) + + Creating the tree and find best predicted state and action: + + ```mermaid + flowchart TD + wm[World Model] + s0((PredictState 0)) + wm --> s0 + s1((PredictState 1)) + s2((PredictState 2)) + s3((PredictState 3)) + s4((PredictState 4)) + + s0 == DirectPass ==> s1 + s0 == DirectPass ==> s2 + s0 == ShortDribble ==> s3 + s0 == Cross:BestAction ==> s4 + + s5((PredictState 5)) + s6((PredictState 6)) + s7((PredictState 7)) + s8((PredictState 8)) + s9((PredictState 9)) + s10[PredictState 10 + Best State] + + s1 -. SimplePass .-> s5 + s1 -- SimpleDribble --> s6 + s2 -. SimplePass .-> s7 + s3 -- SimpleDribble --> s8 + s4 -. SimplePass .-> s9 + s4 -. SimplePass .-> s10 + + s11((PredictState 11)) + s12((PredictState 12)) + + s5 -. SimplePass .-> s11 + s5 -- SimpleDribble --> s12 + ``` + + +*/ message HeliosOffensivePlanner { - bool direct_pass = 1; - bool lead_pass = 2; - bool through_pass = 3; - bool short_dribble = 4; - bool long_dribble = 5; - bool cross = 6; - bool simple_pass = 7; - bool simple_dribble = 8; - bool simple_shoot = 9; - bool server_side_decision = 10; + bool direct_pass = 1; /** Whether the agent can make a direct pass or not. + The direct pass is a pass action that the agent can pass the ball to the position of a teammate player. + This action is just used in the first layer of the tree. */ + bool lead_pass = 2; /** Whether the agent can make a lead pass or not. + The lead pass is a pass action that the agent can pass the ball to the position of a teammate player with a lead (very cloase to the teammate). + This action is just used in the first layer of the tree. */ + bool through_pass = 3; /** Whether the agent can make a through pass or not. + The through pass is a pass action that the agent can pass the ball to the position of a teammate player with a through (close or very far from the teammate, + between teammates and opponent goal). This action is just used in the first layer of the tree. */ + bool short_dribble = 4; /** Whether the agent can make a short dribble or not. The short dribble is a dribble action that the agent can dribble the ball to a position. + This action is just used in the first layer of the tree. */ + bool long_dribble = 5; /** Whether the agent can make a long dribble or not. The long dribble is a dribble action that the agent can dribble the ball to a position. + This dribble is longer than the short dribble. This action is just used in the first layer of the tree */ + bool cross = 6; /** Whether the agent can make a cross or not. The cross is a kick action that the agent can kick the ball to the position close to teammate, + but it does not care that the teammate can control the ball or not. This action is just used in the first layer of the tree. */ + bool simple_pass = 7; /** Whether the agent can make a simple pass or not. The simple pass is a pass action that the agent can pass the ball to the position of a teammate player. + This action is just used in the second or more layers of the tree. This action is not very accurate. */ + bool simple_dribble = 8; /** Whether the agent can make a simple dribble or not. The simple dribble is a dribble action that the agent can dribble the ball to a position. + This action is just used in the second or more layers of the tree. This action is not very accurate. */ + bool simple_shoot = 9; /** Whether the agent can make a simple shoot or not. The simple shoot is a kick action that the agent can kick the ball to the opponent goal. + This action is just used in the second or more layers of the tree. This action is not very accurate. */ + bool server_side_decision = 10; /** If this value is true, the proxy agent, will create the tree and send all of the nodes to the playmaker server to choose the best action. + If this value is false, the proxy agent will choose the best action by itself. + The default value is false. */ + int32 max_depth = 11; /** The maximum depth of the tree. The agent will create the tree with this depth. To create the first layer of the tree, + the agent will use the direct_pass, lead_pass, through_pass, short_dribble, long_dribble, cross actions. + The difault value is 4. So, if you do not set this value, the agent will create the tree with 4 depth. Due to the default value of rpc, 0 means the default value. */ + int32 max_nodes = 12; /** The maximum number of nodes in the tree. The agent will create the tree with this number of nodes. + The difault value is 500. So, if you do not set this value, the agent will create the tree with 500 nodes. Due to the default value of rpc, 0 means the default value. */ + PlannerEvaluation evaluation = 13; /** The evaluation methods to evaluate the actions[predicted states] in the tree. */ +} + +/** + * PlannerEvaluation is the message that represents the evaluation methods to evaluate the actions[predicted states] in the tree. + * Using this method causes the predicted state eval to be decreased based on the distance or reach steps of the opponent players to the position of the ball in the predicted state. + * Each variable in the message is a list of float values. + * For example, if you want to decrease the predicted state eval if the distance of the opponent player to the ball is less than 5, + You can set the negetive_effect_by_distance variable with the value of [-9.0, -8.5, -7.2, -6.1, -3.8]. It means the predicted state eval will be decreased by 9.0 if the distance is less than 1, + 8.5 if the distance is less than 2, 7.2 if the distance is less than 3, 6.1 if the distance is less than 4, 3.8 if the distance is less than 5. + Example in python grpc: + ```python + actions = [] + opponent_effector = pb2.OpponentEffector( + negetive_effect_by_distance=[-50, -45, -40, -30, -20, -15, -10, -5, -2, -1, -0.5, -0.1], + negetive_effect_by_distance_based_on_first_layer=False, + negetive_effect_by_reach_steps=[], + negetive_effect_by_reach_steps_based_on_first_layer=False + ) + planner_evaluation_effector = pb2.PlannerEvaluationEffector( + opponent_effector=opponent_effector, + # teammate_effector= ... + # action_type_effector= ... + ) + planner_evaluation = pb2.PlannerEvaluation( + effectors=planner_evaluation_effector, + ) + helios_offensive_planner = pb2.HeliosOffensivePlanner( + lead_pass=True, + direct_pass=False, + through_pass=True, + simple_pass=True, + short_dribble=True, + long_dribble=True, + simple_shoot=True, + simple_dribble=False, + cross=True, + server_side_decision=False, + max_depth=5, + max_nodes=800, + evalution=planner_evaluation + ) + actions.append(pb2.PlayerAction(helios_offensive_planner=helios_offensive_planner)) + return pb2.PlayerActions(actions=actions) + ``` +*/ +message OpponentEffector { + repeated float negetive_effect_by_distance = 1; /** The list of float values that represents the negetive effect of the distance of the opponent player to the ball in the predicted state. + The values of this list should be negetive numbers. */ + bool negetive_effect_by_distance_based_on_first_layer = 2; /** If this value is true, the negetive_effect_by_distance will be calculated based on the first action of each action chain. + For example, if we have a chain of actions like [direct_pass, simple_pass, simple_dribble], the negetive_effect_by_distance will be calculated based on the direct_pass action for all of the actions. */ + repeated float negetive_effect_by_reach_steps = 3; /** The list of float values that represents the negetive effect of the reach steps of the opponent player to the ball in the predicted state. */ + bool negetive_effect_by_reach_steps_based_on_first_layer = 4; /** If this value is true, the negetive_effect_by_reach_steps will be calculated based on the first action of each action chain. + For example, if we have a chain of actions like [direct_pass, simple_pass, simple_dribble], the negetive_effect_by_reach_steps will be calculated based on the direct_pass action for all of the actions. */ +} + +/** + * ActionTypeEffector is the message that represents coefficients of the action types in the tree to calculate the predicted state evaluation. + * Each number should start from 0.0. For example, if evaluation of an action-state is 10, the action is direct pass, and value of direct_pass is 0.5, so the final evaluation of the action-state will be 5. + example in python grpc: + ```python + actions = [] + action_type_effector = pb2.ActionTypeEffector( + direct_pass=2.0, + lead_pass=1.5, + through_pass=1.0, + short_dribble=1.0, + long_dribble=1.0, + cross=1.0, + hold=1.0 + ) + planner_evaluation_effector = pb2.PlannerEvaluationEffector( + # opponent_effector= ... + # teammate_effector= ... + action_type_effector= action_type_effector + ) + planner_evaluation = pb2.PlannerEvaluation( + effectors=planner_evaluation_effector, + ) + helios_offensive_planner = pb2.HeliosOffensivePlanner( + lead_pass=True, + direct_pass=False, + through_pass=True, + simple_pass=True, + short_dribble=True, + long_dribble=True, + simple_shoot=True, + simple_dribble=False, + cross=True, + server_side_decision=False, + max_depth=5, + max_nodes=800, + evalution=planner_evaluation + ) + actions.append(pb2.PlayerAction(helios_offensive_planner=helios_offensive_planner)) + return pb2.PlayerActions(actions=actions) + ``` +*/ +message ActionTypeEffector { + float direct_pass = 1; /** The coefficient of the direct pass action. */ + float lead_pass = 2; /** The coefficient of the lead pass action. */ + float through_pass = 3; /** The coefficient of the through pass action. */ + float short_dribble = 4; /** The coefficient of the short dribble action. */ + float long_dribble = 5; /** The coefficient of the long dribble action. */ + float cross = 6; /** The coefficient of the cross action. */ + float hold = 7; /** The coefficient of the hold action. */ +} + +/** + * TeammateEffector is the message that represents the coefficients of the teammates in the tree to calculate the predicted state evaluation. + * Each number should start from 0.0. For example, if evaluation of an action-state is 10, the action is direct pass to player 5, + and value of player 5 is 0.5, so the final evaluation of the action-state will be 5. + example in python grpc: + ```python + actions = [] + teammate_effector = pb2.TeammateEffector( + coefficients={2: 1.2, 5: 1.6}, # if action target is player 2, multiply by 1.2. + apply_based_on_first_layer=False + ) + planner_evaluation_effector = pb2.PlannerEvaluationEffector( + # opponent_effector= ... + teammate_effector= teammate_effector + # action_type_effector= ... + ) + planner_evaluation = pb2.PlannerEvaluation( + effectors=planner_evaluation_effector, + ) + helios_offensive_planner = pb2.HeliosOffensivePlanner( + lead_pass=True, + direct_pass=False, + through_pass=True, + simple_pass=True, + short_dribble=True, + long_dribble=True, + simple_shoot=True, + simple_dribble=False, + cross=True, + server_side_decision=False, + max_depth=5, + max_nodes=800, + evalution=planner_evaluation + ) + actions.append(pb2.PlayerAction(helios_offensive_planner=helios_offensive_planner)) + return pb2.PlayerActions(actions=actions) + ``` +*/ +message TeammateEffector { + map coefficients = 1; /** The map of the coefficients of the teammates. The key of the map is the uniform number of the teammate, and the value is the coefficient of the teammate. + The value should be started from 0.0. */ + bool apply_based_on_first_layer = 2; /** If this value is true, the coefficients will be calculated based on the first action target of each action chain. + For example, if we have a chain of actions like [direct_pass to 5, simple_pass to 6, simple_pass to 7], the coefficients will be calculated based on the coeeficient of the player 5 for all of the actions. */ +} + +/** + * PlannerEvaluationEffector is the message that represents the effectors of the planner evaluation methods. + * The proxy agent will update the predicted state evaluation based on the effectors. + example in python grpc: + ```python + actions = [] + teammate_effector = pb2.TeammateEffector( + coefficients={2: 1.2, 5: 1.6}, # if action target is player 2, multiply by 1.2. + apply_based_on_first_layer=False + ) + action_type_effector = pb2.ActionTypeEffector( + direct_pass=2.0, + lead_pass=1.5, + through_pass=1.0, + short_dribble=1.0, + long_dribble=1.0, + cross=1.0, + hold=1.0 + ) + opponent_effector = pb2.OpponentEffector( + negetive_effect_by_distance=[-50, -45, -40, -30, -20, -15, -10, -5, -2, -1, -0.5, -0.1], + negetive_effect_by_distance_based_on_first_layer=False, + negetive_effect_by_reach_steps=[], + negetive_effect_by_reach_steps_based_on_first_layer=False + ) + planner_evaluation_effector = pb2.PlannerEvaluationEffector( + opponent_effector= opponent_effector, + teammate_effector= teammate_effector, + action_type_effector= action_type_effector + ) + planner_evaluation = pb2.PlannerEvaluation( + effectors=planner_evaluation_effector, + ) + helios_offensive_planner = pb2.HeliosOffensivePlanner( + lead_pass=True, + direct_pass=False, + through_pass=True, + simple_pass=True, + short_dribble=True, + long_dribble=True, + simple_shoot=True, + simple_dribble=False, + cross=True, + server_side_decision=False, + max_depth=5, + max_nodes=800, + evalution=planner_evaluation + ) + actions.append(pb2.PlayerAction(helios_offensive_planner=helios_offensive_planner)) + return pb2.PlayerActions(actions=actions) + ``` +*/ +message PlannerEvaluationEffector { + OpponentEffector opponent_effector = 1; /** The effector of the opponent players. You can set the negetive effect of the distance or reach steps of the opponent players to the ball in the predicted state. + By using this effector, the proxy agent will decrease the predicted state evaluation based on the distance or reach steps of the opponent players to the ball in the predicted state. */ + ActionTypeEffector action_type_effector = 2; /** The effector of the action types. You can set the coefficients of the action types in the tree to calculate the predicted state evaluation. + By using this effector, the proxy agent will update the predicted state evaluation based on the coefficients of the action types in the tree. */ + TeammateEffector teammate_effector = 3; /** The effector of the teammates. You can set the coefficients of the teammates in the tree to calculate the predicted state evaluation. + By using this effector, the proxy agent will update the predicted state evaluation based on the coefficients of the teammates in the tree. */ +} + +/** + * HeliosFieldEvaluator is the message that represents the field evaluator of the proxy agent to evaluate each node (predicted state) in the planner tree. + * If you dont set the field evaluator, the proxy agent will use the default field evaluator (HeliosFieldEvaluator) to evaluate each node in the planner tree. + * This field evaluator calculate the value of the predicted state by using this formula: + value = x_coefficient * (ball.x + 52.5) + ball_dist_to_goal_coefficient * max(0.0, effective_max_ball_dist_to_goal - ball.dist(opponent goal center)) + example in python grpc: + ```python + actions = [] + helios_field_evaluator = pb2.HeliosFieldEvaluator( + x_coefficient=2.1, + ball_dist_to_goal_coefficient=1.8, + effective_max_ball_dist_to_goal=50.0 + ) + field_evaluator = pb2.PlannerFieldEvaluator( + helios_field_evaluator=helios_field_evaluator, + # matrix_field_evaluator=... + ) + planner_evaluation = pb2.PlannerEvaluation( + field_evaluators=field_evaluator + ) + helios_offensive_planner = pb2.HeliosOffensivePlanner( + lead_pass=True, + direct_pass=False, + through_pass=True, + simple_pass=True, + short_dribble=True, + long_dribble=True, + simple_shoot=True, + simple_dribble=False, + cross=True, + server_side_decision=False, + max_depth=5, + max_nodes=800, + evalution=planner_evaluation + ) + actions.append(pb2.PlayerAction(helios_offensive_planner=helios_offensive_planner)) + return pb2.PlayerActions(actions=actions) + ``` +*/ +message HeliosFieldEvaluator { + float x_coefficient = 1; // The coefficient of the x-coordinate of the ball in the predicted state. The default value is 1. + float ball_dist_to_goal_coefficient = 2; // The coefficient of the distance of the ball to the opponent goal center in the predicted state. The default value is 1. + float effective_max_ball_dist_to_goal = 3; // The effective maximum distance of the ball to the opponent goal center in the predicted state. The default value is 40.0. +} + +message MatrixFieldEvaluatorY { + repeated float evals = 1; +} + +/** + * MatrixFieldEvaluator is the message that represents the matrix field evaluator of the proxy agent to evaluate each node (predicted state) in the planner tree. + * If you dont set the field evaluator, the proxy agent will use the default field evaluator (HeliosFieldEvaluator) to evaluate each node in the planner tree. + * This field evaluator calculate the value of the predicted state by using a matrix of float values. + * --------------------- + * | 10 | 20 | 30 | 40 | + * | 15 | 25 | 35 | 45 | + * | 10 | 20 | 30 | 40 | + * --------------------- + * In this example matrix, the value of each point in the opponent pernaly area is 45. + * example in python grpc: + ```python + actions = [] + matrix_field_evaluator = pb2.MatrixFieldEvaluator( + evals=[ + pb2.MatrixFieldEvaluatorY(evals=[10, 15, 10]), + pb2.MatrixFieldEvaluatorY(evals=[20, 25, 20]), + pb2.MatrixFieldEvaluatorY(evals=[30, 35, 30]), + pb2.MatrixFieldEvaluatorY(evals=[40, 45, 40]), + ] + ) + field_evaluator = pb2.PlannerFieldEvaluator( + # helios_field_evaluator=... + matrix_field_evaluator=matrix_field_evaluator + ) + planner_evaluation = pb2.PlannerEvaluation( + field_evaluators=field_evaluator + ) + helios_offensive_planner = pb2.HeliosOffensivePlanner( + lead_pass=True, + direct_pass=False, + through_pass=True, + simple_pass=True, + short_dribble=True, + long_dribble=True, + simple_shoot=True, + simple_dribble=False, + cross=True, + server_side_decision=False, + max_depth=5, + max_nodes=800, + evalution=planner_evaluation + ) + actions.append(pb2.PlayerAction(helios_offensive_planner=helios_offensive_planner)) + return pb2.PlayerActions(actions=actions) + ``` +*/ +message MatrixFieldEvaluator { + repeated MatrixFieldEvaluatorY evals = 1; +} + +/** + * PlannerFieldEvaluator is the message that represents the field evaluator of the proxy agent to evaluate each node (predicted state) in the planner tree. + * If you dont set the field evaluator, the proxy agent will use the default field evaluator (HeliosFieldEvaluator) to evaluate each node in the planner tree. + * This field evaluator calculate the value of the predicted state by using helios_field_evaluator or/and matrix_field_evaluator. + * Note: if you just use the matrix_field_evaluator, value of all target in each square of the matrix should be the same, so it causes that the player choosing hold ball action instead of dribble in that area. + * To avoid this issue, you can use the helios_field_evaluator with the matrix_field_evaluator together. +*/ +message PlannerFieldEvaluator { + HeliosFieldEvaluator helios_field_evaluator = 1; + MatrixFieldEvaluator matrix_field_evaluator = 2; +} + +/** + * PlannerEvaluation is the message that represents the evaluation methods to evaluate the actions[predicted states] in the tree. + * Using this method causes the predicted state eval to be calculated based on field evaluators and effected by effectors. +*/ +message PlannerEvaluation { + PlannerEvaluationEffector effectors = 1; + PlannerFieldEvaluator field_evaluators = 2; } message HeliosBasicOffensive {} @@ -900,6 +1365,8 @@ message PlayerActions { bool ignore_preprocess = 2; bool ignore_doforcekick = 3; bool ignore_doHeardPassRecieve = 4; + bool ignore_doIntention = 5; + bool ignore_shootInPreprocess = 6; } message ChangePlayerType { @@ -1321,6 +1788,45 @@ message Empty { } service Game { + /* + * The Game service provides various RPC methods for interacting with a soccer simulation. + * + ```mermaid + sequenceDiagram + participant SS as SoccerSimulationServer + participant SP as SoccerSimulationProxy + participant PM as PlayMakerServer + Note over SS,PM: Run + SP->>SS: Connect + SS->>SP: OK, Unum + SS->>SP: ServerParam + SS->>SP: PlayerParam + SS->>SP: PlayerType (0) + SS->>SP: PlayerType (1) + SS->>SP: PlayerType (17) + SP->>PM: Register(RegisterRequest) + PM->>SP: RegisterResponse + SP->>PM: SendInitMessage(InitMessage) + PM->>SP: Empty + SP->>PM: SendServerParams(ServerParam) + PM->>SP: Empty + SP->>PM: SendPlayerParams(PlayerParam) + PM->>SP: Empty + SP->>PM: SendPlayerType(PlayerType(0)) + PM->>SP: Empty + SP->>PM: SendPlayerType(PlayerType(1)) + PM->>SP: Empty + SP->>PM: SendPlayerType(PlayerType(17)) + PM->>SP: Empty + SS->>SP: Observation + Note over SP: Convert observation to State + SP->>PM: GetPlayerActions(State) + PM->>SP: PlayerActions + Note over SP: Convert Actions to Low-Level Commands + SP->>SS: Commands + ``` + */ + rpc GetPlayerActions(State) returns (PlayerActions) {} rpc GetCoachActions(State) returns (CoachActions) {} rpc GetTrainerActions(State) returns (TrainerActions) {} diff --git a/server.py b/server.py index d6c6769..90ea518 100644 --- a/server.py +++ b/server.py @@ -44,6 +44,8 @@ def GetPlayerActions(self, state: pb2.State): if state.world_model.self.is_goalie: actions.append(pb2.PlayerAction(helios_goalie=pb2.HeliosGoalie())) elif state.world_model.self.is_kickable: + # First action has the highest priority + actions.append(pb2.PlayerAction(helios_shoot=pb2.HeliosShoot())) actions.append(pb2.PlayerAction(helios_offensive_planner=pb2.HeliosOffensivePlanner(lead_pass=True, direct_pass=True, through_pass=True, @@ -55,7 +57,6 @@ def GetPlayerActions(self, state: pb2.State): cross=True, server_side_decision=False ))) - actions.append(pb2.PlayerAction(helios_shoot=pb2.HeliosShoot())) else: actions.append(pb2.PlayerAction(helios_basic_move=pb2.HeliosBasicMove())) else: diff --git a/service_pb2.py b/service_pb2.py deleted file mode 100644 index 80e6614..0000000 --- a/service_pb2.py +++ /dev/null @@ -1,326 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: service.proto -# Protobuf Python Version: 5.26.1 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rservice.proto\x12\x06protos\"@\n\x0bRpcVector2D\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\x0c\n\x04\x64ist\x18\x03 \x01(\x02\x12\r\n\x05\x61ngle\x18\x04 \x01(\x02\"x\n\x0fRegisterRequest\x12%\n\nagent_type\x18\x01 \x01(\x0e\x32\x11.protos.AgentType\x12\x11\n\tteam_name\x18\x02 \x01(\t\x12\x16\n\x0euniform_number\x18\x03 \x01(\x05\x12\x13\n\x0brpc_version\x18\x04 \x01(\x05\"\xb8\x01\n\x10RegisterResponse\x12\x11\n\tclient_id\x18\x01 \x01(\x05\x12%\n\nagent_type\x18\x02 \x01(\x0e\x32\x11.protos.AgentType\x12\x11\n\tteam_name\x18\x03 \x01(\t\x12\x16\n\x0euniform_number\x18\x04 \x01(\x05\x12?\n\x18rpc_server_language_type\x18\x05 \x01(\x0e\x32\x1d.protos.RpcServerLanguageType\"\x98\x04\n\x04\x42\x61ll\x12%\n\x08position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12.\n\x11relative_position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rseen_position\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12+\n\x0eheard_position\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\x12%\n\x08velocity\x18\x05 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rseen_velocity\x18\x06 \x01(\x0b\x32\x13.protos.RpcVector2D\x12+\n\x0eheard_velocity\x18\x07 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x11\n\tpos_count\x18\x08 \x01(\x05\x12\x16\n\x0eseen_pos_count\x18\t \x01(\x05\x12\x17\n\x0fheard_pos_count\x18\n \x01(\x05\x12\x11\n\tvel_count\x18\x0b \x01(\x05\x12\x16\n\x0eseen_vel_count\x18\x0c \x01(\x05\x12\x17\n\x0fheard_vel_count\x18\r \x01(\x05\x12\x12\n\nlost_count\x18\x0e \x01(\x05\x12\x13\n\x0bghost_count\x18\x0f \x01(\x05\x12\x16\n\x0e\x64ist_from_self\x18\x10 \x01(\x02\x12\x17\n\x0f\x61ngle_from_self\x18\x11 \x01(\x02\"\xd8\x01\n\x10PenaltyKickState\x12#\n\ron_field_side\x18\x01 \x01(\x0e\x32\x0c.protos.Side\x12(\n\x12\x63urrent_taker_side\x18\x02 \x01(\x0e\x32\x0c.protos.Side\x12\x19\n\x11our_taker_counter\x18\x03 \x01(\x05\x12\x1b\n\x13their_taker_counter\x18\x04 \x01(\x05\x12\x11\n\tour_score\x18\x05 \x01(\x05\x12\x13\n\x0btheir_score\x18\x06 \x01(\x05\x12\x15\n\ris_kick_taker\x18\x07 \x01(\x08\"\xb0\x06\n\x06Player\x12%\n\x08position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rseen_position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12+\n\x0eheard_position\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12%\n\x08velocity\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rseen_velocity\x18\x05 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x11\n\tpos_count\x18\x06 \x01(\x05\x12\x16\n\x0eseen_pos_count\x18\x07 \x01(\x05\x12\x17\n\x0fheard_pos_count\x18\x08 \x01(\x05\x12\x11\n\tvel_count\x18\t \x01(\x05\x12\x16\n\x0eseen_vel_count\x18\n \x01(\x05\x12\x13\n\x0bghost_count\x18\x0b \x01(\x05\x12\x16\n\x0e\x64ist_from_self\x18\x0c \x01(\x02\x12\x17\n\x0f\x61ngle_from_self\x18\r \x01(\x02\x12\n\n\x02id\x18\x0e \x01(\x05\x12\x1a\n\x04side\x18\x0f \x01(\x0e\x32\x0c.protos.Side\x12\x16\n\x0euniform_number\x18\x10 \x01(\x05\x12\x1c\n\x14uniform_number_count\x18\x11 \x01(\x05\x12\x11\n\tis_goalie\x18\x12 \x01(\x08\x12\x16\n\x0e\x62ody_direction\x18\x13 \x01(\x02\x12\x1c\n\x14\x62ody_direction_count\x18\x14 \x01(\x05\x12\x16\n\x0e\x66\x61\x63\x65_direction\x18\x15 \x01(\x02\x12\x1c\n\x14\x66\x61\x63\x65_direction_count\x18\x16 \x01(\x05\x12\x1a\n\x12point_to_direction\x18\x17 \x01(\x02\x12 \n\x18point_to_direction_count\x18\x18 \x01(\x05\x12\x12\n\nis_kicking\x18\x19 \x01(\x08\x12\x16\n\x0e\x64ist_from_ball\x18\x1a \x01(\x02\x12\x17\n\x0f\x61ngle_from_ball\x18\x1b \x01(\x02\x12\x18\n\x10\x62\x61ll_reach_steps\x18\x1c \x01(\x05\x12\x13\n\x0bis_tackling\x18\x1d \x01(\x08\x12\x0f\n\x07type_id\x18\x1e \x01(\x05\"\xbf\x08\n\x04Self\x12%\n\x08position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rseen_position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12+\n\x0eheard_position\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12%\n\x08velocity\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rseen_velocity\x18\x05 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x11\n\tpos_count\x18\x06 \x01(\x05\x12\x16\n\x0eseen_pos_count\x18\x07 \x01(\x05\x12\x17\n\x0fheard_pos_count\x18\x08 \x01(\x05\x12\x11\n\tvel_count\x18\t \x01(\x05\x12\x16\n\x0eseen_vel_count\x18\n \x01(\x05\x12\x13\n\x0bghost_count\x18\x0b \x01(\x05\x12\n\n\x02id\x18\x0c \x01(\x05\x12\x1a\n\x04side\x18\r \x01(\x0e\x32\x0c.protos.Side\x12\x16\n\x0euniform_number\x18\x0e \x01(\x05\x12\x1c\n\x14uniform_number_count\x18\x0f \x01(\x05\x12\x11\n\tis_goalie\x18\x10 \x01(\x08\x12\x16\n\x0e\x62ody_direction\x18\x11 \x01(\x02\x12\x1c\n\x14\x62ody_direction_count\x18\x12 \x01(\x05\x12\x16\n\x0e\x66\x61\x63\x65_direction\x18\x13 \x01(\x02\x12\x1c\n\x14\x66\x61\x63\x65_direction_count\x18\x14 \x01(\x05\x12\x1a\n\x12point_to_direction\x18\x15 \x01(\x02\x12 \n\x18point_to_direction_count\x18\x16 \x01(\x05\x12\x12\n\nis_kicking\x18\x17 \x01(\x08\x12\x16\n\x0e\x64ist_from_ball\x18\x18 \x01(\x02\x12\x17\n\x0f\x61ngle_from_ball\x18\x19 \x01(\x02\x12\x18\n\x10\x62\x61ll_reach_steps\x18\x1a \x01(\x05\x12\x13\n\x0bis_tackling\x18\x1b \x01(\x08\x12\x1f\n\x17relative_neck_direction\x18\x1c \x01(\x02\x12\x0f\n\x07stamina\x18\x1d \x01(\x02\x12\x13\n\x0bis_kickable\x18\x1e \x01(\x08\x12\x19\n\x11\x63\x61tch_probability\x18\x1f \x01(\x02\x12\x1a\n\x12tackle_probability\x18 \x01(\x02\x12\x18\n\x10\x66oul_probability\x18! \x01(\x02\x12%\n\nview_width\x18\" \x01(\x0e\x32\x11.protos.ViewWidth\x12\x0f\n\x07type_id\x18# \x01(\x05\x12\x11\n\tkick_rate\x18$ \x01(\x02\x12\x10\n\x08recovery\x18% \x01(\x02\x12\x18\n\x10stamina_capacity\x18& \x01(\x02\x12\x1e\n\x04\x63\x61rd\x18\' \x01(\x0e\x32\x10.protos.CardType\x12\x12\n\ncatch_time\x18( \x01(\x05\x12\x0e\n\x06\x65\x66\x66ort\x18) \x01(\x02\"\x94\x02\n\rInterceptInfo\x12\x30\n\x0b\x61\x63tion_type\x18\x01 \x01(\x0e\x32\x1b.protos.InterceptActionType\x12\x12\n\nturn_steps\x18\x02 \x01(\x05\x12\x12\n\nturn_angle\x18\x03 \x01(\x02\x12\x12\n\ndash_steps\x18\x04 \x01(\x05\x12\x12\n\ndash_power\x18\x05 \x01(\x02\x12\x10\n\x08\x64\x61sh_dir\x18\x06 \x01(\x02\x12\x30\n\x13\x66inal_self_position\x18\x07 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x17\n\x0f\x66inal_ball_dist\x18\x08 \x01(\x02\x12\x15\n\rfinal_stamina\x18\t \x01(\x02\x12\r\n\x05value\x18\n \x01(\x02\"\xde\x02\n\x0eInterceptTable\x12\x18\n\x10self_reach_steps\x18\x01 \x01(\x05\x12\"\n\x1a\x66irst_teammate_reach_steps\x18\x02 \x01(\x05\x12#\n\x1bsecond_teammate_reach_steps\x18\x03 \x01(\x05\x12\"\n\x1a\x66irst_opponent_reach_steps\x18\x04 \x01(\x05\x12#\n\x1bsecond_opponent_reach_steps\x18\x05 \x01(\x05\x12\x19\n\x11\x66irst_teammate_id\x18\x06 \x01(\x05\x12\x1a\n\x12second_teammate_id\x18\x07 \x01(\x05\x12\x19\n\x11\x66irst_opponent_id\x18\x08 \x01(\x05\x12\x1a\n\x12second_opponent_id\x18\t \x01(\x05\x12\x32\n\x13self_intercept_info\x18\n \x03(\x0b\x32\x15.protos.InterceptInfo\"\xf9\x0c\n\nWorldModel\x12/\n\x0fintercept_table\x18\x01 \x01(\x0b\x32\x16.protos.InterceptTable\x12\x15\n\rour_team_name\x18\x02 \x01(\t\x12\x17\n\x0ftheir_team_name\x18\x03 \x01(\t\x12\x1e\n\x08our_side\x18\x04 \x01(\x0e\x32\x0c.protos.Side\x12 \n\x18last_set_play_start_time\x18\x05 \x01(\x05\x12\x1a\n\x04self\x18\x06 \x01(\x0b\x32\x0c.protos.Self\x12\x1a\n\x04\x62\x61ll\x18\x07 \x01(\x0b\x32\x0c.protos.Ball\x12!\n\tteammates\x18\x08 \x03(\x0b\x32\x0e.protos.Player\x12!\n\topponents\x18\t \x03(\x0b\x32\x0e.protos.Player\x12 \n\x08unknowns\x18\n \x03(\x0b\x32\x0e.protos.Player\x12@\n\x10our_players_dict\x18\x0b \x03(\x0b\x32&.protos.WorldModel.OurPlayersDictEntry\x12\x44\n\x12their_players_dict\x18\x0c \x03(\x0b\x32(.protos.WorldModel.TheirPlayersDictEntry\x12!\n\x19our_goalie_uniform_number\x18\r \x01(\x05\x12#\n\x1btheir_goalie_uniform_number\x18\x0e \x01(\x05\x12\x16\n\x0eoffside_line_x\x18\x0f \x01(\x02\x12\x1b\n\x13ofside_line_x_count\x18\x10 \x01(\x05\x12\x1c\n\x14kickable_teammate_id\x18\x11 \x01(\x05\x12\x1c\n\x14kickable_opponent_id\x18\x12 \x01(\x05\x12$\n\x0elast_kick_side\x18\x13 \x01(\x0e\x32\x0c.protos.Side\x12\"\n\x1alast_kicker_uniform_number\x18\x14 \x01(\x05\x12\r\n\x05\x63ycle\x18\x15 \x01(\x05\x12,\n\x0egame_mode_type\x18\x16 \x01(\x0e\x32\x14.protos.GameModeType\x12\x17\n\x0fleft_team_score\x18\x17 \x01(\x05\x12\x18\n\x10right_team_score\x18\x18 \x01(\x05\x12\x17\n\x0fis_our_set_play\x18\x19 \x01(\x08\x12\x19\n\x11is_their_set_play\x18\x1a \x01(\x08\x12\x14\n\x0cstoped_cycle\x18\x1b \x01(\x05\x12\x16\n\x0eour_team_score\x18\x1c \x01(\x05\x12\x18\n\x10their_team_score\x18\x1d \x01(\x05\x12\x1c\n\x14is_penalty_kick_mode\x18\x1e \x01(\x08\x12J\n\x15helios_home_positions\x18\x1f \x03(\x0b\x32+.protos.WorldModel.HeliosHomePositionsEntry\x12\x1a\n\x12our_defense_line_x\x18 \x01(\x01\x12\x1c\n\x14their_defense_line_x\x18! \x01(\x01\x12!\n\x19our_defense_player_line_x\x18\" \x01(\x01\x12#\n\x1btheir_defense_player_line_x\x18# \x01(\x01\x12#\n\x1bkickable_teammate_existance\x18$ \x01(\x08\x12#\n\x1bkickable_opponent_existance\x18% \x01(\x08\x12\x34\n\x12penalty_kick_state\x18& \x01(\x0b\x32\x18.protos.PenaltyKickState\x12\x10\n\x08see_time\x18\' \x01(\x05\x12\x14\n\x0ctime_stopped\x18( \x01(\x05\x12\x16\n\x0eset_play_count\x18) \x01(\x05\x12$\n\x0egame_mode_side\x18* \x01(\x0e\x32\x0c.protos.Side\x1a\x45\n\x13OurPlayersDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.protos.Player:\x02\x38\x01\x1aG\n\x15TheirPlayersDictEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.protos.Player:\x02\x38\x01\x1aO\n\x18HeliosHomePositionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D:\x02\x38\x01\"\xac\x01\n\x05State\x12\x33\n\x11register_response\x18\x01 \x01(\x0b\x32\x18.protos.RegisterResponse\x12\'\n\x0bworld_model\x18\x02 \x01(\x0b\x32\x12.protos.WorldModel\x12,\n\x10\x66ull_world_model\x18\x03 \x01(\x0b\x32\x12.protos.WorldModel\x12\x17\n\x0fneed_preprocess\x18\x04 \x01(\x08\"V\n\x0bInitMessage\x12\x33\n\x11register_response\x18\x01 \x01(\x0b\x32\x18.protos.RegisterResponse\x12\x12\n\ndebug_mode\x18\x02 \x01(\x08\"1\n\x04\x44\x61sh\x12\r\n\x05power\x18\x01 \x01(\x02\x12\x1a\n\x12relative_direction\x18\x02 \x01(\x02\"\"\n\x04Turn\x12\x1a\n\x12relative_direction\x18\x01 \x01(\x02\"1\n\x04Kick\x12\r\n\x05power\x18\x01 \x01(\x02\x12\x1a\n\x12relative_direction\x18\x02 \x01(\x02\",\n\x06Tackle\x12\x14\n\x0cpower_or_dir\x18\x01 \x01(\x02\x12\x0c\n\x04\x66oul\x18\x02 \x01(\x08\"\x07\n\x05\x43\x61tch\"\x1c\n\x04Move\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\"\x1a\n\x08TurnNeck\x12\x0e\n\x06moment\x18\x01 \x01(\x02\"3\n\nChangeView\x12%\n\nview_width\x18\x01 \x01(\x0e\x32\x11.protos.ViewWidth\"e\n\x0b\x42\x61llMessage\x12*\n\rball_position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rball_velocity\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\"\xb3\x01\n\x0bPassMessage\x12\x1f\n\x17receiver_uniform_number\x18\x01 \x01(\x05\x12+\n\x0ereceiver_point\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rball_position\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rball_velocity\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\"F\n\x10InterceptMessage\x12\x0b\n\x03our\x18\x01 \x01(\x08\x12\x16\n\x0euniform_number\x18\x02 \x01(\x05\x12\r\n\x05\x63ycle\x18\x03 \x01(\x05\"{\n\rGoalieMessage\x12\x1d\n\x15goalie_uniform_number\x18\x01 \x01(\x05\x12,\n\x0fgoalie_position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1d\n\x15goalie_body_direction\x18\x03 \x01(\x02\"\xd1\x01\n\x16GoalieAndPlayerMessage\x12\x1d\n\x15goalie_uniform_number\x18\x01 \x01(\x05\x12,\n\x0fgoalie_position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1d\n\x15goalie_body_direction\x18\x03 \x01(\x02\x12\x1d\n\x15player_uniform_number\x18\x04 \x01(\x05\x12,\n\x0fplayer_position\x18\x05 \x01(\x0b\x32\x13.protos.RpcVector2D\",\n\x12OffsideLineMessage\x12\x16\n\x0eoffside_line_x\x18\x01 \x01(\x02\",\n\x12\x44\x65\x66\x65nseLineMessage\x12\x16\n\x0e\x64\x65\x66\x65nse_line_x\x18\x01 \x01(\x02\"\x14\n\x12WaitRequestMessage\"#\n\x0eSetplayMessage\x12\x11\n\twait_step\x18\x01 \x01(\x05\"?\n\x12PassRequestMessage\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\"!\n\x0eStaminaMessage\x12\x0f\n\x07stamina\x18\x01 \x01(\x02\"#\n\x0fRecoveryMessage\x12\x10\n\x08recovery\x18\x01 \x01(\x02\"2\n\x16StaminaCapacityMessage\x12\x18\n\x10stamina_capacity\x18\x01 \x01(\x02\"P\n\x0e\x44ribbleMessage\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x13\n\x0bqueue_count\x18\x02 \x01(\x05\"\xb8\x01\n\x11\x42\x61llGoalieMessage\x12*\n\rball_position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rball_velocity\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12,\n\x0fgoalie_position\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1d\n\x15goalie_body_direction\x18\x04 \x01(\x02\"Q\n\x10OnePlayerMessage\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12%\n\x08position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\"\xaa\x01\n\x10TwoPlayerMessage\x12\x1c\n\x14\x66irst_uniform_number\x18\x01 \x01(\x05\x12+\n\x0e\x66irst_position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1d\n\x15second_uniform_number\x18\x03 \x01(\x05\x12,\n\x0fsecond_position\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\"\xf7\x01\n\x12ThreePlayerMessage\x12\x1c\n\x14\x66irst_uniform_number\x18\x01 \x01(\x05\x12+\n\x0e\x66irst_position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1d\n\x15second_uniform_number\x18\x03 \x01(\x05\x12,\n\x0fsecond_position\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1c\n\x14third_uniform_number\x18\x05 \x01(\x05\x12+\n\x0ethird_position\x18\x06 \x01(\x0b\x32\x13.protos.RpcVector2D\"l\n\x0bSelfMessage\x12*\n\rself_position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1b\n\x13self_body_direction\x18\x02 \x01(\x02\x12\x14\n\x0cself_stamina\x18\x03 \x01(\x02\"h\n\x0fTeammateMessage\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12%\n\x08position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x16\n\x0e\x62ody_direction\x18\x03 \x01(\x02\"h\n\x0fOpponentMessage\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12%\n\x08position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x16\n\x0e\x62ody_direction\x18\x03 \x01(\x02\"\xc9\x01\n\x11\x42\x61llPlayerMessage\x12*\n\rball_position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rball_velocity\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x16\n\x0euniform_number\x18\x03 \x01(\x05\x12,\n\x0fplayer_position\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x16\n\x0e\x62ody_direction\x18\x05 \x01(\x02\"\xd0\t\n\x03Say\x12+\n\x0c\x62\x61ll_message\x18\x01 \x01(\x0b\x32\x13.protos.BallMessageH\x00\x12+\n\x0cpass_message\x18\x02 \x01(\x0b\x32\x13.protos.PassMessageH\x00\x12\x35\n\x11intercept_message\x18\x03 \x01(\x0b\x32\x18.protos.InterceptMessageH\x00\x12/\n\x0egoalie_message\x18\x04 \x01(\x0b\x32\x15.protos.GoalieMessageH\x00\x12\x43\n\x19goalie_and_player_message\x18\x05 \x01(\x0b\x32\x1e.protos.GoalieAndPlayerMessageH\x00\x12:\n\x14offside_line_message\x18\x06 \x01(\x0b\x32\x1a.protos.OffsideLineMessageH\x00\x12:\n\x14\x64\x65\x66\x65nse_line_message\x18\x07 \x01(\x0b\x32\x1a.protos.DefenseLineMessageH\x00\x12:\n\x14wait_request_message\x18\x08 \x01(\x0b\x32\x1a.protos.WaitRequestMessageH\x00\x12\x31\n\x0fsetplay_message\x18\t \x01(\x0b\x32\x16.protos.SetplayMessageH\x00\x12:\n\x14pass_request_message\x18\n \x01(\x0b\x32\x1a.protos.PassRequestMessageH\x00\x12\x31\n\x0fstamina_message\x18\x0b \x01(\x0b\x32\x16.protos.StaminaMessageH\x00\x12\x33\n\x10recovery_message\x18\x0c \x01(\x0b\x32\x17.protos.RecoveryMessageH\x00\x12\x42\n\x18stamina_capacity_message\x18\r \x01(\x0b\x32\x1e.protos.StaminaCapacityMessageH\x00\x12\x31\n\x0f\x64ribble_message\x18\x0e \x01(\x0b\x32\x16.protos.DribbleMessageH\x00\x12\x38\n\x13\x62\x61ll_goalie_message\x18\x0f \x01(\x0b\x32\x19.protos.BallGoalieMessageH\x00\x12\x36\n\x12one_player_message\x18\x10 \x01(\x0b\x32\x18.protos.OnePlayerMessageH\x00\x12\x36\n\x12two_player_message\x18\x11 \x01(\x0b\x32\x18.protos.TwoPlayerMessageH\x00\x12:\n\x14three_player_message\x18\x12 \x01(\x0b\x32\x1a.protos.ThreePlayerMessageH\x00\x12+\n\x0cself_message\x18\x13 \x01(\x0b\x32\x13.protos.SelfMessageH\x00\x12\x33\n\x10teammate_message\x18\x14 \x01(\x0b\x32\x17.protos.TeammateMessageH\x00\x12\x33\n\x10opponent_message\x18\x15 \x01(\x0b\x32\x17.protos.OpponentMessageH\x00\x12\x38\n\x13\x62\x61ll_player_message\x18\x16 \x01(\x0b\x32\x19.protos.BallPlayerMessageH\x00\x42\t\n\x07message\"\x1f\n\x07PointTo\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\"\x0b\n\tPointToOf\"7\n\x0b\x41ttentionTo\x12\x1a\n\x04side\x18\x01 \x01(\x0e\x32\x0c.protos.Side\x12\x0c\n\x04unum\x18\x02 \x01(\x05\"\x0f\n\rAttentionToOf\">\n\x07\x41\x64\x64Text\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12\x0f\n\x07message\x18\x02 \x01(\t\"a\n\x08\x41\x64\x64Point\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12\"\n\x05point\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\r\n\x05\x63olor\x18\x03 \x01(\t\"\x82\x01\n\x07\x41\x64\x64Line\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12\"\n\x05start\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12 \n\x03\x65nd\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\r\n\x05\x63olor\x18\x04 \x01(\t\"\x99\x01\n\x06\x41\x64\x64\x41rc\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12#\n\x06\x63\x65nter\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x0e\n\x06radius\x18\x03 \x01(\x02\x12\x13\n\x0bstart_angle\x18\x04 \x01(\x02\x12\x12\n\nspan_angel\x18\x05 \x01(\x02\x12\r\n\x05\x63olor\x18\x06 \x01(\t\"\x81\x01\n\tAddCircle\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12#\n\x06\x63\x65nter\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x0e\n\x06radius\x18\x03 \x01(\x02\x12\r\n\x05\x63olor\x18\x04 \x01(\t\x12\x0c\n\x04\x66ill\x18\x05 \x01(\x08\"\xbd\x01\n\x0b\x41\x64\x64Triangle\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12#\n\x06point1\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12#\n\x06point2\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12#\n\x06point3\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\r\n\x05\x63olor\x18\x05 \x01(\t\x12\x0c\n\x04\x66ill\x18\x06 \x01(\x08\"\x89\x01\n\x0c\x41\x64\x64Rectangle\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12\x0c\n\x04left\x18\x02 \x01(\x02\x12\x0b\n\x03top\x18\x03 \x01(\x02\x12\x0e\n\x06length\x18\x04 \x01(\x02\x12\r\n\x05width\x18\x05 \x01(\x02\x12\r\n\x05\x63olor\x18\x06 \x01(\t\x12\x0c\n\x04\x66ill\x18\x07 \x01(\x08\"\xc2\x01\n\tAddSector\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12#\n\x06\x63\x65nter\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x12\n\nmin_radius\x18\x03 \x01(\x02\x12\x12\n\nmax_radius\x18\x04 \x01(\x02\x12\x13\n\x0bstart_angle\x18\x05 \x01(\x02\x12\x12\n\nspan_angel\x18\x06 \x01(\x02\x12\r\n\x05\x63olor\x18\x07 \x01(\t\x12\x0c\n\x04\x66ill\x18\x08 \x01(\x08\"w\n\nAddMessage\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12%\n\x08position\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\r\n\x05\x63olor\x18\x04 \x01(\t\"\xf9\x02\n\x03Log\x12#\n\x08\x61\x64\x64_text\x18\x01 \x01(\x0b\x32\x0f.protos.AddTextH\x00\x12%\n\tadd_point\x18\x02 \x01(\x0b\x32\x10.protos.AddPointH\x00\x12#\n\x08\x61\x64\x64_line\x18\x03 \x01(\x0b\x32\x0f.protos.AddLineH\x00\x12!\n\x07\x61\x64\x64_arc\x18\x04 \x01(\x0b\x32\x0e.protos.AddArcH\x00\x12\'\n\nadd_circle\x18\x05 \x01(\x0b\x32\x11.protos.AddCircleH\x00\x12+\n\x0c\x61\x64\x64_triangle\x18\x06 \x01(\x0b\x32\x13.protos.AddTriangleH\x00\x12-\n\radd_rectangle\x18\x07 \x01(\x0b\x32\x14.protos.AddRectangleH\x00\x12\'\n\nadd_sector\x18\x08 \x01(\x0b\x32\x11.protos.AddSectorH\x00\x12)\n\x0b\x61\x64\x64_message\x18\t \x01(\x0b\x32\x12.protos.AddMessageH\x00\x42\x05\n\x03log\"\x1e\n\x0b\x44\x65\x62ugClient\x12\x0f\n\x07message\x18\x01 \x01(\t\"o\n\x0e\x42ody_GoToPoint\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1a\n\x12\x64istance_threshold\x18\x02 \x01(\x02\x12\x16\n\x0emax_dash_power\x18\x03 \x01(\x02\"\x82\x01\n\x0e\x42ody_SmartKick\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x13\n\x0b\x66irst_speed\x18\x02 \x01(\x02\x12\x1d\n\x15\x66irst_speed_threshold\x18\x03 \x01(\x02\x12\x11\n\tmax_steps\x18\x04 \x01(\x05\"7\n\x11\x42hv_BeforeKickOff\x12\"\n\x05point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\"\x14\n\x12\x42hv_BodyNeckToBall\"9\n\x13\x42hv_BodyNeckToPoint\x12\"\n\x05point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\"\x0f\n\rBhv_Emergency\"v\n\x15\x42hv_GoToPointLookBall\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1a\n\x12\x64istance_threshold\x18\x02 \x01(\x02\x12\x16\n\x0emax_dash_power\x18\x03 \x01(\x02\"\'\n\x12\x42hv_NeckBodyToBall\x12\x11\n\tangle_buf\x18\x01 \x01(\x02\"L\n\x13\x42hv_NeckBodyToPoint\x12\"\n\x05point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x11\n\tangle_buf\x18\x02 \x01(\x02\"\x0f\n\rBhv_ScanField\"\x12\n\x10\x42ody_AdvanceBall\"\x10\n\x0e\x42ody_ClearBall\"\x8c\x01\n\x0c\x42ody_Dribble\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1a\n\x12\x64istance_threshold\x18\x02 \x01(\x02\x12\x12\n\ndash_power\x18\x03 \x01(\x02\x12\x12\n\ndash_count\x18\x04 \x01(\x05\x12\r\n\x05\x64odge\x18\x05 \x01(\x08\"T\n\x13\x42ody_GoToPointDodge\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x12\n\ndash_power\x18\x02 \x01(\x02\"\x80\x01\n\rBody_HoldBall\x12\x0f\n\x07\x64o_turn\x18\x01 \x01(\x08\x12.\n\x11turn_target_point\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\x12.\n\x11kick_target_point\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\"P\n\x0e\x42ody_Intercept\x12\x15\n\rsave_recovery\x18\x01 \x01(\x08\x12\'\n\nface_point\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\"f\n\x10\x42ody_KickOneStep\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x13\n\x0b\x66irst_speed\x18\x02 \x01(\x02\x12\x12\n\nforce_mode\x18\x03 \x01(\x08\"\x0f\n\rBody_StopBall\"&\n\rBody_StopDash\x12\x15\n\rsave_recovery\x18\x01 \x01(\x08\"k\n\x12\x42ody_TackleToPoint\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x17\n\x0fmin_probability\x18\x02 \x01(\x02\x12\x11\n\tmin_speed\x18\x03 \x01(\x02\"!\n\x10\x42ody_TurnToAngle\x12\r\n\x05\x61ngle\x18\x01 \x01(\x02\" \n\x0f\x42ody_TurnToBall\x12\r\n\x05\x63ycle\x18\x01 \x01(\x05\"L\n\x10\x42ody_TurnToPoint\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\r\n\x05\x63ycle\x18\x02 \x01(\x05\">\n\x11\x46ocus_MoveToPoint\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\"\r\n\x0b\x46ocus_Reset\"\x10\n\x0eNeck_ScanField\"\x12\n\x10Neck_ScanPlayers\"g\n\x18Neck_TurnToBallAndPlayer\x12\x1a\n\x04side\x18\x01 \x01(\x0e\x32\x0c.protos.Side\x12\x16\n\x0euniform_number\x18\x02 \x01(\x05\x12\x17\n\x0f\x63ount_threshold\x18\x03 \x01(\x05\"0\n\x15Neck_TurnToBallOrScan\x12\x17\n\x0f\x63ount_threshold\x18\x01 \x01(\x05\"\x11\n\x0fNeck_TurnToBall\"2\n\x17Neck_TurnToGoalieOrScan\x12\x17\n\x0f\x63ount_threshold\x18\x01 \x01(\x05\"\x1c\n\x1aNeck_TurnToLowConfTeammate\"f\n\x17Neck_TurnToPlayerOrScan\x12\x1a\n\x04side\x18\x01 \x01(\x0e\x32\x0c.protos.Side\x12\x16\n\x0euniform_number\x18\x02 \x01(\x05\x12\x17\n\x0f\x63ount_threshold\x18\x03 \x01(\x05\"=\n\x10Neck_TurnToPoint\x12)\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\"$\n\x13Neck_TurnToRelative\x12\r\n\x05\x61ngle\x18\x01 \x01(\x02\"9\n\x10View_ChangeWidth\x12%\n\nview_width\x18\x01 \x01(\x0e\x32\x11.protos.ViewWidth\"\r\n\x0bView_Normal\"\x0c\n\nView_Synch\"\x0b\n\tView_Wide\"\x0e\n\x0cHeliosGoalie\"\x12\n\x10HeliosGoalieMove\"\x12\n\x10HeliosGoalieKick\"\r\n\x0bHeliosShoot\"\xf3\x01\n\x16HeliosOffensivePlanner\x12\x13\n\x0b\x64irect_pass\x18\x01 \x01(\x08\x12\x11\n\tlead_pass\x18\x02 \x01(\x08\x12\x14\n\x0cthrough_pass\x18\x03 \x01(\x08\x12\x15\n\rshort_dribble\x18\x04 \x01(\x08\x12\x14\n\x0clong_dribble\x18\x05 \x01(\x08\x12\r\n\x05\x63ross\x18\x06 \x01(\x08\x12\x13\n\x0bsimple_pass\x18\x07 \x01(\x08\x12\x16\n\x0esimple_dribble\x18\x08 \x01(\x08\x12\x14\n\x0csimple_shoot\x18\t \x01(\x08\x12\x1c\n\x14server_side_decision\x18\n \x01(\x08\"\x16\n\x14HeliosBasicOffensive\"\x11\n\x0fHeliosBasicMove\"\x0f\n\rHeliosSetPlay\"\x0f\n\rHeliosPenalty\"\x14\n\x12HeliosCommunicaion\"\x11\n\x0f\x62hv_doForceKick\"\x18\n\x16\x62hv_doHeardPassRecieve\"\xe8\x1a\n\x0cPlayerAction\x12\x1c\n\x04\x64\x61sh\x18\x01 \x01(\x0b\x32\x0c.protos.DashH\x00\x12\x1c\n\x04turn\x18\x02 \x01(\x0b\x32\x0c.protos.TurnH\x00\x12\x1c\n\x04kick\x18\x03 \x01(\x0b\x32\x0c.protos.KickH\x00\x12 \n\x06tackle\x18\x04 \x01(\x0b\x32\x0e.protos.TackleH\x00\x12\x1e\n\x05\x63\x61tch\x18\x05 \x01(\x0b\x32\r.protos.CatchH\x00\x12\x1c\n\x04move\x18\x06 \x01(\x0b\x32\x0c.protos.MoveH\x00\x12%\n\tturn_neck\x18\x07 \x01(\x0b\x32\x10.protos.TurnNeckH\x00\x12)\n\x0b\x63hange_view\x18\x08 \x01(\x0b\x32\x12.protos.ChangeViewH\x00\x12\x1a\n\x03say\x18\t \x01(\x0b\x32\x0b.protos.SayH\x00\x12#\n\x08point_to\x18\n \x01(\x0b\x32\x0f.protos.PointToH\x00\x12(\n\x0bpoint_to_of\x18\x0b \x01(\x0b\x32\x11.protos.PointToOfH\x00\x12+\n\x0c\x61ttention_to\x18\x0c \x01(\x0b\x32\x13.protos.AttentionToH\x00\x12\x30\n\x0f\x61ttention_to_of\x18\r \x01(\x0b\x32\x15.protos.AttentionToOfH\x00\x12\x1a\n\x03log\x18\x0e \x01(\x0b\x32\x0b.protos.LogH\x00\x12+\n\x0c\x64\x65\x62ug_client\x18\x0f \x01(\x0b\x32\x13.protos.DebugClientH\x00\x12\x32\n\x10\x62ody_go_to_point\x18\x10 \x01(\x0b\x32\x16.protos.Body_GoToPointH\x00\x12\x31\n\x0f\x62ody_smart_kick\x18\x11 \x01(\x0b\x32\x16.protos.Body_SmartKickH\x00\x12\x38\n\x13\x62hv_before_kick_off\x18\x12 \x01(\x0b\x32\x19.protos.Bhv_BeforeKickOffH\x00\x12;\n\x15\x62hv_body_neck_to_ball\x18\x13 \x01(\x0b\x32\x1a.protos.Bhv_BodyNeckToBallH\x00\x12=\n\x16\x62hv_body_neck_to_point\x18\x14 \x01(\x0b\x32\x1b.protos.Bhv_BodyNeckToPointH\x00\x12.\n\rbhv_emergency\x18\x15 \x01(\x0b\x32\x15.protos.Bhv_EmergencyH\x00\x12\x42\n\x19\x62hv_go_to_point_look_ball\x18\x16 \x01(\x0b\x32\x1d.protos.Bhv_GoToPointLookBallH\x00\x12;\n\x15\x62hv_neck_body_to_ball\x18\x17 \x01(\x0b\x32\x1a.protos.Bhv_NeckBodyToBallH\x00\x12=\n\x16\x62hv_neck_body_to_point\x18\x18 \x01(\x0b\x32\x1b.protos.Bhv_NeckBodyToPointH\x00\x12/\n\x0e\x62hv_scan_field\x18\x19 \x01(\x0b\x32\x15.protos.Bhv_ScanFieldH\x00\x12\x35\n\x11\x62ody_advance_ball\x18\x1a \x01(\x0b\x32\x18.protos.Body_AdvanceBallH\x00\x12\x31\n\x0f\x62ody_clear_ball\x18\x1b \x01(\x0b\x32\x16.protos.Body_ClearBallH\x00\x12,\n\x0c\x62ody_dribble\x18\x1c \x01(\x0b\x32\x14.protos.Body_DribbleH\x00\x12=\n\x16\x62ody_go_to_point_dodge\x18\x1d \x01(\x0b\x32\x1b.protos.Body_GoToPointDodgeH\x00\x12/\n\x0e\x62ody_hold_ball\x18\x1e \x01(\x0b\x32\x15.protos.Body_HoldBallH\x00\x12\x30\n\x0e\x62ody_intercept\x18\x1f \x01(\x0b\x32\x16.protos.Body_InterceptH\x00\x12\x36\n\x12\x62ody_kick_one_step\x18 \x01(\x0b\x32\x18.protos.Body_KickOneStepH\x00\x12/\n\x0e\x62ody_stop_ball\x18! \x01(\x0b\x32\x15.protos.Body_StopBallH\x00\x12/\n\x0e\x62ody_stop_dash\x18\" \x01(\x0b\x32\x15.protos.Body_StopDashH\x00\x12:\n\x14\x62ody_tackle_to_point\x18# \x01(\x0b\x32\x1a.protos.Body_TackleToPointH\x00\x12\x36\n\x12\x62ody_turn_to_angle\x18$ \x01(\x0b\x32\x18.protos.Body_TurnToAngleH\x00\x12\x34\n\x11\x62ody_turn_to_ball\x18% \x01(\x0b\x32\x17.protos.Body_TurnToBallH\x00\x12\x36\n\x12\x62ody_turn_to_point\x18& \x01(\x0b\x32\x18.protos.Body_TurnToPointH\x00\x12\x38\n\x13\x66ocus_move_to_point\x18\' \x01(\x0b\x32\x19.protos.Focus_MoveToPointH\x00\x12*\n\x0b\x66ocus_reset\x18( \x01(\x0b\x32\x13.protos.Focus_ResetH\x00\x12\x31\n\x0fneck_scan_field\x18) \x01(\x0b\x32\x16.protos.Neck_ScanFieldH\x00\x12\x35\n\x11neck_scan_players\x18* \x01(\x0b\x32\x18.protos.Neck_ScanPlayersH\x00\x12H\n\x1cneck_turn_to_ball_and_player\x18+ \x01(\x0b\x32 .protos.Neck_TurnToBallAndPlayerH\x00\x12\x42\n\x19neck_turn_to_ball_or_scan\x18, \x01(\x0b\x32\x1d.protos.Neck_TurnToBallOrScanH\x00\x12\x34\n\x11neck_turn_to_ball\x18- \x01(\x0b\x32\x17.protos.Neck_TurnToBallH\x00\x12\x46\n\x1bneck_turn_to_goalie_or_scan\x18. \x01(\x0b\x32\x1f.protos.Neck_TurnToGoalieOrScanH\x00\x12L\n\x1eneck_turn_to_low_conf_teammate\x18/ \x01(\x0b\x32\".protos.Neck_TurnToLowConfTeammateH\x00\x12\x46\n\x1bneck_turn_to_player_or_scan\x18\x30 \x01(\x0b\x32\x1f.protos.Neck_TurnToPlayerOrScanH\x00\x12\x36\n\x12neck_turn_to_point\x18\x31 \x01(\x0b\x32\x18.protos.Neck_TurnToPointH\x00\x12<\n\x15neck_turn_to_relative\x18\x32 \x01(\x0b\x32\x1b.protos.Neck_TurnToRelativeH\x00\x12\x35\n\x11view_change_width\x18\x33 \x01(\x0b\x32\x18.protos.View_ChangeWidthH\x00\x12*\n\x0bview_normal\x18\x34 \x01(\x0b\x32\x13.protos.View_NormalH\x00\x12(\n\nview_synch\x18\x35 \x01(\x0b\x32\x12.protos.View_SynchH\x00\x12&\n\tview_wide\x18\x36 \x01(\x0b\x32\x11.protos.View_WideH\x00\x12-\n\rhelios_goalie\x18\x37 \x01(\x0b\x32\x14.protos.HeliosGoalieH\x00\x12\x36\n\x12helios_goalie_move\x18\x38 \x01(\x0b\x32\x18.protos.HeliosGoalieMoveH\x00\x12\x36\n\x12helios_goalie_kick\x18\x39 \x01(\x0b\x32\x18.protos.HeliosGoalieKickH\x00\x12+\n\x0chelios_shoot\x18: \x01(\x0b\x32\x13.protos.HeliosShootH\x00\x12\x42\n\x18helios_offensive_planner\x18; \x01(\x0b\x32\x1e.protos.HeliosOffensivePlannerH\x00\x12>\n\x16helios_basic_offensive\x18< \x01(\x0b\x32\x1c.protos.HeliosBasicOffensiveH\x00\x12\x34\n\x11helios_basic_move\x18= \x01(\x0b\x32\x17.protos.HeliosBasicMoveH\x00\x12\x30\n\x0fhelios_set_play\x18> \x01(\x0b\x32\x15.protos.HeliosSetPlayH\x00\x12/\n\x0ehelios_penalty\x18? \x01(\x0b\x32\x15.protos.HeliosPenaltyH\x00\x12:\n\x14helios_communication\x18@ \x01(\x0b\x32\x1a.protos.HeliosCommunicaionH\x00\x12\x34\n\x11\x62hv_do_force_kick\x18\x41 \x01(\x0b\x32\x17.protos.bhv_doForceKickH\x00\x12\x43\n\x19\x62hv_do_heard_pass_recieve\x18\x42 \x01(\x0b\x32\x1e.protos.bhv_doHeardPassRecieveH\x00\x42\x08\n\x06\x61\x63tion\"\x90\x01\n\rPlayerActions\x12%\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x14.protos.PlayerAction\x12\x19\n\x11ignore_preprocess\x18\x02 \x01(\x08\x12\x1a\n\x12ignore_doforcekick\x18\x03 \x01(\x08\x12!\n\x19ignore_doHeardPassRecieve\x18\x04 \x01(\x08\"8\n\x10\x43hangePlayerType\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12\x0c\n\x04type\x18\x02 \x01(\x05\"\x14\n\x12\x44oHeliosSubstitute\"\x18\n\x16\x44oHeliosSayPlayerTypes\"\xd2\x01\n\x0b\x43oachAction\x12\x37\n\x13\x63hange_player_types\x18\x01 \x01(\x0b\x32\x18.protos.ChangePlayerTypeH\x00\x12:\n\x14\x64o_helios_substitute\x18\x02 \x01(\x0b\x32\x1a.protos.DoHeliosSubstituteH\x00\x12\x44\n\x1a\x64o_helios_say_player_types\x18\x03 \x01(\x0b\x32\x1e.protos.DoHeliosSayPlayerTypesH\x00\x42\x08\n\x06\x61\x63tion\"4\n\x0c\x43oachActions\x12$\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x13.protos.CoachAction\"\x0b\n\tDoKickOff\"Z\n\nDoMoveBall\x12%\n\x08position\x18\x01 \x01(\x0b\x32\x13.protos.RpcVector2D\x12%\n\x08velocity\x18\x02 \x01(\x0b\x32\x13.protos.RpcVector2D\"w\n\x0c\x44oMovePlayer\x12\x10\n\x08our_side\x18\x01 \x01(\x08\x12\x16\n\x0euniform_number\x18\x02 \x01(\x05\x12%\n\x08position\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x16\n\x0e\x62ody_direction\x18\x04 \x01(\x02\"\x0b\n\tDoRecover\"X\n\x0c\x44oChangeMode\x12,\n\x0egame_mode_type\x18\x01 \x01(\x0e\x32\x14.protos.GameModeType\x12\x1a\n\x04side\x18\x02 \x01(\x0e\x32\x0c.protos.Side\"L\n\x12\x44oChangePlayerType\x12\x10\n\x08our_side\x18\x01 \x01(\x08\x12\x16\n\x0euniform_number\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\x05\"\xb5\x02\n\rTrainerAction\x12(\n\x0b\x64o_kick_off\x18\x01 \x01(\x0b\x32\x11.protos.DoKickOffH\x00\x12*\n\x0c\x64o_move_ball\x18\x02 \x01(\x0b\x32\x12.protos.DoMoveBallH\x00\x12.\n\x0e\x64o_move_player\x18\x03 \x01(\x0b\x32\x14.protos.DoMovePlayerH\x00\x12\'\n\ndo_recover\x18\x04 \x01(\x0b\x32\x11.protos.DoRecoverH\x00\x12.\n\x0e\x64o_change_mode\x18\x05 \x01(\x0b\x32\x14.protos.DoChangeModeH\x00\x12;\n\x15\x64o_change_player_type\x18\x06 \x01(\x0b\x32\x1a.protos.DoChangePlayerTypeH\x00\x42\x08\n\x06\x61\x63tion\"8\n\x0eTrainerActions\x12&\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x15.protos.TrainerAction\"\xc7-\n\x0bServerParam\x12\x33\n\x11register_response\x18\x01 \x01(\x0b\x32\x18.protos.RegisterResponse\x12\x16\n\x0einertia_moment\x18\x02 \x01(\x02\x12\x13\n\x0bplayer_size\x18\x03 \x01(\x02\x12\x14\n\x0cplayer_decay\x18\x04 \x01(\x02\x12\x13\n\x0bplayer_rand\x18\x05 \x01(\x02\x12\x15\n\rplayer_weight\x18\x06 \x01(\x02\x12\x18\n\x10player_speed_max\x18\x07 \x01(\x02\x12\x18\n\x10player_accel_max\x18\x08 \x01(\x02\x12\x13\n\x0bstamina_max\x18\t \x01(\x02\x12\x17\n\x0fstamina_inc_max\x18\n \x01(\x02\x12\x14\n\x0crecover_init\x18\x0b \x01(\x02\x12\x17\n\x0frecover_dec_thr\x18\x0c \x01(\x02\x12\x13\n\x0brecover_min\x18\r \x01(\x02\x12\x13\n\x0brecover_dec\x18\x0e \x01(\x02\x12\x13\n\x0b\x65\x66\x66ort_init\x18\x0f \x01(\x02\x12\x16\n\x0e\x65\x66\x66ort_dec_thr\x18\x10 \x01(\x02\x12\x12\n\neffort_min\x18\x11 \x01(\x02\x12\x12\n\neffort_dec\x18\x12 \x01(\x02\x12\x16\n\x0e\x65\x66\x66ort_inc_thr\x18\x13 \x01(\x02\x12\x12\n\neffort_inc\x18\x14 \x01(\x02\x12\x11\n\tkick_rand\x18\x15 \x01(\x02\x12\x1b\n\x13team_actuator_noise\x18\x16 \x01(\x08\x12\x1c\n\x14player_rand_factor_l\x18\x17 \x01(\x02\x12\x1c\n\x14player_rand_factor_r\x18\x18 \x01(\x02\x12\x1a\n\x12kick_rand_factor_l\x18\x19 \x01(\x02\x12\x1a\n\x12kick_rand_factor_r\x18\x1a \x01(\x02\x12\x11\n\tball_size\x18\x1b \x01(\x02\x12\x12\n\nball_decay\x18\x1c \x01(\x02\x12\x11\n\tball_rand\x18\x1d \x01(\x02\x12\x13\n\x0b\x62\x61ll_weight\x18\x1e \x01(\x02\x12\x16\n\x0e\x62\x61ll_speed_max\x18\x1f \x01(\x02\x12\x16\n\x0e\x62\x61ll_accel_max\x18 \x01(\x02\x12\x17\n\x0f\x64\x61sh_power_rate\x18! \x01(\x02\x12\x17\n\x0fkick_power_rate\x18\" \x01(\x02\x12\x17\n\x0fkickable_margin\x18# \x01(\x02\x12\x16\n\x0e\x63ontrol_radius\x18$ \x01(\x02\x12\x1c\n\x14\x63ontrol_radius_width\x18% \x01(\x02\x12\x11\n\tmax_power\x18& \x01(\x02\x12\x11\n\tmin_power\x18\' \x01(\x02\x12\x12\n\nmax_moment\x18( \x01(\x02\x12\x12\n\nmin_moment\x18) \x01(\x02\x12\x17\n\x0fmax_neck_moment\x18* \x01(\x02\x12\x17\n\x0fmin_neck_moment\x18+ \x01(\x02\x12\x16\n\x0emax_neck_angle\x18, \x01(\x02\x12\x16\n\x0emin_neck_angle\x18- \x01(\x02\x12\x15\n\rvisible_angle\x18. \x01(\x02\x12\x18\n\x10visible_distance\x18/ \x01(\x02\x12\x10\n\x08wind_dir\x18\x30 \x01(\x02\x12\x12\n\nwind_force\x18\x31 \x01(\x02\x12\x12\n\nwind_angle\x18\x32 \x01(\x02\x12\x11\n\twind_rand\x18\x33 \x01(\x02\x12\x15\n\rkickable_area\x18\x34 \x01(\x02\x12\x14\n\x0c\x63\x61tch_area_l\x18\x35 \x01(\x02\x12\x14\n\x0c\x63\x61tch_area_w\x18\x36 \x01(\x02\x12\x19\n\x11\x63\x61tch_probability\x18\x37 \x01(\x02\x12\x18\n\x10goalie_max_moves\x18\x38 \x01(\x05\x12\x1a\n\x12\x63orner_kick_margin\x18\x39 \x01(\x02\x12 \n\x18offside_active_area_size\x18: \x01(\x02\x12\x11\n\twind_none\x18; \x01(\x08\x12\x17\n\x0fuse_wind_random\x18< \x01(\x08\x12\x1b\n\x13\x63oach_say_count_max\x18= \x01(\x05\x12\x1a\n\x12\x63oach_say_msg_size\x18> \x01(\x05\x12\x16\n\x0e\x63lang_win_size\x18? \x01(\x05\x12\x18\n\x10\x63lang_define_win\x18@ \x01(\x05\x12\x16\n\x0e\x63lang_meta_win\x18\x41 \x01(\x05\x12\x18\n\x10\x63lang_advice_win\x18\x42 \x01(\x05\x12\x16\n\x0e\x63lang_info_win\x18\x43 \x01(\x05\x12\x18\n\x10\x63lang_mess_delay\x18\x44 \x01(\x05\x12\x1c\n\x14\x63lang_mess_per_cycle\x18\x45 \x01(\x05\x12\x11\n\thalf_time\x18\x46 \x01(\x05\x12\x16\n\x0esimulator_step\x18G \x01(\x05\x12\x11\n\tsend_step\x18H \x01(\x05\x12\x11\n\trecv_step\x18I \x01(\x05\x12\x17\n\x0fsense_body_step\x18J \x01(\x05\x12\x10\n\x08lcm_step\x18K \x01(\x05\x12\x1b\n\x13player_say_msg_size\x18L \x01(\x05\x12\x17\n\x0fplayer_hear_max\x18M \x01(\x05\x12\x17\n\x0fplayer_hear_inc\x18N \x01(\x05\x12\x19\n\x11player_hear_decay\x18O \x01(\x05\x12\x17\n\x0f\x63\x61tch_ban_cycle\x18P \x01(\x05\x12\x18\n\x10slow_down_factor\x18Q \x01(\x05\x12\x13\n\x0buse_offside\x18R \x01(\x08\x12\x17\n\x0fkickoff_offside\x18S \x01(\x08\x12\x1b\n\x13offside_kick_margin\x18T \x01(\x02\x12\x16\n\x0e\x61udio_cut_dist\x18U \x01(\x02\x12\x1a\n\x12\x64ist_quantize_step\x18V \x01(\x02\x12#\n\x1blandmark_dist_quantize_step\x18W \x01(\x02\x12\x19\n\x11\x64ir_quantize_step\x18X \x01(\x02\x12\x1c\n\x14\x64ist_quantize_step_l\x18Y \x01(\x02\x12\x1c\n\x14\x64ist_quantize_step_r\x18Z \x01(\x02\x12%\n\x1dlandmark_dist_quantize_step_l\x18[ \x01(\x02\x12%\n\x1dlandmark_dist_quantize_step_r\x18\\ \x01(\x02\x12\x1b\n\x13\x64ir_quantize_step_l\x18] \x01(\x02\x12\x1b\n\x13\x64ir_quantize_step_r\x18^ \x01(\x02\x12\x12\n\ncoach_mode\x18_ \x01(\x08\x12\x1f\n\x17\x63oach_with_referee_mode\x18` \x01(\x08\x12\x1a\n\x12use_old_coach_hear\x18\x61 \x01(\x08\x12%\n\x1dslowness_on_top_for_left_team\x18\x62 \x01(\x02\x12&\n\x1eslowness_on_top_for_right_team\x18\x63 \x01(\x02\x12\x14\n\x0cstart_goal_l\x18\x64 \x01(\x05\x12\x14\n\x0cstart_goal_r\x18\x65 \x01(\x05\x12\x13\n\x0b\x66ullstate_l\x18\x66 \x01(\x08\x12\x13\n\x0b\x66ullstate_r\x18g \x01(\x08\x12\x16\n\x0e\x64rop_ball_time\x18h \x01(\x05\x12\x12\n\nsynch_mode\x18i \x01(\x08\x12\x14\n\x0csynch_offset\x18j \x01(\x05\x12\x19\n\x11synch_micro_sleep\x18k \x01(\x05\x12\x14\n\x0cpoint_to_ban\x18l \x01(\x05\x12\x19\n\x11point_to_duration\x18m \x01(\x05\x12\x13\n\x0bplayer_port\x18n \x01(\x05\x12\x14\n\x0ctrainer_port\x18o \x01(\x05\x12\x19\n\x11online_coach_port\x18p \x01(\x05\x12\x14\n\x0cverbose_mode\x18q \x01(\x08\x12\x1a\n\x12\x63oach_send_vi_step\x18r \x01(\x05\x12\x13\n\x0breplay_file\x18s \x01(\t\x12\x15\n\rlandmark_file\x18t \x01(\t\x12\x12\n\nsend_comms\x18u \x01(\x08\x12\x14\n\x0ctext_logging\x18v \x01(\x08\x12\x14\n\x0cgame_logging\x18w \x01(\x08\x12\x18\n\x10game_log_version\x18x \x01(\x05\x12\x14\n\x0ctext_log_dir\x18y \x01(\t\x12\x14\n\x0cgame_log_dir\x18z \x01(\t\x12\x1b\n\x13text_log_fixed_name\x18{ \x01(\t\x12\x1b\n\x13game_log_fixed_name\x18| \x01(\t\x12\x1a\n\x12use_text_log_fixed\x18} \x01(\x08\x12\x1a\n\x12use_game_log_fixed\x18~ \x01(\x08\x12\x1a\n\x12use_text_log_dated\x18\x7f \x01(\x08\x12\x1b\n\x12use_game_log_dated\x18\x80\x01 \x01(\x08\x12\x18\n\x0flog_date_format\x18\x81\x01 \x01(\t\x12\x12\n\tlog_times\x18\x82\x01 \x01(\x08\x12\x17\n\x0erecord_message\x18\x83\x01 \x01(\x08\x12\x1d\n\x14text_log_compression\x18\x84\x01 \x01(\x05\x12\x1d\n\x14game_log_compression\x18\x85\x01 \x01(\x05\x12\x14\n\x0buse_profile\x18\x86\x01 \x01(\x08\x12\x14\n\x0btackle_dist\x18\x87\x01 \x01(\x02\x12\x19\n\x10tackle_back_dist\x18\x88\x01 \x01(\x02\x12\x15\n\x0ctackle_width\x18\x89\x01 \x01(\x02\x12\x18\n\x0ftackle_exponent\x18\x8a\x01 \x01(\x02\x12\x16\n\rtackle_cycles\x18\x8b\x01 \x01(\x05\x12\x1a\n\x11tackle_power_rate\x18\x8c\x01 \x01(\x02\x12\x1d\n\x14\x66reeform_wait_period\x18\x8d\x01 \x01(\x05\x12\x1d\n\x14\x66reeform_send_period\x18\x8e\x01 \x01(\x05\x12\x19\n\x10\x66ree_kick_faults\x18\x8f\x01 \x01(\x08\x12\x14\n\x0b\x62\x61\x63k_passes\x18\x90\x01 \x01(\x08\x12\x1a\n\x11proper_goal_kicks\x18\x91\x01 \x01(\x08\x12\x19\n\x10stopped_ball_vel\x18\x92\x01 \x01(\x02\x12\x17\n\x0emax_goal_kicks\x18\x93\x01 \x01(\x05\x12\x16\n\rclang_del_win\x18\x94\x01 \x01(\x05\x12\x17\n\x0e\x63lang_rule_win\x18\x95\x01 \x01(\x05\x12\x12\n\tauto_mode\x18\x96\x01 \x01(\x08\x12\x16\n\rkick_off_wait\x18\x97\x01 \x01(\x05\x12\x15\n\x0c\x63onnect_wait\x18\x98\x01 \x01(\x05\x12\x17\n\x0egame_over_wait\x18\x99\x01 \x01(\x05\x12\x15\n\x0cteam_l_start\x18\x9a\x01 \x01(\t\x12\x15\n\x0cteam_r_start\x18\x9b\x01 \x01(\t\x12\x16\n\rkeepaway_mode\x18\x9c\x01 \x01(\x08\x12\x18\n\x0fkeepaway_length\x18\x9d\x01 \x01(\x02\x12\x17\n\x0ekeepaway_width\x18\x9e\x01 \x01(\x02\x12\x19\n\x10keepaway_logging\x18\x9f\x01 \x01(\x08\x12\x19\n\x10keepaway_log_dir\x18\xa0\x01 \x01(\t\x12 \n\x17keepaway_log_fixed_name\x18\xa1\x01 \x01(\t\x12\x1b\n\x12keepaway_log_fixed\x18\xa2\x01 \x01(\x08\x12\x1b\n\x12keepaway_log_dated\x18\xa3\x01 \x01(\x08\x12\x17\n\x0ekeepaway_start\x18\xa4\x01 \x01(\x05\x12\x18\n\x0fnr_normal_halfs\x18\xa5\x01 \x01(\x05\x12\x17\n\x0enr_extra_halfs\x18\xa6\x01 \x01(\x05\x12\x1b\n\x12penalty_shoot_outs\x18\xa7\x01 \x01(\x08\x12\x1e\n\x15pen_before_setup_wait\x18\xa8\x01 \x01(\x05\x12\x17\n\x0epen_setup_wait\x18\xa9\x01 \x01(\x05\x12\x17\n\x0epen_ready_wait\x18\xaa\x01 \x01(\x05\x12\x17\n\x0epen_taken_wait\x18\xab\x01 \x01(\x05\x12\x15\n\x0cpen_nr_kicks\x18\xac\x01 \x01(\x05\x12\x1c\n\x13pen_max_extra_kicks\x18\xad\x01 \x01(\x05\x12\x13\n\npen_dist_x\x18\xae\x01 \x01(\x02\x12\x1a\n\x11pen_random_winner\x18\xaf\x01 \x01(\x08\x12\x1d\n\x14pen_allow_mult_kicks\x18\xb0\x01 \x01(\x08\x12\x1e\n\x15pen_max_goalie_dist_x\x18\xb1\x01 \x01(\x02\x12 \n\x17pen_coach_moves_players\x18\xb2\x01 \x01(\x08\x12\x13\n\nmodule_dir\x18\xb3\x01 \x01(\t\x12\x18\n\x0f\x62\x61ll_stuck_area\x18\xb4\x01 \x01(\x02\x12\x17\n\x0e\x63oach_msg_file\x18\xb5\x01 \x01(\t\x12\x19\n\x10max_tackle_power\x18\xb6\x01 \x01(\x02\x12\x1e\n\x15max_back_tackle_power\x18\xb7\x01 \x01(\x02\x12\x1d\n\x14player_speed_max_min\x18\xb8\x01 \x01(\x02\x12\x16\n\rextra_stamina\x18\xb9\x01 \x01(\x02\x12\x19\n\x10synch_see_offset\x18\xba\x01 \x01(\x05\x12\x18\n\x0f\x65xtra_half_time\x18\xbb\x01 \x01(\x05\x12\x19\n\x10stamina_capacity\x18\xbc\x01 \x01(\x02\x12\x17\n\x0emax_dash_angle\x18\xbd\x01 \x01(\x02\x12\x17\n\x0emin_dash_angle\x18\xbe\x01 \x01(\x02\x12\x18\n\x0f\x64\x61sh_angle_step\x18\xbf\x01 \x01(\x02\x12\x17\n\x0eside_dash_rate\x18\xc0\x01 \x01(\x02\x12\x17\n\x0e\x62\x61\x63k_dash_rate\x18\xc1\x01 \x01(\x02\x12\x17\n\x0emax_dash_power\x18\xc2\x01 \x01(\x02\x12\x17\n\x0emin_dash_power\x18\xc3\x01 \x01(\x02\x12\x1b\n\x12tackle_rand_factor\x18\xc4\x01 \x01(\x02\x12 \n\x17\x66oul_detect_probability\x18\xc5\x01 \x01(\x02\x12\x16\n\rfoul_exponent\x18\xc6\x01 \x01(\x02\x12\x14\n\x0b\x66oul_cycles\x18\xc7\x01 \x01(\x05\x12\x14\n\x0bgolden_goal\x18\xc8\x01 \x01(\x08\x12\x1d\n\x14red_card_probability\x18\xc9\x01 \x01(\x02\x12!\n\x18illegal_defense_duration\x18\xca\x01 \x01(\x05\x12\x1f\n\x16illegal_defense_number\x18\xcb\x01 \x01(\x05\x12\x1f\n\x16illegal_defense_dist_x\x18\xcc\x01 \x01(\x02\x12\x1e\n\x15illegal_defense_width\x18\xcd\x01 \x01(\x02\x12\x19\n\x10\x66ixed_teamname_l\x18\xce\x01 \x01(\t\x12\x19\n\x10\x66ixed_teamname_r\x18\xcf\x01 \x01(\t\x12\x18\n\x0fmax_catch_angle\x18\xd0\x01 \x01(\x02\x12\x18\n\x0fmin_catch_angle\x18\xd1\x01 \x01(\x02\x12\x14\n\x0brandom_seed\x18\xd2\x01 \x01(\x05\x12\x1f\n\x16long_kick_power_factor\x18\xd3\x01 \x01(\x02\x12\x18\n\x0flong_kick_delay\x18\xd4\x01 \x01(\x05\x12\x15\n\x0cmax_monitors\x18\xd5\x01 \x01(\x05\x12\x17\n\x0e\x63\x61tchable_area\x18\xd6\x01 \x01(\x02\x12\x17\n\x0ereal_speed_max\x18\xd7\x01 \x01(\x02\x12\x1a\n\x11pitch_half_length\x18\xd8\x01 \x01(\x02\x12\x19\n\x10pitch_half_width\x18\xd9\x01 \x01(\x02\x12 \n\x17our_penalty_area_line_x\x18\xda\x01 \x01(\x02\x12\"\n\x19their_penalty_area_line_x\x18\xdb\x01 \x01(\x02\x12 \n\x17penalty_area_half_width\x18\xdc\x01 \x01(\x02\x12\x1c\n\x13penalty_area_length\x18\xdd\x01 \x01(\x02\x12\x13\n\ngoal_width\x18\xde\x01 \x01(\x02\x12\x18\n\x0fgoal_area_width\x18\xdf\x01 \x01(\x02\x12\x19\n\x10goal_area_length\x18\xe0\x01 \x01(\x02\x12\x18\n\x0f\x63\x65nter_circle_r\x18\xe1\x01 \x01(\x02\x12\x19\n\x10goal_post_radius\x18\xe2\x01 \x01(\x02\"\x8d\x08\n\x0bPlayerParam\x12\x33\n\x11register_response\x18\x01 \x01(\x0b\x32\x18.protos.RegisterResponse\x12\x14\n\x0cplayer_types\x18\x02 \x01(\x05\x12\x10\n\x08subs_max\x18\x03 \x01(\x05\x12\x0e\n\x06pt_max\x18\x04 \x01(\x05\x12\x1f\n\x17\x61llow_mult_default_type\x18\x05 \x01(\x08\x12\"\n\x1aplayer_speed_max_delta_min\x18\x06 \x01(\x02\x12\"\n\x1aplayer_speed_max_delta_max\x18\x07 \x01(\x02\x12$\n\x1cstamina_inc_max_delta_factor\x18\x08 \x01(\x02\x12\x1e\n\x16player_decay_delta_min\x18\t \x01(\x02\x12\x1e\n\x16player_decay_delta_max\x18\n \x01(\x02\x12#\n\x1binertia_moment_delta_factor\x18\x0b \x01(\x02\x12!\n\x19\x64\x61sh_power_rate_delta_min\x18\x0c \x01(\x02\x12!\n\x19\x64\x61sh_power_rate_delta_max\x18\r \x01(\x02\x12 \n\x18player_size_delta_factor\x18\x0e \x01(\x02\x12!\n\x19kickable_margin_delta_min\x18\x0f \x01(\x02\x12!\n\x19kickable_margin_delta_max\x18\x10 \x01(\x02\x12\x1e\n\x16kick_rand_delta_factor\x18\x11 \x01(\x02\x12\x1f\n\x17\x65xtra_stamina_delta_min\x18\x12 \x01(\x02\x12\x1f\n\x17\x65xtra_stamina_delta_max\x18\x13 \x01(\x02\x12\x1f\n\x17\x65\x66\x66ort_max_delta_factor\x18\x14 \x01(\x02\x12\x1f\n\x17\x65\x66\x66ort_min_delta_factor\x18\x15 \x01(\x02\x12\x13\n\x0brandom_seed\x18\x16 \x01(\x05\x12%\n\x1dnew_dash_power_rate_delta_min\x18\x17 \x01(\x02\x12%\n\x1dnew_dash_power_rate_delta_max\x18\x18 \x01(\x02\x12(\n new_stamina_inc_max_delta_factor\x18\x19 \x01(\x02\x12!\n\x19kick_power_rate_delta_min\x18\x1a \x01(\x02\x12!\n\x19kick_power_rate_delta_max\x18\x1b \x01(\x02\x12,\n$foul_detect_probability_delta_factor\x18\x1c \x01(\x02\x12$\n\x1c\x63\x61tchable_area_l_stretch_min\x18\x1d \x01(\x02\x12$\n\x1c\x63\x61tchable_area_l_stretch_max\x18\x1e \x01(\x02\"\xbf\x07\n\nPlayerType\x12\x33\n\x11register_response\x18\x01 \x01(\x0b\x32\x18.protos.RegisterResponse\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x17\n\x0fstamina_inc_max\x18\x03 \x01(\x02\x12\x14\n\x0cplayer_decay\x18\x04 \x01(\x02\x12\x16\n\x0einertia_moment\x18\x05 \x01(\x02\x12\x17\n\x0f\x64\x61sh_power_rate\x18\x06 \x01(\x02\x12\x13\n\x0bplayer_size\x18\x07 \x01(\x02\x12\x17\n\x0fkickable_margin\x18\x08 \x01(\x02\x12\x11\n\tkick_rand\x18\t \x01(\x02\x12\x15\n\rextra_stamina\x18\n \x01(\x02\x12\x12\n\neffort_max\x18\x0b \x01(\x02\x12\x12\n\neffort_min\x18\x0c \x01(\x02\x12\x17\n\x0fkick_power_rate\x18\r \x01(\x02\x12\x1f\n\x17\x66oul_detect_probability\x18\x0e \x01(\x02\x12 \n\x18\x63\x61tchable_area_l_stretch\x18\x0f \x01(\x02\x12\x17\n\x0funum_far_length\x18\x10 \x01(\x02\x12\x1b\n\x13unum_too_far_length\x18\x11 \x01(\x02\x12\x17\n\x0fteam_far_length\x18\x12 \x01(\x02\x12\x1b\n\x13team_too_far_length\x18\x13 \x01(\x02\x12%\n\x1dplayer_max_observation_length\x18\x14 \x01(\x02\x12\x1b\n\x13\x62\x61ll_vel_far_length\x18\x15 \x01(\x02\x12\x1f\n\x17\x62\x61ll_vel_too_far_length\x18\x16 \x01(\x02\x12#\n\x1b\x62\x61ll_max_observation_length\x18\x17 \x01(\x02\x12\x1b\n\x13\x66lag_chg_far_length\x18\x18 \x01(\x02\x12\x1f\n\x17\x66lag_chg_too_far_length\x18\x19 \x01(\x02\x12#\n\x1b\x66lag_max_observation_length\x18\x1a \x01(\x02\x12\x15\n\rkickable_area\x18\x1b \x01(\x02\x12\x1f\n\x17reliable_catchable_dist\x18\x1c \x01(\x02\x12\x1a\n\x12max_catchable_dist\x18\x1d \x01(\x02\x12\x16\n\x0ereal_speed_max\x18\x1e \x01(\x02\x12\x19\n\x11player_speed_max2\x18\x1f \x01(\x02\x12\x17\n\x0freal_speed_max2\x18 \x01(\x02\x12!\n\x19\x63ycles_to_reach_max_speed\x18! \x01(\x05\x12\x18\n\x10player_speed_max\x18\" \x01(\x02\"\xad\x03\n\x14RpcCooperativeAction\x12+\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32\x19.protos.RpcActionCategory\x12\r\n\x05index\x18\x02 \x01(\x05\x12\x13\n\x0bsender_unum\x18\x03 \x01(\x05\x12\x13\n\x0btarget_unum\x18\x04 \x01(\x05\x12)\n\x0ctarget_point\x18\x05 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x18\n\x10\x66irst_ball_speed\x18\x06 \x01(\x01\x12\x19\n\x11\x66irst_turn_moment\x18\x07 \x01(\x01\x12\x18\n\x10\x66irst_dash_power\x18\x08 \x01(\x01\x12!\n\x19\x66irst_dash_angle_relative\x18\t \x01(\x01\x12\x15\n\rduration_step\x18\n \x01(\x05\x12\x12\n\nkick_count\x18\x0b \x01(\x05\x12\x12\n\nturn_count\x18\x0c \x01(\x05\x12\x12\n\ndash_count\x18\r \x01(\x05\x12\x14\n\x0c\x66inal_action\x18\x0e \x01(\x08\x12\x13\n\x0b\x64\x65scription\x18\x0f \x01(\t\x12\x14\n\x0cparent_index\x18\x10 \x01(\x05\"\xcf\x01\n\x0fRpcPredictState\x12\x12\n\nspend_time\x18\x01 \x01(\x05\x12\x18\n\x10\x62\x61ll_holder_unum\x18\x02 \x01(\x05\x12*\n\rball_position\x18\x03 \x01(\x0b\x32\x13.protos.RpcVector2D\x12*\n\rball_velocity\x18\x04 \x01(\x0b\x32\x13.protos.RpcVector2D\x12\x1a\n\x12our_defense_line_x\x18\x05 \x01(\x01\x12\x1a\n\x12our_offense_line_x\x18\x06 \x01(\x01\"\x82\x01\n\x0eRpcActionState\x12,\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\x1c.protos.RpcCooperativeAction\x12.\n\rpredict_state\x18\x02 \x01(\x0b\x32\x17.protos.RpcPredictState\x12\x12\n\nevaluation\x18\x03 \x01(\x01\"\xef\x01\n\x18\x42\x65stPlannerActionRequest\x12\x33\n\x11register_response\x18\x01 \x01(\x0b\x32\x18.protos.RegisterResponse\x12:\n\x05pairs\x18\x02 \x03(\x0b\x32+.protos.BestPlannerActionRequest.PairsEntry\x12\x1c\n\x05state\x18\x03 \x01(\x0b\x32\r.protos.State\x1a\x44\n\nPairsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.protos.RpcActionState:\x02\x38\x01\"*\n\x19\x42\x65stPlannerActionResponse\x12\r\n\x05index\x18\x01 \x01(\x05\"\x07\n\x05\x45mpty*-\n\tViewWidth\x12\n\n\x06NARROW\x10\x00\x12\n\n\x06NORMAL\x10\x01\x12\x08\n\x04WIDE\x10\x02*{\n\x15RpcServerLanguageType\x12\x14\n\x10UNKNOWN_LANGUAGE\x10\x00\x12\n\n\x06PYThON\x10\x01\x12\x08\n\x04JAVA\x10\x02\x12\x07\n\x03\x43PP\x10\x03\x12\n\n\x06\x43SHARP\x10\x04\x12\x08\n\x04RUBY\x10\x05\x12\x0f\n\x0bJAVE_SCRIPT\x10\x06\x12\x06\n\x02GO\x10\x07*(\n\x04Side\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04LEFT\x10\x01\x12\t\n\x05RIGHT\x10\x02*\xb2\x02\n\x0bLoggerLevel\x12\r\n\tNoneLevel\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\n\n\x06SENSOR\x10\x02\x12\t\n\x05WORLD\x10\x04\x12\n\n\x06\x41\x43TION\x10\x08\x12\r\n\tINTERCEPT\x10\x10\x12\x08\n\x04KICK\x10 \x12\x08\n\x04HOLD\x10@\x12\x0c\n\x07\x44RIBBLE\x10\x80\x01\x12\t\n\x04PASS\x10\x80\x02\x12\n\n\x05\x43ROSS\x10\x80\x04\x12\n\n\x05SHOOT\x10\x80\x08\x12\n\n\x05\x43LEAR\x10\x80\x10\x12\n\n\x05\x42LOCK\x10\x80 \x12\t\n\x04MARK\x10\x80@\x12\x11\n\x0bPOSITIONING\x10\x80\x80\x01\x12\n\n\x04ROLE\x10\x80\x80\x02\x12\n\n\x04TEAM\x10\x80\x80\x04\x12\x13\n\rCOMMUNICATION\x10\x80\x80\x08\x12\x0e\n\x08\x41NALYZER\x10\x80\x80\x10\x12\x12\n\x0c\x41\x43TION_CHAIN\x10\x80\x80 \x12\n\n\x04PLAN\x10\x80\x80@*,\n\x08\x43\x61rdType\x12\x0b\n\x07NO_CARD\x10\x00\x12\n\n\x06YELLOW\x10\x01\x12\x07\n\x03RED\x10\x02*v\n\x13InterceptActionType\x12!\n\x1dUNKNOWN_Intercept_Action_Type\x10\x00\x12\r\n\tOMNI_DASH\x10\x01\x12\x15\n\x11TURN_FORWARD_DASH\x10\x02\x12\x16\n\x12TURN_BACKWARD_DASH\x10\x03*\xbb\x04\n\x0cGameModeType\x12\x11\n\rBeforeKickOff\x10\x00\x12\x0c\n\x08TimeOver\x10\x01\x12\n\n\x06PlayOn\x10\x02\x12\x0c\n\x08KickOff_\x10\x03\x12\x0b\n\x07KickIn_\x10\x04\x12\r\n\tFreeKick_\x10\x05\x12\x0f\n\x0b\x43ornerKick_\x10\x06\x12\r\n\tGoalKick_\x10\x07\x12\x0e\n\nAfterGoal_\x10\x08\x12\x0c\n\x08OffSide_\x10\t\x12\x10\n\x0cPenaltyKick_\x10\n\x12\x11\n\rFirstHalfOver\x10\x0b\x12\t\n\x05Pause\x10\x0c\x12\t\n\x05Human\x10\r\x12\x0f\n\x0b\x46oulCharge_\x10\x0e\x12\r\n\tFoulPush_\x10\x0f\x12\x19\n\x15\x46oulMultipleAttacker_\x10\x10\x12\x10\n\x0c\x46oulBallOut_\x10\x11\x12\r\n\tBackPass_\x10\x12\x12\x12\n\x0e\x46reeKickFault_\x10\x13\x12\x0f\n\x0b\x43\x61tchFault_\x10\x14\x12\x10\n\x0cIndFreeKick_\x10\x15\x12\x11\n\rPenaltySetup_\x10\x16\x12\x11\n\rPenaltyReady_\x10\x17\x12\x11\n\rPenaltyTaken_\x10\x18\x12\x10\n\x0cPenaltyMiss_\x10\x19\x12\x11\n\rPenaltyScore_\x10\x1a\x12\x13\n\x0fIllegalDefense_\x10\x1b\x12\x13\n\x0fPenaltyOnfield_\x10\x1c\x12\x10\n\x0cPenaltyFoul_\x10\x1d\x12\x10\n\x0cGoalieCatch_\x10\x1e\x12\x0e\n\nExtendHalf\x10\x1f\x12\x0c\n\x08MODE_MAX\x10 *2\n\tAgentType\x12\x0b\n\x07PlayerT\x10\x00\x12\n\n\x06\x43oachT\x10\x01\x12\x0c\n\x08TrainerT\x10\x02*w\n\x11RpcActionCategory\x12\x0b\n\x07\x41\x43_Hold\x10\x00\x12\x0e\n\nAC_Dribble\x10\x01\x12\x0b\n\x07\x41\x43_Pass\x10\x02\x12\x0c\n\x08\x41\x43_Shoot\x10\x03\x12\x0c\n\x08\x41\x43_Clear\x10\x04\x12\x0b\n\x07\x41\x43_Move\x10\x05\x12\x0f\n\x0b\x41\x43_NoAction\x10\x06\x32\xfb\x04\n\x04Game\x12:\n\x10GetPlayerActions\x12\r.protos.State\x1a\x15.protos.PlayerActions\"\x00\x12\x38\n\x0fGetCoachActions\x12\r.protos.State\x1a\x14.protos.CoachActions\"\x00\x12<\n\x11GetTrainerActions\x12\r.protos.State\x1a\x16.protos.TrainerActions\"\x00\x12\x37\n\x0fSendInitMessage\x12\x13.protos.InitMessage\x1a\r.protos.Empty\"\x00\x12\x38\n\x10SendServerParams\x12\x13.protos.ServerParam\x1a\r.protos.Empty\"\x00\x12\x38\n\x10SendPlayerParams\x12\x13.protos.PlayerParam\x1a\r.protos.Empty\"\x00\x12\x35\n\x0eSendPlayerType\x12\x12.protos.PlayerType\x1a\r.protos.Empty\"\x00\x12?\n\x08Register\x12\x17.protos.RegisterRequest\x1a\x18.protos.RegisterResponse\"\x00\x12;\n\x0eSendByeCommand\x12\x18.protos.RegisterResponse\x1a\r.protos.Empty\"\x00\x12]\n\x14GetBestPlannerAction\x12 .protos.BestPlannerActionRequest\x1a!.protos.BestPlannerActionResponse\"\x00\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'service_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - DESCRIPTOR._loaded_options = None - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._loaded_options = None - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._serialized_options = b'8\001' - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._loaded_options = None - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._serialized_options = b'8\001' - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._loaded_options = None - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._serialized_options = b'8\001' - _globals['_BESTPLANNERACTIONREQUEST_PAIRSENTRY']._loaded_options = None - _globals['_BESTPLANNERACTIONREQUEST_PAIRSENTRY']._serialized_options = b'8\001' - _globals['_VIEWWIDTH']._serialized_start=27594 - _globals['_VIEWWIDTH']._serialized_end=27639 - _globals['_RPCSERVERLANGUAGETYPE']._serialized_start=27641 - _globals['_RPCSERVERLANGUAGETYPE']._serialized_end=27764 - _globals['_SIDE']._serialized_start=27766 - _globals['_SIDE']._serialized_end=27806 - _globals['_LOGGERLEVEL']._serialized_start=27809 - _globals['_LOGGERLEVEL']._serialized_end=28115 - _globals['_CARDTYPE']._serialized_start=28117 - _globals['_CARDTYPE']._serialized_end=28161 - _globals['_INTERCEPTACTIONTYPE']._serialized_start=28163 - _globals['_INTERCEPTACTIONTYPE']._serialized_end=28281 - _globals['_GAMEMODETYPE']._serialized_start=28284 - _globals['_GAMEMODETYPE']._serialized_end=28855 - _globals['_AGENTTYPE']._serialized_start=28857 - _globals['_AGENTTYPE']._serialized_end=28907 - _globals['_RPCACTIONCATEGORY']._serialized_start=28909 - _globals['_RPCACTIONCATEGORY']._serialized_end=29028 - _globals['_RPCVECTOR2D']._serialized_start=25 - _globals['_RPCVECTOR2D']._serialized_end=89 - _globals['_REGISTERREQUEST']._serialized_start=91 - _globals['_REGISTERREQUEST']._serialized_end=211 - _globals['_REGISTERRESPONSE']._serialized_start=214 - _globals['_REGISTERRESPONSE']._serialized_end=398 - _globals['_BALL']._serialized_start=401 - _globals['_BALL']._serialized_end=937 - _globals['_PENALTYKICKSTATE']._serialized_start=940 - _globals['_PENALTYKICKSTATE']._serialized_end=1156 - _globals['_PLAYER']._serialized_start=1159 - _globals['_PLAYER']._serialized_end=1975 - _globals['_SELF']._serialized_start=1978 - _globals['_SELF']._serialized_end=3065 - _globals['_INTERCEPTINFO']._serialized_start=3068 - _globals['_INTERCEPTINFO']._serialized_end=3344 - _globals['_INTERCEPTTABLE']._serialized_start=3347 - _globals['_INTERCEPTTABLE']._serialized_end=3697 - _globals['_WORLDMODEL']._serialized_start=3700 - _globals['_WORLDMODEL']._serialized_end=5357 - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._serialized_start=5134 - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._serialized_end=5203 - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._serialized_start=5205 - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._serialized_end=5276 - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._serialized_start=5278 - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._serialized_end=5357 - _globals['_STATE']._serialized_start=5360 - _globals['_STATE']._serialized_end=5532 - _globals['_INITMESSAGE']._serialized_start=5534 - _globals['_INITMESSAGE']._serialized_end=5620 - _globals['_DASH']._serialized_start=5622 - _globals['_DASH']._serialized_end=5671 - _globals['_TURN']._serialized_start=5673 - _globals['_TURN']._serialized_end=5707 - _globals['_KICK']._serialized_start=5709 - _globals['_KICK']._serialized_end=5758 - _globals['_TACKLE']._serialized_start=5760 - _globals['_TACKLE']._serialized_end=5804 - _globals['_CATCH']._serialized_start=5806 - _globals['_CATCH']._serialized_end=5813 - _globals['_MOVE']._serialized_start=5815 - _globals['_MOVE']._serialized_end=5843 - _globals['_TURNNECK']._serialized_start=5845 - _globals['_TURNNECK']._serialized_end=5871 - _globals['_CHANGEVIEW']._serialized_start=5873 - _globals['_CHANGEVIEW']._serialized_end=5924 - _globals['_BALLMESSAGE']._serialized_start=5926 - _globals['_BALLMESSAGE']._serialized_end=6027 - _globals['_PASSMESSAGE']._serialized_start=6030 - _globals['_PASSMESSAGE']._serialized_end=6209 - _globals['_INTERCEPTMESSAGE']._serialized_start=6211 - _globals['_INTERCEPTMESSAGE']._serialized_end=6281 - _globals['_GOALIEMESSAGE']._serialized_start=6283 - _globals['_GOALIEMESSAGE']._serialized_end=6406 - _globals['_GOALIEANDPLAYERMESSAGE']._serialized_start=6409 - _globals['_GOALIEANDPLAYERMESSAGE']._serialized_end=6618 - _globals['_OFFSIDELINEMESSAGE']._serialized_start=6620 - _globals['_OFFSIDELINEMESSAGE']._serialized_end=6664 - _globals['_DEFENSELINEMESSAGE']._serialized_start=6666 - _globals['_DEFENSELINEMESSAGE']._serialized_end=6710 - _globals['_WAITREQUESTMESSAGE']._serialized_start=6712 - _globals['_WAITREQUESTMESSAGE']._serialized_end=6732 - _globals['_SETPLAYMESSAGE']._serialized_start=6734 - _globals['_SETPLAYMESSAGE']._serialized_end=6769 - _globals['_PASSREQUESTMESSAGE']._serialized_start=6771 - _globals['_PASSREQUESTMESSAGE']._serialized_end=6834 - _globals['_STAMINAMESSAGE']._serialized_start=6836 - _globals['_STAMINAMESSAGE']._serialized_end=6869 - _globals['_RECOVERYMESSAGE']._serialized_start=6871 - _globals['_RECOVERYMESSAGE']._serialized_end=6906 - _globals['_STAMINACAPACITYMESSAGE']._serialized_start=6908 - _globals['_STAMINACAPACITYMESSAGE']._serialized_end=6958 - _globals['_DRIBBLEMESSAGE']._serialized_start=6960 - _globals['_DRIBBLEMESSAGE']._serialized_end=7040 - _globals['_BALLGOALIEMESSAGE']._serialized_start=7043 - _globals['_BALLGOALIEMESSAGE']._serialized_end=7227 - _globals['_ONEPLAYERMESSAGE']._serialized_start=7229 - _globals['_ONEPLAYERMESSAGE']._serialized_end=7310 - _globals['_TWOPLAYERMESSAGE']._serialized_start=7313 - _globals['_TWOPLAYERMESSAGE']._serialized_end=7483 - _globals['_THREEPLAYERMESSAGE']._serialized_start=7486 - _globals['_THREEPLAYERMESSAGE']._serialized_end=7733 - _globals['_SELFMESSAGE']._serialized_start=7735 - _globals['_SELFMESSAGE']._serialized_end=7843 - _globals['_TEAMMATEMESSAGE']._serialized_start=7845 - _globals['_TEAMMATEMESSAGE']._serialized_end=7949 - _globals['_OPPONENTMESSAGE']._serialized_start=7951 - _globals['_OPPONENTMESSAGE']._serialized_end=8055 - _globals['_BALLPLAYERMESSAGE']._serialized_start=8058 - _globals['_BALLPLAYERMESSAGE']._serialized_end=8259 - _globals['_SAY']._serialized_start=8262 - _globals['_SAY']._serialized_end=9494 - _globals['_POINTTO']._serialized_start=9496 - _globals['_POINTTO']._serialized_end=9527 - _globals['_POINTTOOF']._serialized_start=9529 - _globals['_POINTTOOF']._serialized_end=9540 - _globals['_ATTENTIONTO']._serialized_start=9542 - _globals['_ATTENTIONTO']._serialized_end=9597 - _globals['_ATTENTIONTOOF']._serialized_start=9599 - _globals['_ATTENTIONTOOF']._serialized_end=9614 - _globals['_ADDTEXT']._serialized_start=9616 - _globals['_ADDTEXT']._serialized_end=9678 - _globals['_ADDPOINT']._serialized_start=9680 - _globals['_ADDPOINT']._serialized_end=9777 - _globals['_ADDLINE']._serialized_start=9780 - _globals['_ADDLINE']._serialized_end=9910 - _globals['_ADDARC']._serialized_start=9913 - _globals['_ADDARC']._serialized_end=10066 - _globals['_ADDCIRCLE']._serialized_start=10069 - _globals['_ADDCIRCLE']._serialized_end=10198 - _globals['_ADDTRIANGLE']._serialized_start=10201 - _globals['_ADDTRIANGLE']._serialized_end=10390 - _globals['_ADDRECTANGLE']._serialized_start=10393 - _globals['_ADDRECTANGLE']._serialized_end=10530 - _globals['_ADDSECTOR']._serialized_start=10533 - _globals['_ADDSECTOR']._serialized_end=10727 - _globals['_ADDMESSAGE']._serialized_start=10729 - _globals['_ADDMESSAGE']._serialized_end=10848 - _globals['_LOG']._serialized_start=10851 - _globals['_LOG']._serialized_end=11228 - _globals['_DEBUGCLIENT']._serialized_start=11230 - _globals['_DEBUGCLIENT']._serialized_end=11260 - _globals['_BODY_GOTOPOINT']._serialized_start=11262 - _globals['_BODY_GOTOPOINT']._serialized_end=11373 - _globals['_BODY_SMARTKICK']._serialized_start=11376 - _globals['_BODY_SMARTKICK']._serialized_end=11506 - _globals['_BHV_BEFOREKICKOFF']._serialized_start=11508 - _globals['_BHV_BEFOREKICKOFF']._serialized_end=11563 - _globals['_BHV_BODYNECKTOBALL']._serialized_start=11565 - _globals['_BHV_BODYNECKTOBALL']._serialized_end=11585 - _globals['_BHV_BODYNECKTOPOINT']._serialized_start=11587 - _globals['_BHV_BODYNECKTOPOINT']._serialized_end=11644 - _globals['_BHV_EMERGENCY']._serialized_start=11646 - _globals['_BHV_EMERGENCY']._serialized_end=11661 - _globals['_BHV_GOTOPOINTLOOKBALL']._serialized_start=11663 - _globals['_BHV_GOTOPOINTLOOKBALL']._serialized_end=11781 - _globals['_BHV_NECKBODYTOBALL']._serialized_start=11783 - _globals['_BHV_NECKBODYTOBALL']._serialized_end=11822 - _globals['_BHV_NECKBODYTOPOINT']._serialized_start=11824 - _globals['_BHV_NECKBODYTOPOINT']._serialized_end=11900 - _globals['_BHV_SCANFIELD']._serialized_start=11902 - _globals['_BHV_SCANFIELD']._serialized_end=11917 - _globals['_BODY_ADVANCEBALL']._serialized_start=11919 - _globals['_BODY_ADVANCEBALL']._serialized_end=11937 - _globals['_BODY_CLEARBALL']._serialized_start=11939 - _globals['_BODY_CLEARBALL']._serialized_end=11955 - _globals['_BODY_DRIBBLE']._serialized_start=11958 - _globals['_BODY_DRIBBLE']._serialized_end=12098 - _globals['_BODY_GOTOPOINTDODGE']._serialized_start=12100 - _globals['_BODY_GOTOPOINTDODGE']._serialized_end=12184 - _globals['_BODY_HOLDBALL']._serialized_start=12187 - _globals['_BODY_HOLDBALL']._serialized_end=12315 - _globals['_BODY_INTERCEPT']._serialized_start=12317 - _globals['_BODY_INTERCEPT']._serialized_end=12397 - _globals['_BODY_KICKONESTEP']._serialized_start=12399 - _globals['_BODY_KICKONESTEP']._serialized_end=12501 - _globals['_BODY_STOPBALL']._serialized_start=12503 - _globals['_BODY_STOPBALL']._serialized_end=12518 - _globals['_BODY_STOPDASH']._serialized_start=12520 - _globals['_BODY_STOPDASH']._serialized_end=12558 - _globals['_BODY_TACKLETOPOINT']._serialized_start=12560 - _globals['_BODY_TACKLETOPOINT']._serialized_end=12667 - _globals['_BODY_TURNTOANGLE']._serialized_start=12669 - _globals['_BODY_TURNTOANGLE']._serialized_end=12702 - _globals['_BODY_TURNTOBALL']._serialized_start=12704 - _globals['_BODY_TURNTOBALL']._serialized_end=12736 - _globals['_BODY_TURNTOPOINT']._serialized_start=12738 - _globals['_BODY_TURNTOPOINT']._serialized_end=12814 - _globals['_FOCUS_MOVETOPOINT']._serialized_start=12816 - _globals['_FOCUS_MOVETOPOINT']._serialized_end=12878 - _globals['_FOCUS_RESET']._serialized_start=12880 - _globals['_FOCUS_RESET']._serialized_end=12893 - _globals['_NECK_SCANFIELD']._serialized_start=12895 - _globals['_NECK_SCANFIELD']._serialized_end=12911 - _globals['_NECK_SCANPLAYERS']._serialized_start=12913 - _globals['_NECK_SCANPLAYERS']._serialized_end=12931 - _globals['_NECK_TURNTOBALLANDPLAYER']._serialized_start=12933 - _globals['_NECK_TURNTOBALLANDPLAYER']._serialized_end=13036 - _globals['_NECK_TURNTOBALLORSCAN']._serialized_start=13038 - _globals['_NECK_TURNTOBALLORSCAN']._serialized_end=13086 - _globals['_NECK_TURNTOBALL']._serialized_start=13088 - _globals['_NECK_TURNTOBALL']._serialized_end=13105 - _globals['_NECK_TURNTOGOALIEORSCAN']._serialized_start=13107 - _globals['_NECK_TURNTOGOALIEORSCAN']._serialized_end=13157 - _globals['_NECK_TURNTOLOWCONFTEAMMATE']._serialized_start=13159 - _globals['_NECK_TURNTOLOWCONFTEAMMATE']._serialized_end=13187 - _globals['_NECK_TURNTOPLAYERORSCAN']._serialized_start=13189 - _globals['_NECK_TURNTOPLAYERORSCAN']._serialized_end=13291 - _globals['_NECK_TURNTOPOINT']._serialized_start=13293 - _globals['_NECK_TURNTOPOINT']._serialized_end=13354 - _globals['_NECK_TURNTORELATIVE']._serialized_start=13356 - _globals['_NECK_TURNTORELATIVE']._serialized_end=13392 - _globals['_VIEW_CHANGEWIDTH']._serialized_start=13394 - _globals['_VIEW_CHANGEWIDTH']._serialized_end=13451 - _globals['_VIEW_NORMAL']._serialized_start=13453 - _globals['_VIEW_NORMAL']._serialized_end=13466 - _globals['_VIEW_SYNCH']._serialized_start=13468 - _globals['_VIEW_SYNCH']._serialized_end=13480 - _globals['_VIEW_WIDE']._serialized_start=13482 - _globals['_VIEW_WIDE']._serialized_end=13493 - _globals['_HELIOSGOALIE']._serialized_start=13495 - _globals['_HELIOSGOALIE']._serialized_end=13509 - _globals['_HELIOSGOALIEMOVE']._serialized_start=13511 - _globals['_HELIOSGOALIEMOVE']._serialized_end=13529 - _globals['_HELIOSGOALIEKICK']._serialized_start=13531 - _globals['_HELIOSGOALIEKICK']._serialized_end=13549 - _globals['_HELIOSSHOOT']._serialized_start=13551 - _globals['_HELIOSSHOOT']._serialized_end=13564 - _globals['_HELIOSOFFENSIVEPLANNER']._serialized_start=13567 - _globals['_HELIOSOFFENSIVEPLANNER']._serialized_end=13810 - _globals['_HELIOSBASICOFFENSIVE']._serialized_start=13812 - _globals['_HELIOSBASICOFFENSIVE']._serialized_end=13834 - _globals['_HELIOSBASICMOVE']._serialized_start=13836 - _globals['_HELIOSBASICMOVE']._serialized_end=13853 - _globals['_HELIOSSETPLAY']._serialized_start=13855 - _globals['_HELIOSSETPLAY']._serialized_end=13870 - _globals['_HELIOSPENALTY']._serialized_start=13872 - _globals['_HELIOSPENALTY']._serialized_end=13887 - _globals['_HELIOSCOMMUNICAION']._serialized_start=13889 - _globals['_HELIOSCOMMUNICAION']._serialized_end=13909 - _globals['_BHV_DOFORCEKICK']._serialized_start=13911 - _globals['_BHV_DOFORCEKICK']._serialized_end=13928 - _globals['_BHV_DOHEARDPASSRECIEVE']._serialized_start=13930 - _globals['_BHV_DOHEARDPASSRECIEVE']._serialized_end=13954 - _globals['_PLAYERACTION']._serialized_start=13957 - _globals['_PLAYERACTION']._serialized_end=17389 - _globals['_PLAYERACTIONS']._serialized_start=17392 - _globals['_PLAYERACTIONS']._serialized_end=17536 - _globals['_CHANGEPLAYERTYPE']._serialized_start=17538 - _globals['_CHANGEPLAYERTYPE']._serialized_end=17594 - _globals['_DOHELIOSSUBSTITUTE']._serialized_start=17596 - _globals['_DOHELIOSSUBSTITUTE']._serialized_end=17616 - _globals['_DOHELIOSSAYPLAYERTYPES']._serialized_start=17618 - _globals['_DOHELIOSSAYPLAYERTYPES']._serialized_end=17642 - _globals['_COACHACTION']._serialized_start=17645 - _globals['_COACHACTION']._serialized_end=17855 - _globals['_COACHACTIONS']._serialized_start=17857 - _globals['_COACHACTIONS']._serialized_end=17909 - _globals['_DOKICKOFF']._serialized_start=17911 - _globals['_DOKICKOFF']._serialized_end=17922 - _globals['_DOMOVEBALL']._serialized_start=17924 - _globals['_DOMOVEBALL']._serialized_end=18014 - _globals['_DOMOVEPLAYER']._serialized_start=18016 - _globals['_DOMOVEPLAYER']._serialized_end=18135 - _globals['_DORECOVER']._serialized_start=18137 - _globals['_DORECOVER']._serialized_end=18148 - _globals['_DOCHANGEMODE']._serialized_start=18150 - _globals['_DOCHANGEMODE']._serialized_end=18238 - _globals['_DOCHANGEPLAYERTYPE']._serialized_start=18240 - _globals['_DOCHANGEPLAYERTYPE']._serialized_end=18316 - _globals['_TRAINERACTION']._serialized_start=18319 - _globals['_TRAINERACTION']._serialized_end=18628 - _globals['_TRAINERACTIONS']._serialized_start=18630 - _globals['_TRAINERACTIONS']._serialized_end=18686 - _globals['_SERVERPARAM']._serialized_start=18689 - _globals['_SERVERPARAM']._serialized_end=24520 - _globals['_PLAYERPARAM']._serialized_start=24523 - _globals['_PLAYERPARAM']._serialized_end=25560 - _globals['_PLAYERTYPE']._serialized_start=25563 - _globals['_PLAYERTYPE']._serialized_end=26522 - _globals['_RPCCOOPERATIVEACTION']._serialized_start=26525 - _globals['_RPCCOOPERATIVEACTION']._serialized_end=26954 - _globals['_RPCPREDICTSTATE']._serialized_start=26957 - _globals['_RPCPREDICTSTATE']._serialized_end=27164 - _globals['_RPCACTIONSTATE']._serialized_start=27167 - _globals['_RPCACTIONSTATE']._serialized_end=27297 - _globals['_BESTPLANNERACTIONREQUEST']._serialized_start=27300 - _globals['_BESTPLANNERACTIONREQUEST']._serialized_end=27539 - _globals['_BESTPLANNERACTIONREQUEST_PAIRSENTRY']._serialized_start=27471 - _globals['_BESTPLANNERACTIONREQUEST_PAIRSENTRY']._serialized_end=27539 - _globals['_BESTPLANNERACTIONRESPONSE']._serialized_start=27541 - _globals['_BESTPLANNERACTIONRESPONSE']._serialized_end=27583 - _globals['_EMPTY']._serialized_start=27585 - _globals['_EMPTY']._serialized_end=27592 - _globals['_GAME']._serialized_start=29031 - _globals['_GAME']._serialized_end=29666 -# @@protoc_insertion_point(module_scope) diff --git a/service_pb2.pyi b/service_pb2.pyi deleted file mode 100644 index 5a5fac3..0000000 --- a/service_pb2.pyi +++ /dev/null @@ -1,2360 +0,0 @@ -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class ViewWidth(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - NARROW: _ClassVar[ViewWidth] - NORMAL: _ClassVar[ViewWidth] - WIDE: _ClassVar[ViewWidth] - -class RpcServerLanguageType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - UNKNOWN_LANGUAGE: _ClassVar[RpcServerLanguageType] - PYThON: _ClassVar[RpcServerLanguageType] - JAVA: _ClassVar[RpcServerLanguageType] - CPP: _ClassVar[RpcServerLanguageType] - CSHARP: _ClassVar[RpcServerLanguageType] - RUBY: _ClassVar[RpcServerLanguageType] - JAVE_SCRIPT: _ClassVar[RpcServerLanguageType] - GO: _ClassVar[RpcServerLanguageType] - -class Side(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - UNKNOWN: _ClassVar[Side] - LEFT: _ClassVar[Side] - RIGHT: _ClassVar[Side] - -class LoggerLevel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - NoneLevel: _ClassVar[LoggerLevel] - SYSTEM: _ClassVar[LoggerLevel] - SENSOR: _ClassVar[LoggerLevel] - WORLD: _ClassVar[LoggerLevel] - ACTION: _ClassVar[LoggerLevel] - INTERCEPT: _ClassVar[LoggerLevel] - KICK: _ClassVar[LoggerLevel] - HOLD: _ClassVar[LoggerLevel] - DRIBBLE: _ClassVar[LoggerLevel] - PASS: _ClassVar[LoggerLevel] - CROSS: _ClassVar[LoggerLevel] - SHOOT: _ClassVar[LoggerLevel] - CLEAR: _ClassVar[LoggerLevel] - BLOCK: _ClassVar[LoggerLevel] - MARK: _ClassVar[LoggerLevel] - POSITIONING: _ClassVar[LoggerLevel] - ROLE: _ClassVar[LoggerLevel] - TEAM: _ClassVar[LoggerLevel] - COMMUNICATION: _ClassVar[LoggerLevel] - ANALYZER: _ClassVar[LoggerLevel] - ACTION_CHAIN: _ClassVar[LoggerLevel] - PLAN: _ClassVar[LoggerLevel] - -class CardType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - NO_CARD: _ClassVar[CardType] - YELLOW: _ClassVar[CardType] - RED: _ClassVar[CardType] - -class InterceptActionType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - UNKNOWN_Intercept_Action_Type: _ClassVar[InterceptActionType] - OMNI_DASH: _ClassVar[InterceptActionType] - TURN_FORWARD_DASH: _ClassVar[InterceptActionType] - TURN_BACKWARD_DASH: _ClassVar[InterceptActionType] - -class GameModeType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - BeforeKickOff: _ClassVar[GameModeType] - TimeOver: _ClassVar[GameModeType] - PlayOn: _ClassVar[GameModeType] - KickOff_: _ClassVar[GameModeType] - KickIn_: _ClassVar[GameModeType] - FreeKick_: _ClassVar[GameModeType] - CornerKick_: _ClassVar[GameModeType] - GoalKick_: _ClassVar[GameModeType] - AfterGoal_: _ClassVar[GameModeType] - OffSide_: _ClassVar[GameModeType] - PenaltyKick_: _ClassVar[GameModeType] - FirstHalfOver: _ClassVar[GameModeType] - Pause: _ClassVar[GameModeType] - Human: _ClassVar[GameModeType] - FoulCharge_: _ClassVar[GameModeType] - FoulPush_: _ClassVar[GameModeType] - FoulMultipleAttacker_: _ClassVar[GameModeType] - FoulBallOut_: _ClassVar[GameModeType] - BackPass_: _ClassVar[GameModeType] - FreeKickFault_: _ClassVar[GameModeType] - CatchFault_: _ClassVar[GameModeType] - IndFreeKick_: _ClassVar[GameModeType] - PenaltySetup_: _ClassVar[GameModeType] - PenaltyReady_: _ClassVar[GameModeType] - PenaltyTaken_: _ClassVar[GameModeType] - PenaltyMiss_: _ClassVar[GameModeType] - PenaltyScore_: _ClassVar[GameModeType] - IllegalDefense_: _ClassVar[GameModeType] - PenaltyOnfield_: _ClassVar[GameModeType] - PenaltyFoul_: _ClassVar[GameModeType] - GoalieCatch_: _ClassVar[GameModeType] - ExtendHalf: _ClassVar[GameModeType] - MODE_MAX: _ClassVar[GameModeType] - -class AgentType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - PlayerT: _ClassVar[AgentType] - CoachT: _ClassVar[AgentType] - TrainerT: _ClassVar[AgentType] - -class RpcActionCategory(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - AC_Hold: _ClassVar[RpcActionCategory] - AC_Dribble: _ClassVar[RpcActionCategory] - AC_Pass: _ClassVar[RpcActionCategory] - AC_Shoot: _ClassVar[RpcActionCategory] - AC_Clear: _ClassVar[RpcActionCategory] - AC_Move: _ClassVar[RpcActionCategory] - AC_NoAction: _ClassVar[RpcActionCategory] -NARROW: ViewWidth -NORMAL: ViewWidth -WIDE: ViewWidth -UNKNOWN_LANGUAGE: RpcServerLanguageType -PYThON: RpcServerLanguageType -JAVA: RpcServerLanguageType -CPP: RpcServerLanguageType -CSHARP: RpcServerLanguageType -RUBY: RpcServerLanguageType -JAVE_SCRIPT: RpcServerLanguageType -GO: RpcServerLanguageType -UNKNOWN: Side -LEFT: Side -RIGHT: Side -NoneLevel: LoggerLevel -SYSTEM: LoggerLevel -SENSOR: LoggerLevel -WORLD: LoggerLevel -ACTION: LoggerLevel -INTERCEPT: LoggerLevel -KICK: LoggerLevel -HOLD: LoggerLevel -DRIBBLE: LoggerLevel -PASS: LoggerLevel -CROSS: LoggerLevel -SHOOT: LoggerLevel -CLEAR: LoggerLevel -BLOCK: LoggerLevel -MARK: LoggerLevel -POSITIONING: LoggerLevel -ROLE: LoggerLevel -TEAM: LoggerLevel -COMMUNICATION: LoggerLevel -ANALYZER: LoggerLevel -ACTION_CHAIN: LoggerLevel -PLAN: LoggerLevel -NO_CARD: CardType -YELLOW: CardType -RED: CardType -UNKNOWN_Intercept_Action_Type: InterceptActionType -OMNI_DASH: InterceptActionType -TURN_FORWARD_DASH: InterceptActionType -TURN_BACKWARD_DASH: InterceptActionType -BeforeKickOff: GameModeType -TimeOver: GameModeType -PlayOn: GameModeType -KickOff_: GameModeType -KickIn_: GameModeType -FreeKick_: GameModeType -CornerKick_: GameModeType -GoalKick_: GameModeType -AfterGoal_: GameModeType -OffSide_: GameModeType -PenaltyKick_: GameModeType -FirstHalfOver: GameModeType -Pause: GameModeType -Human: GameModeType -FoulCharge_: GameModeType -FoulPush_: GameModeType -FoulMultipleAttacker_: GameModeType -FoulBallOut_: GameModeType -BackPass_: GameModeType -FreeKickFault_: GameModeType -CatchFault_: GameModeType -IndFreeKick_: GameModeType -PenaltySetup_: GameModeType -PenaltyReady_: GameModeType -PenaltyTaken_: GameModeType -PenaltyMiss_: GameModeType -PenaltyScore_: GameModeType -IllegalDefense_: GameModeType -PenaltyOnfield_: GameModeType -PenaltyFoul_: GameModeType -GoalieCatch_: GameModeType -ExtendHalf: GameModeType -MODE_MAX: GameModeType -PlayerT: AgentType -CoachT: AgentType -TrainerT: AgentType -AC_Hold: RpcActionCategory -AC_Dribble: RpcActionCategory -AC_Pass: RpcActionCategory -AC_Shoot: RpcActionCategory -AC_Clear: RpcActionCategory -AC_Move: RpcActionCategory -AC_NoAction: RpcActionCategory - -class RpcVector2D(_message.Message): - __slots__ = ("x", "y", "dist", "angle") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - DIST_FIELD_NUMBER: _ClassVar[int] - ANGLE_FIELD_NUMBER: _ClassVar[int] - x: float - y: float - dist: float - angle: float - def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., dist: _Optional[float] = ..., angle: _Optional[float] = ...) -> None: ... - -class RegisterRequest(_message.Message): - __slots__ = ("agent_type", "team_name", "uniform_number", "rpc_version") - AGENT_TYPE_FIELD_NUMBER: _ClassVar[int] - TEAM_NAME_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - RPC_VERSION_FIELD_NUMBER: _ClassVar[int] - agent_type: AgentType - team_name: str - uniform_number: int - rpc_version: int - def __init__(self, agent_type: _Optional[_Union[AgentType, str]] = ..., team_name: _Optional[str] = ..., uniform_number: _Optional[int] = ..., rpc_version: _Optional[int] = ...) -> None: ... - -class RegisterResponse(_message.Message): - __slots__ = ("client_id", "agent_type", "team_name", "uniform_number", "rpc_server_language_type") - CLIENT_ID_FIELD_NUMBER: _ClassVar[int] - AGENT_TYPE_FIELD_NUMBER: _ClassVar[int] - TEAM_NAME_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - RPC_SERVER_LANGUAGE_TYPE_FIELD_NUMBER: _ClassVar[int] - client_id: int - agent_type: AgentType - team_name: str - uniform_number: int - rpc_server_language_type: RpcServerLanguageType - def __init__(self, client_id: _Optional[int] = ..., agent_type: _Optional[_Union[AgentType, str]] = ..., team_name: _Optional[str] = ..., uniform_number: _Optional[int] = ..., rpc_server_language_type: _Optional[_Union[RpcServerLanguageType, str]] = ...) -> None: ... - -class Ball(_message.Message): - __slots__ = ("position", "relative_position", "seen_position", "heard_position", "velocity", "seen_velocity", "heard_velocity", "pos_count", "seen_pos_count", "heard_pos_count", "vel_count", "seen_vel_count", "heard_vel_count", "lost_count", "ghost_count", "dist_from_self", "angle_from_self") - POSITION_FIELD_NUMBER: _ClassVar[int] - RELATIVE_POSITION_FIELD_NUMBER: _ClassVar[int] - SEEN_POSITION_FIELD_NUMBER: _ClassVar[int] - HEARD_POSITION_FIELD_NUMBER: _ClassVar[int] - VELOCITY_FIELD_NUMBER: _ClassVar[int] - SEEN_VELOCITY_FIELD_NUMBER: _ClassVar[int] - HEARD_VELOCITY_FIELD_NUMBER: _ClassVar[int] - POS_COUNT_FIELD_NUMBER: _ClassVar[int] - SEEN_POS_COUNT_FIELD_NUMBER: _ClassVar[int] - HEARD_POS_COUNT_FIELD_NUMBER: _ClassVar[int] - VEL_COUNT_FIELD_NUMBER: _ClassVar[int] - SEEN_VEL_COUNT_FIELD_NUMBER: _ClassVar[int] - HEARD_VEL_COUNT_FIELD_NUMBER: _ClassVar[int] - LOST_COUNT_FIELD_NUMBER: _ClassVar[int] - GHOST_COUNT_FIELD_NUMBER: _ClassVar[int] - DIST_FROM_SELF_FIELD_NUMBER: _ClassVar[int] - ANGLE_FROM_SELF_FIELD_NUMBER: _ClassVar[int] - position: RpcVector2D - relative_position: RpcVector2D - seen_position: RpcVector2D - heard_position: RpcVector2D - velocity: RpcVector2D - seen_velocity: RpcVector2D - heard_velocity: RpcVector2D - pos_count: int - seen_pos_count: int - heard_pos_count: int - vel_count: int - seen_vel_count: int - heard_vel_count: int - lost_count: int - ghost_count: int - dist_from_self: float - angle_from_self: float - def __init__(self, position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., relative_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., seen_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., heard_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., seen_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., heard_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., pos_count: _Optional[int] = ..., seen_pos_count: _Optional[int] = ..., heard_pos_count: _Optional[int] = ..., vel_count: _Optional[int] = ..., seen_vel_count: _Optional[int] = ..., heard_vel_count: _Optional[int] = ..., lost_count: _Optional[int] = ..., ghost_count: _Optional[int] = ..., dist_from_self: _Optional[float] = ..., angle_from_self: _Optional[float] = ...) -> None: ... - -class PenaltyKickState(_message.Message): - __slots__ = ("on_field_side", "current_taker_side", "our_taker_counter", "their_taker_counter", "our_score", "their_score", "is_kick_taker") - ON_FIELD_SIDE_FIELD_NUMBER: _ClassVar[int] - CURRENT_TAKER_SIDE_FIELD_NUMBER: _ClassVar[int] - OUR_TAKER_COUNTER_FIELD_NUMBER: _ClassVar[int] - THEIR_TAKER_COUNTER_FIELD_NUMBER: _ClassVar[int] - OUR_SCORE_FIELD_NUMBER: _ClassVar[int] - THEIR_SCORE_FIELD_NUMBER: _ClassVar[int] - IS_KICK_TAKER_FIELD_NUMBER: _ClassVar[int] - on_field_side: Side - current_taker_side: Side - our_taker_counter: int - their_taker_counter: int - our_score: int - their_score: int - is_kick_taker: bool - def __init__(self, on_field_side: _Optional[_Union[Side, str]] = ..., current_taker_side: _Optional[_Union[Side, str]] = ..., our_taker_counter: _Optional[int] = ..., their_taker_counter: _Optional[int] = ..., our_score: _Optional[int] = ..., their_score: _Optional[int] = ..., is_kick_taker: bool = ...) -> None: ... - -class Player(_message.Message): - __slots__ = ("position", "seen_position", "heard_position", "velocity", "seen_velocity", "pos_count", "seen_pos_count", "heard_pos_count", "vel_count", "seen_vel_count", "ghost_count", "dist_from_self", "angle_from_self", "id", "side", "uniform_number", "uniform_number_count", "is_goalie", "body_direction", "body_direction_count", "face_direction", "face_direction_count", "point_to_direction", "point_to_direction_count", "is_kicking", "dist_from_ball", "angle_from_ball", "ball_reach_steps", "is_tackling", "type_id") - POSITION_FIELD_NUMBER: _ClassVar[int] - SEEN_POSITION_FIELD_NUMBER: _ClassVar[int] - HEARD_POSITION_FIELD_NUMBER: _ClassVar[int] - VELOCITY_FIELD_NUMBER: _ClassVar[int] - SEEN_VELOCITY_FIELD_NUMBER: _ClassVar[int] - POS_COUNT_FIELD_NUMBER: _ClassVar[int] - SEEN_POS_COUNT_FIELD_NUMBER: _ClassVar[int] - HEARD_POS_COUNT_FIELD_NUMBER: _ClassVar[int] - VEL_COUNT_FIELD_NUMBER: _ClassVar[int] - SEEN_VEL_COUNT_FIELD_NUMBER: _ClassVar[int] - GHOST_COUNT_FIELD_NUMBER: _ClassVar[int] - DIST_FROM_SELF_FIELD_NUMBER: _ClassVar[int] - ANGLE_FROM_SELF_FIELD_NUMBER: _ClassVar[int] - ID_FIELD_NUMBER: _ClassVar[int] - SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_COUNT_FIELD_NUMBER: _ClassVar[int] - IS_GOALIE_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_COUNT_FIELD_NUMBER: _ClassVar[int] - FACE_DIRECTION_FIELD_NUMBER: _ClassVar[int] - FACE_DIRECTION_COUNT_FIELD_NUMBER: _ClassVar[int] - POINT_TO_DIRECTION_FIELD_NUMBER: _ClassVar[int] - POINT_TO_DIRECTION_COUNT_FIELD_NUMBER: _ClassVar[int] - IS_KICKING_FIELD_NUMBER: _ClassVar[int] - DIST_FROM_BALL_FIELD_NUMBER: _ClassVar[int] - ANGLE_FROM_BALL_FIELD_NUMBER: _ClassVar[int] - BALL_REACH_STEPS_FIELD_NUMBER: _ClassVar[int] - IS_TACKLING_FIELD_NUMBER: _ClassVar[int] - TYPE_ID_FIELD_NUMBER: _ClassVar[int] - position: RpcVector2D - seen_position: RpcVector2D - heard_position: RpcVector2D - velocity: RpcVector2D - seen_velocity: RpcVector2D - pos_count: int - seen_pos_count: int - heard_pos_count: int - vel_count: int - seen_vel_count: int - ghost_count: int - dist_from_self: float - angle_from_self: float - id: int - side: Side - uniform_number: int - uniform_number_count: int - is_goalie: bool - body_direction: float - body_direction_count: int - face_direction: float - face_direction_count: int - point_to_direction: float - point_to_direction_count: int - is_kicking: bool - dist_from_ball: float - angle_from_ball: float - ball_reach_steps: int - is_tackling: bool - type_id: int - def __init__(self, position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., seen_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., heard_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., seen_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., pos_count: _Optional[int] = ..., seen_pos_count: _Optional[int] = ..., heard_pos_count: _Optional[int] = ..., vel_count: _Optional[int] = ..., seen_vel_count: _Optional[int] = ..., ghost_count: _Optional[int] = ..., dist_from_self: _Optional[float] = ..., angle_from_self: _Optional[float] = ..., id: _Optional[int] = ..., side: _Optional[_Union[Side, str]] = ..., uniform_number: _Optional[int] = ..., uniform_number_count: _Optional[int] = ..., is_goalie: bool = ..., body_direction: _Optional[float] = ..., body_direction_count: _Optional[int] = ..., face_direction: _Optional[float] = ..., face_direction_count: _Optional[int] = ..., point_to_direction: _Optional[float] = ..., point_to_direction_count: _Optional[int] = ..., is_kicking: bool = ..., dist_from_ball: _Optional[float] = ..., angle_from_ball: _Optional[float] = ..., ball_reach_steps: _Optional[int] = ..., is_tackling: bool = ..., type_id: _Optional[int] = ...) -> None: ... - -class Self(_message.Message): - __slots__ = ("position", "seen_position", "heard_position", "velocity", "seen_velocity", "pos_count", "seen_pos_count", "heard_pos_count", "vel_count", "seen_vel_count", "ghost_count", "id", "side", "uniform_number", "uniform_number_count", "is_goalie", "body_direction", "body_direction_count", "face_direction", "face_direction_count", "point_to_direction", "point_to_direction_count", "is_kicking", "dist_from_ball", "angle_from_ball", "ball_reach_steps", "is_tackling", "relative_neck_direction", "stamina", "is_kickable", "catch_probability", "tackle_probability", "foul_probability", "view_width", "type_id", "kick_rate", "recovery", "stamina_capacity", "card", "catch_time", "effort") - POSITION_FIELD_NUMBER: _ClassVar[int] - SEEN_POSITION_FIELD_NUMBER: _ClassVar[int] - HEARD_POSITION_FIELD_NUMBER: _ClassVar[int] - VELOCITY_FIELD_NUMBER: _ClassVar[int] - SEEN_VELOCITY_FIELD_NUMBER: _ClassVar[int] - POS_COUNT_FIELD_NUMBER: _ClassVar[int] - SEEN_POS_COUNT_FIELD_NUMBER: _ClassVar[int] - HEARD_POS_COUNT_FIELD_NUMBER: _ClassVar[int] - VEL_COUNT_FIELD_NUMBER: _ClassVar[int] - SEEN_VEL_COUNT_FIELD_NUMBER: _ClassVar[int] - GHOST_COUNT_FIELD_NUMBER: _ClassVar[int] - ID_FIELD_NUMBER: _ClassVar[int] - SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_COUNT_FIELD_NUMBER: _ClassVar[int] - IS_GOALIE_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_COUNT_FIELD_NUMBER: _ClassVar[int] - FACE_DIRECTION_FIELD_NUMBER: _ClassVar[int] - FACE_DIRECTION_COUNT_FIELD_NUMBER: _ClassVar[int] - POINT_TO_DIRECTION_FIELD_NUMBER: _ClassVar[int] - POINT_TO_DIRECTION_COUNT_FIELD_NUMBER: _ClassVar[int] - IS_KICKING_FIELD_NUMBER: _ClassVar[int] - DIST_FROM_BALL_FIELD_NUMBER: _ClassVar[int] - ANGLE_FROM_BALL_FIELD_NUMBER: _ClassVar[int] - BALL_REACH_STEPS_FIELD_NUMBER: _ClassVar[int] - IS_TACKLING_FIELD_NUMBER: _ClassVar[int] - RELATIVE_NECK_DIRECTION_FIELD_NUMBER: _ClassVar[int] - STAMINA_FIELD_NUMBER: _ClassVar[int] - IS_KICKABLE_FIELD_NUMBER: _ClassVar[int] - CATCH_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - TACKLE_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - FOUL_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - VIEW_WIDTH_FIELD_NUMBER: _ClassVar[int] - TYPE_ID_FIELD_NUMBER: _ClassVar[int] - KICK_RATE_FIELD_NUMBER: _ClassVar[int] - RECOVERY_FIELD_NUMBER: _ClassVar[int] - STAMINA_CAPACITY_FIELD_NUMBER: _ClassVar[int] - CARD_FIELD_NUMBER: _ClassVar[int] - CATCH_TIME_FIELD_NUMBER: _ClassVar[int] - EFFORT_FIELD_NUMBER: _ClassVar[int] - position: RpcVector2D - seen_position: RpcVector2D - heard_position: RpcVector2D - velocity: RpcVector2D - seen_velocity: RpcVector2D - pos_count: int - seen_pos_count: int - heard_pos_count: int - vel_count: int - seen_vel_count: int - ghost_count: int - id: int - side: Side - uniform_number: int - uniform_number_count: int - is_goalie: bool - body_direction: float - body_direction_count: int - face_direction: float - face_direction_count: int - point_to_direction: float - point_to_direction_count: int - is_kicking: bool - dist_from_ball: float - angle_from_ball: float - ball_reach_steps: int - is_tackling: bool - relative_neck_direction: float - stamina: float - is_kickable: bool - catch_probability: float - tackle_probability: float - foul_probability: float - view_width: ViewWidth - type_id: int - kick_rate: float - recovery: float - stamina_capacity: float - card: CardType - catch_time: int - effort: float - def __init__(self, position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., seen_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., heard_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., seen_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., pos_count: _Optional[int] = ..., seen_pos_count: _Optional[int] = ..., heard_pos_count: _Optional[int] = ..., vel_count: _Optional[int] = ..., seen_vel_count: _Optional[int] = ..., ghost_count: _Optional[int] = ..., id: _Optional[int] = ..., side: _Optional[_Union[Side, str]] = ..., uniform_number: _Optional[int] = ..., uniform_number_count: _Optional[int] = ..., is_goalie: bool = ..., body_direction: _Optional[float] = ..., body_direction_count: _Optional[int] = ..., face_direction: _Optional[float] = ..., face_direction_count: _Optional[int] = ..., point_to_direction: _Optional[float] = ..., point_to_direction_count: _Optional[int] = ..., is_kicking: bool = ..., dist_from_ball: _Optional[float] = ..., angle_from_ball: _Optional[float] = ..., ball_reach_steps: _Optional[int] = ..., is_tackling: bool = ..., relative_neck_direction: _Optional[float] = ..., stamina: _Optional[float] = ..., is_kickable: bool = ..., catch_probability: _Optional[float] = ..., tackle_probability: _Optional[float] = ..., foul_probability: _Optional[float] = ..., view_width: _Optional[_Union[ViewWidth, str]] = ..., type_id: _Optional[int] = ..., kick_rate: _Optional[float] = ..., recovery: _Optional[float] = ..., stamina_capacity: _Optional[float] = ..., card: _Optional[_Union[CardType, str]] = ..., catch_time: _Optional[int] = ..., effort: _Optional[float] = ...) -> None: ... - -class InterceptInfo(_message.Message): - __slots__ = ("action_type", "turn_steps", "turn_angle", "dash_steps", "dash_power", "dash_dir", "final_self_position", "final_ball_dist", "final_stamina", "value") - ACTION_TYPE_FIELD_NUMBER: _ClassVar[int] - TURN_STEPS_FIELD_NUMBER: _ClassVar[int] - TURN_ANGLE_FIELD_NUMBER: _ClassVar[int] - DASH_STEPS_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_FIELD_NUMBER: _ClassVar[int] - DASH_DIR_FIELD_NUMBER: _ClassVar[int] - FINAL_SELF_POSITION_FIELD_NUMBER: _ClassVar[int] - FINAL_BALL_DIST_FIELD_NUMBER: _ClassVar[int] - FINAL_STAMINA_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - action_type: InterceptActionType - turn_steps: int - turn_angle: float - dash_steps: int - dash_power: float - dash_dir: float - final_self_position: RpcVector2D - final_ball_dist: float - final_stamina: float - value: float - def __init__(self, action_type: _Optional[_Union[InterceptActionType, str]] = ..., turn_steps: _Optional[int] = ..., turn_angle: _Optional[float] = ..., dash_steps: _Optional[int] = ..., dash_power: _Optional[float] = ..., dash_dir: _Optional[float] = ..., final_self_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., final_ball_dist: _Optional[float] = ..., final_stamina: _Optional[float] = ..., value: _Optional[float] = ...) -> None: ... - -class InterceptTable(_message.Message): - __slots__ = ("self_reach_steps", "first_teammate_reach_steps", "second_teammate_reach_steps", "first_opponent_reach_steps", "second_opponent_reach_steps", "first_teammate_id", "second_teammate_id", "first_opponent_id", "second_opponent_id", "self_intercept_info") - SELF_REACH_STEPS_FIELD_NUMBER: _ClassVar[int] - FIRST_TEAMMATE_REACH_STEPS_FIELD_NUMBER: _ClassVar[int] - SECOND_TEAMMATE_REACH_STEPS_FIELD_NUMBER: _ClassVar[int] - FIRST_OPPONENT_REACH_STEPS_FIELD_NUMBER: _ClassVar[int] - SECOND_OPPONENT_REACH_STEPS_FIELD_NUMBER: _ClassVar[int] - FIRST_TEAMMATE_ID_FIELD_NUMBER: _ClassVar[int] - SECOND_TEAMMATE_ID_FIELD_NUMBER: _ClassVar[int] - FIRST_OPPONENT_ID_FIELD_NUMBER: _ClassVar[int] - SECOND_OPPONENT_ID_FIELD_NUMBER: _ClassVar[int] - SELF_INTERCEPT_INFO_FIELD_NUMBER: _ClassVar[int] - self_reach_steps: int - first_teammate_reach_steps: int - second_teammate_reach_steps: int - first_opponent_reach_steps: int - second_opponent_reach_steps: int - first_teammate_id: int - second_teammate_id: int - first_opponent_id: int - second_opponent_id: int - self_intercept_info: _containers.RepeatedCompositeFieldContainer[InterceptInfo] - def __init__(self, self_reach_steps: _Optional[int] = ..., first_teammate_reach_steps: _Optional[int] = ..., second_teammate_reach_steps: _Optional[int] = ..., first_opponent_reach_steps: _Optional[int] = ..., second_opponent_reach_steps: _Optional[int] = ..., first_teammate_id: _Optional[int] = ..., second_teammate_id: _Optional[int] = ..., first_opponent_id: _Optional[int] = ..., second_opponent_id: _Optional[int] = ..., self_intercept_info: _Optional[_Iterable[_Union[InterceptInfo, _Mapping]]] = ...) -> None: ... - -class WorldModel(_message.Message): - __slots__ = ("intercept_table", "our_team_name", "their_team_name", "our_side", "last_set_play_start_time", "self", "ball", "teammates", "opponents", "unknowns", "our_players_dict", "their_players_dict", "our_goalie_uniform_number", "their_goalie_uniform_number", "offside_line_x", "ofside_line_x_count", "kickable_teammate_id", "kickable_opponent_id", "last_kick_side", "last_kicker_uniform_number", "cycle", "game_mode_type", "left_team_score", "right_team_score", "is_our_set_play", "is_their_set_play", "stoped_cycle", "our_team_score", "their_team_score", "is_penalty_kick_mode", "helios_home_positions", "our_defense_line_x", "their_defense_line_x", "our_defense_player_line_x", "their_defense_player_line_x", "kickable_teammate_existance", "kickable_opponent_existance", "penalty_kick_state", "see_time", "time_stopped", "set_play_count", "game_mode_side") - class OurPlayersDictEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: int - value: Player - def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Player, _Mapping]] = ...) -> None: ... - class TheirPlayersDictEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: int - value: Player - def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Player, _Mapping]] = ...) -> None: ... - class HeliosHomePositionsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: int - value: RpcVector2D - def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - INTERCEPT_TABLE_FIELD_NUMBER: _ClassVar[int] - OUR_TEAM_NAME_FIELD_NUMBER: _ClassVar[int] - THEIR_TEAM_NAME_FIELD_NUMBER: _ClassVar[int] - OUR_SIDE_FIELD_NUMBER: _ClassVar[int] - LAST_SET_PLAY_START_TIME_FIELD_NUMBER: _ClassVar[int] - SELF_FIELD_NUMBER: _ClassVar[int] - BALL_FIELD_NUMBER: _ClassVar[int] - TEAMMATES_FIELD_NUMBER: _ClassVar[int] - OPPONENTS_FIELD_NUMBER: _ClassVar[int] - UNKNOWNS_FIELD_NUMBER: _ClassVar[int] - OUR_PLAYERS_DICT_FIELD_NUMBER: _ClassVar[int] - THEIR_PLAYERS_DICT_FIELD_NUMBER: _ClassVar[int] - OUR_GOALIE_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - THEIR_GOALIE_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - OFFSIDE_LINE_X_FIELD_NUMBER: _ClassVar[int] - OFSIDE_LINE_X_COUNT_FIELD_NUMBER: _ClassVar[int] - KICKABLE_TEAMMATE_ID_FIELD_NUMBER: _ClassVar[int] - KICKABLE_OPPONENT_ID_FIELD_NUMBER: _ClassVar[int] - LAST_KICK_SIDE_FIELD_NUMBER: _ClassVar[int] - LAST_KICKER_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - CYCLE_FIELD_NUMBER: _ClassVar[int] - GAME_MODE_TYPE_FIELD_NUMBER: _ClassVar[int] - LEFT_TEAM_SCORE_FIELD_NUMBER: _ClassVar[int] - RIGHT_TEAM_SCORE_FIELD_NUMBER: _ClassVar[int] - IS_OUR_SET_PLAY_FIELD_NUMBER: _ClassVar[int] - IS_THEIR_SET_PLAY_FIELD_NUMBER: _ClassVar[int] - STOPED_CYCLE_FIELD_NUMBER: _ClassVar[int] - OUR_TEAM_SCORE_FIELD_NUMBER: _ClassVar[int] - THEIR_TEAM_SCORE_FIELD_NUMBER: _ClassVar[int] - IS_PENALTY_KICK_MODE_FIELD_NUMBER: _ClassVar[int] - HELIOS_HOME_POSITIONS_FIELD_NUMBER: _ClassVar[int] - OUR_DEFENSE_LINE_X_FIELD_NUMBER: _ClassVar[int] - THEIR_DEFENSE_LINE_X_FIELD_NUMBER: _ClassVar[int] - OUR_DEFENSE_PLAYER_LINE_X_FIELD_NUMBER: _ClassVar[int] - THEIR_DEFENSE_PLAYER_LINE_X_FIELD_NUMBER: _ClassVar[int] - KICKABLE_TEAMMATE_EXISTANCE_FIELD_NUMBER: _ClassVar[int] - KICKABLE_OPPONENT_EXISTANCE_FIELD_NUMBER: _ClassVar[int] - PENALTY_KICK_STATE_FIELD_NUMBER: _ClassVar[int] - SEE_TIME_FIELD_NUMBER: _ClassVar[int] - TIME_STOPPED_FIELD_NUMBER: _ClassVar[int] - SET_PLAY_COUNT_FIELD_NUMBER: _ClassVar[int] - GAME_MODE_SIDE_FIELD_NUMBER: _ClassVar[int] - intercept_table: InterceptTable - our_team_name: str - their_team_name: str - our_side: Side - last_set_play_start_time: int - self: Self - ball: Ball - teammates: _containers.RepeatedCompositeFieldContainer[Player] - opponents: _containers.RepeatedCompositeFieldContainer[Player] - unknowns: _containers.RepeatedCompositeFieldContainer[Player] - our_players_dict: _containers.MessageMap[int, Player] - their_players_dict: _containers.MessageMap[int, Player] - our_goalie_uniform_number: int - their_goalie_uniform_number: int - offside_line_x: float - ofside_line_x_count: int - kickable_teammate_id: int - kickable_opponent_id: int - last_kick_side: Side - last_kicker_uniform_number: int - cycle: int - game_mode_type: GameModeType - left_team_score: int - right_team_score: int - is_our_set_play: bool - is_their_set_play: bool - stoped_cycle: int - our_team_score: int - their_team_score: int - is_penalty_kick_mode: bool - helios_home_positions: _containers.MessageMap[int, RpcVector2D] - our_defense_line_x: float - their_defense_line_x: float - our_defense_player_line_x: float - their_defense_player_line_x: float - kickable_teammate_existance: bool - kickable_opponent_existance: bool - penalty_kick_state: PenaltyKickState - see_time: int - time_stopped: int - set_play_count: int - game_mode_side: Side - def __init__(self, intercept_table: _Optional[_Union[InterceptTable, _Mapping]] = ..., our_team_name: _Optional[str] = ..., their_team_name: _Optional[str] = ..., our_side: _Optional[_Union[Side, str]] = ..., last_set_play_start_time: _Optional[int] = ..., self: _Optional[_Union[Self, _Mapping]] = ..., ball: _Optional[_Union[Ball, _Mapping]] = ..., teammates: _Optional[_Iterable[_Union[Player, _Mapping]]] = ..., opponents: _Optional[_Iterable[_Union[Player, _Mapping]]] = ..., unknowns: _Optional[_Iterable[_Union[Player, _Mapping]]] = ..., our_players_dict: _Optional[_Mapping[int, Player]] = ..., their_players_dict: _Optional[_Mapping[int, Player]] = ..., our_goalie_uniform_number: _Optional[int] = ..., their_goalie_uniform_number: _Optional[int] = ..., offside_line_x: _Optional[float] = ..., ofside_line_x_count: _Optional[int] = ..., kickable_teammate_id: _Optional[int] = ..., kickable_opponent_id: _Optional[int] = ..., last_kick_side: _Optional[_Union[Side, str]] = ..., last_kicker_uniform_number: _Optional[int] = ..., cycle: _Optional[int] = ..., game_mode_type: _Optional[_Union[GameModeType, str]] = ..., left_team_score: _Optional[int] = ..., right_team_score: _Optional[int] = ..., is_our_set_play: bool = ..., is_their_set_play: bool = ..., stoped_cycle: _Optional[int] = ..., our_team_score: _Optional[int] = ..., their_team_score: _Optional[int] = ..., is_penalty_kick_mode: bool = ..., helios_home_positions: _Optional[_Mapping[int, RpcVector2D]] = ..., our_defense_line_x: _Optional[float] = ..., their_defense_line_x: _Optional[float] = ..., our_defense_player_line_x: _Optional[float] = ..., their_defense_player_line_x: _Optional[float] = ..., kickable_teammate_existance: bool = ..., kickable_opponent_existance: bool = ..., penalty_kick_state: _Optional[_Union[PenaltyKickState, _Mapping]] = ..., see_time: _Optional[int] = ..., time_stopped: _Optional[int] = ..., set_play_count: _Optional[int] = ..., game_mode_side: _Optional[_Union[Side, str]] = ...) -> None: ... - -class State(_message.Message): - __slots__ = ("register_response", "world_model", "full_world_model", "need_preprocess") - REGISTER_RESPONSE_FIELD_NUMBER: _ClassVar[int] - WORLD_MODEL_FIELD_NUMBER: _ClassVar[int] - FULL_WORLD_MODEL_FIELD_NUMBER: _ClassVar[int] - NEED_PREPROCESS_FIELD_NUMBER: _ClassVar[int] - register_response: RegisterResponse - world_model: WorldModel - full_world_model: WorldModel - need_preprocess: bool - def __init__(self, register_response: _Optional[_Union[RegisterResponse, _Mapping]] = ..., world_model: _Optional[_Union[WorldModel, _Mapping]] = ..., full_world_model: _Optional[_Union[WorldModel, _Mapping]] = ..., need_preprocess: bool = ...) -> None: ... - -class InitMessage(_message.Message): - __slots__ = ("register_response", "debug_mode") - REGISTER_RESPONSE_FIELD_NUMBER: _ClassVar[int] - DEBUG_MODE_FIELD_NUMBER: _ClassVar[int] - register_response: RegisterResponse - debug_mode: bool - def __init__(self, register_response: _Optional[_Union[RegisterResponse, _Mapping]] = ..., debug_mode: bool = ...) -> None: ... - -class Dash(_message.Message): - __slots__ = ("power", "relative_direction") - POWER_FIELD_NUMBER: _ClassVar[int] - RELATIVE_DIRECTION_FIELD_NUMBER: _ClassVar[int] - power: float - relative_direction: float - def __init__(self, power: _Optional[float] = ..., relative_direction: _Optional[float] = ...) -> None: ... - -class Turn(_message.Message): - __slots__ = ("relative_direction",) - RELATIVE_DIRECTION_FIELD_NUMBER: _ClassVar[int] - relative_direction: float - def __init__(self, relative_direction: _Optional[float] = ...) -> None: ... - -class Kick(_message.Message): - __slots__ = ("power", "relative_direction") - POWER_FIELD_NUMBER: _ClassVar[int] - RELATIVE_DIRECTION_FIELD_NUMBER: _ClassVar[int] - power: float - relative_direction: float - def __init__(self, power: _Optional[float] = ..., relative_direction: _Optional[float] = ...) -> None: ... - -class Tackle(_message.Message): - __slots__ = ("power_or_dir", "foul") - POWER_OR_DIR_FIELD_NUMBER: _ClassVar[int] - FOUL_FIELD_NUMBER: _ClassVar[int] - power_or_dir: float - foul: bool - def __init__(self, power_or_dir: _Optional[float] = ..., foul: bool = ...) -> None: ... - -class Catch(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Move(_message.Message): - __slots__ = ("x", "y") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - x: float - y: float - def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ...) -> None: ... - -class TurnNeck(_message.Message): - __slots__ = ("moment",) - MOMENT_FIELD_NUMBER: _ClassVar[int] - moment: float - def __init__(self, moment: _Optional[float] = ...) -> None: ... - -class ChangeView(_message.Message): - __slots__ = ("view_width",) - VIEW_WIDTH_FIELD_NUMBER: _ClassVar[int] - view_width: ViewWidth - def __init__(self, view_width: _Optional[_Union[ViewWidth, str]] = ...) -> None: ... - -class BallMessage(_message.Message): - __slots__ = ("ball_position", "ball_velocity") - BALL_POSITION_FIELD_NUMBER: _ClassVar[int] - BALL_VELOCITY_FIELD_NUMBER: _ClassVar[int] - ball_position: RpcVector2D - ball_velocity: RpcVector2D - def __init__(self, ball_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class PassMessage(_message.Message): - __slots__ = ("receiver_uniform_number", "receiver_point", "ball_position", "ball_velocity") - RECEIVER_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - RECEIVER_POINT_FIELD_NUMBER: _ClassVar[int] - BALL_POSITION_FIELD_NUMBER: _ClassVar[int] - BALL_VELOCITY_FIELD_NUMBER: _ClassVar[int] - receiver_uniform_number: int - receiver_point: RpcVector2D - ball_position: RpcVector2D - ball_velocity: RpcVector2D - def __init__(self, receiver_uniform_number: _Optional[int] = ..., receiver_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., ball_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class InterceptMessage(_message.Message): - __slots__ = ("our", "uniform_number", "cycle") - OUR_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - CYCLE_FIELD_NUMBER: _ClassVar[int] - our: bool - uniform_number: int - cycle: int - def __init__(self, our: bool = ..., uniform_number: _Optional[int] = ..., cycle: _Optional[int] = ...) -> None: ... - -class GoalieMessage(_message.Message): - __slots__ = ("goalie_uniform_number", "goalie_position", "goalie_body_direction") - GOALIE_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - GOALIE_POSITION_FIELD_NUMBER: _ClassVar[int] - GOALIE_BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - goalie_uniform_number: int - goalie_position: RpcVector2D - goalie_body_direction: float - def __init__(self, goalie_uniform_number: _Optional[int] = ..., goalie_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., goalie_body_direction: _Optional[float] = ...) -> None: ... - -class GoalieAndPlayerMessage(_message.Message): - __slots__ = ("goalie_uniform_number", "goalie_position", "goalie_body_direction", "player_uniform_number", "player_position") - GOALIE_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - GOALIE_POSITION_FIELD_NUMBER: _ClassVar[int] - GOALIE_BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - PLAYER_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - PLAYER_POSITION_FIELD_NUMBER: _ClassVar[int] - goalie_uniform_number: int - goalie_position: RpcVector2D - goalie_body_direction: float - player_uniform_number: int - player_position: RpcVector2D - def __init__(self, goalie_uniform_number: _Optional[int] = ..., goalie_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., goalie_body_direction: _Optional[float] = ..., player_uniform_number: _Optional[int] = ..., player_position: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class OffsideLineMessage(_message.Message): - __slots__ = ("offside_line_x",) - OFFSIDE_LINE_X_FIELD_NUMBER: _ClassVar[int] - offside_line_x: float - def __init__(self, offside_line_x: _Optional[float] = ...) -> None: ... - -class DefenseLineMessage(_message.Message): - __slots__ = ("defense_line_x",) - DEFENSE_LINE_X_FIELD_NUMBER: _ClassVar[int] - defense_line_x: float - def __init__(self, defense_line_x: _Optional[float] = ...) -> None: ... - -class WaitRequestMessage(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class SetplayMessage(_message.Message): - __slots__ = ("wait_step",) - WAIT_STEP_FIELD_NUMBER: _ClassVar[int] - wait_step: int - def __init__(self, wait_step: _Optional[int] = ...) -> None: ... - -class PassRequestMessage(_message.Message): - __slots__ = ("target_point",) - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class StaminaMessage(_message.Message): - __slots__ = ("stamina",) - STAMINA_FIELD_NUMBER: _ClassVar[int] - stamina: float - def __init__(self, stamina: _Optional[float] = ...) -> None: ... - -class RecoveryMessage(_message.Message): - __slots__ = ("recovery",) - RECOVERY_FIELD_NUMBER: _ClassVar[int] - recovery: float - def __init__(self, recovery: _Optional[float] = ...) -> None: ... - -class StaminaCapacityMessage(_message.Message): - __slots__ = ("stamina_capacity",) - STAMINA_CAPACITY_FIELD_NUMBER: _ClassVar[int] - stamina_capacity: float - def __init__(self, stamina_capacity: _Optional[float] = ...) -> None: ... - -class DribbleMessage(_message.Message): - __slots__ = ("target_point", "queue_count") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - QUEUE_COUNT_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - queue_count: int - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., queue_count: _Optional[int] = ...) -> None: ... - -class BallGoalieMessage(_message.Message): - __slots__ = ("ball_position", "ball_velocity", "goalie_position", "goalie_body_direction") - BALL_POSITION_FIELD_NUMBER: _ClassVar[int] - BALL_VELOCITY_FIELD_NUMBER: _ClassVar[int] - GOALIE_POSITION_FIELD_NUMBER: _ClassVar[int] - GOALIE_BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - ball_position: RpcVector2D - ball_velocity: RpcVector2D - goalie_position: RpcVector2D - goalie_body_direction: float - def __init__(self, ball_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., goalie_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., goalie_body_direction: _Optional[float] = ...) -> None: ... - -class OnePlayerMessage(_message.Message): - __slots__ = ("uniform_number", "position") - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - POSITION_FIELD_NUMBER: _ClassVar[int] - uniform_number: int - position: RpcVector2D - def __init__(self, uniform_number: _Optional[int] = ..., position: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class TwoPlayerMessage(_message.Message): - __slots__ = ("first_uniform_number", "first_position", "second_uniform_number", "second_position") - FIRST_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - FIRST_POSITION_FIELD_NUMBER: _ClassVar[int] - SECOND_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - SECOND_POSITION_FIELD_NUMBER: _ClassVar[int] - first_uniform_number: int - first_position: RpcVector2D - second_uniform_number: int - second_position: RpcVector2D - def __init__(self, first_uniform_number: _Optional[int] = ..., first_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., second_uniform_number: _Optional[int] = ..., second_position: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class ThreePlayerMessage(_message.Message): - __slots__ = ("first_uniform_number", "first_position", "second_uniform_number", "second_position", "third_uniform_number", "third_position") - FIRST_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - FIRST_POSITION_FIELD_NUMBER: _ClassVar[int] - SECOND_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - SECOND_POSITION_FIELD_NUMBER: _ClassVar[int] - THIRD_UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - THIRD_POSITION_FIELD_NUMBER: _ClassVar[int] - first_uniform_number: int - first_position: RpcVector2D - second_uniform_number: int - second_position: RpcVector2D - third_uniform_number: int - third_position: RpcVector2D - def __init__(self, first_uniform_number: _Optional[int] = ..., first_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., second_uniform_number: _Optional[int] = ..., second_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., third_uniform_number: _Optional[int] = ..., third_position: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class SelfMessage(_message.Message): - __slots__ = ("self_position", "self_body_direction", "self_stamina") - SELF_POSITION_FIELD_NUMBER: _ClassVar[int] - SELF_BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - SELF_STAMINA_FIELD_NUMBER: _ClassVar[int] - self_position: RpcVector2D - self_body_direction: float - self_stamina: float - def __init__(self, self_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., self_body_direction: _Optional[float] = ..., self_stamina: _Optional[float] = ...) -> None: ... - -class TeammateMessage(_message.Message): - __slots__ = ("uniform_number", "position", "body_direction") - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - POSITION_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - uniform_number: int - position: RpcVector2D - body_direction: float - def __init__(self, uniform_number: _Optional[int] = ..., position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., body_direction: _Optional[float] = ...) -> None: ... - -class OpponentMessage(_message.Message): - __slots__ = ("uniform_number", "position", "body_direction") - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - POSITION_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - uniform_number: int - position: RpcVector2D - body_direction: float - def __init__(self, uniform_number: _Optional[int] = ..., position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., body_direction: _Optional[float] = ...) -> None: ... - -class BallPlayerMessage(_message.Message): - __slots__ = ("ball_position", "ball_velocity", "uniform_number", "player_position", "body_direction") - BALL_POSITION_FIELD_NUMBER: _ClassVar[int] - BALL_VELOCITY_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - PLAYER_POSITION_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - ball_position: RpcVector2D - ball_velocity: RpcVector2D - uniform_number: int - player_position: RpcVector2D - body_direction: float - def __init__(self, ball_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., uniform_number: _Optional[int] = ..., player_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., body_direction: _Optional[float] = ...) -> None: ... - -class Say(_message.Message): - __slots__ = ("ball_message", "pass_message", "intercept_message", "goalie_message", "goalie_and_player_message", "offside_line_message", "defense_line_message", "wait_request_message", "setplay_message", "pass_request_message", "stamina_message", "recovery_message", "stamina_capacity_message", "dribble_message", "ball_goalie_message", "one_player_message", "two_player_message", "three_player_message", "self_message", "teammate_message", "opponent_message", "ball_player_message") - BALL_MESSAGE_FIELD_NUMBER: _ClassVar[int] - PASS_MESSAGE_FIELD_NUMBER: _ClassVar[int] - INTERCEPT_MESSAGE_FIELD_NUMBER: _ClassVar[int] - GOALIE_MESSAGE_FIELD_NUMBER: _ClassVar[int] - GOALIE_AND_PLAYER_MESSAGE_FIELD_NUMBER: _ClassVar[int] - OFFSIDE_LINE_MESSAGE_FIELD_NUMBER: _ClassVar[int] - DEFENSE_LINE_MESSAGE_FIELD_NUMBER: _ClassVar[int] - WAIT_REQUEST_MESSAGE_FIELD_NUMBER: _ClassVar[int] - SETPLAY_MESSAGE_FIELD_NUMBER: _ClassVar[int] - PASS_REQUEST_MESSAGE_FIELD_NUMBER: _ClassVar[int] - STAMINA_MESSAGE_FIELD_NUMBER: _ClassVar[int] - RECOVERY_MESSAGE_FIELD_NUMBER: _ClassVar[int] - STAMINA_CAPACITY_MESSAGE_FIELD_NUMBER: _ClassVar[int] - DRIBBLE_MESSAGE_FIELD_NUMBER: _ClassVar[int] - BALL_GOALIE_MESSAGE_FIELD_NUMBER: _ClassVar[int] - ONE_PLAYER_MESSAGE_FIELD_NUMBER: _ClassVar[int] - TWO_PLAYER_MESSAGE_FIELD_NUMBER: _ClassVar[int] - THREE_PLAYER_MESSAGE_FIELD_NUMBER: _ClassVar[int] - SELF_MESSAGE_FIELD_NUMBER: _ClassVar[int] - TEAMMATE_MESSAGE_FIELD_NUMBER: _ClassVar[int] - OPPONENT_MESSAGE_FIELD_NUMBER: _ClassVar[int] - BALL_PLAYER_MESSAGE_FIELD_NUMBER: _ClassVar[int] - ball_message: BallMessage - pass_message: PassMessage - intercept_message: InterceptMessage - goalie_message: GoalieMessage - goalie_and_player_message: GoalieAndPlayerMessage - offside_line_message: OffsideLineMessage - defense_line_message: DefenseLineMessage - wait_request_message: WaitRequestMessage - setplay_message: SetplayMessage - pass_request_message: PassRequestMessage - stamina_message: StaminaMessage - recovery_message: RecoveryMessage - stamina_capacity_message: StaminaCapacityMessage - dribble_message: DribbleMessage - ball_goalie_message: BallGoalieMessage - one_player_message: OnePlayerMessage - two_player_message: TwoPlayerMessage - three_player_message: ThreePlayerMessage - self_message: SelfMessage - teammate_message: TeammateMessage - opponent_message: OpponentMessage - ball_player_message: BallPlayerMessage - def __init__(self, ball_message: _Optional[_Union[BallMessage, _Mapping]] = ..., pass_message: _Optional[_Union[PassMessage, _Mapping]] = ..., intercept_message: _Optional[_Union[InterceptMessage, _Mapping]] = ..., goalie_message: _Optional[_Union[GoalieMessage, _Mapping]] = ..., goalie_and_player_message: _Optional[_Union[GoalieAndPlayerMessage, _Mapping]] = ..., offside_line_message: _Optional[_Union[OffsideLineMessage, _Mapping]] = ..., defense_line_message: _Optional[_Union[DefenseLineMessage, _Mapping]] = ..., wait_request_message: _Optional[_Union[WaitRequestMessage, _Mapping]] = ..., setplay_message: _Optional[_Union[SetplayMessage, _Mapping]] = ..., pass_request_message: _Optional[_Union[PassRequestMessage, _Mapping]] = ..., stamina_message: _Optional[_Union[StaminaMessage, _Mapping]] = ..., recovery_message: _Optional[_Union[RecoveryMessage, _Mapping]] = ..., stamina_capacity_message: _Optional[_Union[StaminaCapacityMessage, _Mapping]] = ..., dribble_message: _Optional[_Union[DribbleMessage, _Mapping]] = ..., ball_goalie_message: _Optional[_Union[BallGoalieMessage, _Mapping]] = ..., one_player_message: _Optional[_Union[OnePlayerMessage, _Mapping]] = ..., two_player_message: _Optional[_Union[TwoPlayerMessage, _Mapping]] = ..., three_player_message: _Optional[_Union[ThreePlayerMessage, _Mapping]] = ..., self_message: _Optional[_Union[SelfMessage, _Mapping]] = ..., teammate_message: _Optional[_Union[TeammateMessage, _Mapping]] = ..., opponent_message: _Optional[_Union[OpponentMessage, _Mapping]] = ..., ball_player_message: _Optional[_Union[BallPlayerMessage, _Mapping]] = ...) -> None: ... - -class PointTo(_message.Message): - __slots__ = ("x", "y") - X_FIELD_NUMBER: _ClassVar[int] - Y_FIELD_NUMBER: _ClassVar[int] - x: float - y: float - def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ...) -> None: ... - -class PointToOf(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class AttentionTo(_message.Message): - __slots__ = ("side", "unum") - SIDE_FIELD_NUMBER: _ClassVar[int] - UNUM_FIELD_NUMBER: _ClassVar[int] - side: Side - unum: int - def __init__(self, side: _Optional[_Union[Side, str]] = ..., unum: _Optional[int] = ...) -> None: ... - -class AttentionToOf(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class AddText(_message.Message): - __slots__ = ("level", "message") - LEVEL_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - message: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., message: _Optional[str] = ...) -> None: ... - -class AddPoint(_message.Message): - __slots__ = ("level", "point", "color") - LEVEL_FIELD_NUMBER: _ClassVar[int] - POINT_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - point: RpcVector2D - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., color: _Optional[str] = ...) -> None: ... - -class AddLine(_message.Message): - __slots__ = ("level", "start", "end", "color") - LEVEL_FIELD_NUMBER: _ClassVar[int] - START_FIELD_NUMBER: _ClassVar[int] - END_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - start: RpcVector2D - end: RpcVector2D - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., start: _Optional[_Union[RpcVector2D, _Mapping]] = ..., end: _Optional[_Union[RpcVector2D, _Mapping]] = ..., color: _Optional[str] = ...) -> None: ... - -class AddArc(_message.Message): - __slots__ = ("level", "center", "radius", "start_angle", "span_angel", "color") - LEVEL_FIELD_NUMBER: _ClassVar[int] - CENTER_FIELD_NUMBER: _ClassVar[int] - RADIUS_FIELD_NUMBER: _ClassVar[int] - START_ANGLE_FIELD_NUMBER: _ClassVar[int] - SPAN_ANGEL_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - center: RpcVector2D - radius: float - start_angle: float - span_angel: float - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., center: _Optional[_Union[RpcVector2D, _Mapping]] = ..., radius: _Optional[float] = ..., start_angle: _Optional[float] = ..., span_angel: _Optional[float] = ..., color: _Optional[str] = ...) -> None: ... - -class AddCircle(_message.Message): - __slots__ = ("level", "center", "radius", "color", "fill") - LEVEL_FIELD_NUMBER: _ClassVar[int] - CENTER_FIELD_NUMBER: _ClassVar[int] - RADIUS_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - FILL_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - center: RpcVector2D - radius: float - color: str - fill: bool - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., center: _Optional[_Union[RpcVector2D, _Mapping]] = ..., radius: _Optional[float] = ..., color: _Optional[str] = ..., fill: bool = ...) -> None: ... - -class AddTriangle(_message.Message): - __slots__ = ("level", "point1", "point2", "point3", "color", "fill") - LEVEL_FIELD_NUMBER: _ClassVar[int] - POINT1_FIELD_NUMBER: _ClassVar[int] - POINT2_FIELD_NUMBER: _ClassVar[int] - POINT3_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - FILL_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - point1: RpcVector2D - point2: RpcVector2D - point3: RpcVector2D - color: str - fill: bool - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., point1: _Optional[_Union[RpcVector2D, _Mapping]] = ..., point2: _Optional[_Union[RpcVector2D, _Mapping]] = ..., point3: _Optional[_Union[RpcVector2D, _Mapping]] = ..., color: _Optional[str] = ..., fill: bool = ...) -> None: ... - -class AddRectangle(_message.Message): - __slots__ = ("level", "left", "top", "length", "width", "color", "fill") - LEVEL_FIELD_NUMBER: _ClassVar[int] - LEFT_FIELD_NUMBER: _ClassVar[int] - TOP_FIELD_NUMBER: _ClassVar[int] - LENGTH_FIELD_NUMBER: _ClassVar[int] - WIDTH_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - FILL_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - left: float - top: float - length: float - width: float - color: str - fill: bool - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., left: _Optional[float] = ..., top: _Optional[float] = ..., length: _Optional[float] = ..., width: _Optional[float] = ..., color: _Optional[str] = ..., fill: bool = ...) -> None: ... - -class AddSector(_message.Message): - __slots__ = ("level", "center", "min_radius", "max_radius", "start_angle", "span_angel", "color", "fill") - LEVEL_FIELD_NUMBER: _ClassVar[int] - CENTER_FIELD_NUMBER: _ClassVar[int] - MIN_RADIUS_FIELD_NUMBER: _ClassVar[int] - MAX_RADIUS_FIELD_NUMBER: _ClassVar[int] - START_ANGLE_FIELD_NUMBER: _ClassVar[int] - SPAN_ANGEL_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - FILL_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - center: RpcVector2D - min_radius: float - max_radius: float - start_angle: float - span_angel: float - color: str - fill: bool - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., center: _Optional[_Union[RpcVector2D, _Mapping]] = ..., min_radius: _Optional[float] = ..., max_radius: _Optional[float] = ..., start_angle: _Optional[float] = ..., span_angel: _Optional[float] = ..., color: _Optional[str] = ..., fill: bool = ...) -> None: ... - -class AddMessage(_message.Message): - __slots__ = ("level", "position", "message", "color") - LEVEL_FIELD_NUMBER: _ClassVar[int] - POSITION_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FIELD_NUMBER: _ClassVar[int] - COLOR_FIELD_NUMBER: _ClassVar[int] - level: LoggerLevel - position: RpcVector2D - message: str - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., message: _Optional[str] = ..., color: _Optional[str] = ...) -> None: ... - -class Log(_message.Message): - __slots__ = ("add_text", "add_point", "add_line", "add_arc", "add_circle", "add_triangle", "add_rectangle", "add_sector", "add_message") - ADD_TEXT_FIELD_NUMBER: _ClassVar[int] - ADD_POINT_FIELD_NUMBER: _ClassVar[int] - ADD_LINE_FIELD_NUMBER: _ClassVar[int] - ADD_ARC_FIELD_NUMBER: _ClassVar[int] - ADD_CIRCLE_FIELD_NUMBER: _ClassVar[int] - ADD_TRIANGLE_FIELD_NUMBER: _ClassVar[int] - ADD_RECTANGLE_FIELD_NUMBER: _ClassVar[int] - ADD_SECTOR_FIELD_NUMBER: _ClassVar[int] - ADD_MESSAGE_FIELD_NUMBER: _ClassVar[int] - add_text: AddText - add_point: AddPoint - add_line: AddLine - add_arc: AddArc - add_circle: AddCircle - add_triangle: AddTriangle - add_rectangle: AddRectangle - add_sector: AddSector - add_message: AddMessage - def __init__(self, add_text: _Optional[_Union[AddText, _Mapping]] = ..., add_point: _Optional[_Union[AddPoint, _Mapping]] = ..., add_line: _Optional[_Union[AddLine, _Mapping]] = ..., add_arc: _Optional[_Union[AddArc, _Mapping]] = ..., add_circle: _Optional[_Union[AddCircle, _Mapping]] = ..., add_triangle: _Optional[_Union[AddTriangle, _Mapping]] = ..., add_rectangle: _Optional[_Union[AddRectangle, _Mapping]] = ..., add_sector: _Optional[_Union[AddSector, _Mapping]] = ..., add_message: _Optional[_Union[AddMessage, _Mapping]] = ...) -> None: ... - -class DebugClient(_message.Message): - __slots__ = ("message",) - MESSAGE_FIELD_NUMBER: _ClassVar[int] - message: str - def __init__(self, message: _Optional[str] = ...) -> None: ... - -class Body_GoToPoint(_message.Message): - __slots__ = ("target_point", "distance_threshold", "max_dash_power") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - DISTANCE_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - MAX_DASH_POWER_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - distance_threshold: float - max_dash_power: float - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., distance_threshold: _Optional[float] = ..., max_dash_power: _Optional[float] = ...) -> None: ... - -class Body_SmartKick(_message.Message): - __slots__ = ("target_point", "first_speed", "first_speed_threshold", "max_steps") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - FIRST_SPEED_FIELD_NUMBER: _ClassVar[int] - FIRST_SPEED_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - MAX_STEPS_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - first_speed: float - first_speed_threshold: float - max_steps: int - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., first_speed: _Optional[float] = ..., first_speed_threshold: _Optional[float] = ..., max_steps: _Optional[int] = ...) -> None: ... - -class Bhv_BeforeKickOff(_message.Message): - __slots__ = ("point",) - POINT_FIELD_NUMBER: _ClassVar[int] - point: RpcVector2D - def __init__(self, point: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class Bhv_BodyNeckToBall(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Bhv_BodyNeckToPoint(_message.Message): - __slots__ = ("point",) - POINT_FIELD_NUMBER: _ClassVar[int] - point: RpcVector2D - def __init__(self, point: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class Bhv_Emergency(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Bhv_GoToPointLookBall(_message.Message): - __slots__ = ("target_point", "distance_threshold", "max_dash_power") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - DISTANCE_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - MAX_DASH_POWER_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - distance_threshold: float - max_dash_power: float - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., distance_threshold: _Optional[float] = ..., max_dash_power: _Optional[float] = ...) -> None: ... - -class Bhv_NeckBodyToBall(_message.Message): - __slots__ = ("angle_buf",) - ANGLE_BUF_FIELD_NUMBER: _ClassVar[int] - angle_buf: float - def __init__(self, angle_buf: _Optional[float] = ...) -> None: ... - -class Bhv_NeckBodyToPoint(_message.Message): - __slots__ = ("point", "angle_buf") - POINT_FIELD_NUMBER: _ClassVar[int] - ANGLE_BUF_FIELD_NUMBER: _ClassVar[int] - point: RpcVector2D - angle_buf: float - def __init__(self, point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., angle_buf: _Optional[float] = ...) -> None: ... - -class Bhv_ScanField(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Body_AdvanceBall(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Body_ClearBall(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Body_Dribble(_message.Message): - __slots__ = ("target_point", "distance_threshold", "dash_power", "dash_count", "dodge") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - DISTANCE_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_FIELD_NUMBER: _ClassVar[int] - DASH_COUNT_FIELD_NUMBER: _ClassVar[int] - DODGE_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - distance_threshold: float - dash_power: float - dash_count: int - dodge: bool - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., distance_threshold: _Optional[float] = ..., dash_power: _Optional[float] = ..., dash_count: _Optional[int] = ..., dodge: bool = ...) -> None: ... - -class Body_GoToPointDodge(_message.Message): - __slots__ = ("target_point", "dash_power") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - dash_power: float - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., dash_power: _Optional[float] = ...) -> None: ... - -class Body_HoldBall(_message.Message): - __slots__ = ("do_turn", "turn_target_point", "kick_target_point") - DO_TURN_FIELD_NUMBER: _ClassVar[int] - TURN_TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - KICK_TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - do_turn: bool - turn_target_point: RpcVector2D - kick_target_point: RpcVector2D - def __init__(self, do_turn: bool = ..., turn_target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., kick_target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class Body_Intercept(_message.Message): - __slots__ = ("save_recovery", "face_point") - SAVE_RECOVERY_FIELD_NUMBER: _ClassVar[int] - FACE_POINT_FIELD_NUMBER: _ClassVar[int] - save_recovery: bool - face_point: RpcVector2D - def __init__(self, save_recovery: bool = ..., face_point: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class Body_KickOneStep(_message.Message): - __slots__ = ("target_point", "first_speed", "force_mode") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - FIRST_SPEED_FIELD_NUMBER: _ClassVar[int] - FORCE_MODE_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - first_speed: float - force_mode: bool - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., first_speed: _Optional[float] = ..., force_mode: bool = ...) -> None: ... - -class Body_StopBall(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Body_StopDash(_message.Message): - __slots__ = ("save_recovery",) - SAVE_RECOVERY_FIELD_NUMBER: _ClassVar[int] - save_recovery: bool - def __init__(self, save_recovery: bool = ...) -> None: ... - -class Body_TackleToPoint(_message.Message): - __slots__ = ("target_point", "min_probability", "min_speed") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - MIN_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - MIN_SPEED_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - min_probability: float - min_speed: float - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., min_probability: _Optional[float] = ..., min_speed: _Optional[float] = ...) -> None: ... - -class Body_TurnToAngle(_message.Message): - __slots__ = ("angle",) - ANGLE_FIELD_NUMBER: _ClassVar[int] - angle: float - def __init__(self, angle: _Optional[float] = ...) -> None: ... - -class Body_TurnToBall(_message.Message): - __slots__ = ("cycle",) - CYCLE_FIELD_NUMBER: _ClassVar[int] - cycle: int - def __init__(self, cycle: _Optional[int] = ...) -> None: ... - -class Body_TurnToPoint(_message.Message): - __slots__ = ("target_point", "cycle") - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - CYCLE_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - cycle: int - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., cycle: _Optional[int] = ...) -> None: ... - -class Focus_MoveToPoint(_message.Message): - __slots__ = ("target_point",) - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class Focus_Reset(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Neck_ScanField(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Neck_ScanPlayers(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Neck_TurnToBallAndPlayer(_message.Message): - __slots__ = ("side", "uniform_number", "count_threshold") - SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - COUNT_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - side: Side - uniform_number: int - count_threshold: int - def __init__(self, side: _Optional[_Union[Side, str]] = ..., uniform_number: _Optional[int] = ..., count_threshold: _Optional[int] = ...) -> None: ... - -class Neck_TurnToBallOrScan(_message.Message): - __slots__ = ("count_threshold",) - COUNT_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - count_threshold: int - def __init__(self, count_threshold: _Optional[int] = ...) -> None: ... - -class Neck_TurnToBall(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Neck_TurnToGoalieOrScan(_message.Message): - __slots__ = ("count_threshold",) - COUNT_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - count_threshold: int - def __init__(self, count_threshold: _Optional[int] = ...) -> None: ... - -class Neck_TurnToLowConfTeammate(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class Neck_TurnToPlayerOrScan(_message.Message): - __slots__ = ("side", "uniform_number", "count_threshold") - SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - COUNT_THRESHOLD_FIELD_NUMBER: _ClassVar[int] - side: Side - uniform_number: int - count_threshold: int - def __init__(self, side: _Optional[_Union[Side, str]] = ..., uniform_number: _Optional[int] = ..., count_threshold: _Optional[int] = ...) -> None: ... - -class Neck_TurnToPoint(_message.Message): - __slots__ = ("target_point",) - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - target_point: RpcVector2D - def __init__(self, target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class Neck_TurnToRelative(_message.Message): - __slots__ = ("angle",) - ANGLE_FIELD_NUMBER: _ClassVar[int] - angle: float - def __init__(self, angle: _Optional[float] = ...) -> None: ... - -class View_ChangeWidth(_message.Message): - __slots__ = ("view_width",) - VIEW_WIDTH_FIELD_NUMBER: _ClassVar[int] - view_width: ViewWidth - def __init__(self, view_width: _Optional[_Union[ViewWidth, str]] = ...) -> None: ... - -class View_Normal(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class View_Synch(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class View_Wide(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosGoalie(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosGoalieMove(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosGoalieKick(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosShoot(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosOffensivePlanner(_message.Message): - __slots__ = ("direct_pass", "lead_pass", "through_pass", "short_dribble", "long_dribble", "cross", "simple_pass", "simple_dribble", "simple_shoot", "server_side_decision") - DIRECT_PASS_FIELD_NUMBER: _ClassVar[int] - LEAD_PASS_FIELD_NUMBER: _ClassVar[int] - THROUGH_PASS_FIELD_NUMBER: _ClassVar[int] - SHORT_DRIBBLE_FIELD_NUMBER: _ClassVar[int] - LONG_DRIBBLE_FIELD_NUMBER: _ClassVar[int] - CROSS_FIELD_NUMBER: _ClassVar[int] - SIMPLE_PASS_FIELD_NUMBER: _ClassVar[int] - SIMPLE_DRIBBLE_FIELD_NUMBER: _ClassVar[int] - SIMPLE_SHOOT_FIELD_NUMBER: _ClassVar[int] - SERVER_SIDE_DECISION_FIELD_NUMBER: _ClassVar[int] - direct_pass: bool - lead_pass: bool - through_pass: bool - short_dribble: bool - long_dribble: bool - cross: bool - simple_pass: bool - simple_dribble: bool - simple_shoot: bool - server_side_decision: bool - def __init__(self, direct_pass: bool = ..., lead_pass: bool = ..., through_pass: bool = ..., short_dribble: bool = ..., long_dribble: bool = ..., cross: bool = ..., simple_pass: bool = ..., simple_dribble: bool = ..., simple_shoot: bool = ..., server_side_decision: bool = ...) -> None: ... - -class HeliosBasicOffensive(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosBasicMove(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosSetPlay(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosPenalty(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class HeliosCommunicaion(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class bhv_doForceKick(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class bhv_doHeardPassRecieve(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class PlayerAction(_message.Message): - __slots__ = ("dash", "turn", "kick", "tackle", "catch", "move", "turn_neck", "change_view", "say", "point_to", "point_to_of", "attention_to", "attention_to_of", "log", "debug_client", "body_go_to_point", "body_smart_kick", "bhv_before_kick_off", "bhv_body_neck_to_ball", "bhv_body_neck_to_point", "bhv_emergency", "bhv_go_to_point_look_ball", "bhv_neck_body_to_ball", "bhv_neck_body_to_point", "bhv_scan_field", "body_advance_ball", "body_clear_ball", "body_dribble", "body_go_to_point_dodge", "body_hold_ball", "body_intercept", "body_kick_one_step", "body_stop_ball", "body_stop_dash", "body_tackle_to_point", "body_turn_to_angle", "body_turn_to_ball", "body_turn_to_point", "focus_move_to_point", "focus_reset", "neck_scan_field", "neck_scan_players", "neck_turn_to_ball_and_player", "neck_turn_to_ball_or_scan", "neck_turn_to_ball", "neck_turn_to_goalie_or_scan", "neck_turn_to_low_conf_teammate", "neck_turn_to_player_or_scan", "neck_turn_to_point", "neck_turn_to_relative", "view_change_width", "view_normal", "view_synch", "view_wide", "helios_goalie", "helios_goalie_move", "helios_goalie_kick", "helios_shoot", "helios_offensive_planner", "helios_basic_offensive", "helios_basic_move", "helios_set_play", "helios_penalty", "helios_communication", "bhv_do_force_kick", "bhv_do_heard_pass_recieve") - DASH_FIELD_NUMBER: _ClassVar[int] - TURN_FIELD_NUMBER: _ClassVar[int] - KICK_FIELD_NUMBER: _ClassVar[int] - TACKLE_FIELD_NUMBER: _ClassVar[int] - CATCH_FIELD_NUMBER: _ClassVar[int] - MOVE_FIELD_NUMBER: _ClassVar[int] - TURN_NECK_FIELD_NUMBER: _ClassVar[int] - CHANGE_VIEW_FIELD_NUMBER: _ClassVar[int] - SAY_FIELD_NUMBER: _ClassVar[int] - POINT_TO_FIELD_NUMBER: _ClassVar[int] - POINT_TO_OF_FIELD_NUMBER: _ClassVar[int] - ATTENTION_TO_FIELD_NUMBER: _ClassVar[int] - ATTENTION_TO_OF_FIELD_NUMBER: _ClassVar[int] - LOG_FIELD_NUMBER: _ClassVar[int] - DEBUG_CLIENT_FIELD_NUMBER: _ClassVar[int] - BODY_GO_TO_POINT_FIELD_NUMBER: _ClassVar[int] - BODY_SMART_KICK_FIELD_NUMBER: _ClassVar[int] - BHV_BEFORE_KICK_OFF_FIELD_NUMBER: _ClassVar[int] - BHV_BODY_NECK_TO_BALL_FIELD_NUMBER: _ClassVar[int] - BHV_BODY_NECK_TO_POINT_FIELD_NUMBER: _ClassVar[int] - BHV_EMERGENCY_FIELD_NUMBER: _ClassVar[int] - BHV_GO_TO_POINT_LOOK_BALL_FIELD_NUMBER: _ClassVar[int] - BHV_NECK_BODY_TO_BALL_FIELD_NUMBER: _ClassVar[int] - BHV_NECK_BODY_TO_POINT_FIELD_NUMBER: _ClassVar[int] - BHV_SCAN_FIELD_FIELD_NUMBER: _ClassVar[int] - BODY_ADVANCE_BALL_FIELD_NUMBER: _ClassVar[int] - BODY_CLEAR_BALL_FIELD_NUMBER: _ClassVar[int] - BODY_DRIBBLE_FIELD_NUMBER: _ClassVar[int] - BODY_GO_TO_POINT_DODGE_FIELD_NUMBER: _ClassVar[int] - BODY_HOLD_BALL_FIELD_NUMBER: _ClassVar[int] - BODY_INTERCEPT_FIELD_NUMBER: _ClassVar[int] - BODY_KICK_ONE_STEP_FIELD_NUMBER: _ClassVar[int] - BODY_STOP_BALL_FIELD_NUMBER: _ClassVar[int] - BODY_STOP_DASH_FIELD_NUMBER: _ClassVar[int] - BODY_TACKLE_TO_POINT_FIELD_NUMBER: _ClassVar[int] - BODY_TURN_TO_ANGLE_FIELD_NUMBER: _ClassVar[int] - BODY_TURN_TO_BALL_FIELD_NUMBER: _ClassVar[int] - BODY_TURN_TO_POINT_FIELD_NUMBER: _ClassVar[int] - FOCUS_MOVE_TO_POINT_FIELD_NUMBER: _ClassVar[int] - FOCUS_RESET_FIELD_NUMBER: _ClassVar[int] - NECK_SCAN_FIELD_FIELD_NUMBER: _ClassVar[int] - NECK_SCAN_PLAYERS_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_BALL_AND_PLAYER_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_BALL_OR_SCAN_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_BALL_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_GOALIE_OR_SCAN_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_LOW_CONF_TEAMMATE_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_PLAYER_OR_SCAN_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_POINT_FIELD_NUMBER: _ClassVar[int] - NECK_TURN_TO_RELATIVE_FIELD_NUMBER: _ClassVar[int] - VIEW_CHANGE_WIDTH_FIELD_NUMBER: _ClassVar[int] - VIEW_NORMAL_FIELD_NUMBER: _ClassVar[int] - VIEW_SYNCH_FIELD_NUMBER: _ClassVar[int] - VIEW_WIDE_FIELD_NUMBER: _ClassVar[int] - HELIOS_GOALIE_FIELD_NUMBER: _ClassVar[int] - HELIOS_GOALIE_MOVE_FIELD_NUMBER: _ClassVar[int] - HELIOS_GOALIE_KICK_FIELD_NUMBER: _ClassVar[int] - HELIOS_SHOOT_FIELD_NUMBER: _ClassVar[int] - HELIOS_OFFENSIVE_PLANNER_FIELD_NUMBER: _ClassVar[int] - HELIOS_BASIC_OFFENSIVE_FIELD_NUMBER: _ClassVar[int] - HELIOS_BASIC_MOVE_FIELD_NUMBER: _ClassVar[int] - HELIOS_SET_PLAY_FIELD_NUMBER: _ClassVar[int] - HELIOS_PENALTY_FIELD_NUMBER: _ClassVar[int] - HELIOS_COMMUNICATION_FIELD_NUMBER: _ClassVar[int] - BHV_DO_FORCE_KICK_FIELD_NUMBER: _ClassVar[int] - BHV_DO_HEARD_PASS_RECIEVE_FIELD_NUMBER: _ClassVar[int] - dash: Dash - turn: Turn - kick: Kick - tackle: Tackle - catch: Catch - move: Move - turn_neck: TurnNeck - change_view: ChangeView - say: Say - point_to: PointTo - point_to_of: PointToOf - attention_to: AttentionTo - attention_to_of: AttentionToOf - log: Log - debug_client: DebugClient - body_go_to_point: Body_GoToPoint - body_smart_kick: Body_SmartKick - bhv_before_kick_off: Bhv_BeforeKickOff - bhv_body_neck_to_ball: Bhv_BodyNeckToBall - bhv_body_neck_to_point: Bhv_BodyNeckToPoint - bhv_emergency: Bhv_Emergency - bhv_go_to_point_look_ball: Bhv_GoToPointLookBall - bhv_neck_body_to_ball: Bhv_NeckBodyToBall - bhv_neck_body_to_point: Bhv_NeckBodyToPoint - bhv_scan_field: Bhv_ScanField - body_advance_ball: Body_AdvanceBall - body_clear_ball: Body_ClearBall - body_dribble: Body_Dribble - body_go_to_point_dodge: Body_GoToPointDodge - body_hold_ball: Body_HoldBall - body_intercept: Body_Intercept - body_kick_one_step: Body_KickOneStep - body_stop_ball: Body_StopBall - body_stop_dash: Body_StopDash - body_tackle_to_point: Body_TackleToPoint - body_turn_to_angle: Body_TurnToAngle - body_turn_to_ball: Body_TurnToBall - body_turn_to_point: Body_TurnToPoint - focus_move_to_point: Focus_MoveToPoint - focus_reset: Focus_Reset - neck_scan_field: Neck_ScanField - neck_scan_players: Neck_ScanPlayers - neck_turn_to_ball_and_player: Neck_TurnToBallAndPlayer - neck_turn_to_ball_or_scan: Neck_TurnToBallOrScan - neck_turn_to_ball: Neck_TurnToBall - neck_turn_to_goalie_or_scan: Neck_TurnToGoalieOrScan - neck_turn_to_low_conf_teammate: Neck_TurnToLowConfTeammate - neck_turn_to_player_or_scan: Neck_TurnToPlayerOrScan - neck_turn_to_point: Neck_TurnToPoint - neck_turn_to_relative: Neck_TurnToRelative - view_change_width: View_ChangeWidth - view_normal: View_Normal - view_synch: View_Synch - view_wide: View_Wide - helios_goalie: HeliosGoalie - helios_goalie_move: HeliosGoalieMove - helios_goalie_kick: HeliosGoalieKick - helios_shoot: HeliosShoot - helios_offensive_planner: HeliosOffensivePlanner - helios_basic_offensive: HeliosBasicOffensive - helios_basic_move: HeliosBasicMove - helios_set_play: HeliosSetPlay - helios_penalty: HeliosPenalty - helios_communication: HeliosCommunicaion - bhv_do_force_kick: bhv_doForceKick - bhv_do_heard_pass_recieve: bhv_doHeardPassRecieve - def __init__(self, dash: _Optional[_Union[Dash, _Mapping]] = ..., turn: _Optional[_Union[Turn, _Mapping]] = ..., kick: _Optional[_Union[Kick, _Mapping]] = ..., tackle: _Optional[_Union[Tackle, _Mapping]] = ..., catch: _Optional[_Union[Catch, _Mapping]] = ..., move: _Optional[_Union[Move, _Mapping]] = ..., turn_neck: _Optional[_Union[TurnNeck, _Mapping]] = ..., change_view: _Optional[_Union[ChangeView, _Mapping]] = ..., say: _Optional[_Union[Say, _Mapping]] = ..., point_to: _Optional[_Union[PointTo, _Mapping]] = ..., point_to_of: _Optional[_Union[PointToOf, _Mapping]] = ..., attention_to: _Optional[_Union[AttentionTo, _Mapping]] = ..., attention_to_of: _Optional[_Union[AttentionToOf, _Mapping]] = ..., log: _Optional[_Union[Log, _Mapping]] = ..., debug_client: _Optional[_Union[DebugClient, _Mapping]] = ..., body_go_to_point: _Optional[_Union[Body_GoToPoint, _Mapping]] = ..., body_smart_kick: _Optional[_Union[Body_SmartKick, _Mapping]] = ..., bhv_before_kick_off: _Optional[_Union[Bhv_BeforeKickOff, _Mapping]] = ..., bhv_body_neck_to_ball: _Optional[_Union[Bhv_BodyNeckToBall, _Mapping]] = ..., bhv_body_neck_to_point: _Optional[_Union[Bhv_BodyNeckToPoint, _Mapping]] = ..., bhv_emergency: _Optional[_Union[Bhv_Emergency, _Mapping]] = ..., bhv_go_to_point_look_ball: _Optional[_Union[Bhv_GoToPointLookBall, _Mapping]] = ..., bhv_neck_body_to_ball: _Optional[_Union[Bhv_NeckBodyToBall, _Mapping]] = ..., bhv_neck_body_to_point: _Optional[_Union[Bhv_NeckBodyToPoint, _Mapping]] = ..., bhv_scan_field: _Optional[_Union[Bhv_ScanField, _Mapping]] = ..., body_advance_ball: _Optional[_Union[Body_AdvanceBall, _Mapping]] = ..., body_clear_ball: _Optional[_Union[Body_ClearBall, _Mapping]] = ..., body_dribble: _Optional[_Union[Body_Dribble, _Mapping]] = ..., body_go_to_point_dodge: _Optional[_Union[Body_GoToPointDodge, _Mapping]] = ..., body_hold_ball: _Optional[_Union[Body_HoldBall, _Mapping]] = ..., body_intercept: _Optional[_Union[Body_Intercept, _Mapping]] = ..., body_kick_one_step: _Optional[_Union[Body_KickOneStep, _Mapping]] = ..., body_stop_ball: _Optional[_Union[Body_StopBall, _Mapping]] = ..., body_stop_dash: _Optional[_Union[Body_StopDash, _Mapping]] = ..., body_tackle_to_point: _Optional[_Union[Body_TackleToPoint, _Mapping]] = ..., body_turn_to_angle: _Optional[_Union[Body_TurnToAngle, _Mapping]] = ..., body_turn_to_ball: _Optional[_Union[Body_TurnToBall, _Mapping]] = ..., body_turn_to_point: _Optional[_Union[Body_TurnToPoint, _Mapping]] = ..., focus_move_to_point: _Optional[_Union[Focus_MoveToPoint, _Mapping]] = ..., focus_reset: _Optional[_Union[Focus_Reset, _Mapping]] = ..., neck_scan_field: _Optional[_Union[Neck_ScanField, _Mapping]] = ..., neck_scan_players: _Optional[_Union[Neck_ScanPlayers, _Mapping]] = ..., neck_turn_to_ball_and_player: _Optional[_Union[Neck_TurnToBallAndPlayer, _Mapping]] = ..., neck_turn_to_ball_or_scan: _Optional[_Union[Neck_TurnToBallOrScan, _Mapping]] = ..., neck_turn_to_ball: _Optional[_Union[Neck_TurnToBall, _Mapping]] = ..., neck_turn_to_goalie_or_scan: _Optional[_Union[Neck_TurnToGoalieOrScan, _Mapping]] = ..., neck_turn_to_low_conf_teammate: _Optional[_Union[Neck_TurnToLowConfTeammate, _Mapping]] = ..., neck_turn_to_player_or_scan: _Optional[_Union[Neck_TurnToPlayerOrScan, _Mapping]] = ..., neck_turn_to_point: _Optional[_Union[Neck_TurnToPoint, _Mapping]] = ..., neck_turn_to_relative: _Optional[_Union[Neck_TurnToRelative, _Mapping]] = ..., view_change_width: _Optional[_Union[View_ChangeWidth, _Mapping]] = ..., view_normal: _Optional[_Union[View_Normal, _Mapping]] = ..., view_synch: _Optional[_Union[View_Synch, _Mapping]] = ..., view_wide: _Optional[_Union[View_Wide, _Mapping]] = ..., helios_goalie: _Optional[_Union[HeliosGoalie, _Mapping]] = ..., helios_goalie_move: _Optional[_Union[HeliosGoalieMove, _Mapping]] = ..., helios_goalie_kick: _Optional[_Union[HeliosGoalieKick, _Mapping]] = ..., helios_shoot: _Optional[_Union[HeliosShoot, _Mapping]] = ..., helios_offensive_planner: _Optional[_Union[HeliosOffensivePlanner, _Mapping]] = ..., helios_basic_offensive: _Optional[_Union[HeliosBasicOffensive, _Mapping]] = ..., helios_basic_move: _Optional[_Union[HeliosBasicMove, _Mapping]] = ..., helios_set_play: _Optional[_Union[HeliosSetPlay, _Mapping]] = ..., helios_penalty: _Optional[_Union[HeliosPenalty, _Mapping]] = ..., helios_communication: _Optional[_Union[HeliosCommunicaion, _Mapping]] = ..., bhv_do_force_kick: _Optional[_Union[bhv_doForceKick, _Mapping]] = ..., bhv_do_heard_pass_recieve: _Optional[_Union[bhv_doHeardPassRecieve, _Mapping]] = ...) -> None: ... - -class PlayerActions(_message.Message): - __slots__ = ("actions", "ignore_preprocess", "ignore_doforcekick", "ignore_doHeardPassRecieve") - ACTIONS_FIELD_NUMBER: _ClassVar[int] - IGNORE_PREPROCESS_FIELD_NUMBER: _ClassVar[int] - IGNORE_DOFORCEKICK_FIELD_NUMBER: _ClassVar[int] - IGNORE_DOHEARDPASSRECIEVE_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[PlayerAction] - ignore_preprocess: bool - ignore_doforcekick: bool - ignore_doHeardPassRecieve: bool - def __init__(self, actions: _Optional[_Iterable[_Union[PlayerAction, _Mapping]]] = ..., ignore_preprocess: bool = ..., ignore_doforcekick: bool = ..., ignore_doHeardPassRecieve: bool = ...) -> None: ... - -class ChangePlayerType(_message.Message): - __slots__ = ("uniform_number", "type") - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - uniform_number: int - type: int - def __init__(self, uniform_number: _Optional[int] = ..., type: _Optional[int] = ...) -> None: ... - -class DoHeliosSubstitute(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class DoHeliosSayPlayerTypes(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class CoachAction(_message.Message): - __slots__ = ("change_player_types", "do_helios_substitute", "do_helios_say_player_types") - CHANGE_PLAYER_TYPES_FIELD_NUMBER: _ClassVar[int] - DO_HELIOS_SUBSTITUTE_FIELD_NUMBER: _ClassVar[int] - DO_HELIOS_SAY_PLAYER_TYPES_FIELD_NUMBER: _ClassVar[int] - change_player_types: ChangePlayerType - do_helios_substitute: DoHeliosSubstitute - do_helios_say_player_types: DoHeliosSayPlayerTypes - def __init__(self, change_player_types: _Optional[_Union[ChangePlayerType, _Mapping]] = ..., do_helios_substitute: _Optional[_Union[DoHeliosSubstitute, _Mapping]] = ..., do_helios_say_player_types: _Optional[_Union[DoHeliosSayPlayerTypes, _Mapping]] = ...) -> None: ... - -class CoachActions(_message.Message): - __slots__ = ("actions",) - ACTIONS_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[CoachAction] - def __init__(self, actions: _Optional[_Iterable[_Union[CoachAction, _Mapping]]] = ...) -> None: ... - -class DoKickOff(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class DoMoveBall(_message.Message): - __slots__ = ("position", "velocity") - POSITION_FIELD_NUMBER: _ClassVar[int] - VELOCITY_FIELD_NUMBER: _ClassVar[int] - position: RpcVector2D - velocity: RpcVector2D - def __init__(self, position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ...) -> None: ... - -class DoMovePlayer(_message.Message): - __slots__ = ("our_side", "uniform_number", "position", "body_direction") - OUR_SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - POSITION_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - our_side: bool - uniform_number: int - position: RpcVector2D - body_direction: float - def __init__(self, our_side: bool = ..., uniform_number: _Optional[int] = ..., position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., body_direction: _Optional[float] = ...) -> None: ... - -class DoRecover(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class DoChangeMode(_message.Message): - __slots__ = ("game_mode_type", "side") - GAME_MODE_TYPE_FIELD_NUMBER: _ClassVar[int] - SIDE_FIELD_NUMBER: _ClassVar[int] - game_mode_type: GameModeType - side: Side - def __init__(self, game_mode_type: _Optional[_Union[GameModeType, str]] = ..., side: _Optional[_Union[Side, str]] = ...) -> None: ... - -class DoChangePlayerType(_message.Message): - __slots__ = ("our_side", "uniform_number", "type") - OUR_SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - our_side: bool - uniform_number: int - type: int - def __init__(self, our_side: bool = ..., uniform_number: _Optional[int] = ..., type: _Optional[int] = ...) -> None: ... - -class TrainerAction(_message.Message): - __slots__ = ("do_kick_off", "do_move_ball", "do_move_player", "do_recover", "do_change_mode", "do_change_player_type") - DO_KICK_OFF_FIELD_NUMBER: _ClassVar[int] - DO_MOVE_BALL_FIELD_NUMBER: _ClassVar[int] - DO_MOVE_PLAYER_FIELD_NUMBER: _ClassVar[int] - DO_RECOVER_FIELD_NUMBER: _ClassVar[int] - DO_CHANGE_MODE_FIELD_NUMBER: _ClassVar[int] - DO_CHANGE_PLAYER_TYPE_FIELD_NUMBER: _ClassVar[int] - do_kick_off: DoKickOff - do_move_ball: DoMoveBall - do_move_player: DoMovePlayer - do_recover: DoRecover - do_change_mode: DoChangeMode - do_change_player_type: DoChangePlayerType - def __init__(self, do_kick_off: _Optional[_Union[DoKickOff, _Mapping]] = ..., do_move_ball: _Optional[_Union[DoMoveBall, _Mapping]] = ..., do_move_player: _Optional[_Union[DoMovePlayer, _Mapping]] = ..., do_recover: _Optional[_Union[DoRecover, _Mapping]] = ..., do_change_mode: _Optional[_Union[DoChangeMode, _Mapping]] = ..., do_change_player_type: _Optional[_Union[DoChangePlayerType, _Mapping]] = ...) -> None: ... - -class TrainerActions(_message.Message): - __slots__ = ("actions",) - ACTIONS_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[TrainerAction] - def __init__(self, actions: _Optional[_Iterable[_Union[TrainerAction, _Mapping]]] = ...) -> None: ... - -class ServerParam(_message.Message): - __slots__ = ("register_response", "inertia_moment", "player_size", "player_decay", "player_rand", "player_weight", "player_speed_max", "player_accel_max", "stamina_max", "stamina_inc_max", "recover_init", "recover_dec_thr", "recover_min", "recover_dec", "effort_init", "effort_dec_thr", "effort_min", "effort_dec", "effort_inc_thr", "effort_inc", "kick_rand", "team_actuator_noise", "player_rand_factor_l", "player_rand_factor_r", "kick_rand_factor_l", "kick_rand_factor_r", "ball_size", "ball_decay", "ball_rand", "ball_weight", "ball_speed_max", "ball_accel_max", "dash_power_rate", "kick_power_rate", "kickable_margin", "control_radius", "control_radius_width", "max_power", "min_power", "max_moment", "min_moment", "max_neck_moment", "min_neck_moment", "max_neck_angle", "min_neck_angle", "visible_angle", "visible_distance", "wind_dir", "wind_force", "wind_angle", "wind_rand", "kickable_area", "catch_area_l", "catch_area_w", "catch_probability", "goalie_max_moves", "corner_kick_margin", "offside_active_area_size", "wind_none", "use_wind_random", "coach_say_count_max", "coach_say_msg_size", "clang_win_size", "clang_define_win", "clang_meta_win", "clang_advice_win", "clang_info_win", "clang_mess_delay", "clang_mess_per_cycle", "half_time", "simulator_step", "send_step", "recv_step", "sense_body_step", "lcm_step", "player_say_msg_size", "player_hear_max", "player_hear_inc", "player_hear_decay", "catch_ban_cycle", "slow_down_factor", "use_offside", "kickoff_offside", "offside_kick_margin", "audio_cut_dist", "dist_quantize_step", "landmark_dist_quantize_step", "dir_quantize_step", "dist_quantize_step_l", "dist_quantize_step_r", "landmark_dist_quantize_step_l", "landmark_dist_quantize_step_r", "dir_quantize_step_l", "dir_quantize_step_r", "coach_mode", "coach_with_referee_mode", "use_old_coach_hear", "slowness_on_top_for_left_team", "slowness_on_top_for_right_team", "start_goal_l", "start_goal_r", "fullstate_l", "fullstate_r", "drop_ball_time", "synch_mode", "synch_offset", "synch_micro_sleep", "point_to_ban", "point_to_duration", "player_port", "trainer_port", "online_coach_port", "verbose_mode", "coach_send_vi_step", "replay_file", "landmark_file", "send_comms", "text_logging", "game_logging", "game_log_version", "text_log_dir", "game_log_dir", "text_log_fixed_name", "game_log_fixed_name", "use_text_log_fixed", "use_game_log_fixed", "use_text_log_dated", "use_game_log_dated", "log_date_format", "log_times", "record_message", "text_log_compression", "game_log_compression", "use_profile", "tackle_dist", "tackle_back_dist", "tackle_width", "tackle_exponent", "tackle_cycles", "tackle_power_rate", "freeform_wait_period", "freeform_send_period", "free_kick_faults", "back_passes", "proper_goal_kicks", "stopped_ball_vel", "max_goal_kicks", "clang_del_win", "clang_rule_win", "auto_mode", "kick_off_wait", "connect_wait", "game_over_wait", "team_l_start", "team_r_start", "keepaway_mode", "keepaway_length", "keepaway_width", "keepaway_logging", "keepaway_log_dir", "keepaway_log_fixed_name", "keepaway_log_fixed", "keepaway_log_dated", "keepaway_start", "nr_normal_halfs", "nr_extra_halfs", "penalty_shoot_outs", "pen_before_setup_wait", "pen_setup_wait", "pen_ready_wait", "pen_taken_wait", "pen_nr_kicks", "pen_max_extra_kicks", "pen_dist_x", "pen_random_winner", "pen_allow_mult_kicks", "pen_max_goalie_dist_x", "pen_coach_moves_players", "module_dir", "ball_stuck_area", "coach_msg_file", "max_tackle_power", "max_back_tackle_power", "player_speed_max_min", "extra_stamina", "synch_see_offset", "extra_half_time", "stamina_capacity", "max_dash_angle", "min_dash_angle", "dash_angle_step", "side_dash_rate", "back_dash_rate", "max_dash_power", "min_dash_power", "tackle_rand_factor", "foul_detect_probability", "foul_exponent", "foul_cycles", "golden_goal", "red_card_probability", "illegal_defense_duration", "illegal_defense_number", "illegal_defense_dist_x", "illegal_defense_width", "fixed_teamname_l", "fixed_teamname_r", "max_catch_angle", "min_catch_angle", "random_seed", "long_kick_power_factor", "long_kick_delay", "max_monitors", "catchable_area", "real_speed_max", "pitch_half_length", "pitch_half_width", "our_penalty_area_line_x", "their_penalty_area_line_x", "penalty_area_half_width", "penalty_area_length", "goal_width", "goal_area_width", "goal_area_length", "center_circle_r", "goal_post_radius") - REGISTER_RESPONSE_FIELD_NUMBER: _ClassVar[int] - INERTIA_MOMENT_FIELD_NUMBER: _ClassVar[int] - PLAYER_SIZE_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_FIELD_NUMBER: _ClassVar[int] - PLAYER_RAND_FIELD_NUMBER: _ClassVar[int] - PLAYER_WEIGHT_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_ACCEL_MAX_FIELD_NUMBER: _ClassVar[int] - STAMINA_MAX_FIELD_NUMBER: _ClassVar[int] - STAMINA_INC_MAX_FIELD_NUMBER: _ClassVar[int] - RECOVER_INIT_FIELD_NUMBER: _ClassVar[int] - RECOVER_DEC_THR_FIELD_NUMBER: _ClassVar[int] - RECOVER_MIN_FIELD_NUMBER: _ClassVar[int] - RECOVER_DEC_FIELD_NUMBER: _ClassVar[int] - EFFORT_INIT_FIELD_NUMBER: _ClassVar[int] - EFFORT_DEC_THR_FIELD_NUMBER: _ClassVar[int] - EFFORT_MIN_FIELD_NUMBER: _ClassVar[int] - EFFORT_DEC_FIELD_NUMBER: _ClassVar[int] - EFFORT_INC_THR_FIELD_NUMBER: _ClassVar[int] - EFFORT_INC_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FIELD_NUMBER: _ClassVar[int] - TEAM_ACTUATOR_NOISE_FIELD_NUMBER: _ClassVar[int] - PLAYER_RAND_FACTOR_L_FIELD_NUMBER: _ClassVar[int] - PLAYER_RAND_FACTOR_R_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FACTOR_L_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FACTOR_R_FIELD_NUMBER: _ClassVar[int] - BALL_SIZE_FIELD_NUMBER: _ClassVar[int] - BALL_DECAY_FIELD_NUMBER: _ClassVar[int] - BALL_RAND_FIELD_NUMBER: _ClassVar[int] - BALL_WEIGHT_FIELD_NUMBER: _ClassVar[int] - BALL_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - BALL_ACCEL_MAX_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_FIELD_NUMBER: _ClassVar[int] - CONTROL_RADIUS_FIELD_NUMBER: _ClassVar[int] - CONTROL_RADIUS_WIDTH_FIELD_NUMBER: _ClassVar[int] - MAX_POWER_FIELD_NUMBER: _ClassVar[int] - MIN_POWER_FIELD_NUMBER: _ClassVar[int] - MAX_MOMENT_FIELD_NUMBER: _ClassVar[int] - MIN_MOMENT_FIELD_NUMBER: _ClassVar[int] - MAX_NECK_MOMENT_FIELD_NUMBER: _ClassVar[int] - MIN_NECK_MOMENT_FIELD_NUMBER: _ClassVar[int] - MAX_NECK_ANGLE_FIELD_NUMBER: _ClassVar[int] - MIN_NECK_ANGLE_FIELD_NUMBER: _ClassVar[int] - VISIBLE_ANGLE_FIELD_NUMBER: _ClassVar[int] - VISIBLE_DISTANCE_FIELD_NUMBER: _ClassVar[int] - WIND_DIR_FIELD_NUMBER: _ClassVar[int] - WIND_FORCE_FIELD_NUMBER: _ClassVar[int] - WIND_ANGLE_FIELD_NUMBER: _ClassVar[int] - WIND_RAND_FIELD_NUMBER: _ClassVar[int] - KICKABLE_AREA_FIELD_NUMBER: _ClassVar[int] - CATCH_AREA_L_FIELD_NUMBER: _ClassVar[int] - CATCH_AREA_W_FIELD_NUMBER: _ClassVar[int] - CATCH_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - GOALIE_MAX_MOVES_FIELD_NUMBER: _ClassVar[int] - CORNER_KICK_MARGIN_FIELD_NUMBER: _ClassVar[int] - OFFSIDE_ACTIVE_AREA_SIZE_FIELD_NUMBER: _ClassVar[int] - WIND_NONE_FIELD_NUMBER: _ClassVar[int] - USE_WIND_RANDOM_FIELD_NUMBER: _ClassVar[int] - COACH_SAY_COUNT_MAX_FIELD_NUMBER: _ClassVar[int] - COACH_SAY_MSG_SIZE_FIELD_NUMBER: _ClassVar[int] - CLANG_WIN_SIZE_FIELD_NUMBER: _ClassVar[int] - CLANG_DEFINE_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_META_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_ADVICE_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_INFO_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_MESS_DELAY_FIELD_NUMBER: _ClassVar[int] - CLANG_MESS_PER_CYCLE_FIELD_NUMBER: _ClassVar[int] - HALF_TIME_FIELD_NUMBER: _ClassVar[int] - SIMULATOR_STEP_FIELD_NUMBER: _ClassVar[int] - SEND_STEP_FIELD_NUMBER: _ClassVar[int] - RECV_STEP_FIELD_NUMBER: _ClassVar[int] - SENSE_BODY_STEP_FIELD_NUMBER: _ClassVar[int] - LCM_STEP_FIELD_NUMBER: _ClassVar[int] - PLAYER_SAY_MSG_SIZE_FIELD_NUMBER: _ClassVar[int] - PLAYER_HEAR_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_HEAR_INC_FIELD_NUMBER: _ClassVar[int] - PLAYER_HEAR_DECAY_FIELD_NUMBER: _ClassVar[int] - CATCH_BAN_CYCLE_FIELD_NUMBER: _ClassVar[int] - SLOW_DOWN_FACTOR_FIELD_NUMBER: _ClassVar[int] - USE_OFFSIDE_FIELD_NUMBER: _ClassVar[int] - KICKOFF_OFFSIDE_FIELD_NUMBER: _ClassVar[int] - OFFSIDE_KICK_MARGIN_FIELD_NUMBER: _ClassVar[int] - AUDIO_CUT_DIST_FIELD_NUMBER: _ClassVar[int] - DIST_QUANTIZE_STEP_FIELD_NUMBER: _ClassVar[int] - LANDMARK_DIST_QUANTIZE_STEP_FIELD_NUMBER: _ClassVar[int] - DIR_QUANTIZE_STEP_FIELD_NUMBER: _ClassVar[int] - DIST_QUANTIZE_STEP_L_FIELD_NUMBER: _ClassVar[int] - DIST_QUANTIZE_STEP_R_FIELD_NUMBER: _ClassVar[int] - LANDMARK_DIST_QUANTIZE_STEP_L_FIELD_NUMBER: _ClassVar[int] - LANDMARK_DIST_QUANTIZE_STEP_R_FIELD_NUMBER: _ClassVar[int] - DIR_QUANTIZE_STEP_L_FIELD_NUMBER: _ClassVar[int] - DIR_QUANTIZE_STEP_R_FIELD_NUMBER: _ClassVar[int] - COACH_MODE_FIELD_NUMBER: _ClassVar[int] - COACH_WITH_REFEREE_MODE_FIELD_NUMBER: _ClassVar[int] - USE_OLD_COACH_HEAR_FIELD_NUMBER: _ClassVar[int] - SLOWNESS_ON_TOP_FOR_LEFT_TEAM_FIELD_NUMBER: _ClassVar[int] - SLOWNESS_ON_TOP_FOR_RIGHT_TEAM_FIELD_NUMBER: _ClassVar[int] - START_GOAL_L_FIELD_NUMBER: _ClassVar[int] - START_GOAL_R_FIELD_NUMBER: _ClassVar[int] - FULLSTATE_L_FIELD_NUMBER: _ClassVar[int] - FULLSTATE_R_FIELD_NUMBER: _ClassVar[int] - DROP_BALL_TIME_FIELD_NUMBER: _ClassVar[int] - SYNCH_MODE_FIELD_NUMBER: _ClassVar[int] - SYNCH_OFFSET_FIELD_NUMBER: _ClassVar[int] - SYNCH_MICRO_SLEEP_FIELD_NUMBER: _ClassVar[int] - POINT_TO_BAN_FIELD_NUMBER: _ClassVar[int] - POINT_TO_DURATION_FIELD_NUMBER: _ClassVar[int] - PLAYER_PORT_FIELD_NUMBER: _ClassVar[int] - TRAINER_PORT_FIELD_NUMBER: _ClassVar[int] - ONLINE_COACH_PORT_FIELD_NUMBER: _ClassVar[int] - VERBOSE_MODE_FIELD_NUMBER: _ClassVar[int] - COACH_SEND_VI_STEP_FIELD_NUMBER: _ClassVar[int] - REPLAY_FILE_FIELD_NUMBER: _ClassVar[int] - LANDMARK_FILE_FIELD_NUMBER: _ClassVar[int] - SEND_COMMS_FIELD_NUMBER: _ClassVar[int] - TEXT_LOGGING_FIELD_NUMBER: _ClassVar[int] - GAME_LOGGING_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_VERSION_FIELD_NUMBER: _ClassVar[int] - TEXT_LOG_DIR_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_DIR_FIELD_NUMBER: _ClassVar[int] - TEXT_LOG_FIXED_NAME_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_FIXED_NAME_FIELD_NUMBER: _ClassVar[int] - USE_TEXT_LOG_FIXED_FIELD_NUMBER: _ClassVar[int] - USE_GAME_LOG_FIXED_FIELD_NUMBER: _ClassVar[int] - USE_TEXT_LOG_DATED_FIELD_NUMBER: _ClassVar[int] - USE_GAME_LOG_DATED_FIELD_NUMBER: _ClassVar[int] - LOG_DATE_FORMAT_FIELD_NUMBER: _ClassVar[int] - LOG_TIMES_FIELD_NUMBER: _ClassVar[int] - RECORD_MESSAGE_FIELD_NUMBER: _ClassVar[int] - TEXT_LOG_COMPRESSION_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_COMPRESSION_FIELD_NUMBER: _ClassVar[int] - USE_PROFILE_FIELD_NUMBER: _ClassVar[int] - TACKLE_DIST_FIELD_NUMBER: _ClassVar[int] - TACKLE_BACK_DIST_FIELD_NUMBER: _ClassVar[int] - TACKLE_WIDTH_FIELD_NUMBER: _ClassVar[int] - TACKLE_EXPONENT_FIELD_NUMBER: _ClassVar[int] - TACKLE_CYCLES_FIELD_NUMBER: _ClassVar[int] - TACKLE_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - FREEFORM_WAIT_PERIOD_FIELD_NUMBER: _ClassVar[int] - FREEFORM_SEND_PERIOD_FIELD_NUMBER: _ClassVar[int] - FREE_KICK_FAULTS_FIELD_NUMBER: _ClassVar[int] - BACK_PASSES_FIELD_NUMBER: _ClassVar[int] - PROPER_GOAL_KICKS_FIELD_NUMBER: _ClassVar[int] - STOPPED_BALL_VEL_FIELD_NUMBER: _ClassVar[int] - MAX_GOAL_KICKS_FIELD_NUMBER: _ClassVar[int] - CLANG_DEL_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_RULE_WIN_FIELD_NUMBER: _ClassVar[int] - AUTO_MODE_FIELD_NUMBER: _ClassVar[int] - KICK_OFF_WAIT_FIELD_NUMBER: _ClassVar[int] - CONNECT_WAIT_FIELD_NUMBER: _ClassVar[int] - GAME_OVER_WAIT_FIELD_NUMBER: _ClassVar[int] - TEAM_L_START_FIELD_NUMBER: _ClassVar[int] - TEAM_R_START_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_MODE_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LENGTH_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_WIDTH_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOGGING_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_DIR_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_FIXED_NAME_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_FIXED_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_DATED_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_START_FIELD_NUMBER: _ClassVar[int] - NR_NORMAL_HALFS_FIELD_NUMBER: _ClassVar[int] - NR_EXTRA_HALFS_FIELD_NUMBER: _ClassVar[int] - PENALTY_SHOOT_OUTS_FIELD_NUMBER: _ClassVar[int] - PEN_BEFORE_SETUP_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_SETUP_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_READY_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_TAKEN_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_NR_KICKS_FIELD_NUMBER: _ClassVar[int] - PEN_MAX_EXTRA_KICKS_FIELD_NUMBER: _ClassVar[int] - PEN_DIST_X_FIELD_NUMBER: _ClassVar[int] - PEN_RANDOM_WINNER_FIELD_NUMBER: _ClassVar[int] - PEN_ALLOW_MULT_KICKS_FIELD_NUMBER: _ClassVar[int] - PEN_MAX_GOALIE_DIST_X_FIELD_NUMBER: _ClassVar[int] - PEN_COACH_MOVES_PLAYERS_FIELD_NUMBER: _ClassVar[int] - MODULE_DIR_FIELD_NUMBER: _ClassVar[int] - BALL_STUCK_AREA_FIELD_NUMBER: _ClassVar[int] - COACH_MSG_FILE_FIELD_NUMBER: _ClassVar[int] - MAX_TACKLE_POWER_FIELD_NUMBER: _ClassVar[int] - MAX_BACK_TACKLE_POWER_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_MIN_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_FIELD_NUMBER: _ClassVar[int] - SYNCH_SEE_OFFSET_FIELD_NUMBER: _ClassVar[int] - EXTRA_HALF_TIME_FIELD_NUMBER: _ClassVar[int] - STAMINA_CAPACITY_FIELD_NUMBER: _ClassVar[int] - MAX_DASH_ANGLE_FIELD_NUMBER: _ClassVar[int] - MIN_DASH_ANGLE_FIELD_NUMBER: _ClassVar[int] - DASH_ANGLE_STEP_FIELD_NUMBER: _ClassVar[int] - SIDE_DASH_RATE_FIELD_NUMBER: _ClassVar[int] - BACK_DASH_RATE_FIELD_NUMBER: _ClassVar[int] - MAX_DASH_POWER_FIELD_NUMBER: _ClassVar[int] - MIN_DASH_POWER_FIELD_NUMBER: _ClassVar[int] - TACKLE_RAND_FACTOR_FIELD_NUMBER: _ClassVar[int] - FOUL_DETECT_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - FOUL_EXPONENT_FIELD_NUMBER: _ClassVar[int] - FOUL_CYCLES_FIELD_NUMBER: _ClassVar[int] - GOLDEN_GOAL_FIELD_NUMBER: _ClassVar[int] - RED_CARD_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_DURATION_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_NUMBER_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_DIST_X_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_WIDTH_FIELD_NUMBER: _ClassVar[int] - FIXED_TEAMNAME_L_FIELD_NUMBER: _ClassVar[int] - FIXED_TEAMNAME_R_FIELD_NUMBER: _ClassVar[int] - MAX_CATCH_ANGLE_FIELD_NUMBER: _ClassVar[int] - MIN_CATCH_ANGLE_FIELD_NUMBER: _ClassVar[int] - RANDOM_SEED_FIELD_NUMBER: _ClassVar[int] - LONG_KICK_POWER_FACTOR_FIELD_NUMBER: _ClassVar[int] - LONG_KICK_DELAY_FIELD_NUMBER: _ClassVar[int] - MAX_MONITORS_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_FIELD_NUMBER: _ClassVar[int] - REAL_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - PITCH_HALF_LENGTH_FIELD_NUMBER: _ClassVar[int] - PITCH_HALF_WIDTH_FIELD_NUMBER: _ClassVar[int] - OUR_PENALTY_AREA_LINE_X_FIELD_NUMBER: _ClassVar[int] - THEIR_PENALTY_AREA_LINE_X_FIELD_NUMBER: _ClassVar[int] - PENALTY_AREA_HALF_WIDTH_FIELD_NUMBER: _ClassVar[int] - PENALTY_AREA_LENGTH_FIELD_NUMBER: _ClassVar[int] - GOAL_WIDTH_FIELD_NUMBER: _ClassVar[int] - GOAL_AREA_WIDTH_FIELD_NUMBER: _ClassVar[int] - GOAL_AREA_LENGTH_FIELD_NUMBER: _ClassVar[int] - CENTER_CIRCLE_R_FIELD_NUMBER: _ClassVar[int] - GOAL_POST_RADIUS_FIELD_NUMBER: _ClassVar[int] - register_response: RegisterResponse - inertia_moment: float - player_size: float - player_decay: float - player_rand: float - player_weight: float - player_speed_max: float - player_accel_max: float - stamina_max: float - stamina_inc_max: float - recover_init: float - recover_dec_thr: float - recover_min: float - recover_dec: float - effort_init: float - effort_dec_thr: float - effort_min: float - effort_dec: float - effort_inc_thr: float - effort_inc: float - kick_rand: float - team_actuator_noise: bool - player_rand_factor_l: float - player_rand_factor_r: float - kick_rand_factor_l: float - kick_rand_factor_r: float - ball_size: float - ball_decay: float - ball_rand: float - ball_weight: float - ball_speed_max: float - ball_accel_max: float - dash_power_rate: float - kick_power_rate: float - kickable_margin: float - control_radius: float - control_radius_width: float - max_power: float - min_power: float - max_moment: float - min_moment: float - max_neck_moment: float - min_neck_moment: float - max_neck_angle: float - min_neck_angle: float - visible_angle: float - visible_distance: float - wind_dir: float - wind_force: float - wind_angle: float - wind_rand: float - kickable_area: float - catch_area_l: float - catch_area_w: float - catch_probability: float - goalie_max_moves: int - corner_kick_margin: float - offside_active_area_size: float - wind_none: bool - use_wind_random: bool - coach_say_count_max: int - coach_say_msg_size: int - clang_win_size: int - clang_define_win: int - clang_meta_win: int - clang_advice_win: int - clang_info_win: int - clang_mess_delay: int - clang_mess_per_cycle: int - half_time: int - simulator_step: int - send_step: int - recv_step: int - sense_body_step: int - lcm_step: int - player_say_msg_size: int - player_hear_max: int - player_hear_inc: int - player_hear_decay: int - catch_ban_cycle: int - slow_down_factor: int - use_offside: bool - kickoff_offside: bool - offside_kick_margin: float - audio_cut_dist: float - dist_quantize_step: float - landmark_dist_quantize_step: float - dir_quantize_step: float - dist_quantize_step_l: float - dist_quantize_step_r: float - landmark_dist_quantize_step_l: float - landmark_dist_quantize_step_r: float - dir_quantize_step_l: float - dir_quantize_step_r: float - coach_mode: bool - coach_with_referee_mode: bool - use_old_coach_hear: bool - slowness_on_top_for_left_team: float - slowness_on_top_for_right_team: float - start_goal_l: int - start_goal_r: int - fullstate_l: bool - fullstate_r: bool - drop_ball_time: int - synch_mode: bool - synch_offset: int - synch_micro_sleep: int - point_to_ban: int - point_to_duration: int - player_port: int - trainer_port: int - online_coach_port: int - verbose_mode: bool - coach_send_vi_step: int - replay_file: str - landmark_file: str - send_comms: bool - text_logging: bool - game_logging: bool - game_log_version: int - text_log_dir: str - game_log_dir: str - text_log_fixed_name: str - game_log_fixed_name: str - use_text_log_fixed: bool - use_game_log_fixed: bool - use_text_log_dated: bool - use_game_log_dated: bool - log_date_format: str - log_times: bool - record_message: bool - text_log_compression: int - game_log_compression: int - use_profile: bool - tackle_dist: float - tackle_back_dist: float - tackle_width: float - tackle_exponent: float - tackle_cycles: int - tackle_power_rate: float - freeform_wait_period: int - freeform_send_period: int - free_kick_faults: bool - back_passes: bool - proper_goal_kicks: bool - stopped_ball_vel: float - max_goal_kicks: int - clang_del_win: int - clang_rule_win: int - auto_mode: bool - kick_off_wait: int - connect_wait: int - game_over_wait: int - team_l_start: str - team_r_start: str - keepaway_mode: bool - keepaway_length: float - keepaway_width: float - keepaway_logging: bool - keepaway_log_dir: str - keepaway_log_fixed_name: str - keepaway_log_fixed: bool - keepaway_log_dated: bool - keepaway_start: int - nr_normal_halfs: int - nr_extra_halfs: int - penalty_shoot_outs: bool - pen_before_setup_wait: int - pen_setup_wait: int - pen_ready_wait: int - pen_taken_wait: int - pen_nr_kicks: int - pen_max_extra_kicks: int - pen_dist_x: float - pen_random_winner: bool - pen_allow_mult_kicks: bool - pen_max_goalie_dist_x: float - pen_coach_moves_players: bool - module_dir: str - ball_stuck_area: float - coach_msg_file: str - max_tackle_power: float - max_back_tackle_power: float - player_speed_max_min: float - extra_stamina: float - synch_see_offset: int - extra_half_time: int - stamina_capacity: float - max_dash_angle: float - min_dash_angle: float - dash_angle_step: float - side_dash_rate: float - back_dash_rate: float - max_dash_power: float - min_dash_power: float - tackle_rand_factor: float - foul_detect_probability: float - foul_exponent: float - foul_cycles: int - golden_goal: bool - red_card_probability: float - illegal_defense_duration: int - illegal_defense_number: int - illegal_defense_dist_x: float - illegal_defense_width: float - fixed_teamname_l: str - fixed_teamname_r: str - max_catch_angle: float - min_catch_angle: float - random_seed: int - long_kick_power_factor: float - long_kick_delay: int - max_monitors: int - catchable_area: float - real_speed_max: float - pitch_half_length: float - pitch_half_width: float - our_penalty_area_line_x: float - their_penalty_area_line_x: float - penalty_area_half_width: float - penalty_area_length: float - goal_width: float - goal_area_width: float - goal_area_length: float - center_circle_r: float - goal_post_radius: float - def __init__(self, register_response: _Optional[_Union[RegisterResponse, _Mapping]] = ..., inertia_moment: _Optional[float] = ..., player_size: _Optional[float] = ..., player_decay: _Optional[float] = ..., player_rand: _Optional[float] = ..., player_weight: _Optional[float] = ..., player_speed_max: _Optional[float] = ..., player_accel_max: _Optional[float] = ..., stamina_max: _Optional[float] = ..., stamina_inc_max: _Optional[float] = ..., recover_init: _Optional[float] = ..., recover_dec_thr: _Optional[float] = ..., recover_min: _Optional[float] = ..., recover_dec: _Optional[float] = ..., effort_init: _Optional[float] = ..., effort_dec_thr: _Optional[float] = ..., effort_min: _Optional[float] = ..., effort_dec: _Optional[float] = ..., effort_inc_thr: _Optional[float] = ..., effort_inc: _Optional[float] = ..., kick_rand: _Optional[float] = ..., team_actuator_noise: bool = ..., player_rand_factor_l: _Optional[float] = ..., player_rand_factor_r: _Optional[float] = ..., kick_rand_factor_l: _Optional[float] = ..., kick_rand_factor_r: _Optional[float] = ..., ball_size: _Optional[float] = ..., ball_decay: _Optional[float] = ..., ball_rand: _Optional[float] = ..., ball_weight: _Optional[float] = ..., ball_speed_max: _Optional[float] = ..., ball_accel_max: _Optional[float] = ..., dash_power_rate: _Optional[float] = ..., kick_power_rate: _Optional[float] = ..., kickable_margin: _Optional[float] = ..., control_radius: _Optional[float] = ..., control_radius_width: _Optional[float] = ..., max_power: _Optional[float] = ..., min_power: _Optional[float] = ..., max_moment: _Optional[float] = ..., min_moment: _Optional[float] = ..., max_neck_moment: _Optional[float] = ..., min_neck_moment: _Optional[float] = ..., max_neck_angle: _Optional[float] = ..., min_neck_angle: _Optional[float] = ..., visible_angle: _Optional[float] = ..., visible_distance: _Optional[float] = ..., wind_dir: _Optional[float] = ..., wind_force: _Optional[float] = ..., wind_angle: _Optional[float] = ..., wind_rand: _Optional[float] = ..., kickable_area: _Optional[float] = ..., catch_area_l: _Optional[float] = ..., catch_area_w: _Optional[float] = ..., catch_probability: _Optional[float] = ..., goalie_max_moves: _Optional[int] = ..., corner_kick_margin: _Optional[float] = ..., offside_active_area_size: _Optional[float] = ..., wind_none: bool = ..., use_wind_random: bool = ..., coach_say_count_max: _Optional[int] = ..., coach_say_msg_size: _Optional[int] = ..., clang_win_size: _Optional[int] = ..., clang_define_win: _Optional[int] = ..., clang_meta_win: _Optional[int] = ..., clang_advice_win: _Optional[int] = ..., clang_info_win: _Optional[int] = ..., clang_mess_delay: _Optional[int] = ..., clang_mess_per_cycle: _Optional[int] = ..., half_time: _Optional[int] = ..., simulator_step: _Optional[int] = ..., send_step: _Optional[int] = ..., recv_step: _Optional[int] = ..., sense_body_step: _Optional[int] = ..., lcm_step: _Optional[int] = ..., player_say_msg_size: _Optional[int] = ..., player_hear_max: _Optional[int] = ..., player_hear_inc: _Optional[int] = ..., player_hear_decay: _Optional[int] = ..., catch_ban_cycle: _Optional[int] = ..., slow_down_factor: _Optional[int] = ..., use_offside: bool = ..., kickoff_offside: bool = ..., offside_kick_margin: _Optional[float] = ..., audio_cut_dist: _Optional[float] = ..., dist_quantize_step: _Optional[float] = ..., landmark_dist_quantize_step: _Optional[float] = ..., dir_quantize_step: _Optional[float] = ..., dist_quantize_step_l: _Optional[float] = ..., dist_quantize_step_r: _Optional[float] = ..., landmark_dist_quantize_step_l: _Optional[float] = ..., landmark_dist_quantize_step_r: _Optional[float] = ..., dir_quantize_step_l: _Optional[float] = ..., dir_quantize_step_r: _Optional[float] = ..., coach_mode: bool = ..., coach_with_referee_mode: bool = ..., use_old_coach_hear: bool = ..., slowness_on_top_for_left_team: _Optional[float] = ..., slowness_on_top_for_right_team: _Optional[float] = ..., start_goal_l: _Optional[int] = ..., start_goal_r: _Optional[int] = ..., fullstate_l: bool = ..., fullstate_r: bool = ..., drop_ball_time: _Optional[int] = ..., synch_mode: bool = ..., synch_offset: _Optional[int] = ..., synch_micro_sleep: _Optional[int] = ..., point_to_ban: _Optional[int] = ..., point_to_duration: _Optional[int] = ..., player_port: _Optional[int] = ..., trainer_port: _Optional[int] = ..., online_coach_port: _Optional[int] = ..., verbose_mode: bool = ..., coach_send_vi_step: _Optional[int] = ..., replay_file: _Optional[str] = ..., landmark_file: _Optional[str] = ..., send_comms: bool = ..., text_logging: bool = ..., game_logging: bool = ..., game_log_version: _Optional[int] = ..., text_log_dir: _Optional[str] = ..., game_log_dir: _Optional[str] = ..., text_log_fixed_name: _Optional[str] = ..., game_log_fixed_name: _Optional[str] = ..., use_text_log_fixed: bool = ..., use_game_log_fixed: bool = ..., use_text_log_dated: bool = ..., use_game_log_dated: bool = ..., log_date_format: _Optional[str] = ..., log_times: bool = ..., record_message: bool = ..., text_log_compression: _Optional[int] = ..., game_log_compression: _Optional[int] = ..., use_profile: bool = ..., tackle_dist: _Optional[float] = ..., tackle_back_dist: _Optional[float] = ..., tackle_width: _Optional[float] = ..., tackle_exponent: _Optional[float] = ..., tackle_cycles: _Optional[int] = ..., tackle_power_rate: _Optional[float] = ..., freeform_wait_period: _Optional[int] = ..., freeform_send_period: _Optional[int] = ..., free_kick_faults: bool = ..., back_passes: bool = ..., proper_goal_kicks: bool = ..., stopped_ball_vel: _Optional[float] = ..., max_goal_kicks: _Optional[int] = ..., clang_del_win: _Optional[int] = ..., clang_rule_win: _Optional[int] = ..., auto_mode: bool = ..., kick_off_wait: _Optional[int] = ..., connect_wait: _Optional[int] = ..., game_over_wait: _Optional[int] = ..., team_l_start: _Optional[str] = ..., team_r_start: _Optional[str] = ..., keepaway_mode: bool = ..., keepaway_length: _Optional[float] = ..., keepaway_width: _Optional[float] = ..., keepaway_logging: bool = ..., keepaway_log_dir: _Optional[str] = ..., keepaway_log_fixed_name: _Optional[str] = ..., keepaway_log_fixed: bool = ..., keepaway_log_dated: bool = ..., keepaway_start: _Optional[int] = ..., nr_normal_halfs: _Optional[int] = ..., nr_extra_halfs: _Optional[int] = ..., penalty_shoot_outs: bool = ..., pen_before_setup_wait: _Optional[int] = ..., pen_setup_wait: _Optional[int] = ..., pen_ready_wait: _Optional[int] = ..., pen_taken_wait: _Optional[int] = ..., pen_nr_kicks: _Optional[int] = ..., pen_max_extra_kicks: _Optional[int] = ..., pen_dist_x: _Optional[float] = ..., pen_random_winner: bool = ..., pen_allow_mult_kicks: bool = ..., pen_max_goalie_dist_x: _Optional[float] = ..., pen_coach_moves_players: bool = ..., module_dir: _Optional[str] = ..., ball_stuck_area: _Optional[float] = ..., coach_msg_file: _Optional[str] = ..., max_tackle_power: _Optional[float] = ..., max_back_tackle_power: _Optional[float] = ..., player_speed_max_min: _Optional[float] = ..., extra_stamina: _Optional[float] = ..., synch_see_offset: _Optional[int] = ..., extra_half_time: _Optional[int] = ..., stamina_capacity: _Optional[float] = ..., max_dash_angle: _Optional[float] = ..., min_dash_angle: _Optional[float] = ..., dash_angle_step: _Optional[float] = ..., side_dash_rate: _Optional[float] = ..., back_dash_rate: _Optional[float] = ..., max_dash_power: _Optional[float] = ..., min_dash_power: _Optional[float] = ..., tackle_rand_factor: _Optional[float] = ..., foul_detect_probability: _Optional[float] = ..., foul_exponent: _Optional[float] = ..., foul_cycles: _Optional[int] = ..., golden_goal: bool = ..., red_card_probability: _Optional[float] = ..., illegal_defense_duration: _Optional[int] = ..., illegal_defense_number: _Optional[int] = ..., illegal_defense_dist_x: _Optional[float] = ..., illegal_defense_width: _Optional[float] = ..., fixed_teamname_l: _Optional[str] = ..., fixed_teamname_r: _Optional[str] = ..., max_catch_angle: _Optional[float] = ..., min_catch_angle: _Optional[float] = ..., random_seed: _Optional[int] = ..., long_kick_power_factor: _Optional[float] = ..., long_kick_delay: _Optional[int] = ..., max_monitors: _Optional[int] = ..., catchable_area: _Optional[float] = ..., real_speed_max: _Optional[float] = ..., pitch_half_length: _Optional[float] = ..., pitch_half_width: _Optional[float] = ..., our_penalty_area_line_x: _Optional[float] = ..., their_penalty_area_line_x: _Optional[float] = ..., penalty_area_half_width: _Optional[float] = ..., penalty_area_length: _Optional[float] = ..., goal_width: _Optional[float] = ..., goal_area_width: _Optional[float] = ..., goal_area_length: _Optional[float] = ..., center_circle_r: _Optional[float] = ..., goal_post_radius: _Optional[float] = ...) -> None: ... - -class PlayerParam(_message.Message): - __slots__ = ("register_response", "player_types", "subs_max", "pt_max", "allow_mult_default_type", "player_speed_max_delta_min", "player_speed_max_delta_max", "stamina_inc_max_delta_factor", "player_decay_delta_min", "player_decay_delta_max", "inertia_moment_delta_factor", "dash_power_rate_delta_min", "dash_power_rate_delta_max", "player_size_delta_factor", "kickable_margin_delta_min", "kickable_margin_delta_max", "kick_rand_delta_factor", "extra_stamina_delta_min", "extra_stamina_delta_max", "effort_max_delta_factor", "effort_min_delta_factor", "random_seed", "new_dash_power_rate_delta_min", "new_dash_power_rate_delta_max", "new_stamina_inc_max_delta_factor", "kick_power_rate_delta_min", "kick_power_rate_delta_max", "foul_detect_probability_delta_factor", "catchable_area_l_stretch_min", "catchable_area_l_stretch_max") - REGISTER_RESPONSE_FIELD_NUMBER: _ClassVar[int] - PLAYER_TYPES_FIELD_NUMBER: _ClassVar[int] - SUBS_MAX_FIELD_NUMBER: _ClassVar[int] - PT_MAX_FIELD_NUMBER: _ClassVar[int] - ALLOW_MULT_DEFAULT_TYPE_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - STAMINA_INC_MAX_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - INERTIA_MOMENT_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_SIZE_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - EFFORT_MAX_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - EFFORT_MIN_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - RANDOM_SEED_FIELD_NUMBER: _ClassVar[int] - NEW_DASH_POWER_RATE_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - NEW_DASH_POWER_RATE_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - NEW_STAMINA_INC_MAX_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - FOUL_DETECT_PROBABILITY_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_L_STRETCH_MIN_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_L_STRETCH_MAX_FIELD_NUMBER: _ClassVar[int] - register_response: RegisterResponse - player_types: int - subs_max: int - pt_max: int - allow_mult_default_type: bool - player_speed_max_delta_min: float - player_speed_max_delta_max: float - stamina_inc_max_delta_factor: float - player_decay_delta_min: float - player_decay_delta_max: float - inertia_moment_delta_factor: float - dash_power_rate_delta_min: float - dash_power_rate_delta_max: float - player_size_delta_factor: float - kickable_margin_delta_min: float - kickable_margin_delta_max: float - kick_rand_delta_factor: float - extra_stamina_delta_min: float - extra_stamina_delta_max: float - effort_max_delta_factor: float - effort_min_delta_factor: float - random_seed: int - new_dash_power_rate_delta_min: float - new_dash_power_rate_delta_max: float - new_stamina_inc_max_delta_factor: float - kick_power_rate_delta_min: float - kick_power_rate_delta_max: float - foul_detect_probability_delta_factor: float - catchable_area_l_stretch_min: float - catchable_area_l_stretch_max: float - def __init__(self, register_response: _Optional[_Union[RegisterResponse, _Mapping]] = ..., player_types: _Optional[int] = ..., subs_max: _Optional[int] = ..., pt_max: _Optional[int] = ..., allow_mult_default_type: bool = ..., player_speed_max_delta_min: _Optional[float] = ..., player_speed_max_delta_max: _Optional[float] = ..., stamina_inc_max_delta_factor: _Optional[float] = ..., player_decay_delta_min: _Optional[float] = ..., player_decay_delta_max: _Optional[float] = ..., inertia_moment_delta_factor: _Optional[float] = ..., dash_power_rate_delta_min: _Optional[float] = ..., dash_power_rate_delta_max: _Optional[float] = ..., player_size_delta_factor: _Optional[float] = ..., kickable_margin_delta_min: _Optional[float] = ..., kickable_margin_delta_max: _Optional[float] = ..., kick_rand_delta_factor: _Optional[float] = ..., extra_stamina_delta_min: _Optional[float] = ..., extra_stamina_delta_max: _Optional[float] = ..., effort_max_delta_factor: _Optional[float] = ..., effort_min_delta_factor: _Optional[float] = ..., random_seed: _Optional[int] = ..., new_dash_power_rate_delta_min: _Optional[float] = ..., new_dash_power_rate_delta_max: _Optional[float] = ..., new_stamina_inc_max_delta_factor: _Optional[float] = ..., kick_power_rate_delta_min: _Optional[float] = ..., kick_power_rate_delta_max: _Optional[float] = ..., foul_detect_probability_delta_factor: _Optional[float] = ..., catchable_area_l_stretch_min: _Optional[float] = ..., catchable_area_l_stretch_max: _Optional[float] = ...) -> None: ... - -class PlayerType(_message.Message): - __slots__ = ("register_response", "id", "stamina_inc_max", "player_decay", "inertia_moment", "dash_power_rate", "player_size", "kickable_margin", "kick_rand", "extra_stamina", "effort_max", "effort_min", "kick_power_rate", "foul_detect_probability", "catchable_area_l_stretch", "unum_far_length", "unum_too_far_length", "team_far_length", "team_too_far_length", "player_max_observation_length", "ball_vel_far_length", "ball_vel_too_far_length", "ball_max_observation_length", "flag_chg_far_length", "flag_chg_too_far_length", "flag_max_observation_length", "kickable_area", "reliable_catchable_dist", "max_catchable_dist", "real_speed_max", "player_speed_max2", "real_speed_max2", "cycles_to_reach_max_speed", "player_speed_max") - REGISTER_RESPONSE_FIELD_NUMBER: _ClassVar[int] - ID_FIELD_NUMBER: _ClassVar[int] - STAMINA_INC_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_FIELD_NUMBER: _ClassVar[int] - INERTIA_MOMENT_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - PLAYER_SIZE_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_FIELD_NUMBER: _ClassVar[int] - EFFORT_MAX_FIELD_NUMBER: _ClassVar[int] - EFFORT_MIN_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - FOUL_DETECT_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_L_STRETCH_FIELD_NUMBER: _ClassVar[int] - UNUM_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - UNUM_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - TEAM_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - TEAM_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - PLAYER_MAX_OBSERVATION_LENGTH_FIELD_NUMBER: _ClassVar[int] - BALL_VEL_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - BALL_VEL_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - BALL_MAX_OBSERVATION_LENGTH_FIELD_NUMBER: _ClassVar[int] - FLAG_CHG_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - FLAG_CHG_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - FLAG_MAX_OBSERVATION_LENGTH_FIELD_NUMBER: _ClassVar[int] - KICKABLE_AREA_FIELD_NUMBER: _ClassVar[int] - RELIABLE_CATCHABLE_DIST_FIELD_NUMBER: _ClassVar[int] - MAX_CATCHABLE_DIST_FIELD_NUMBER: _ClassVar[int] - REAL_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX2_FIELD_NUMBER: _ClassVar[int] - REAL_SPEED_MAX2_FIELD_NUMBER: _ClassVar[int] - CYCLES_TO_REACH_MAX_SPEED_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - register_response: RegisterResponse - id: int - stamina_inc_max: float - player_decay: float - inertia_moment: float - dash_power_rate: float - player_size: float - kickable_margin: float - kick_rand: float - extra_stamina: float - effort_max: float - effort_min: float - kick_power_rate: float - foul_detect_probability: float - catchable_area_l_stretch: float - unum_far_length: float - unum_too_far_length: float - team_far_length: float - team_too_far_length: float - player_max_observation_length: float - ball_vel_far_length: float - ball_vel_too_far_length: float - ball_max_observation_length: float - flag_chg_far_length: float - flag_chg_too_far_length: float - flag_max_observation_length: float - kickable_area: float - reliable_catchable_dist: float - max_catchable_dist: float - real_speed_max: float - player_speed_max2: float - real_speed_max2: float - cycles_to_reach_max_speed: int - player_speed_max: float - def __init__(self, register_response: _Optional[_Union[RegisterResponse, _Mapping]] = ..., id: _Optional[int] = ..., stamina_inc_max: _Optional[float] = ..., player_decay: _Optional[float] = ..., inertia_moment: _Optional[float] = ..., dash_power_rate: _Optional[float] = ..., player_size: _Optional[float] = ..., kickable_margin: _Optional[float] = ..., kick_rand: _Optional[float] = ..., extra_stamina: _Optional[float] = ..., effort_max: _Optional[float] = ..., effort_min: _Optional[float] = ..., kick_power_rate: _Optional[float] = ..., foul_detect_probability: _Optional[float] = ..., catchable_area_l_stretch: _Optional[float] = ..., unum_far_length: _Optional[float] = ..., unum_too_far_length: _Optional[float] = ..., team_far_length: _Optional[float] = ..., team_too_far_length: _Optional[float] = ..., player_max_observation_length: _Optional[float] = ..., ball_vel_far_length: _Optional[float] = ..., ball_vel_too_far_length: _Optional[float] = ..., ball_max_observation_length: _Optional[float] = ..., flag_chg_far_length: _Optional[float] = ..., flag_chg_too_far_length: _Optional[float] = ..., flag_max_observation_length: _Optional[float] = ..., kickable_area: _Optional[float] = ..., reliable_catchable_dist: _Optional[float] = ..., max_catchable_dist: _Optional[float] = ..., real_speed_max: _Optional[float] = ..., player_speed_max2: _Optional[float] = ..., real_speed_max2: _Optional[float] = ..., cycles_to_reach_max_speed: _Optional[int] = ..., player_speed_max: _Optional[float] = ...) -> None: ... - -class RpcCooperativeAction(_message.Message): - __slots__ = ("category", "index", "sender_unum", "target_unum", "target_point", "first_ball_speed", "first_turn_moment", "first_dash_power", "first_dash_angle_relative", "duration_step", "kick_count", "turn_count", "dash_count", "final_action", "description", "parent_index") - CATEGORY_FIELD_NUMBER: _ClassVar[int] - INDEX_FIELD_NUMBER: _ClassVar[int] - SENDER_UNUM_FIELD_NUMBER: _ClassVar[int] - TARGET_UNUM_FIELD_NUMBER: _ClassVar[int] - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - FIRST_BALL_SPEED_FIELD_NUMBER: _ClassVar[int] - FIRST_TURN_MOMENT_FIELD_NUMBER: _ClassVar[int] - FIRST_DASH_POWER_FIELD_NUMBER: _ClassVar[int] - FIRST_DASH_ANGLE_RELATIVE_FIELD_NUMBER: _ClassVar[int] - DURATION_STEP_FIELD_NUMBER: _ClassVar[int] - KICK_COUNT_FIELD_NUMBER: _ClassVar[int] - TURN_COUNT_FIELD_NUMBER: _ClassVar[int] - DASH_COUNT_FIELD_NUMBER: _ClassVar[int] - FINAL_ACTION_FIELD_NUMBER: _ClassVar[int] - DESCRIPTION_FIELD_NUMBER: _ClassVar[int] - PARENT_INDEX_FIELD_NUMBER: _ClassVar[int] - category: RpcActionCategory - index: int - sender_unum: int - target_unum: int - target_point: RpcVector2D - first_ball_speed: float - first_turn_moment: float - first_dash_power: float - first_dash_angle_relative: float - duration_step: int - kick_count: int - turn_count: int - dash_count: int - final_action: bool - description: str - parent_index: int - def __init__(self, category: _Optional[_Union[RpcActionCategory, str]] = ..., index: _Optional[int] = ..., sender_unum: _Optional[int] = ..., target_unum: _Optional[int] = ..., target_point: _Optional[_Union[RpcVector2D, _Mapping]] = ..., first_ball_speed: _Optional[float] = ..., first_turn_moment: _Optional[float] = ..., first_dash_power: _Optional[float] = ..., first_dash_angle_relative: _Optional[float] = ..., duration_step: _Optional[int] = ..., kick_count: _Optional[int] = ..., turn_count: _Optional[int] = ..., dash_count: _Optional[int] = ..., final_action: bool = ..., description: _Optional[str] = ..., parent_index: _Optional[int] = ...) -> None: ... - -class RpcPredictState(_message.Message): - __slots__ = ("spend_time", "ball_holder_unum", "ball_position", "ball_velocity", "our_defense_line_x", "our_offense_line_x") - SPEND_TIME_FIELD_NUMBER: _ClassVar[int] - BALL_HOLDER_UNUM_FIELD_NUMBER: _ClassVar[int] - BALL_POSITION_FIELD_NUMBER: _ClassVar[int] - BALL_VELOCITY_FIELD_NUMBER: _ClassVar[int] - OUR_DEFENSE_LINE_X_FIELD_NUMBER: _ClassVar[int] - OUR_OFFENSE_LINE_X_FIELD_NUMBER: _ClassVar[int] - spend_time: int - ball_holder_unum: int - ball_position: RpcVector2D - ball_velocity: RpcVector2D - our_defense_line_x: float - our_offense_line_x: float - def __init__(self, spend_time: _Optional[int] = ..., ball_holder_unum: _Optional[int] = ..., ball_position: _Optional[_Union[RpcVector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[RpcVector2D, _Mapping]] = ..., our_defense_line_x: _Optional[float] = ..., our_offense_line_x: _Optional[float] = ...) -> None: ... - -class RpcActionState(_message.Message): - __slots__ = ("action", "predict_state", "evaluation") - ACTION_FIELD_NUMBER: _ClassVar[int] - PREDICT_STATE_FIELD_NUMBER: _ClassVar[int] - EVALUATION_FIELD_NUMBER: _ClassVar[int] - action: RpcCooperativeAction - predict_state: RpcPredictState - evaluation: float - def __init__(self, action: _Optional[_Union[RpcCooperativeAction, _Mapping]] = ..., predict_state: _Optional[_Union[RpcPredictState, _Mapping]] = ..., evaluation: _Optional[float] = ...) -> None: ... - -class BestPlannerActionRequest(_message.Message): - __slots__ = ("register_response", "pairs", "state") - class PairsEntry(_message.Message): - __slots__ = ("key", "value") - KEY_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - key: int - value: RpcActionState - def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[RpcActionState, _Mapping]] = ...) -> None: ... - REGISTER_RESPONSE_FIELD_NUMBER: _ClassVar[int] - PAIRS_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - register_response: RegisterResponse - pairs: _containers.MessageMap[int, RpcActionState] - state: State - def __init__(self, register_response: _Optional[_Union[RegisterResponse, _Mapping]] = ..., pairs: _Optional[_Mapping[int, RpcActionState]] = ..., state: _Optional[_Union[State, _Mapping]] = ...) -> None: ... - -class BestPlannerActionResponse(_message.Message): - __slots__ = ("index",) - INDEX_FIELD_NUMBER: _ClassVar[int] - index: int - def __init__(self, index: _Optional[int] = ...) -> None: ... - -class Empty(_message.Message): - __slots__ = () - def __init__(self) -> None: ... diff --git a/service_pb2_grpc.py b/service_pb2_grpc.py deleted file mode 100644 index 6e323d7..0000000 --- a/service_pb2_grpc.py +++ /dev/null @@ -1,489 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -"""Client and server classes corresponding to protobuf-defined services.""" -import grpc -import warnings - -import service_pb2 as service__pb2 - -GRPC_GENERATED_VERSION = '1.65.4' -GRPC_VERSION = grpc.__version__ -EXPECTED_ERROR_RELEASE = '1.66.0' -SCHEDULED_RELEASE_DATE = 'August 6, 2024' -_version_not_supported = False - -try: - from grpc._utilities import first_version_is_lower - _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) -except ImportError: - _version_not_supported = True - -if _version_not_supported: - warnings.warn( - f'The grpc package installed is at version {GRPC_VERSION},' - + f' but the generated code in service_pb2_grpc.py depends on' - + f' grpcio>={GRPC_GENERATED_VERSION}.' - + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' - + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' - + f' This warning will become an error in {EXPECTED_ERROR_RELEASE},' - + f' scheduled for release on {SCHEDULED_RELEASE_DATE}.', - RuntimeWarning - ) - - -class GameStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.GetPlayerActions = channel.unary_unary( - '/protos.Game/GetPlayerActions', - request_serializer=service__pb2.State.SerializeToString, - response_deserializer=service__pb2.PlayerActions.FromString, - _registered_method=True) - self.GetCoachActions = channel.unary_unary( - '/protos.Game/GetCoachActions', - request_serializer=service__pb2.State.SerializeToString, - response_deserializer=service__pb2.CoachActions.FromString, - _registered_method=True) - self.GetTrainerActions = channel.unary_unary( - '/protos.Game/GetTrainerActions', - request_serializer=service__pb2.State.SerializeToString, - response_deserializer=service__pb2.TrainerActions.FromString, - _registered_method=True) - self.SendInitMessage = channel.unary_unary( - '/protos.Game/SendInitMessage', - request_serializer=service__pb2.InitMessage.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - _registered_method=True) - self.SendServerParams = channel.unary_unary( - '/protos.Game/SendServerParams', - request_serializer=service__pb2.ServerParam.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - _registered_method=True) - self.SendPlayerParams = channel.unary_unary( - '/protos.Game/SendPlayerParams', - request_serializer=service__pb2.PlayerParam.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - _registered_method=True) - self.SendPlayerType = channel.unary_unary( - '/protos.Game/SendPlayerType', - request_serializer=service__pb2.PlayerType.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - _registered_method=True) - self.Register = channel.unary_unary( - '/protos.Game/Register', - request_serializer=service__pb2.RegisterRequest.SerializeToString, - response_deserializer=service__pb2.RegisterResponse.FromString, - _registered_method=True) - self.SendByeCommand = channel.unary_unary( - '/protos.Game/SendByeCommand', - request_serializer=service__pb2.RegisterResponse.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - _registered_method=True) - self.GetBestPlannerAction = channel.unary_unary( - '/protos.Game/GetBestPlannerAction', - request_serializer=service__pb2.BestPlannerActionRequest.SerializeToString, - response_deserializer=service__pb2.BestPlannerActionResponse.FromString, - _registered_method=True) - - -class GameServicer(object): - """Missing associated documentation comment in .proto file.""" - - def GetPlayerActions(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetCoachActions(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetTrainerActions(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendInitMessage(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendServerParams(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendPlayerParams(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendPlayerType(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def Register(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendByeCommand(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetBestPlannerAction(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_GameServicer_to_server(servicer, server): - rpc_method_handlers = { - 'GetPlayerActions': grpc.unary_unary_rpc_method_handler( - servicer.GetPlayerActions, - request_deserializer=service__pb2.State.FromString, - response_serializer=service__pb2.PlayerActions.SerializeToString, - ), - 'GetCoachActions': grpc.unary_unary_rpc_method_handler( - servicer.GetCoachActions, - request_deserializer=service__pb2.State.FromString, - response_serializer=service__pb2.CoachActions.SerializeToString, - ), - 'GetTrainerActions': grpc.unary_unary_rpc_method_handler( - servicer.GetTrainerActions, - request_deserializer=service__pb2.State.FromString, - response_serializer=service__pb2.TrainerActions.SerializeToString, - ), - 'SendInitMessage': grpc.unary_unary_rpc_method_handler( - servicer.SendInitMessage, - request_deserializer=service__pb2.InitMessage.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'SendServerParams': grpc.unary_unary_rpc_method_handler( - servicer.SendServerParams, - request_deserializer=service__pb2.ServerParam.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'SendPlayerParams': grpc.unary_unary_rpc_method_handler( - servicer.SendPlayerParams, - request_deserializer=service__pb2.PlayerParam.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'SendPlayerType': grpc.unary_unary_rpc_method_handler( - servicer.SendPlayerType, - request_deserializer=service__pb2.PlayerType.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'Register': grpc.unary_unary_rpc_method_handler( - servicer.Register, - request_deserializer=service__pb2.RegisterRequest.FromString, - response_serializer=service__pb2.RegisterResponse.SerializeToString, - ), - 'SendByeCommand': grpc.unary_unary_rpc_method_handler( - servicer.SendByeCommand, - request_deserializer=service__pb2.RegisterResponse.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'GetBestPlannerAction': grpc.unary_unary_rpc_method_handler( - servicer.GetBestPlannerAction, - request_deserializer=service__pb2.BestPlannerActionRequest.FromString, - response_serializer=service__pb2.BestPlannerActionResponse.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'protos.Game', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - server.add_registered_method_handlers('protos.Game', rpc_method_handlers) - - - # This class is part of an EXPERIMENTAL API. -class Game(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def GetPlayerActions(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/GetPlayerActions', - service__pb2.State.SerializeToString, - service__pb2.PlayerActions.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def GetCoachActions(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/GetCoachActions', - service__pb2.State.SerializeToString, - service__pb2.CoachActions.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def GetTrainerActions(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/GetTrainerActions', - service__pb2.State.SerializeToString, - service__pb2.TrainerActions.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def SendInitMessage(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/SendInitMessage', - service__pb2.InitMessage.SerializeToString, - service__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def SendServerParams(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/SendServerParams', - service__pb2.ServerParam.SerializeToString, - service__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def SendPlayerParams(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/SendPlayerParams', - service__pb2.PlayerParam.SerializeToString, - service__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def SendPlayerType(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/SendPlayerType', - service__pb2.PlayerType.SerializeToString, - service__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def Register(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/Register', - service__pb2.RegisterRequest.SerializeToString, - service__pb2.RegisterResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def SendByeCommand(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/SendByeCommand', - service__pb2.RegisterResponse.SerializeToString, - service__pb2.Empty.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True) - - @staticmethod - def GetBestPlannerAction(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary( - request, - target, - '/protos.Game/GetBestPlannerAction', - service__pb2.BestPlannerActionRequest.SerializeToString, - service__pb2.BestPlannerActionResponse.FromString, - options, - channel_credentials, - insecure, - call_credentials, - compression, - wait_for_ready, - timeout, - metadata, - _registered_method=True)