diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 538f2c5..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -__pycache__/ -src/__pycache__/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..399619e --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# Cross Language Soccer Framework + +Cross Language Soccer Framework (CLSFramework) is a new approach to enhance the flexibility and interoperability of RoboCup Soccer Simulation 2D (SS2D). +This framework is designed to allow the development of RoboCup Soccer Simulation 2D agents in different programming languages. +The Soccer Simulation Proxy is an extended version of the Helios base that can send decision-making information to a PlayMaker Server. It can receive high-level/low-level actions from the PlayMaker Server and send them to the RoboCup Soccer Simulation Server and/or SoccerWindow2. +On the other hand, the PlayMaker Server receives information from the client(Modified version of Helios base/Soccer Simulation Proxy) and selects the appropriate actions to be sent back to the client. We have implemented some sample servers in C\#, Python, and JavaScript, but it can also be implemented in other languages to make use of their features. + +To learn more about the framework, how to build, and how to run it please check the [wiki pages](https://github.com/CLSFramework/cross-language-soccer-framework/wiki). + +Also, you can check the following repositories to find sample playmaker servers in PYTHON: +- [PlaymakerServer-Python](https://github.com/CLSFramework/playmaker-server-python) +- - [Sample-PlaymakerServer-Python-GRPC](https://github.com/CLSFramework/sample-playmaker-server-python-grpc) +- - [Sample-PlaymakerServer-Python-THRIFT](https://github.com/CLSFramework/sample-playmaker-server-python-thrift) +- - [Starter-PlaymakerServer-Python-THRIFT](https://github.com/CLSFramework/starter-playmaker-server-python-thrift) + +![image](https://github.com/user-attachments/assets/0c22d0e5-a1ad-4a43-8cba-a9fc70c6ed5b) + +![image](https://github.com/Cross-Language-Soccer-Framework/cross-language-soccer-framework/assets/25696836/7b0b1d49-7001-479c-889f-46a96a8802c4) + +![image](https://github.com/user-attachments/assets/b4484095-0913-4434-bf1f-35f11e8bf629) + +![image](https://github.com/user-attachments/assets/bc1b9c86-f772-4df8-a420-438e363c59b5) diff --git a/generate.sh b/generate.sh deleted file mode 100755 index dbfbbf4..0000000 --- a/generate.sh +++ /dev/null @@ -1 +0,0 @@ -python3 -m grpc_tools.protoc -I./protos --python_out=. --pyi_out=. --grpc_python_out=. ./protos/*.proto diff --git a/grpc-server.py b/grpc-server.py deleted file mode 100644 index 52f2f64..0000000 --- a/grpc-server.py +++ /dev/null @@ -1,66 +0,0 @@ -import service_pb2_grpc as pb2_grpc -import service_pb2 as pb2 -import google.protobuf -from concurrent import futures -import grpc -from src.SamplePlayerAgent import SamplePlayerAgent -from src.SampleCoachAgent import SampleCoachAgent -from src.SampleTrainerAgent import SampleTrainerAgent -from threading import RLock - -lock = RLock() - - -class Game(pb2_grpc.GameServicer): - def __init__(self): - self.player_agent = SamplePlayerAgent() - self.coach_agent = SampleCoachAgent() - self.trainer_agent = SampleTrainerAgent() - - def GetPlayerActions(self, request:pb2.State, context): - actions = self.player_agent.get_actions(request.world_model) - return actions - - def GetCoachActions(self, request:pb2.State, context): - actions = self.coach_agent.get_actions(request.world_model) - return actions - - def GetTrainerActions(self, request:pb2.State, context): - actions = self.trainer_agent.get_actions(request.world_model) - return actions - - def SendServerParams(self, request: pb2.ServerParam, context): - self.player_agent.set_params(request) - self.coach_agent.set_params(request) - self.trainer_agent.set_params(request) - return pb2.Empty() - - def SendPlayerParams(self, request:pb2.PlayerParam, context): - self.player_agent.set_params(request) - self.coach_agent.set_params(request) - self.trainer_agent.set_params(request) - return pb2.Empty() - - def SendPlayerType(self, request: pb2.PlayerType, context): - self.player_agent.set_params(request) - self.coach_agent.set_params(request) - self.trainer_agent.set_params(request) - return pb2.Empty() - - def SendInitMessage(self, request, context): - self.player_agent.set_debug_mode(request.debug_mode) - print("Debug mode: ", request.debug_mode) - return pb2.Empty() - - -def serve(): - server = grpc.server(futures.ThreadPoolExecutor(max_workers=22)) - pb2_grpc.add_GameServicer_to_server(Game(), server) - server.add_insecure_port('[::]:50051') - server.start() - print("Server started at port 50051") - server.wait_for_termination() - - -if __name__ == '__main__': - serve() diff --git a/protos/service.proto b/protos/service.proto deleted file mode 100644 index cd2e54f..0000000 --- a/protos/service.proto +++ /dev/null @@ -1,1204 +0,0 @@ -syntax = "proto3"; - -package protos; - -enum ViewWidth { - NARROW = 0; - NORMAL = 1; - WIDE = 2; -} - -message Vector2D { - float x = 1; - float y = 2; - float dist = 3; - float angle = 4; -} - -message Ball { - Vector2D position = 1; - Vector2D relative_position = 2; - Vector2D seen_position = 3; - Vector2D heard_position = 4; - Vector2D velocity = 5; - Vector2D seen_velocity = 6; - Vector2D 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; - int32 ghost_count = 15; - float dist_from_self = 16; - float angle_from_self = 17; -} - -enum Side { - UNKNOWN = 0; - LEFT = 1; - RIGHT = 2; -} - -enum LoggerLevel{ - None = 0; - SYSTEM = 0x00000001; - SENSOR = 0x00000002; - WORLD = 0x00000004; - ACTION = 0x00000008; - INTERCEPT = 0x00000010; - KICK = 0x00000020; - HOLD = 0x00000040; - DRIBBLE = 0x00000080; - PASS = 0x00000100; - CROSS = 0x00000200; - SHOOT = 0x00000400; - CLEAR = 0x00000800; - BLOCK = 0x00001000; - MARK = 0x00002000; - POSITIONING = 0x00004000; - ROLE = 0x00008000; - TEAM = 0x00010000; - COMMUNICATION = 0x00020000; - ANALYZER = 0x00040000; - ACTION_CHAIN = 0x00080000; - PLAN = 0x00100000; - // TRAINING = 0x80000000; - // LEVEL_ANY = 0xffffffff; -} - -message Player { - Vector2D position = 1; - Vector2D seen_position = 2; - Vector2D heard_position = 3; - Vector2D velocity = 4; - Vector2D 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; -} - -message Self { - Vector2D position = 1; - Vector2D seen_position = 2; - Vector2D heard_position = 3; - Vector2D velocity = 4; - Vector2D 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; -} - -enum InterceptActionType { - UNKNOWN_Intercept_Action_Type = 0; - OMNI_DASH = 1; - TURN_FORWARD_DASH = 2; - TURN_BACKWARD_DASH = 3; -} - -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; - Vector2D final_self_position = 7; - float final_ball_dist = 8; - float final_stamina = 9; - float value = 10; -} - -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; -} - -enum GameModeType { - BeforeKickOff = 0; - TimeOver = 1; - PlayOn = 2; - KickOff_ = 3; - KickIn_ = 4; - FreeKick_ = 5; - CornerKick_ = 6; - GoalKick_ = 7; - AfterGoal_ = 8; - OffSide_ = 9; - PenaltyKick_ = 10; - FirstHalfOver = 11; - Pause = 12; - Human = 13; - FoulCharge_ = 14; - FoulPush_ = 15; - FoulMultipleAttacker_ = 16; - FoulBallOut_ = 17; - BackPass_ = 18; - FreeKickFault_ = 19; - CatchFault_ = 20; - IndFreeKick_ = 21; - PenaltySetup_ = 22; - PenaltyReady_ = 23; - PenaltyTaken_ = 24; - PenaltyMiss_ = 25; - PenaltyScore_ = 26; - IllegalDefense_ = 27; - PenaltyOnfield_ = 28; - PenaltyFoul_ = 29; - GoalieCatch_ = 30; - ExtendHalf = 31; - MODE_MAX = 32; -} - -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; - 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; -} - -message State { - AgentType agent_type = 1; - WorldModel world_model = 2; - WorldModel full_world_model = 3; - -} - -enum AgentType { - PlayerT = 0; - CoachT = 1; - TrainerT = 2; -} - -message InitMessage { - AgentType agent_type = 1; - bool debug_mode = 2; -} - -message Dash { - float power = 1; - float relative_direction = 2; -} - -message Turn { - float relative_direction = 1; -} - -message Kick { - float power = 1; - float relative_direction = 2; -} - -message Tackle { - float power_or_dir = 1; - bool foul = 2; -} - -message Catch { - -} - -message Move { - float x = 1; - float y = 2; -} - -message TurnNeck { - float moment = 1; -} - -message ChangeView { - ViewWidth view_width = 1; -} - -message BallMessage { - Vector2D ball_position = 1; - Vector2D ball_velocity = 2; -} - -message PassMessage { - int32 receiver_uniform_number = 1; - Vector2D receiver_point = 2; - Vector2D ball_position = 3; - Vector2D ball_velocity = 4; -} - -message InterceptMessage { - bool our = 1; - int32 uniform_number = 2; - int32 cycle = 3; -} - -message GoalieMessage { - int32 goalie_uniform_number = 1; - Vector2D goalie_position = 2; - float goalie_body_direction = 3; -} - -message GoalieAndPlayerMessage { - int32 goalie_uniform_number = 1; - Vector2D goalie_position = 2; - float goalie_body_direction = 3; - - int32 player_uniform_number = 4; - Vector2D player_position = 5; -} - -message OffsideLineMessage { - float offside_line_x = 1; -} - -message DefenseLineMessage { - float defense_line_x = 1; -} - -message WaitRequestMessage { -} - -message SetplayMessage { - int32 wait_step = 1; -} - -message PassRequestMessage { - Vector2D target_point = 1; -} - -message StaminaMessage { - float stamina = 1; -} - -message RecoveryMessage { - float recovery = 1; -} - -message StaminaCapacityMessage { - float stamina_capacity = 1; -} - -message DribbleMessage { - Vector2D target_point = 1; - int32 queue_count = 2; -} - -message BallGoalieMessage { - Vector2D ball_position = 1; - Vector2D ball_velocity = 2; - - Vector2D goalie_position = 3; - float goalie_body_direction = 4; -} - -message OnePlayerMessage { - int32 uniform_number = 1; - Vector2D position = 2; -} - -message TwoPlayerMessage { - int32 first_uniform_number = 1; - Vector2D first_position = 2; - - int32 second_uniform_number = 3; - Vector2D second_position = 4; -} - -message ThreePlayerMessage { - int32 first_uniform_number = 1; - Vector2D first_position = 2; - - int32 second_uniform_number = 3; - Vector2D second_position = 4; - - int32 third_uniform_number = 5; - Vector2D third_position = 6; -} - -message SelfMessage { - Vector2D self_position = 1; - float self_body_direction = 2; - float self_stamina = 3; -} - -message TeammateMessage { - int32 uniform_number = 1; - Vector2D position = 2; - float body_direction = 3; -} - -message OpponentMessage { - int32 uniform_number = 1; - Vector2D position = 2; - float body_direction = 3; -} - -message BallPlayerMessage { - Vector2D ball_position = 1; - Vector2D ball_velocity = 2; - - int32 uniform_number = 3; - Vector2D player_position = 4; - float body_direction = 5; -} - -message Say { - oneof message { - BallMessage ball_message = 1; - PassMessage pass_message = 2; - InterceptMessage intercept_message = 3; - GoalieMessage goalie_message = 4; - GoalieAndPlayerMessage goalie_and_player_message = 5; - OffsideLineMessage offside_line_message = 6; - DefenseLineMessage defense_line_message = 7; - WaitRequestMessage wait_request_message = 8; - SetplayMessage setplay_message = 9; - PassRequestMessage pass_request_message = 10; - StaminaMessage stamina_message = 11; - RecoveryMessage recovery_message = 12; - StaminaCapacityMessage stamina_capacity_message = 13; - DribbleMessage dribble_message = 14; - BallGoalieMessage ball_goalie_message = 15; - OnePlayerMessage one_player_message = 16; - TwoPlayerMessage two_player_message = 17; - ThreePlayerMessage three_player_message = 18; - SelfMessage self_message = 19; - TeammateMessage teammate_message = 20; - OpponentMessage opponent_message = 21; - BallPlayerMessage ball_player_message = 22; - } -} - -message PointTo { - float x = 1; - float y = 2; -} - -message PointToOf { - -} - -message AttentionTo { - Side side = 1; - int32 unum = 2; -} - -message AttentionToOf { - -} - -message AddText{ - LoggerLevel level = 1; - string message = 2; -} - -message AddPoint{ - LoggerLevel level = 1; - Vector2D point = 2; - string color = 3; -} - -message AddLine{ - LoggerLevel level = 1; - Vector2D start = 2; - Vector2D end = 3; - string color = 4; -} - -message AddArc{ - LoggerLevel level = 1; - Vector2D center = 2; - float radius = 3; - float start_angle = 4; - float span_angel = 5; - string color = 6; -} - -message AddCircle{ - LoggerLevel level = 1; - Vector2D center = 2; - float radius = 3; - string color = 4; - bool fill = 5; -} - -message AddTriangle{ - LoggerLevel level = 1; - Vector2D point1 = 2; - Vector2D point2 = 3; - Vector2D point3 = 4; - string color = 5; - bool fill = 6; -} - -message AddRectangle{ - LoggerLevel level = 1; - float left = 2; - float top = 3; - float length = 4; - float width = 5; - string color = 6; - bool fill = 7; -} - -message AddSector{ - LoggerLevel level = 1; - Vector2D center = 2; - float min_radius = 3; - float max_radius = 4; - float start_angle = 5; - float span_angel = 6; - string color = 7; - bool fill = 8; -} - -message AddMessage{ - LoggerLevel level = 1; - Vector2D position = 2; - string message = 3; - string color = 4; -} - -message Log { - oneof log { - AddText add_text = 1; - AddPoint add_point = 2; - AddLine add_line = 3; - AddArc add_arc = 4; - AddCircle add_circle = 5; - AddTriangle add_triangle = 6; - AddRectangle add_rectangle = 7; - AddSector add_sector = 8; - AddMessage add_message = 9; - } -} - -message DebugClient { - string message = 1; -} - -message Body_GoToPoint { // todo more variables - Vector2D target_point = 1; - float distance_threshold = 2; - float max_dash_power = 3; -} - -message Body_SmartKick { // todo more variables - Vector2D target_point = 1; - float first_speed = 2; - float first_speed_threshold = 3; - int32 max_steps = 4; -} - -message Bhv_BeforeKickOff { - Vector2D point = 1; -} - -message Bhv_BodyNeckToBall { -} - -message Bhv_BodyNeckToPoint { - Vector2D point = 1; -} - -message Bhv_Emergency { -} - -message Bhv_GoToPointLookBall { - Vector2D target_point = 1; - float distance_threshold = 2; - float max_dash_power = 3; -} - -message Bhv_NeckBodyToBall { - float angle_buf = 1; -} - -message Bhv_NeckBodyToPoint { - Vector2D point = 1; - float angle_buf = 2; -} - -message Bhv_ScanField { -} - -message Body_AdvanceBall { -} - -message Body_ClearBall { -} - -message Body_Dribble { - Vector2D target_point = 1; - float distance_threshold = 2; - float dash_power = 3; - int32 dash_count = 4; - bool dodge = 5; -} - -message Body_GoToPointDodge { - Vector2D target_point = 1; - float dash_power = 2; -} - -message Body_HoldBall { - bool do_turn = 1; - Vector2D turn_target_point = 2; - Vector2D kick_target_point = 3; -} - -message Body_Intercept { - bool save_recovery = 1; - Vector2D face_point = 2; -} - -message Body_KickOneStep { - Vector2D target_point = 1; - float first_speed = 2; - bool force_mode = 3; -} - -message Body_StopBall { -} - -message Body_StopDash { - bool save_recovery = 1; -} - -message Body_TackleToPoint { - Vector2D target_point = 1; - float min_probability = 2; - float min_speed = 3; -} - -message Body_TurnToAngle { - float angle = 1; -} - -message Body_TurnToBall { - int32 cycle = 1; -} - -message Body_TurnToPoint { - Vector2D target_point = 1; - int32 cycle = 2; -} - -message Focus_MoveToPoint { - Vector2D target_point = 1; -} - -message Focus_Reset { -} - -message Neck_ScanField { -} - -message Neck_ScanPlayers { // todo min/max_angle -} - -message Neck_TurnToBallAndPlayer { - Side side = 1; - int32 uniform_number = 2; - int32 count_threshold = 3; -} - -message Neck_TurnToBallOrScan { - int32 count_threshold = 1; -} - -message Neck_TurnToBall { -} - -message Neck_TurnToGoalieOrScan { - int32 count_threshold = 1; -} - -message Neck_TurnToLowConfTeammate { -} - -message Neck_TurnToPlayerOrScan { - Side side = 1; - int32 uniform_number = 2; - int32 count_threshold = 3; -} - -message Neck_TurnToPoint { - Vector2D target_point = 1; -} - -message Neck_TurnToRelative { - float angle = 1; -} - -message View_ChangeWidth { - ViewWidth view_width = 1; -} - -message View_Normal { -} - -message View_Synch { -} - -message View_Wide { -} - -message HeliosGoalie {} - -message HeliosGoalieMove {} - -message HeliosGoalieKick {} - -message HeliosShoot {} - -message HeliosChainAction { - 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; -} - -message HeliosBasicOffensive {} - -message HeliosBasicMove {} - -message HeliosSetPlay {} - -message HeliosPenalty {} - -message HeliosCommunicaion {} - -message PlayerAction { - oneof action { - Dash dash = 1; - Turn turn = 2; - Kick kick = 3; - Tackle tackle = 4; - Catch catch = 5; - Move move = 6; - TurnNeck turn_neck = 7; - ChangeView change_view = 8; - Say say = 9; - PointTo point_to = 10; - PointToOf point_to_of = 11; - AttentionTo attention_to = 12; - AttentionToOf attention_to_of = 13; - Log log = 14; - DebugClient debug_client = 15; - Body_GoToPoint body_go_to_point = 16; - Body_SmartKick body_smart_kick = 17; - Bhv_BeforeKickOff bhv_before_kick_off = 18; - Bhv_BodyNeckToBall bhv_body_neck_to_ball = 19; - Bhv_BodyNeckToPoint bhv_body_neck_to_point = 20; - Bhv_Emergency bhv_emergency = 21; - Bhv_GoToPointLookBall bhv_go_to_point_look_ball = 22; - Bhv_NeckBodyToBall bhv_neck_body_to_ball = 23; - Bhv_NeckBodyToPoint bhv_neck_body_to_point = 24; - Bhv_ScanField bhv_scan_field = 25; - Body_AdvanceBall body_advance_ball = 26; - Body_ClearBall body_clear_ball = 27; - Body_Dribble body_dribble = 28; - Body_GoToPointDodge body_go_to_point_dodge = 29; - Body_HoldBall body_hold_ball = 30; - Body_Intercept body_intercept = 31; - Body_KickOneStep body_kick_one_step = 32; - Body_StopBall body_stop_ball = 33; - Body_StopDash body_stop_dash = 34; - Body_TackleToPoint body_tackle_to_point = 35; - Body_TurnToAngle body_turn_to_angle = 36; - Body_TurnToBall body_turn_to_ball = 37; - Body_TurnToPoint body_turn_to_point = 38; - Focus_MoveToPoint focus_move_to_point = 39; - Focus_Reset focus_reset = 40; - Neck_ScanField neck_scan_field = 41; - Neck_ScanPlayers neck_scan_players = 42; - Neck_TurnToBallAndPlayer neck_turn_to_ball_and_player = 43; - Neck_TurnToBallOrScan neck_turn_to_ball_or_scan = 44; - Neck_TurnToBall neck_turn_to_ball = 45; - Neck_TurnToGoalieOrScan neck_turn_to_goalie_or_scan = 46; - Neck_TurnToLowConfTeammate neck_turn_to_low_conf_teammate = 47; - Neck_TurnToPlayerOrScan neck_turn_to_player_or_scan = 48; - Neck_TurnToPoint neck_turn_to_point = 49; - Neck_TurnToRelative neck_turn_to_relative = 50; - View_ChangeWidth view_change_width = 51; - View_Normal view_normal = 52; - View_Synch view_synch = 53; - View_Wide view_wide = 54; - HeliosGoalie helios_goalie = 55; - HeliosGoalieMove helios_goalie_move = 56; - HeliosGoalieKick helios_goalie_kick = 57; - HeliosShoot helios_shoot = 58; - HeliosChainAction helios_chain_action = 59; - HeliosBasicOffensive helios_basic_offensive = 60; - HeliosBasicMove helios_basic_move = 61; - HeliosSetPlay helios_set_play = 62; - HeliosPenalty helios_penalty = 63; - HeliosCommunicaion helios_communication = 64; - } -} - -message PlayerActions { - repeated PlayerAction actions = 1; -} - -message ChangePlayerType { - int32 uniform_number = 1; - int32 type = 2; -} - -message DoHeliosSubstitute {} - -message DoHeliosSayPlayerTypes {} - -message CoachAction { - oneof action { - ChangePlayerType change_player_types = 1; - DoHeliosSubstitute do_helios_substitute = 2; - DoHeliosSayPlayerTypes do_helios_say_player_types = 3; - } -} - -message CoachActions { - repeated CoachAction actions = 1; -} - -message DoKickOff {} - -message -DoMoveBall { - Vector2D position = 1; - Vector2D velocity = 2; -} - -message DoMovePlayer { - bool our_side = 1; - int32 uniform_number = 2; - Vector2D position = 3; - float body_direction = 4; -} - -message DoRecover {} - -message DoChangeMode { - GameModeType game_mode_type = 1; - Side side = 2; //some of the game mode need to know the side -} - -message DoChangePlayerType { - bool our_side = 1; - int32 uniform_number = 2; - int32 type = 3; -} - -message TrainerAction { - oneof action { - DoKickOff do_kick_off = 1; - DoMoveBall do_move_ball = 2; - DoMovePlayer do_move_player = 3; - DoRecover do_recover = 4; - DoChangeMode do_change_mode = 5; - DoChangePlayerType do_change_player_type = 6; - } -} - -message TrainerActions { - repeated TrainerAction actions = 1; -} - -message ServerParam { - AgentType agent_type = 1; - float inertia_moment = 2; - float player_size = 3; - float player_decay = 4; - float player_rand = 5; - float player_weight = 6; - float player_speed_max = 7; - float player_accel_max = 8; - float stamina_max = 9; - float stamina_inc_max = 10; - float recover_init = 11; - float recover_dec_thr = 12; - float recover_min = 13; - float recover_dec = 14; - float effort_init = 15; - float effort_dec_thr = 16; - float effort_min = 17; - float effort_dec = 18; - float effort_inc_thr = 19; - float effort_inc = 20; - float kick_rand = 21; - bool team_actuator_noise = 22; - float player_rand_factor_l = 23; - float player_rand_factor_r = 24; - float kick_rand_factor_l = 25; - float kick_rand_factor_r = 26; - float ball_size = 27; - float ball_decay = 28; - float ball_rand = 29; - float ball_weight = 30; - float ball_speed_max = 31; - float ball_accel_max = 32; - float dash_power_rate = 33; - float kick_power_rate = 34; - float kickable_margin = 35; - float control_radius = 36; - float control_radius_width = 37; - float max_power = 38; - float min_power = 39; - float max_moment = 40; - float min_moment = 41; - float max_neck_moment = 42; - float min_neck_moment = 43; - float max_neck_angle = 44; - float min_neck_angle = 45; - float visible_angle = 46; - float visible_distance = 47; - float wind_dir = 48; - float wind_force = 49; - float wind_angle = 50; - float wind_rand = 51; - float kickable_area = 52; - float catch_area_l = 53; - float catch_area_w = 54; - float catch_probability = 55; - int32 goalie_max_moves = 56; - float corner_kick_margin = 57; - float offside_active_area_size = 58; - bool wind_none = 59; - bool use_wind_random = 60; - int32 coach_say_count_max = 61; - int32 coach_say_msg_size = 62; - int32 clang_win_size = 63; - int32 clang_define_win = 64; - int32 clang_meta_win = 65; - int32 clang_advice_win = 66; - int32 clang_info_win = 67; - int32 clang_mess_delay = 68; - int32 clang_mess_per_cycle = 69; - int32 half_time = 70; - int32 simulator_step = 71; - int32 send_step = 72; - int32 recv_step = 73; - int32 sense_body_step = 74; - int32 lcm_step = 75; - int32 player_say_msg_size = 76; - int32 player_hear_max = 77; - int32 player_hear_inc = 78; - int32 player_hear_decay = 79; - int32 catch_ban_cycle = 80; - int32 slow_down_factor = 81; - bool use_offside = 82; - bool kickoff_offside = 83; - float offside_kick_margin = 84; - float audio_cut_dist = 85; - float dist_quantize_step = 86; - float landmark_dist_quantize_step = 87; - float dir_quantize_step = 88; - float dist_quantize_step_l = 89; - float dist_quantize_step_r = 90; - float landmark_dist_quantize_step_l = 91; - float landmark_dist_quantize_step_r = 92; - float dir_quantize_step_l = 93; - float dir_quantize_step_r = 94; - bool coach_mode = 95; - bool coach_with_referee_mode = 96; - bool use_old_coach_hear = 97; - float slowness_on_top_for_left_team = 98; - float slowness_on_top_for_right_team = 99; - int32 start_goal_l = 100; - int32 start_goal_r = 101; - bool fullstate_l = 102; - bool fullstate_r = 103; - int32 drop_ball_time = 104; - bool synch_mode = 105; - int32 synch_offset = 106; - int32 synch_micro_sleep = 107; - int32 point_to_ban = 108; - int32 point_to_duration = 109; - int32 player_port = 110; - int32 trainer_port = 111; - int32 online_coach_port = 112; - bool verbose_mode = 113; - int32 coach_send_vi_step = 114; - string replay_file = 115; - string landmark_file = 116; - bool send_comms = 117; - bool text_logging = 118; - bool game_logging = 119; - int32 game_log_version = 120; - string text_log_dir = 121; - string game_log_dir = 122; - string text_log_fixed_name = 123; - string game_log_fixed_name = 124; - bool use_text_log_fixed = 125; - bool use_game_log_fixed = 126; - bool use_text_log_dated = 127; - bool use_game_log_dated = 128; - string log_date_format = 129; - bool log_times = 130; - bool record_message = 131; - int32 text_log_compression = 132; - int32 game_log_compression = 133; - bool use_profile = 134; - float tackle_dist = 135; - float tackle_back_dist = 136; - float tackle_width = 137; - float tackle_exponent = 138; - int32 tackle_cycles = 139; - float tackle_power_rate = 140; - int32 freeform_wait_period = 141; - int32 freeform_send_period = 142; - bool free_kick_faults = 143; - bool back_passes = 144; - bool proper_goal_kicks = 145; - float stopped_ball_vel = 146; - int32 max_goal_kicks = 147; - int32 clang_del_win = 148; - int32 clang_rule_win = 149; - bool auto_mode = 150; - int32 kick_off_wait = 151; - int32 connect_wait = 152; - int32 game_over_wait = 153; - string team_l_start = 154; - string team_r_start = 155; - bool keepaway_mode = 156; - float keepaway_length = 157; - float keepaway_width = 158; - bool keepaway_logging = 159; - string keepaway_log_dir = 160; - string keepaway_log_fixed_name = 161; - bool keepaway_log_fixed = 162; - bool keepaway_log_dated = 163; - int32 keepaway_start = 164; - int32 nr_normal_halfs = 165; - int32 nr_extra_halfs = 166; - bool penalty_shoot_outs = 167; - int32 pen_before_setup_wait = 168; - int32 pen_setup_wait = 169; - int32 pen_ready_wait = 170; - int32 pen_taken_wait = 171; - int32 pen_nr_kicks = 172; - int32 pen_max_extra_kicks = 173; - float pen_dist_x = 174; - bool pen_random_winner = 175; - bool pen_allow_mult_kicks = 176; - float pen_max_goalie_dist_x = 177; - bool pen_coach_moves_players = 178; - string module_dir = 179; - float ball_stuck_area = 180; - string coach_msg_file = 181; - float max_tackle_power = 182; - float max_back_tackle_power = 183; - float player_speed_max_min = 184; - float extra_stamina = 185; - int32 synch_see_offset = 186; - int32 extra_half_time = 187; - float stamina_capacity = 188; - float max_dash_angle = 189; - float min_dash_angle = 190; - float dash_angle_step = 191; - float side_dash_rate = 192; - float back_dash_rate = 193; - float max_dash_power = 194; - float min_dash_power = 195; - float tackle_rand_factor = 196; - float foul_detect_probability = 197; - float foul_exponent = 198; - int32 foul_cycles = 199; - bool golden_goal = 200; - float red_card_probability = 201; - int32 illegal_defense_duration = 202; - int32 illegal_defense_number = 203; - float illegal_defense_dist_x = 204; - float illegal_defense_width = 205; - string fixed_teamname_l = 206; - string fixed_teamname_r = 207; - float max_catch_angle = 208; - float min_catch_angle = 209; - int32 random_seed = 210; - float long_kick_power_factor = 211; - int32 long_kick_delay = 212; - int32 max_monitors = 213; - float catchable_area = 214; - float real_speed_max = 215; - float pitch_half_length = 216; - float pitch_half_width = 217; - float our_penalty_area_line_x = 218; - float their_penalty_area_line_x = 219; - float penalty_area_half_width = 220; - float penalty_area_length = 221; - float goal_width = 222; -} - -message PlayerParam { - AgentType agent_type = 1; - int32 player_types = 2; - int32 subs_max = 3; - int32 pt_max = 4; - bool allow_mult_default_type = 5; - float player_speed_max_delta_min = 6; - float player_speed_max_delta_max = 7; - float stamina_inc_max_delta_factor = 8; - float player_decay_delta_min = 9; - float player_decay_delta_max = 10; - float inertia_moment_delta_factor = 11; - float dash_power_rate_delta_min = 12; - float dash_power_rate_delta_max = 13; - float player_size_delta_factor = 14; - float kickable_margin_delta_min = 15; - float kickable_margin_delta_max = 16; - float kick_rand_delta_factor = 17; - float extra_stamina_delta_min = 18; - float extra_stamina_delta_max = 19; - float effort_max_delta_factor = 20; - float effort_min_delta_factor = 21; - int32 random_seed = 22; - float new_dash_power_rate_delta_min = 23; - float new_dash_power_rate_delta_max = 24; - float new_stamina_inc_max_delta_factor = 25; - float kick_power_rate_delta_min = 26; - float kick_power_rate_delta_max = 27; - float foul_detect_probability_delta_factor = 28; - float catchable_area_l_stretch_min = 29; - float catchable_area_l_stretch_max = 30; - -} - -message PlayerType { - AgentType agent_type = 1; - int32 id = 2; - float stamina_inc_max = 3; - float player_decay = 4; - float inertia_moment = 5; - float dash_power_rate = 6; - float player_size = 7; - float kickable_margin = 8; - float kick_rand = 9; - float extra_stamina = 10; - float effort_max = 11; - float effort_min = 12; - float kick_power_rate = 13; - float foul_detect_probability = 14; - float catchable_area_l_stretch = 15; - float unum_far_length = 16; - float unum_too_far_length = 17; - float team_far_length = 18; - float team_too_far_length = 19; - float player_max_observation_length = 20; - float ball_vel_far_length = 21; - float ball_vel_too_far_length = 22; - float ball_max_observation_length = 23; - float flag_chg_far_length = 24; - float flag_chg_too_far_length = 25; - float flag_max_observation_length = 26; - float kickable_area = 27; - float reliable_catchable_dist = 28; - float max_catchable_dist = 29; - float real_speed_max = 30; - float player_speed_max2 = 31; - float real_speed_max2 = 32; - int32 cycles_to_reach_max_speed = 33; - float player_speed_max = 34; -} - -message Empty { -} - -service Game { - rpc GetPlayerActions(State) returns (PlayerActions) {} - rpc GetCoachActions(State) returns (CoachActions) {} - rpc GetTrainerActions(State) returns (TrainerActions) {} - rpc SendInitMessage(InitMessage) returns (Empty) {} - rpc SendServerParams(ServerParam) returns (Empty) {} - rpc SendPlayerParams(PlayerParam) returns (Empty) {} - rpc SendPlayerType(PlayerType) returns (Empty) {} //should be PlayerTypes -} \ No newline at end of file diff --git a/service_pb2.py b/service_pb2.py deleted file mode 100644 index 9fc0537..0000000 --- a/service_pb2.py +++ /dev/null @@ -1,268 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: service.proto -# Protobuf Python Version: 4.25.0 -"""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\x08Vector2D\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\"\x83\x04\n\x04\x42\x61ll\x12\"\n\x08position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12+\n\x11relative_position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rseen_position\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12(\n\x0eheard_position\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\x12\"\n\x08velocity\x18\x05 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rseen_velocity\x18\x06 \x01(\x0b\x32\x10.protos.Vector2D\x12(\n\x0eheard_velocity\x18\x07 \x01(\x0b\x32\x10.protos.Vector2D\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\"\xa1\x06\n\x06Player\x12\"\n\x08position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rseen_position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12(\n\x0eheard_position\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12\"\n\x08velocity\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rseen_velocity\x18\x05 \x01(\x0b\x32\x10.protos.Vector2D\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\"\xc0\x07\n\x04Self\x12\"\n\x08position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rseen_position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12(\n\x0eheard_position\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12\"\n\x08velocity\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rseen_velocity\x18\x05 \x01(\x0b\x32\x10.protos.Vector2D\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\"\x91\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-\n\x13\x66inal_self_position\x18\x07 \x01(\x0b\x32\x10.protos.Vector2D\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\"\x8e\n\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\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\x1aL\n\x18HeliosHomePositionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x1f\n\x05value\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D:\x02\x38\x01\"^\n\x05State\x12\'\n\x0bworld_model\x18\x01 \x01(\x0b\x32\x12.protos.WorldModel\x12,\n\x10\x66ull_world_model\x18\x02 \x01(\x0b\x32\x12.protos.WorldModel\"!\n\x0bInitMessage\x12\x12\n\ndebug_mode\x18\x01 \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\"_\n\x0b\x42\x61llMessage\x12\'\n\rball_position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rball_velocity\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\"\xaa\x01\n\x0bPassMessage\x12\x1f\n\x17receiver_uniform_number\x18\x01 \x01(\x05\x12(\n\x0ereceiver_point\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rball_position\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rball_velocity\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\"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\"x\n\rGoalieMessage\x12\x1d\n\x15goalie_uniform_number\x18\x01 \x01(\x05\x12)\n\x0fgoalie_position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1d\n\x15goalie_body_direction\x18\x03 \x01(\x02\"\xcb\x01\n\x16GoalieAndPlayerMessage\x12\x1d\n\x15goalie_uniform_number\x18\x01 \x01(\x05\x12)\n\x0fgoalie_position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\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\x10.protos.Vector2D\",\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\x10.protos.Vector2D\"!\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\"M\n\x0e\x44ribbleMessage\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\x13\n\x0bqueue_count\x18\x02 \x01(\x05\"\xaf\x01\n\x11\x42\x61llGoalieMessage\x12\'\n\rball_position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rball_velocity\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12)\n\x0fgoalie_position\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1d\n\x15goalie_body_direction\x18\x04 \x01(\x02\"N\n\x10OnePlayerMessage\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12\"\n\x08position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\"\xa4\x01\n\x10TwoPlayerMessage\x12\x1c\n\x14\x66irst_uniform_number\x18\x01 \x01(\x05\x12(\n\x0e\x66irst_position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1d\n\x15second_uniform_number\x18\x03 \x01(\x05\x12)\n\x0fsecond_position\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\"\xee\x01\n\x12ThreePlayerMessage\x12\x1c\n\x14\x66irst_uniform_number\x18\x01 \x01(\x05\x12(\n\x0e\x66irst_position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1d\n\x15second_uniform_number\x18\x03 \x01(\x05\x12)\n\x0fsecond_position\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1c\n\x14third_uniform_number\x18\x05 \x01(\x05\x12(\n\x0ethird_position\x18\x06 \x01(\x0b\x32\x10.protos.Vector2D\"i\n\x0bSelfMessage\x12\'\n\rself_position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1b\n\x13self_body_direction\x18\x02 \x01(\x02\x12\x14\n\x0cself_stamina\x18\x03 \x01(\x02\"e\n\x0fTeammateMessage\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12\"\n\x08position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\x16\n\x0e\x62ody_direction\x18\x03 \x01(\x02\"e\n\x0fOpponentMessage\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12\"\n\x08position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\x16\n\x0e\x62ody_direction\x18\x03 \x01(\x02\"\xc0\x01\n\x11\x42\x61llPlayerMessage\x12\'\n\rball_position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\'\n\rball_velocity\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\x16\n\x0euniform_number\x18\x03 \x01(\x05\x12)\n\x0fplayer_position\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\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\"^\n\x08\x41\x64\x64Point\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12\x1f\n\x05point\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\r\n\x05\x63olor\x18\x03 \x01(\t\"|\n\x07\x41\x64\x64Line\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12\x1f\n\x05start\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1d\n\x03\x65nd\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12\r\n\x05\x63olor\x18\x04 \x01(\t\"\x96\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\x10.protos.Vector2D\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\"~\n\tAddCircle\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12 \n\x06\x63\x65nter\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\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\"\xb4\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\x10.protos.Vector2D\x12 \n\x06point2\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12 \n\x06point3\x18\x04 \x01(\x0b\x32\x10.protos.Vector2D\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\"\xbf\x01\n\tAddSector\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12 \n\x06\x63\x65nter\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\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\"t\n\nAddMessage\x12\"\n\x05level\x18\x01 \x01(\x0e\x32\x13.protos.LoggerLevel\x12\"\n\x08position\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\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\"l\n\x0e\x42ody_GoToPoint\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\x1a\n\x12\x64istance_threshold\x18\x02 \x01(\x02\x12\x16\n\x0emax_dash_power\x18\x03 \x01(\x02\"\x7f\n\x0e\x42ody_SmartKick\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\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\"4\n\x11\x42hv_BeforeKickOff\x12\x1f\n\x05point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\"\x14\n\x12\x42hv_BodyNeckToBall\"6\n\x13\x42hv_BodyNeckToPoint\x12\x1f\n\x05point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\"\x0f\n\rBhv_Emergency\"s\n\x15\x42hv_GoToPointLookBall\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\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\"I\n\x13\x42hv_NeckBodyToPoint\x12\x1f\n\x05point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\x11\n\tangle_buf\x18\x02 \x01(\x02\"\x0f\n\rBhv_ScanField\"\x12\n\x10\x42ody_AdvanceBall\"\x10\n\x0e\x42ody_ClearBall\"\x89\x01\n\x0c\x42ody_Dribble\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\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\"Q\n\x13\x42ody_GoToPointDodge\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\x12\n\ndash_power\x18\x02 \x01(\x02\"z\n\rBody_HoldBall\x12\x0f\n\x07\x64o_turn\x18\x01 \x01(\x08\x12+\n\x11turn_target_point\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\x12+\n\x11kick_target_point\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\"M\n\x0e\x42ody_Intercept\x12\x15\n\rsave_recovery\x18\x01 \x01(\x08\x12$\n\nface_point\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\"c\n\x10\x42ody_KickOneStep\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\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\"h\n\x12\x42ody_TackleToPoint\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\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\"I\n\x10\x42ody_TurnToPoint\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\r\n\x05\x63ycle\x18\x02 \x01(\x05\";\n\x11\x46ocus_MoveToPoint\x12&\n\x0ctarget_point\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\"\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\x10.protos.Vector2D\"$\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\"\xd0\x01\n\x11HeliosChainAction\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\"\x16\n\x14HeliosBasicOffensive\"\x11\n\x0fHeliosBasicMove\"\x0f\n\rHeliosSetPlay\"\x0f\n\rHeliosPenalty\"\x14\n\x12HeliosCommunicaion\"\xdd\x19\n\x06\x41\x63tion\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\x38\n\x13helios_chain_action\x18; \x01(\x0b\x32\x19.protos.HeliosChainActionH\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\x42\x08\n\x06\x61\x63tion\"*\n\x07\x41\x63tions\x12\x1f\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x0e.protos.Action\"\xa7,\n\x0bServerParam\x12\x12\n\ngoal_width\x18\x01 \x01(\x02\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\"\xd8\x07\n\x0bPlayerParam\x12\x14\n\x0cplayer_types\x18\x01 \x01(\x05\x12\x10\n\x08subs_max\x18\x02 \x01(\x05\x12\x0e\n\x06pt_max\x18\x03 \x01(\x05\x12\x1f\n\x17\x61llow_mult_default_type\x18\x04 \x01(\x08\x12\"\n\x1aplayer_speed_max_delta_min\x18\x05 \x01(\x02\x12\"\n\x1aplayer_speed_max_delta_max\x18\x06 \x01(\x02\x12$\n\x1cstamina_inc_max_delta_factor\x18\x07 \x01(\x02\x12\x1e\n\x16player_decay_delta_min\x18\x08 \x01(\x02\x12\x1e\n\x16player_decay_delta_max\x18\t \x01(\x02\x12#\n\x1binertia_moment_delta_factor\x18\n \x01(\x02\x12!\n\x19\x64\x61sh_power_rate_delta_min\x18\x0b \x01(\x02\x12!\n\x19\x64\x61sh_power_rate_delta_max\x18\x0c \x01(\x02\x12 \n\x18player_size_delta_factor\x18\r \x01(\x02\x12!\n\x19kickable_margin_delta_min\x18\x0e \x01(\x02\x12!\n\x19kickable_margin_delta_max\x18\x0f \x01(\x02\x12\x1e\n\x16kick_rand_delta_factor\x18\x10 \x01(\x02\x12\x1f\n\x17\x65xtra_stamina_delta_min\x18\x11 \x01(\x02\x12\x1f\n\x17\x65xtra_stamina_delta_max\x18\x12 \x01(\x02\x12\x1f\n\x17\x65\x66\x66ort_max_delta_factor\x18\x13 \x01(\x02\x12\x1f\n\x17\x65\x66\x66ort_min_delta_factor\x18\x14 \x01(\x02\x12\x13\n\x0brandom_seed\x18\x15 \x01(\x05\x12%\n\x1dnew_dash_power_rate_delta_min\x18\x16 \x01(\x02\x12%\n\x1dnew_dash_power_rate_delta_max\x18\x17 \x01(\x02\x12(\n new_stamina_inc_max_delta_factor\x18\x18 \x01(\x02\x12!\n\x19kick_power_rate_delta_min\x18\x19 \x01(\x02\x12!\n\x19kick_power_rate_delta_max\x18\x1a \x01(\x02\x12,\n$foul_detect_probability_delta_factor\x18\x1b \x01(\x02\x12$\n\x1c\x63\x61tchable_area_l_stretch_min\x18\x1c \x01(\x02\x12$\n\x1c\x63\x61tchable_area_l_stretch_max\x18\x1d \x01(\x02\"\x8a\x07\n\nPlayerType\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x18\n\x10player_speed_max\x18\x02 \x01(\x02\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\"\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\x04Side\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04LEFT\x10\x01\x12\t\n\x05RIGHT\x10\x02*\xad\x02\n\x0bLoggerLevel\x12\x08\n\x04None\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@*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\x9a\x02\n\x04Game\x12.\n\nGetActions\x12\r.protos.State\x1a\x0f.protos.Actions\"\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\x62\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'service_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._options = None - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._serialized_options = b'8\001' - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._options = None - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._serialized_options = b'8\001' - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._options = None - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._serialized_options = b'8\001' - _globals['_VIEWWIDTH']._serialized_start=23446 - _globals['_VIEWWIDTH']._serialized_end=23491 - _globals['_SIDE']._serialized_start=23493 - _globals['_SIDE']._serialized_end=23533 - _globals['_LOGGERLEVEL']._serialized_start=23536 - _globals['_LOGGERLEVEL']._serialized_end=23837 - _globals['_INTERCEPTACTIONTYPE']._serialized_start=23839 - _globals['_INTERCEPTACTIONTYPE']._serialized_end=23957 - _globals['_GAMEMODETYPE']._serialized_start=23960 - _globals['_GAMEMODETYPE']._serialized_end=24531 - _globals['_VECTOR2D']._serialized_start=25 - _globals['_VECTOR2D']._serialized_end=86 - _globals['_BALL']._serialized_start=89 - _globals['_BALL']._serialized_end=604 - _globals['_PLAYER']._serialized_start=607 - _globals['_PLAYER']._serialized_end=1408 - _globals['_SELF']._serialized_start=1411 - _globals['_SELF']._serialized_end=2371 - _globals['_INTERCEPTINFO']._serialized_start=2374 - _globals['_INTERCEPTINFO']._serialized_end=2647 - _globals['_INTERCEPTTABLE']._serialized_start=2650 - _globals['_INTERCEPTTABLE']._serialized_end=3000 - _globals['_WORLDMODEL']._serialized_start=3003 - _globals['_WORLDMODEL']._serialized_end=4297 - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._serialized_start=4077 - _globals['_WORLDMODEL_OURPLAYERSDICTENTRY']._serialized_end=4146 - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._serialized_start=4148 - _globals['_WORLDMODEL_THEIRPLAYERSDICTENTRY']._serialized_end=4219 - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._serialized_start=4221 - _globals['_WORLDMODEL_HELIOSHOMEPOSITIONSENTRY']._serialized_end=4297 - _globals['_STATE']._serialized_start=4299 - _globals['_STATE']._serialized_end=4393 - _globals['_INITMESSAGE']._serialized_start=4395 - _globals['_INITMESSAGE']._serialized_end=4428 - _globals['_DASH']._serialized_start=4430 - _globals['_DASH']._serialized_end=4479 - _globals['_TURN']._serialized_start=4481 - _globals['_TURN']._serialized_end=4515 - _globals['_KICK']._serialized_start=4517 - _globals['_KICK']._serialized_end=4566 - _globals['_TACKLE']._serialized_start=4568 - _globals['_TACKLE']._serialized_end=4612 - _globals['_CATCH']._serialized_start=4614 - _globals['_CATCH']._serialized_end=4621 - _globals['_MOVE']._serialized_start=4623 - _globals['_MOVE']._serialized_end=4651 - _globals['_TURNNECK']._serialized_start=4653 - _globals['_TURNNECK']._serialized_end=4679 - _globals['_CHANGEVIEW']._serialized_start=4681 - _globals['_CHANGEVIEW']._serialized_end=4732 - _globals['_BALLMESSAGE']._serialized_start=4734 - _globals['_BALLMESSAGE']._serialized_end=4829 - _globals['_PASSMESSAGE']._serialized_start=4832 - _globals['_PASSMESSAGE']._serialized_end=5002 - _globals['_INTERCEPTMESSAGE']._serialized_start=5004 - _globals['_INTERCEPTMESSAGE']._serialized_end=5074 - _globals['_GOALIEMESSAGE']._serialized_start=5076 - _globals['_GOALIEMESSAGE']._serialized_end=5196 - _globals['_GOALIEANDPLAYERMESSAGE']._serialized_start=5199 - _globals['_GOALIEANDPLAYERMESSAGE']._serialized_end=5402 - _globals['_OFFSIDELINEMESSAGE']._serialized_start=5404 - _globals['_OFFSIDELINEMESSAGE']._serialized_end=5448 - _globals['_DEFENSELINEMESSAGE']._serialized_start=5450 - _globals['_DEFENSELINEMESSAGE']._serialized_end=5494 - _globals['_WAITREQUESTMESSAGE']._serialized_start=5496 - _globals['_WAITREQUESTMESSAGE']._serialized_end=5516 - _globals['_SETPLAYMESSAGE']._serialized_start=5518 - _globals['_SETPLAYMESSAGE']._serialized_end=5553 - _globals['_PASSREQUESTMESSAGE']._serialized_start=5555 - _globals['_PASSREQUESTMESSAGE']._serialized_end=5615 - _globals['_STAMINAMESSAGE']._serialized_start=5617 - _globals['_STAMINAMESSAGE']._serialized_end=5650 - _globals['_RECOVERYMESSAGE']._serialized_start=5652 - _globals['_RECOVERYMESSAGE']._serialized_end=5687 - _globals['_STAMINACAPACITYMESSAGE']._serialized_start=5689 - _globals['_STAMINACAPACITYMESSAGE']._serialized_end=5739 - _globals['_DRIBBLEMESSAGE']._serialized_start=5741 - _globals['_DRIBBLEMESSAGE']._serialized_end=5818 - _globals['_BALLGOALIEMESSAGE']._serialized_start=5821 - _globals['_BALLGOALIEMESSAGE']._serialized_end=5996 - _globals['_ONEPLAYERMESSAGE']._serialized_start=5998 - _globals['_ONEPLAYERMESSAGE']._serialized_end=6076 - _globals['_TWOPLAYERMESSAGE']._serialized_start=6079 - _globals['_TWOPLAYERMESSAGE']._serialized_end=6243 - _globals['_THREEPLAYERMESSAGE']._serialized_start=6246 - _globals['_THREEPLAYERMESSAGE']._serialized_end=6484 - _globals['_SELFMESSAGE']._serialized_start=6486 - _globals['_SELFMESSAGE']._serialized_end=6591 - _globals['_TEAMMATEMESSAGE']._serialized_start=6593 - _globals['_TEAMMATEMESSAGE']._serialized_end=6694 - _globals['_OPPONENTMESSAGE']._serialized_start=6696 - _globals['_OPPONENTMESSAGE']._serialized_end=6797 - _globals['_BALLPLAYERMESSAGE']._serialized_start=6800 - _globals['_BALLPLAYERMESSAGE']._serialized_end=6992 - _globals['_SAY']._serialized_start=6995 - _globals['_SAY']._serialized_end=8227 - _globals['_POINTTO']._serialized_start=8229 - _globals['_POINTTO']._serialized_end=8260 - _globals['_POINTTOOF']._serialized_start=8262 - _globals['_POINTTOOF']._serialized_end=8273 - _globals['_ATTENTIONTO']._serialized_start=8275 - _globals['_ATTENTIONTO']._serialized_end=8330 - _globals['_ATTENTIONTOOF']._serialized_start=8332 - _globals['_ATTENTIONTOOF']._serialized_end=8347 - _globals['_ADDTEXT']._serialized_start=8349 - _globals['_ADDTEXT']._serialized_end=8411 - _globals['_ADDPOINT']._serialized_start=8413 - _globals['_ADDPOINT']._serialized_end=8507 - _globals['_ADDLINE']._serialized_start=8509 - _globals['_ADDLINE']._serialized_end=8633 - _globals['_ADDARC']._serialized_start=8636 - _globals['_ADDARC']._serialized_end=8786 - _globals['_ADDCIRCLE']._serialized_start=8788 - _globals['_ADDCIRCLE']._serialized_end=8914 - _globals['_ADDTRIANGLE']._serialized_start=8917 - _globals['_ADDTRIANGLE']._serialized_end=9097 - _globals['_ADDRECTANGLE']._serialized_start=9100 - _globals['_ADDRECTANGLE']._serialized_end=9237 - _globals['_ADDSECTOR']._serialized_start=9240 - _globals['_ADDSECTOR']._serialized_end=9431 - _globals['_ADDMESSAGE']._serialized_start=9433 - _globals['_ADDMESSAGE']._serialized_end=9549 - _globals['_LOG']._serialized_start=9552 - _globals['_LOG']._serialized_end=9929 - _globals['_DEBUGCLIENT']._serialized_start=9931 - _globals['_DEBUGCLIENT']._serialized_end=9961 - _globals['_BODY_GOTOPOINT']._serialized_start=9963 - _globals['_BODY_GOTOPOINT']._serialized_end=10071 - _globals['_BODY_SMARTKICK']._serialized_start=10073 - _globals['_BODY_SMARTKICK']._serialized_end=10200 - _globals['_BHV_BEFOREKICKOFF']._serialized_start=10202 - _globals['_BHV_BEFOREKICKOFF']._serialized_end=10254 - _globals['_BHV_BODYNECKTOBALL']._serialized_start=10256 - _globals['_BHV_BODYNECKTOBALL']._serialized_end=10276 - _globals['_BHV_BODYNECKTOPOINT']._serialized_start=10278 - _globals['_BHV_BODYNECKTOPOINT']._serialized_end=10332 - _globals['_BHV_EMERGENCY']._serialized_start=10334 - _globals['_BHV_EMERGENCY']._serialized_end=10349 - _globals['_BHV_GOTOPOINTLOOKBALL']._serialized_start=10351 - _globals['_BHV_GOTOPOINTLOOKBALL']._serialized_end=10466 - _globals['_BHV_NECKBODYTOBALL']._serialized_start=10468 - _globals['_BHV_NECKBODYTOBALL']._serialized_end=10507 - _globals['_BHV_NECKBODYTOPOINT']._serialized_start=10509 - _globals['_BHV_NECKBODYTOPOINT']._serialized_end=10582 - _globals['_BHV_SCANFIELD']._serialized_start=10584 - _globals['_BHV_SCANFIELD']._serialized_end=10599 - _globals['_BODY_ADVANCEBALL']._serialized_start=10601 - _globals['_BODY_ADVANCEBALL']._serialized_end=10619 - _globals['_BODY_CLEARBALL']._serialized_start=10621 - _globals['_BODY_CLEARBALL']._serialized_end=10637 - _globals['_BODY_DRIBBLE']._serialized_start=10640 - _globals['_BODY_DRIBBLE']._serialized_end=10777 - _globals['_BODY_GOTOPOINTDODGE']._serialized_start=10779 - _globals['_BODY_GOTOPOINTDODGE']._serialized_end=10860 - _globals['_BODY_HOLDBALL']._serialized_start=10862 - _globals['_BODY_HOLDBALL']._serialized_end=10984 - _globals['_BODY_INTERCEPT']._serialized_start=10986 - _globals['_BODY_INTERCEPT']._serialized_end=11063 - _globals['_BODY_KICKONESTEP']._serialized_start=11065 - _globals['_BODY_KICKONESTEP']._serialized_end=11164 - _globals['_BODY_STOPBALL']._serialized_start=11166 - _globals['_BODY_STOPBALL']._serialized_end=11181 - _globals['_BODY_STOPDASH']._serialized_start=11183 - _globals['_BODY_STOPDASH']._serialized_end=11221 - _globals['_BODY_TACKLETOPOINT']._serialized_start=11223 - _globals['_BODY_TACKLETOPOINT']._serialized_end=11327 - _globals['_BODY_TURNTOANGLE']._serialized_start=11329 - _globals['_BODY_TURNTOANGLE']._serialized_end=11362 - _globals['_BODY_TURNTOBALL']._serialized_start=11364 - _globals['_BODY_TURNTOBALL']._serialized_end=11396 - _globals['_BODY_TURNTOPOINT']._serialized_start=11398 - _globals['_BODY_TURNTOPOINT']._serialized_end=11471 - _globals['_FOCUS_MOVETOPOINT']._serialized_start=11473 - _globals['_FOCUS_MOVETOPOINT']._serialized_end=11532 - _globals['_FOCUS_RESET']._serialized_start=11534 - _globals['_FOCUS_RESET']._serialized_end=11547 - _globals['_NECK_SCANFIELD']._serialized_start=11549 - _globals['_NECK_SCANFIELD']._serialized_end=11565 - _globals['_NECK_SCANPLAYERS']._serialized_start=11567 - _globals['_NECK_SCANPLAYERS']._serialized_end=11585 - _globals['_NECK_TURNTOBALLANDPLAYER']._serialized_start=11587 - _globals['_NECK_TURNTOBALLANDPLAYER']._serialized_end=11690 - _globals['_NECK_TURNTOBALLORSCAN']._serialized_start=11692 - _globals['_NECK_TURNTOBALLORSCAN']._serialized_end=11740 - _globals['_NECK_TURNTOBALL']._serialized_start=11742 - _globals['_NECK_TURNTOBALL']._serialized_end=11759 - _globals['_NECK_TURNTOGOALIEORSCAN']._serialized_start=11761 - _globals['_NECK_TURNTOGOALIEORSCAN']._serialized_end=11811 - _globals['_NECK_TURNTOLOWCONFTEAMMATE']._serialized_start=11813 - _globals['_NECK_TURNTOLOWCONFTEAMMATE']._serialized_end=11841 - _globals['_NECK_TURNTOPLAYERORSCAN']._serialized_start=11843 - _globals['_NECK_TURNTOPLAYERORSCAN']._serialized_end=11945 - _globals['_NECK_TURNTOPOINT']._serialized_start=11947 - _globals['_NECK_TURNTOPOINT']._serialized_end=12005 - _globals['_NECK_TURNTORELATIVE']._serialized_start=12007 - _globals['_NECK_TURNTORELATIVE']._serialized_end=12043 - _globals['_VIEW_CHANGEWIDTH']._serialized_start=12045 - _globals['_VIEW_CHANGEWIDTH']._serialized_end=12102 - _globals['_VIEW_NORMAL']._serialized_start=12104 - _globals['_VIEW_NORMAL']._serialized_end=12117 - _globals['_VIEW_SYNCH']._serialized_start=12119 - _globals['_VIEW_SYNCH']._serialized_end=12131 - _globals['_VIEW_WIDE']._serialized_start=12133 - _globals['_VIEW_WIDE']._serialized_end=12144 - _globals['_HELIOSGOALIE']._serialized_start=12146 - _globals['_HELIOSGOALIE']._serialized_end=12160 - _globals['_HELIOSGOALIEMOVE']._serialized_start=12162 - _globals['_HELIOSGOALIEMOVE']._serialized_end=12180 - _globals['_HELIOSGOALIEKICK']._serialized_start=12182 - _globals['_HELIOSGOALIEKICK']._serialized_end=12200 - _globals['_HELIOSSHOOT']._serialized_start=12202 - _globals['_HELIOSSHOOT']._serialized_end=12215 - _globals['_HELIOSCHAINACTION']._serialized_start=12218 - _globals['_HELIOSCHAINACTION']._serialized_end=12426 - _globals['_HELIOSBASICOFFENSIVE']._serialized_start=12428 - _globals['_HELIOSBASICOFFENSIVE']._serialized_end=12450 - _globals['_HELIOSBASICMOVE']._serialized_start=12452 - _globals['_HELIOSBASICMOVE']._serialized_end=12469 - _globals['_HELIOSSETPLAY']._serialized_start=12471 - _globals['_HELIOSSETPLAY']._serialized_end=12486 - _globals['_HELIOSPENALTY']._serialized_start=12488 - _globals['_HELIOSPENALTY']._serialized_end=12503 - _globals['_HELIOSCOMMUNICAION']._serialized_start=12505 - _globals['_HELIOSCOMMUNICAION']._serialized_end=12525 - _globals['_ACTION']._serialized_start=12528 - _globals['_ACTION']._serialized_end=15821 - _globals['_ACTIONS']._serialized_start=15823 - _globals['_ACTIONS']._serialized_end=15865 - _globals['_SERVERPARAM']._serialized_start=15868 - _globals['_SERVERPARAM']._serialized_end=21539 - _globals['_PLAYERPARAM']._serialized_start=21542 - _globals['_PLAYERPARAM']._serialized_end=22526 - _globals['_PLAYERTYPE']._serialized_start=22529 - _globals['_PLAYERTYPE']._serialized_end=23435 - _globals['_EMPTY']._serialized_start=23437 - _globals['_EMPTY']._serialized_end=23444 - _globals['_GAME']._serialized_start=24534 - _globals['_GAME']._serialized_end=24816 -# @@protoc_insertion_point(module_scope) diff --git a/service_pb2.pyi b/service_pb2.pyi deleted file mode 100644 index 9fa5e6b..0000000 --- a/service_pb2.pyi +++ /dev/null @@ -1,2005 +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 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__ = () - None: _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 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] -NARROW: ViewWidth -NORMAL: ViewWidth -WIDE: ViewWidth -UNKNOWN: Side -LEFT: Side -RIGHT: Side -None: 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 -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 - -class Vector2D(_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 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: Vector2D - relative_position: Vector2D - seen_position: Vector2D - heard_position: Vector2D - velocity: Vector2D - seen_velocity: Vector2D - heard_velocity: Vector2D - 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[Vector2D, _Mapping]] = ..., relative_position: _Optional[_Union[Vector2D, _Mapping]] = ..., seen_position: _Optional[_Union[Vector2D, _Mapping]] = ..., heard_position: _Optional[_Union[Vector2D, _Mapping]] = ..., velocity: _Optional[_Union[Vector2D, _Mapping]] = ..., seen_velocity: _Optional[_Union[Vector2D, _Mapping]] = ..., heard_velocity: _Optional[_Union[Vector2D, _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 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: Vector2D - seen_position: Vector2D - heard_position: Vector2D - velocity: Vector2D - seen_velocity: Vector2D - 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[Vector2D, _Mapping]] = ..., seen_position: _Optional[_Union[Vector2D, _Mapping]] = ..., heard_position: _Optional[_Union[Vector2D, _Mapping]] = ..., velocity: _Optional[_Union[Vector2D, _Mapping]] = ..., seen_velocity: _Optional[_Union[Vector2D, _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") - 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] - position: Vector2D - seen_position: Vector2D - heard_position: Vector2D - velocity: Vector2D - seen_velocity: Vector2D - 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 - def __init__(self, position: _Optional[_Union[Vector2D, _Mapping]] = ..., seen_position: _Optional[_Union[Vector2D, _Mapping]] = ..., heard_position: _Optional[_Union[Vector2D, _Mapping]] = ..., velocity: _Optional[_Union[Vector2D, _Mapping]] = ..., seen_velocity: _Optional[_Union[Vector2D, _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] = ...) -> 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: Vector2D - 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[Vector2D, _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") - 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: Vector2D - def __init__(self, key: _Optional[int] = ..., value: _Optional[_Union[Vector2D, _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] - 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, Vector2D] - 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, Vector2D]] = ...) -> None: ... - -class State(_message.Message): - __slots__ = ("world_model", "full_world_model") - WORLD_MODEL_FIELD_NUMBER: _ClassVar[int] - FULL_WORLD_MODEL_FIELD_NUMBER: _ClassVar[int] - world_model: WorldModel - full_world_model: WorldModel - def __init__(self, world_model: _Optional[_Union[WorldModel, _Mapping]] = ..., full_world_model: _Optional[_Union[WorldModel, _Mapping]] = ...) -> None: ... - -class InitMessage(_message.Message): - __slots__ = ("debug_mode",) - DEBUG_MODE_FIELD_NUMBER: _ClassVar[int] - debug_mode: bool - def __init__(self, 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: Vector2D - ball_velocity: Vector2D - def __init__(self, ball_position: _Optional[_Union[Vector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[Vector2D, _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: Vector2D - ball_position: Vector2D - ball_velocity: Vector2D - def __init__(self, receiver_uniform_number: _Optional[int] = ..., receiver_point: _Optional[_Union[Vector2D, _Mapping]] = ..., ball_position: _Optional[_Union[Vector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[Vector2D, _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: Vector2D - goalie_body_direction: float - def __init__(self, goalie_uniform_number: _Optional[int] = ..., goalie_position: _Optional[_Union[Vector2D, _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: Vector2D - goalie_body_direction: float - player_uniform_number: int - player_position: Vector2D - def __init__(self, goalie_uniform_number: _Optional[int] = ..., goalie_position: _Optional[_Union[Vector2D, _Mapping]] = ..., goalie_body_direction: _Optional[float] = ..., player_uniform_number: _Optional[int] = ..., player_position: _Optional[_Union[Vector2D, _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: Vector2D - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - queue_count: int - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - ball_velocity: Vector2D - goalie_position: Vector2D - goalie_body_direction: float - def __init__(self, ball_position: _Optional[_Union[Vector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[Vector2D, _Mapping]] = ..., goalie_position: _Optional[_Union[Vector2D, _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: Vector2D - def __init__(self, uniform_number: _Optional[int] = ..., position: _Optional[_Union[Vector2D, _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: Vector2D - second_uniform_number: int - second_position: Vector2D - def __init__(self, first_uniform_number: _Optional[int] = ..., first_position: _Optional[_Union[Vector2D, _Mapping]] = ..., second_uniform_number: _Optional[int] = ..., second_position: _Optional[_Union[Vector2D, _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: Vector2D - second_uniform_number: int - second_position: Vector2D - third_uniform_number: int - third_position: Vector2D - def __init__(self, first_uniform_number: _Optional[int] = ..., first_position: _Optional[_Union[Vector2D, _Mapping]] = ..., second_uniform_number: _Optional[int] = ..., second_position: _Optional[_Union[Vector2D, _Mapping]] = ..., third_uniform_number: _Optional[int] = ..., third_position: _Optional[_Union[Vector2D, _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: Vector2D - self_body_direction: float - self_stamina: float - def __init__(self, self_position: _Optional[_Union[Vector2D, _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: Vector2D - body_direction: float - def __init__(self, uniform_number: _Optional[int] = ..., position: _Optional[_Union[Vector2D, _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: Vector2D - body_direction: float - def __init__(self, uniform_number: _Optional[int] = ..., position: _Optional[_Union[Vector2D, _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: Vector2D - ball_velocity: Vector2D - uniform_number: int - player_position: Vector2D - body_direction: float - def __init__(self, ball_position: _Optional[_Union[Vector2D, _Mapping]] = ..., ball_velocity: _Optional[_Union[Vector2D, _Mapping]] = ..., uniform_number: _Optional[int] = ..., player_position: _Optional[_Union[Vector2D, _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: Vector2D - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., point: _Optional[_Union[Vector2D, _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: Vector2D - end: Vector2D - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., start: _Optional[_Union[Vector2D, _Mapping]] = ..., end: _Optional[_Union[Vector2D, _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: Vector2D - radius: float - start_angle: float - span_angel: float - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., center: _Optional[_Union[Vector2D, _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: Vector2D - radius: float - color: str - fill: bool - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., center: _Optional[_Union[Vector2D, _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: Vector2D - point2: Vector2D - point3: Vector2D - color: str - fill: bool - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., point1: _Optional[_Union[Vector2D, _Mapping]] = ..., point2: _Optional[_Union[Vector2D, _Mapping]] = ..., point3: _Optional[_Union[Vector2D, _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: Vector2D - 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[Vector2D, _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: Vector2D - message: str - color: str - def __init__(self, level: _Optional[_Union[LoggerLevel, str]] = ..., position: _Optional[_Union[Vector2D, _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: Vector2D - distance_threshold: float - max_dash_power: float - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - first_speed: float - first_speed_threshold: float - max_steps: int - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - def __init__(self, point: _Optional[_Union[Vector2D, _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: Vector2D - def __init__(self, point: _Optional[_Union[Vector2D, _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: Vector2D - distance_threshold: float - max_dash_power: float - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - angle_buf: float - def __init__(self, point: _Optional[_Union[Vector2D, _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: Vector2D - distance_threshold: float - dash_power: float - dash_count: int - dodge: bool - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - dash_power: float - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - kick_target_point: Vector2D - def __init__(self, do_turn: bool = ..., turn_target_point: _Optional[_Union[Vector2D, _Mapping]] = ..., kick_target_point: _Optional[_Union[Vector2D, _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: Vector2D - def __init__(self, save_recovery: bool = ..., face_point: _Optional[_Union[Vector2D, _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: Vector2D - first_speed: float - force_mode: bool - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - min_probability: float - min_speed: float - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - cycle: int - def __init__(self, target_point: _Optional[_Union[Vector2D, _Mapping]] = ..., cycle: _Optional[int] = ...) -> None: ... - -class Focus_MoveToPoint(_message.Message): - __slots__ = ("target_point",) - TARGET_POINT_FIELD_NUMBER: _ClassVar[int] - target_point: Vector2D - def __init__(self, target_point: _Optional[_Union[Vector2D, _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: Vector2D - def __init__(self, target_point: _Optional[_Union[Vector2D, _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 HeliosChainAction(_message.Message): - __slots__ = ("direct_pass", "lead_pass", "through_pass", "short_dribble", "long_dribble", "cross", "simple_pass", "simple_dribble", "simple_shoot") - 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] - 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 - 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 = ...) -> 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 Action(_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_chain_action", "helios_basic_offensive", "helios_basic_move", "helios_set_play", "helios_penalty", "helios_communication") - 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_CHAIN_ACTION_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] - 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_chain_action: HeliosChainAction - helios_basic_offensive: HeliosBasicOffensive - helios_basic_move: HeliosBasicMove - helios_set_play: HeliosSetPlay - helios_penalty: HeliosPenalty - helios_communication: HeliosCommunicaion - 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_chain_action: _Optional[_Union[HeliosChainAction, _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]] = ...) -> None: ... - -class Actions(_message.Message): - __slots__ = ("actions",) - ACTIONS_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[Action] - def __init__(self, actions: _Optional[_Iterable[_Union[Action, _Mapping]]] = ...) -> None: ... - -class ServerParam(_message.Message): - __slots__ = ("goal_width", "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_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: float - 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 - def __init__(self, goal_width: _Optional[float] = ..., 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] = ...) -> None: ... - -class PlayerParam(_message.Message): - __slots__ = ("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") - 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] - 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, 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__ = ("id", "player_speed_max", "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") - ID_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_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] - id: int - player_speed_max: float - 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 - def __init__(self, id: _Optional[int] = ..., player_speed_max: _Optional[float] = ..., 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] = ...) -> 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 1b6b1de..0000000 --- a/service_pb2_grpc.py +++ /dev/null @@ -1,198 +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 service_pb2 as service__pb2 - - -class GameStub(object): - """Missing associated documentation comment in .proto file.""" - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.GetActions = channel.unary_unary( - '/protos.Game/GetActions', - request_serializer=service__pb2.State.SerializeToString, - response_deserializer=service__pb2.Actions.FromString, - ) - self.SendInitMessage = channel.unary_unary( - '/protos.Game/SendInitMessage', - request_serializer=service__pb2.InitMessage.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - ) - self.SendServerParams = channel.unary_unary( - '/protos.Game/SendServerParams', - request_serializer=service__pb2.ServerParam.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - ) - self.SendPlayerParams = channel.unary_unary( - '/protos.Game/SendPlayerParams', - request_serializer=service__pb2.PlayerParam.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - ) - self.SendPlayerType = channel.unary_unary( - '/protos.Game/SendPlayerType', - request_serializer=service__pb2.PlayerType.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - ) - - -class GameServicer(object): - """Missing associated documentation comment in .proto file.""" - - def GetActions(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 add_GameServicer_to_server(servicer, server): - rpc_method_handlers = { - 'GetActions': grpc.unary_unary_rpc_method_handler( - servicer.GetActions, - request_deserializer=service__pb2.State.FromString, - response_serializer=service__pb2.Actions.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, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'protos.Game', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) - - - # This class is part of an EXPERIMENTAL API. -class Game(object): - """Missing associated documentation comment in .proto file.""" - - @staticmethod - def GetActions(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/GetActions', - service__pb2.State.SerializeToString, - service__pb2.Actions.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @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) - - @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) - - @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) - - @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) diff --git a/src/BHV_Block.py b/src/BHV_Block.py deleted file mode 100644 index 6478945..0000000 --- a/src/BHV_Block.py +++ /dev/null @@ -1,69 +0,0 @@ -import service_pb2 as pb2 -from src.IDecisionMaker import IDecisionMaker -from src.IAgent import IAgent -from pyrusgeom.soccer_math import * -from pyrusgeom.geom_2d import * -from src.Tools import Tools -import pyrusgeom.soccer_math as smath - - -class BHV_Block: - def __init__(self): - pass - - def execute(self, agent: IAgent): - agent.add_log_text(pb2.LoggerLevel.BLOCK, "start blocking") - if agent.wm.game_mode_type != pb2.GameModeType.PlayOn: - agent.add_log_text(pb2.LoggerLevel.BLOCK, f"is not play on {agent.wm.game_mode_type} {pb2.GameModeType.PlayOn}") - return False - - teammate_reach_steps = agent.wm.intercept_table.first_teammate_reach_steps - self_reach_steps = agent.wm.intercept_table.self_reach_steps - our_reach_steps = min(teammate_reach_steps, self_reach_steps) - opponent_reach_steps = agent.wm.intercept_table.first_opponent_reach_steps - - agent.add_log_text(pb2.LoggerLevel.BLOCK, f"reach steps, tm: {teammate_reach_steps} " - f"self: {self_reach_steps} opp: {opponent_reach_steps}") - - ball_pos = Vector2D(agent.wm.ball.position.x, agent.wm.ball.position.y) - ball_vel = Vector2D(agent.wm.ball.velocity.x, agent.wm.ball.velocity.y) - ball_pos = smath.inertia_n_step_point(ball_pos, ball_vel, opponent_reach_steps, agent.serverParams.ball_decay) - - dribble_speed_etimate = 0.7 - dribble_angle_estimate = (Vector2D(-52.0, 0) - ball_pos).th() - blocker = 0 - block_cycle = 1000 - block_pos = Vector2D(0, 0) - for unum in range(2, 12): - agent.add_log_text(pb2.LoggerLevel.BLOCK, f">> tm: {unum}") - if unum not in agent.wm.our_players_dict.keys(): - agent.add_log_text(pb2.LoggerLevel.BLOCK, f"### is not in out_player_dict") - continue - tm = agent.wm.our_players_dict[unum] - - if tm.uniform_number < 1: - agent.add_log_text(pb2.LoggerLevel.BLOCK, f"### uniform id is less than 1") - continue - tm_pos = Vector2D(tm.position.x, tm.position.y) - tm_vel = Vector2D(tm.velocity.x, tm.velocity.y) - tm_inertia_pos = smath.inertia_n_step_point(tm_pos, tm_vel, opponent_reach_steps, - agent.serverParams.player_decay) - for c in range(1, 40): - dribble_pos = ball_pos + Vector2D.polar2vector(c * dribble_speed_etimate, dribble_angle_estimate) - turn_cycle = Tools.predict_player_turn_cycle(agent.serverParams, agent.get_type(tm.type_id), AngleDeg(tm.body_direction), tm_vel.r(), tm_pos.dist(dribble_pos), (dribble_pos - tm_pos).th(), 0.2, False) - - tm_cycle = Tools.cycles_to_reach_distance(tm_inertia_pos.dist(dribble_pos), agent.get_type(tm.type_id).real_speed_max) + turn_cycle - if tm_cycle <= opponent_reach_steps + c: - if tm_cycle < block_cycle: - block_cycle = tm_cycle - blocker = unum - block_pos = dribble_pos - break - agent.add_log_text(pb2.LoggerLevel.BLOCK, f"### block cycle: {block_cycle}") - agent.add_log_text(pb2.LoggerLevel.BLOCK, f"### best blocker: {blocker}") - if blocker == agent.wm.self.uniform_number: - agent.add_action(pb2.PlayerAction(body_go_to_point=pb2.Body_GoToPoint(target_point=pb2.Vector2D(x=block_pos.x(), y=block_pos.y()), distance_threshold=0.5, max_dash_power=100))) - agent.add_action(pb2.PlayerAction(neck_turn_to_ball=pb2.Neck_TurnToBall())) - agent.add_action(pb2.PlayerAction(debug_client=pb2.DebugClient(message=f"blocker: {blocker}"))) - return True - return False diff --git a/src/DM_NoBall.py b/src/DM_NoBall.py deleted file mode 100644 index 0240437..0000000 --- a/src/DM_NoBall.py +++ /dev/null @@ -1,38 +0,0 @@ -import service_pb2 as pb2 -from src.IDecisionMaker import IDecisionMaker -from src.IAgent import IAgent -from pyrusgeom.soccer_math import * -from pyrusgeom.geom_2d import * -from src.BHV_Block import BHV_Block - - -class NoBallDecisionMaker(IDecisionMaker): - def __init__(self): - pass - - def make_decision(self, agent: IAgent): - teammate_reach_steps = agent.wm.intercept_table.first_teammate_reach_steps - self_reach_steps = agent.wm.intercept_table.self_reach_steps - our_reach_steps = min(teammate_reach_steps, self_reach_steps) - opponent_reach_steps = agent.wm.intercept_table.first_opponent_reach_steps - - if our_reach_steps < opponent_reach_steps and self_reach_steps < teammate_reach_steps: - agent.add_action(pb2.PlayerAction(body_intercept=pb2.Body_Intercept(save_recovery=False, - face_point=pb2.Vector2D( x=agent.wm.ball.position.x, - y=agent.wm.ball.position.y)))) - agent.add_action(pb2.PlayerAction(neck_turn_to_ball=pb2.Neck_TurnToBall())) - return - - pos = agent.get_strategy().getPosition(agent.wm.self.uniform_number) - agent.add_log_text(pb2.LoggerLevel.TEAM, f"opponent_reach_steps: {opponent_reach_steps} " - f"our_reach_steps: {our_reach_steps}") - if opponent_reach_steps < our_reach_steps: - if BHV_Block().execute(agent): - return - - agent.add_action(pb2.PlayerAction(body_go_to_point=pb2.Body_GoToPoint(target_point=pb2.Vector2D(x=pos.x(), y=pos.y()), - distance_threshold=1, - max_dash_power=100))) - agent.add_action(pb2.PlayerAction(neck_turn_to_ball=pb2.Neck_TurnToBall())) - agent.add_action(pb2.PlayerAction(debug_client=pb2.DebugClient(message=f"go to : {pos.x()}, {pos.y()}"))) - \ No newline at end of file diff --git a/src/DM_PlayOn.py b/src/DM_PlayOn.py deleted file mode 100644 index 4655734..0000000 --- a/src/DM_PlayOn.py +++ /dev/null @@ -1,27 +0,0 @@ -import service_pb2 as pb2 -from src.IDecisionMaker import IDecisionMaker -from src.IAgent import IAgent -from src.DM_WithBall import WithBallDecisionMaker -from src.DM_NoBall import NoBallDecisionMaker - - -class PlayOnDecisionMaker(IDecisionMaker): - def __init__(self): - self.withBallDecisionMaker = WithBallDecisionMaker() - self.noBallDecisionMaker = NoBallDecisionMaker() - pass - - def make_decision(self, agent: IAgent): - # agent.addAction(pb2.PlayerAction(dash=pb2.Dash(power=100, relative_direction=30))) - if agent.wm.self.is_kickable: - self.withBallDecisionMaker.make_decision(agent) - # agent.add_action(pb2.PlayerAction(helios_chain_action=pb2.HeliosChainAction( - # cross=True, - # lead_pass=True, - # direct_pass=True, - # through_pass=True, - # short_dribble=True, - # long_dribble=True, - # ))) - else: - self.noBallDecisionMaker.make_decision(agent) \ No newline at end of file diff --git a/src/DM_SetPlay.py b/src/DM_SetPlay.py deleted file mode 100644 index ac9bc03..0000000 --- a/src/DM_SetPlay.py +++ /dev/null @@ -1,11 +0,0 @@ -import service_pb2 as pb2 -from src.IDecisionMaker import IDecisionMaker -from src.IAgent import IAgent - - -class SetPlayDecisionMaker(IDecisionMaker): - def __init__(self): - pass - - def make_decision(self, agent: IAgent, wm: pb2.WorldModel): - agent.add_action(pb2.PlayerAction(turn=pb2.Turn(relative_direction=30.0))) \ No newline at end of file diff --git a/src/DM_WithBall.py b/src/DM_WithBall.py deleted file mode 100644 index 648881c..0000000 --- a/src/DM_WithBall.py +++ /dev/null @@ -1,53 +0,0 @@ -# from pyparsing import col -import service_pb2 as pb2 -from src.IDecisionMaker import IDecisionMaker -from src.IAgent import IAgent -from pyrusgeom.soccer_math import * -from pyrusgeom.geom_2d import * -from src.GEN_Pass import GeneratorPass -from src.IBallAction import BallAction -import time - -class WithBallDecisionMaker(IDecisionMaker): - def __init__(self): - self.pass_generator = GeneratorPass() - pass - - sum_time = 0 - count = 0 - def make_decision(self, agent: IAgent): - start_time = time.time() - candidate_actions: list[BallAction] = self.pass_generator.generate(agent, 0) - - if len(candidate_actions) == 0: - agent.add_action(pb2.PlayerAction(body_hold_ball=pb2.Body_HoldBall())) - return - - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"candidate_actions: {candidate_actions}") - candidate_actions.sort(key=lambda x: x.score, reverse=True) - - best_action = None - i = 0 - best_score = -1000000 - for candidate in candidate_actions: - candidate.check_possibility(agent) - i += 1 - if candidate.success: - if candidate.score > best_score: - best_score = candidate.score - best_action = candidate - break - end_time = time.time() - WithBallDecisionMaker.sum_time += end_time - start_time - WithBallDecisionMaker.count += 1 - print(f"{agent.wm.cycle} {i} {len(candidate_actions)} {float(i) / len(candidate_actions)} {candidate.score} {end_time - start_time} {WithBallDecisionMaker.sum_time / WithBallDecisionMaker.count}") - if best_action is None: - agent.add_action(pb2.PlayerAction(body_hold_ball=pb2.Body_HoldBall())) - return - - agent.add_action(pb2.PlayerAction(body_smart_kick=pb2.Body_SmartKick( - target_point=pb2.Vector2D(x=best_action.targetBallPos.x(), y=best_action.targetBallPos.y()), - first_speed=best_action.firstVelocity.r(), - first_speed_threshold=0.0, - max_steps=3))) diff --git a/src/DecisionMaker.py b/src/DecisionMaker.py deleted file mode 100644 index 4a2f1cb..0000000 --- a/src/DecisionMaker.py +++ /dev/null @@ -1,22 +0,0 @@ -import service_pb2 as pb2 -from src.IDecisionMaker import IDecisionMaker -from src.DM_PlayOn import PlayOnDecisionMaker -from src.DM_SetPlay import SetPlayDecisionMaker -from src.IAgent import IAgent - - -class DecisionMaker(IDecisionMaker): - def __init__(self): - self.playOnDecisionMaker = PlayOnDecisionMaker() - self.setPlayDecisionMaker = SetPlayDecisionMaker() - - def make_decision(self, agent: IAgent): - if agent.wm.self.is_goalie: - agent.add_action(pb2.PlayerAction(helios_goalie=pb2.HeliosGoalie())) - else: - if agent.wm.game_mode_type == pb2.GameModeType.PlayOn: - self.playOnDecisionMaker.make_decision(agent) - elif agent.wm.is_penalty_kick_mode: - agent.add_action(pb2.PlayerAction(helios_penalty=pb2.HeliosPenalty())) - else: - agent.add_action(pb2.PlayerAction(helios_set_play=pb2.HeliosSetPlay())) \ No newline at end of file diff --git a/src/FormationStrategy.py b/src/FormationStrategy.py deleted file mode 100644 index 7be69f5..0000000 --- a/src/FormationStrategy.py +++ /dev/null @@ -1,96 +0,0 @@ -import service_pb2 as pb2 -from src.IPositionStrategy import IPositionStrategy -from src.delaunay_triangulation import * -from enum import Enum -from pyrusgeom.soccer_math import * - -class Situation(Enum): - OurSetPlay_Situation = 0, - OppSetPlay_Situation = 1, - Defense_Situation = 2, - Offense_Situation = 3, - PenaltyKick_Situation = 4 - -class FormationStrategy(IPositionStrategy): - def __init__(self): - self.before_kick_off_formation: Formation = Formation(f'src/formation_dt/before_kick_off.conf') - self.defense_formation: Formation = Formation(f'src/formation_dt/defense_formation.conf') - self.offense_formation: Formation = Formation(f'src/formation_dt/offense_formation.conf') - self.goalie_kick_opp_formation: Formation = Formation(f'src/formation_dt/goalie_kick_opp_formation.conf') - self.goalie_kick_our_formation: Formation = Formation(f'src/formation_dt/goalie_kick_our_formation.conf') - self.kickin_our_formation: Formation = Formation(f'src/formation_dt/kickin_our_formation.conf') - self.setplay_opp_formation: Formation = Formation(f'src/formation_dt/setplay_opp_formation.conf') - self.setplay_our_formation: Formation = Formation(f'src/formation_dt/setplay_our_formation.conf') - self._poses = [Vector2D(0, 0) for i in range(11)] - self.current_situation = Situation.Offense_Situation - self.current_formation = self.offense_formation - - def update(self, wm: pb2.WorldModel): - tm_min = wm.intercept_table.first_teammate_reach_steps - opp_min = wm.intercept_table.first_opponent_reach_steps - self_min = wm.intercept_table.self_reach_steps - all_min = min(tm_min, opp_min, self_min) - current_ball_pos = Vector2D(wm.ball.position.x, wm.ball.position.y) - current_ball_vel = Vector2D(wm.ball.velocity.x, wm.ball.velocity.y) - ball_pos = inertia_n_step_point(current_ball_pos, current_ball_vel, all_min, 0.96) #todo use server param ball decay - - - if True: #todo wm.game_mode().type() is GameModeType.PlayOn: - thr = 0 - if ball_pos.x() > 0: - thr += 1 - if wm.self.uniform_number > 6: - thr += 1 - if min(tm_min, self_min) < opp_min + thr: - self.current_situation = Situation.Offense_Situation - else: - self.current_situation = Situation.Defense_Situation - else: - pass - # if wm.game_mode().is_penalty_kick_mode(): - # self.current_situation = Situation.PenaltyKick_Situation - # elif wm.game_mode().is_our_set_play(wm.our_side()): - # self.current_situation = Situation.OurSetPlay_Situation - # else: - # self.current_situation = Situation.OppSetPlay_Situation - - if True: #ToDo wm.game_mode().type() is GameModeType.PlayOn: - if self.current_situation is Situation.Offense_Situation: - self.current_formation = self.offense_formation - else: - self.current_formation = self.defense_formation - - # elif wm.game_mode().type() in [GameModeType.BeforeKickOff, GameModeType.AfterGoal_Left, - # GameModeType.AfterGoal_Right]: - # self.current_formation = self.before_kick_off_formation - - # elif wm.game_mode().type() in [GameModeType.GoalKick_Left, GameModeType.GoalKick_Right, GameModeType.GoalieCatchBall_Left, GameModeType.GoalieCatchBall_Right]: # Todo add Goal Catch!! - # if wm.game_mode().is_our_set_play(wm.our_side()): - # self.current_formation = self.goalie_kick_our_formation - # else: - # self.current_formation = self.goalie_kick_opp_formation - - # else: - # if wm.game_mode().is_our_set_play(wm.our_side()): - # if wm.game_mode().type() in [GameModeType.KickIn_Right, GameModeType.KickIn_Left, - # GameModeType.CornerKick_Right, GameModeType.CornerKick_Left]: - # self.current_formation = self.kickin_our_formation - # else: - # self.current_formation = self.setplay_our_formation - # else: - # self.current_formation = self.setplay_opp_formation - - self.current_formation.update(ball_pos) - self._poses = self.current_formation.get_poses() - - # if self.current_formation is self.before_kick_off_formation or wm.game_mode().type() in \ - # [GameModeType.KickOff_Left, GameModeType.KickOff_Right]: - # for pos in self._poses: - # pos._x = min(pos.x(), -0.5) - # else: - # pass # Todo add offside line - # # for pos in self._poses: - # # pos._x = math.min(pos.x(), ) - - def getPosition(self, uniform_number): - return self._poses[uniform_number - 1] \ No newline at end of file diff --git a/src/GEN_Pass.py b/src/GEN_Pass.py deleted file mode 100644 index bf7193f..0000000 --- a/src/GEN_Pass.py +++ /dev/null @@ -1,338 +0,0 @@ -from src.IBallActionGenerator import BallActionGenerator -from src.IAgent import IAgent -import service_pb2 as pb2 -import pyrusgeom.soccer_math as smath -from pyrusgeom.soccer_math import * -from pyrusgeom.geom_2d import * -from src.Tools import Tools -from src.IBallAction import BallAction, ActionType, PassAction - - -class GeneratorPass(BallActionGenerator): - def __init__(self): - super().__init__() - self.receivers: pb2.TeammateMessage = [] - self.index = 0 - - def generate(self, agent: IAgent, init_index: int = 0): - self.candidateActions = [] - self.receivers = [] - self.debug_list = [] - self.index = init_index - self.update_receiver(agent) - self.generate_pass(agent) - if agent.debug_mode: - self.log_debug(agent, pb2.LoggerLevel.PASS) - return self.candidateActions - - def update_receiver(self, agent: IAgent): - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, "update_receiver") - for tm in agent.wm.teammates: - if tm.uniform_number == agent.wm.self.uniform_number: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} is me") - continue - if tm.uniform_number < 0: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} unum is less than 0") - continue - - if tm.pos_count > 10: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} pos_count is more than 10") - continue - - if tm.is_tackling: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} is tackling") - continue - - if tm.position.x > agent.wm.offside_line_x: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} is offside") - continue - - if tm.is_goalie and tm.position.x < -30: # todo server param ourPenaltyAreaLineX - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} is goalie and in danger area") - continue - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} is ok") - self.receivers.append(tm) - - def generate_pass(self, agent: IAgent): - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, "generate_pass") - for tm in self.receivers: - self.generate_direct_pass(agent, tm) - for tm in self.receivers: - self.generate_lead_pass(agent, tm) - - def generate_direct_pass(self, agent: IAgent, tm: pb2.Player): - direct_pass = PassAction() - direct_pass.actionType = ActionType.DIRECT_PASS - direct_pass.initUnum = agent.wm.self.uniform_number - direct_pass.targetUnum = tm.uniform_number - direct_pass.initBallPos = Vector2D(agent.wm.ball.position.x, agent.wm.ball.position.y) - direct_pass.targetBallPos = Vector2D(tm.position.x, tm.position.y) - direct_pass.evaluate() - self.candidateActions.append(direct_pass) - - def generate_lead_pass(self, agent: IAgent, tm: pb2.Player): - tm_pos = Vector2D(tm.position.x, tm.position.y) - ball_pos = Vector2D(agent.wm.ball.position.x, agent.wm.ball.position.y) - tm_vel = Vector2D(tm.velocity.x, tm.velocity.y) - angle_divs = 4 - dist_divs = 2 - angle_step = int(360.0 / angle_divs) - dist_step = 1.1 - - angle_from_ball = (tm_pos - ball_pos).th() - for d in range(1, dist_divs + 1): - player_move_dist = dist_step * d - for a in range(angle_divs + 1): - angle = angle_from_ball + angle_step * a - receive_point = tm_pos + tm_vel + Vector2D.from_polar(player_move_dist, angle) - lead_pass = PassAction() - lead_pass.actionType = ActionType.LEAD_PASS - lead_pass.initUnum = agent.wm.self.uniform_number - lead_pass.targetUnum = tm.uniform_number - lead_pass.initBallPos = Vector2D(agent.wm.ball.position.x, agent.wm.ball.position.y) - lead_pass.targetBallPos = Vector2D(receive_point.x(), receive_point.y()) - lead_pass.evaluate() - self.candidateActions.append(lead_pass) - - - def generate_lead_pass2(self, agent: IAgent, tm: pb2.Player): - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f">> generate_lead_pass to {tm.uniform_number}") - sp = agent.serverParams - our_goal_dist_thr2 = pow(16.0, 2) - min_receive_step = 4 - max_receive_step = 20 - min_leading_pass_dist = 3.0 - max_leading_pass_dist = 0.8 * smath.inertia_final_distance(sp.ball_speed_max, sp.ball_decay) - max_receive_ball_speed = sp.ball_speed_max * pow(sp.ball_decay, min_receive_step) - - max_player_distance = 35 - tm_pos = Vector2D(tm.position.x, tm.position.y) - tm_vel = Vector2D(tm.velocity.x, tm.velocity.y) - ball_pos = Vector2D(agent.wm.ball.position.x, agent.wm.ball.position.y) - ball_vel = Vector2D(agent.wm.ball.velocity.x, agent.wm.ball.velocity.y) - - if tm_pos.dist(ball_pos) > max_player_distance: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED tm_pos is too far") - return - - abgle_divs = 8 - angle_step = 360.0 / abgle_divs - dist_divs = 4 - dist_step = 1.1 - - ptype = agent.get_type(tm.type_id) - max_ball_speed = agent.wm.self.kick_rate * sp.max_power - if agent.wm.game_mode_type == pb2.GameModeType.PlayOn: - max_ball_speed = sp.ball_speed_max - min_ball_speed = agent.get_type(0).real_speed_max - - max_receive_ball_speed = min(max_receive_ball_speed, ptype.kickable_area + ( - sp.max_dash_power * ptype.dash_power_rate * ptype.effort_max) * 1.5) - min_receive_ball_speed = 0.001 - - our_goal = Vector2D(-52.5, 0) - - angle_from_ball = (tm_pos - ball_pos).th() - for d in range(1, dist_divs + 1): - player_move_dist = dist_step * d - a_step = 2 if player_move_dist * 2.0 * math.pi / abgle_divs < 0.6 else 1 - for a in range(abgle_divs + 1): - angle = angle_from_ball + angle_step * a - receive_point = tm_pos + tm_vel + Vector2D.from_polar(player_move_dist, angle) - - move_dist_penalty_step = 0 - ball_move_line = Line2D(ball_pos, receive_point) - player_line_dist = ball_move_line.dist(tm_pos) - move_dist_penalty_step = int(player_line_dist * 0.3) - if receive_point.x() > sp.pitch_half_length - 3.0 \ - or receive_point.x() < -sp.pitch_half_length + 5.0 \ - or receive_point.abs_y() > sp.pitch_half_width - 3.0: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED receive_point is out of field") - continue - - if receive_point.x() < ball_pos.x() \ - and receive_point.dist2(our_goal) < our_goal_dist_thr2: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED receive_point is near our goal") - continue - - if agent.wm.game_mode_type == pb2.GameModeType.GoalKick_ \ - and receive_point.x() < sp.our_penalty_area_line_x + 1.0 \ - and receive_point.abs_y() < sp.penalty_area_half_width + 1.0: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED receive_point is in penalty area in goal kick mode") - return - - ball_move_dist = ball_pos.dist(receive_point) - - if ball_move_dist < min_leading_pass_dist or max_leading_pass_dist < ball_move_dist: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED ball_move_dist is out of range") - continue - - nearest_receiver = Tools.get_nearest_teammate(agent, receive_point) - if nearest_receiver.uniform_number != tm.uniform_number: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED nearest_receiver is not tm") - continue - - receiver_step = self.predict_receiver_reach_step(agent, tm, receive_point, 'L') + move_dist_penalty_step - ball_move_angle = (receive_point - ball_pos).th() - - min_ball_step = Tools.ball_move_step(sp.ball_speed_max, ball_move_dist, sp.ball_decay) - - start_step = max(max(min_receive_step, min_ball_step), receiver_step) - # ifdef CREATE_SEVERAL_CANDIDATES_ON_SAME_POINT - max_step = max(max_receive_step, start_step + 3) - # else - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f">>>> LPass to {tm.uniform_number} ({round(tm_pos.x(), 2)}, {round(tm_pos.y(), 2)}) -> ({round(receive_point.x(), 2)}, {round(receive_point.y(), 2)}) start_step: {start_step}, max_step: {max_step}") - max_step = start_step + 3 - self.create_pass(agent, tm, receive_point, - start_step, max_step, min_ball_speed, - max_ball_speed, min_receive_ball_speed, - max_receive_ball_speed, ball_move_dist, - ball_move_angle, "L") - - def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector2D, - min_step, max_step, min_first_ball_speed, max_first_ball_speed, - min_receive_ball_speed, max_receive_ball_speed, - ball_move_dist, ball_move_angle: AngleDeg, description): - sp = agent.serverParams - ball_pos = Tools.vector2d_message_to_vector2d(agent.wm.ball.position) - same_index = -1 - for step in range(min_step, max_step + 1): - same_index += 1 - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f">>>>>> #{self.index} Pass to {receiver.uniform_number} ({round(receive_point.x(), 2)}, {round(receive_point.y(), 2)}), step:{step}") - self.index += 1 - first_ball_speed = smath.calc_first_term_geom_series(ball_move_dist, sp.ball_decay, step) - - if first_ball_speed < min_first_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} ? first ball speed is low") - self.debug_list.append((self.index, receive_point, False, same_index)) - break - - if max_first_ball_speed < first_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} ? first ball speed is high") - self.debug_list.append((self.index, receive_point, False, same_index)) - continue - - receive_ball_speed = first_ball_speed * pow(sp.ball_decay, step) - - if receive_ball_speed < min_receive_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} ? receive ball speed is low") - self.debug_list.append((self.index, receive_point, False, same_index)) - break - - if max_receive_ball_speed < receive_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} ? receive ball speed is high") - self.debug_list.append((self.index, receive_point, False, same_index)) - continue - - kick_count = Tools.predict_kick_count(agent, agent.wm.self.uniform_number, first_ball_speed, ball_move_angle) - - o_step, o_unum, o_intercepted_pos = self.predict_opponents_reach_step(agent, ball_pos, - first_ball_speed, ball_move_angle, - receive_point, step + (kick_count - 1) + 5, - description) - - failed = False - if description == 'T': - if o_step <= step: - failed = True - else: - if o_step <= step + (kick_count - 1): - failed = True - if failed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### Failed to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} opp {o_unum} step {o_step} max_step {max_step} ? opp reach step is low") - self.debug_list.append((self.index, receive_point, False, same_index)) - break - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### OK to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} opp {o_unum} step {o_step}, max_step {max_step}") - self.debug_list.append((self.index, receive_point, True, same_index)) - - candidate = IBallAction() - candidate.actionType = ActionType.DIRECT_PASS - candidate.initBallPos = ball_pos - candidate.targetBallPos = receive_point - candidate.targetUnum = receiver.uniform_number - candidate.firstVelocity = Vector2D.polar2vector(first_ball_speed, ball_move_angle) - candidate.evaluate() - self.candidateActions.append(candidate) - - find_another_pass = False - if not find_another_pass: - break - - if o_step <= step + 3: - break - - if min_step + 3 <= step: - break - - def predict_receiver_reach_step(self, agent: IAgent, receiver: pb2.Player, pos: Vector2D, pass_type): - ptype = agent.get_type(receiver.type_id) - receiver_pos = Vector2D(receiver.position.x, receiver.position.y) - receiver_vel = Vector2D(receiver.velocity.x, receiver.velocity.y) - receiver_inertia_pos = receiver_pos + receiver_vel - target_dist = receiver_inertia_pos.dist(pos) - n_turn = 1 if receiver.body_direction_count > 0 else Tools.predict_player_turn_cycle(agent.serverParams, ptype, receiver.body_direction, - receiver_vel.r(), target_dist, - (pos - receiver_inertia_pos).th(), - ptype.kickable_area, False) - dash_dist = target_dist - - # if use_penalty: - # dash_dist += receiver.penalty_distance_; - - if pass_type == 'L': - dash_dist *= 1.05 - - dash_angle = (pos - receiver_pos).th() - - if dash_angle.abs() > 90.0 or receiver.body_direction_count > 1 or (dash_angle - AngleDeg(receiver.body_direction)).abs() > 30.0: - n_turn += 1 - - - n_dash = Tools.cycles_to_reach_distance(dash_dist, ptype.real_speed_max) - - n_step = n_turn + n_dash if n_turn == 0 else n_turn + n_dash + 1 - return n_step - - def predict_opponents_reach_step(self, agent: IAgent, first_ball_pos: Vector2D, first_ball_speed, - ball_move_angle: AngleDeg, receive_point: Vector2D, max_cycle, description): - first_ball_vel = Vector2D.polar2vector(first_ball_speed, ball_move_angle) - min_step = 1000 - min_opp = 0 - intercepted_pos = None - for opp in agent.wm.opponents: - if opp is None or opp.uniform_number == 0: - continue - step, intercepted_pos = Tools.predict_opponent_reach_step(agent, opp, first_ball_pos, first_ball_vel, ball_move_angle, - receive_point, max_cycle, description) - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"------ Opp {opp.uniform_number} step {step} min_step {min_step} in {intercepted_pos}") - if step < min_step: - min_step = step - min_opp = opp.uniform_number - return min_step, min_opp, intercepted_pos - - \ No newline at end of file diff --git a/src/IAgent.py b/src/IAgent.py deleted file mode 100644 index 37f584e..0000000 --- a/src/IAgent.py +++ /dev/null @@ -1,89 +0,0 @@ -from abc import ABC, abstractmethod -import service_pb2 as pb2 -from src.IPositionStrategy import IPositionStrategy -from typing import Union - - -class IAgent(ABC): - def __init__(self) -> None: - super().__init__() - self.wm: Union[pb2.WorldModel, None] = None - self.actions: list[pb2.PlayerAction] = [] - self.serverParams: Union[pb2.ServerParam, None] = None - self.playerParams: Union[pb2.PlayerParam, None] = None - self.playerTypes: Union[pb2.PlayerType, dict[pb2.PlayerType]] = {} - self.debug_mode: bool = False - - def get_type(self, id: int) -> pb2.PlayerType: - if id < 0: - id = 0 - return self.playerTypes[id] - - @abstractmethod - def get_actions(self, wm: pb2.WorldModel): - pass - - # @abstractmethod - # def get_strategy(self) -> IPositionStrategy: - # pass - - def set_debug_mode(self, debug_mode: bool): - self.debug_mode = debug_mode - # message Log { - # oneof log { - # AddText add_text = 1; - # AddPoint add_point = 2; - # AddLine add_line = 3; - # AddArc add_arc = 4; - # AddCircle add_circle = 5; - # AddTriangle add_triangle = 6; - # AddRectangle add_rectangle = 7; - # AddSector add_sector = 8; - # AddMessage add_message = 9; - # } - # } - - def add_log_text(self, level: pb2.LoggerLevel, message: str): - if not self.debug_mode: - return - self.add_action(pb2.PlayerAction( - log=pb2.Log( - add_text=pb2.AddText( - level=level, - message=message - ) - ) - )) - - def add_log_message(self, level: pb2.LoggerLevel, message: str, x, y, color): - if not self.debug_mode: - return - self.add_action(pb2.PlayerAction( - log=pb2.Log( - add_message=pb2.AddMessage( - level=level, - message=message, - position=pb2.Vector2D(x=x, y=y), - color=color, - ) - ) - )) - - def add_log_circle(self, level: pb2.LoggerLevel, center_x: float, center_y: float, radius: float, color: str, - fill: bool): - if not self.debug_mode: - return - self.add_action(pb2.PlayerAction( - log=pb2.Log( - add_circle=pb2.AddCircle( - level=level, - center=pb2.Vector2D(x=center_x, y=center_y), - radius=radius, - color=color, - fill=fill - ) - ) - )) - - def add_action(self, actions): - self.actions.append(actions) diff --git a/src/IBallAction.py b/src/IBallAction.py deleted file mode 100644 index dd8ebee..0000000 --- a/src/IBallAction.py +++ /dev/null @@ -1,336 +0,0 @@ -from abc import ABC, abstractmethod -from typing import Any -from pyrusgeom.soccer_math import * -from pyrusgeom.geom_2d import * -from enum import Enum -from src.IAgent import IAgent -import service_pb2 as pb2 -import pyrusgeom.soccer_math as smath -from src.Tools import Tools - - -class ActionType(Enum): - DRIBBLE = "dribble" - SHOOT = "shoot" - DIRECT_PASS = "direct_pass" - LEAD_PASS = "lead_pass" - THROUGH_PASS = "through_pass" - - -class BallAction(ABC): - def __init__(self) -> None: - super().__init__() - self.index = 0 - self.actionType: ActionType = None - self.initUnum = 0 - self.targetUnum = 0 - self.initBallPos: Vector2D = None - self.targetBallPos: Vector2D = None - self.firstVelocity: Vector2D = None - self.targetVelocity: Vector2D = None - self.targetDirection: AngleDeg = None - self.score = 0.0 - self.success = False - - def evaluate(self) -> float: - self.score = self.targetBallPos.x() - goal_dist = math.sqrt(pow(abs(self.targetBallPos.x() - 52.5), 2) + pow(abs(self.targetBallPos.y()), 2)) - if goal_dist < 40.0: - self.score += (40.0 - goal_dist) - - def check_possibility(self, agent: Any) -> None: - pass - - def __str__(self) -> str: - return f"ActionType: {self.actionType}, score: {self.score}, targetBallPos: {self.targetBallPos}, firstVelocity: {self.firstVelocity}, targetVelocity: {self.targetVelocity}, targetDirection: {self.targetDirection}, success: {self.success}" - - def __repr__(self) -> str: - return f"ActionType: {self.actionType}, score: {self.score}, targetBallPos: {self.targetBallPos}, firstVelocity: {self.firstVelocity}, targetVelocity: {self.targetVelocity}, targetDirection: {self.targetDirection}, success: {self.success}" - - -class PassAction(BallAction): - def __init__(self) -> None: - super().__init__() - - def check_possibility(self, agent: IAgent) -> None: - if self.actionType == ActionType.DIRECT_PASS: - self.check_direct_pass(agent) - else: - self.check_lead_pass(agent) - - def check_direct_pass(self, agent: IAgent) -> None: - tm = agent.wm.our_players_dict[self.targetUnum] - sp = agent.serverParams - player_type: pb2.PlayerType = agent.get_type(tm.type_id) - min_receive_step = 3 - max_direct_pass_dist = 0.8 * smath.inertia_final_distance(sp.ball_speed_max, sp.ball_decay) - max_receive_ball_speed = sp.ball_speed_max * pow(sp.ball_decay, min_receive_step) - min_direct_pass_dist = player_type.kickable_area * 2.2 - tm_vel = Vector2D(tm.velocity.x, tm.velocity.y) - ball_pos = Vector2D(agent.wm.ball.position.x, agent.wm.ball.position.y) - if self.targetBallPos.x() > sp.pitch_half_length - 1.5 \ - or self.targetBallPos.x() < -sp.pitch_half_length + 5.0 \ - or self.targetBallPos.abs_y() > sp.pitch_half_width - 1.5: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED tm_pos is out of field") - return - # TODO sp.ourTeamGoalPos() - if self.targetBallPos.x() < agent.wm.ball.position.x + 1.0 \ - and self.targetBallPos.dist(Vector2D(-52.5, 0)) < 18.0: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED tm_pos is near our goal") - return - - max_ball_speed = agent.wm.self.kick_rate * sp.max_power - if agent.wm.game_mode_type == pb2.GameModeType.PlayOn: - max_ball_speed = sp.ball_speed_max - - # TODO SP.defaultRealSpeedMax() - min_ball_speed = 1.0 - - receive_point = Tools.inertia_final_point(player_type, self.targetBallPos, tm_vel) - ball_move_dist = ball_pos.dist(receive_point) - - if ball_move_dist < min_direct_pass_dist or max_direct_pass_dist < ball_move_dist: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED ball_move_dist is out of range") - return - - if agent.wm.game_mode_type == pb2.GameModeType.GoalKick_ \ - and receive_point.x() < sp.our_penalty_area_line_x + 1.0 \ - and receive_point.abs_y() < sp.penalty_area_half_width + 1.0: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED receive_point is in penalty area in goal kick mode") - return - - max_receive_ball_speed = min(max_receive_ball_speed, player_type.kickable_area + ( - sp.max_dash_power * player_type.dash_power_rate * player_type.effort_max) * 1.8) - min_receive_ball_speed = player_type.real_speed_max - - ball_move_angle = (receive_point - ball_pos).th() - - min_ball_step = Tools.ball_move_step(sp.ball_speed_max, ball_move_dist, sp.ball_decay) - # TODO Penalty step - start_step = max(max(min_receive_step, min_ball_step), 0) - max_step = start_step + 2 - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f">>>> DPass to {tm.uniform_number} ({round(tm_pos.x(), 2)}, {round(tm_pos.y(), 2)}) -> ({round(receive_point.x(), 2)}, {round(receive_point.y(), 2)}) start_step: {start_step}, max_step: {max_step}") - - self.create_pass(agent, tm, receive_point, - start_step, max_step, min_ball_speed, - max_ball_speed, min_receive_ball_speed, - max_receive_ball_speed, ball_move_dist, - ball_move_angle, "D") - - def check_lead_pass(self, agent: IAgent) -> None: - tm = agent.wm.our_players_dict[self.targetUnum] - sp = agent.serverParams - our_goal_dist_thr2 = pow(16.0, 2) - min_receive_step = 4 - max_receive_step = 20 - min_leading_pass_dist = 3.0 - max_leading_pass_dist = 0.8 * smath.inertia_final_distance(sp.ball_speed_max, sp.ball_decay) - max_receive_ball_speed = sp.ball_speed_max * pow(sp.ball_decay, min_receive_step) - - max_player_distance = 35 - tm_pos = Vector2D(tm.position.x, tm.position.y) - ball_pos = Vector2D(agent.wm.ball.position.x, agent.wm.ball.position.y) - - if tm_pos.dist(ball_pos) > max_player_distance: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED tm_pos is too far") - return - - ptype = agent.get_type(tm.type_id) - max_ball_speed = agent.wm.self.kick_rate * sp.max_power - if agent.wm.game_mode_type == pb2.GameModeType.PlayOn: - max_ball_speed = sp.ball_speed_max - min_ball_speed = agent.get_type(0).real_speed_max - - max_receive_ball_speed = min(max_receive_ball_speed, ptype.kickable_area + ( - sp.max_dash_power * ptype.dash_power_rate * ptype.effort_max) * 1.5) - min_receive_ball_speed = 0.001 - - our_goal = Vector2D(-52.5, 0) - - receive_point = self.targetBallPos - - move_dist_penalty_step = 0 - ball_move_line = Line2D(ball_pos, receive_point) - player_line_dist = ball_move_line.dist(tm_pos) - move_dist_penalty_step = int(player_line_dist * 0.3) - if receive_point.x() > sp.pitch_half_length - 3.0 \ - or receive_point.x() < -sp.pitch_half_length + 5.0 \ - or receive_point.abs_y() > sp.pitch_half_width - 3.0: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED receive_point is out of field") - return - - if receive_point.x() < ball_pos.x() \ - and receive_point.dist2(our_goal) < our_goal_dist_thr2: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED receive_point is near our goal") - return - - if agent.wm.game_mode_type == pb2.GameModeType.GoalKick_ \ - and receive_point.x() < sp.our_penalty_area_line_x + 1.0 \ - and receive_point.abs_y() < sp.penalty_area_half_width + 1.0: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED receive_point is in penalty area in goal kick mode") - return - - ball_move_dist = ball_pos.dist(receive_point) - - if ball_move_dist < min_leading_pass_dist or max_leading_pass_dist < ball_move_dist: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED ball_move_dist is out of range") - return - - nearest_receiver = Tools.get_nearest_teammate(agent, receive_point) - if nearest_receiver.uniform_number != tm.uniform_number: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"## FAILED nearest_receiver is not tm") - return - - receiver_step = self.predict_receiver_reach_step(agent, tm, receive_point, 'L') + move_dist_penalty_step - ball_move_angle = (receive_point - ball_pos).th() - - min_ball_step = Tools.ball_move_step(sp.ball_speed_max, ball_move_dist, sp.ball_decay) - - start_step = max(max(min_receive_step, min_ball_step), receiver_step) - # ifdef CREATE_SEVERAL_CANDIDATES_ON_SAME_POINT - max_step = max(max_receive_step, start_step + 3) - # else - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f">>>> LPass to {tm.uniform_number} ({round(tm_pos.x(), 2)}, {round(tm_pos.y(), 2)}) -> ({round(receive_point.x(), 2)}, {round(receive_point.y(), 2)}) start_step: {start_step}, max_step: {max_step}") - max_step = start_step + 3 - self.create_pass(agent, tm, receive_point, - start_step, max_step, min_ball_speed, - max_ball_speed, min_receive_ball_speed, - max_receive_ball_speed, ball_move_dist, - ball_move_angle, "L") - - def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector2D, - min_step, max_step, min_first_ball_speed, max_first_ball_speed, - min_receive_ball_speed, max_receive_ball_speed, - ball_move_dist, ball_move_angle: AngleDeg, description): - sp = agent.serverParams - ball_pos = Tools.vector2d_message_to_vector2d(agent.wm.ball.position) - same_index = -1 - for step in range(min_step, max_step + 1): - same_index += 1 - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f">>>>>> #{self.index} Pass to {receiver.uniform_number} ({round(receive_point.x(), 2)}, {round(receive_point.y(), 2)}), step:{step}") - self.index += 1 - first_ball_speed = smath.calc_first_term_geom_series(ball_move_dist, sp.ball_decay, step) - - if first_ball_speed < min_first_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} ? first ball speed is low") - # self.debug_list.append((self.index, receive_point, False, same_index)) - break - - if max_first_ball_speed < first_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} ? first ball speed is high") - # self.debug_list.append((self.index, receive_point, False, same_index)) - continue - - receive_ball_speed = first_ball_speed * pow(sp.ball_decay, step) - - if receive_ball_speed < min_receive_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} ? receive ball speed is low") - # self.debug_list.append((self.index, receive_point, False, same_index)) - break - - if max_receive_ball_speed < receive_ball_speed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### FAILED to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} ? receive ball speed is high") - # self.debug_list.append((self.index, receive_point, False, same_index)) - continue - - kick_count = Tools.predict_kick_count(agent, agent.wm.self.uniform_number, first_ball_speed, ball_move_angle) - - o_step, o_unum, o_intercepted_pos = self.predict_opponents_reach_step(agent, ball_pos, - first_ball_speed, ball_move_angle, - receive_point, step + (kick_count - 1) + 5, - description) - - failed = False - if description == 'T': - if o_step <= step: - failed = True - else: - if o_step <= step + (kick_count - 1): - failed = True - if failed: - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### Failed to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} opp {o_unum} step {o_step} max_step {max_step} ? opp reach step is low") - # self.debug_list.append((self.index, receive_point, False, same_index)) - break - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"###### OK to {receiver.uniform_number} step:{step} ball_speed:{first_ball_speed} rball_speed:{receive_ball_speed} opp {o_unum} step {o_step}, max_step {max_step}") - # self.debug_list.append((self.index, receive_point, True, same_index)) - - self.initBallPos = ball_pos - self.firstVelocity = Vector2D.polar2vector(first_ball_speed, ball_move_angle) - self.success = True - - - find_another_pass = False - if not find_another_pass: - break - - if o_step <= step + 3: - break - - if min_step + 3 <= step: - break - - def predict_receiver_reach_step(self, agent: IAgent, receiver: pb2.Player, pos: Vector2D, pass_type): - ptype = agent.get_type(receiver.type_id) - receiver_pos = Vector2D(receiver.position.x, receiver.position.y) - receiver_vel = Vector2D(receiver.velocity.x, receiver.velocity.y) - receiver_inertia_pos = receiver_pos + receiver_vel - target_dist = receiver_inertia_pos.dist(pos) - n_turn = 1 if receiver.body_direction_count > 0 else Tools.predict_player_turn_cycle(agent.serverParams, ptype, receiver.body_direction, - receiver_vel.r(), target_dist, - (pos - receiver_inertia_pos).th(), - ptype.kickable_area, False) - dash_dist = target_dist - - # if use_penalty: - # dash_dist += receiver.penalty_distance_; - - if pass_type == 'L': - dash_dist *= 1.05 - - dash_angle = (pos - receiver_pos).th() - - if dash_angle.abs() > 90.0 or receiver.body_direction_count > 1 or (dash_angle - AngleDeg(receiver.body_direction)).abs() > 30.0: - n_turn += 1 - - - n_dash = Tools.cycles_to_reach_distance(dash_dist, ptype.real_speed_max) - - n_step = n_turn + n_dash if n_turn == 0 else n_turn + n_dash + 1 - return n_step - - def predict_opponents_reach_step(self, agent: IAgent, first_ball_pos: Vector2D, first_ball_speed, - ball_move_angle: AngleDeg, receive_point: Vector2D, max_cycle, description): - first_ball_vel = Vector2D.polar2vector(first_ball_speed, ball_move_angle) - min_step = 1000 - min_opp = 0 - intercepted_pos = None - for opp in agent.wm.opponents: - if opp is None or opp.uniform_number == 0: - continue - step, intercepted_pos = Tools.predict_opponent_reach_step(agent, opp, first_ball_pos, first_ball_vel, ball_move_angle, - receive_point, max_cycle, description) - if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"------ Opp {opp.uniform_number} step {step} min_step {min_step} in {intercepted_pos}") - if step < min_step: - min_step = step - min_opp = opp.uniform_number - return min_step, min_opp, intercepted_pos \ No newline at end of file diff --git a/src/IBallActionGenerator.py b/src/IBallActionGenerator.py deleted file mode 100644 index 8ad80c1..0000000 --- a/src/IBallActionGenerator.py +++ /dev/null @@ -1,16 +0,0 @@ -from src.IBallAction import BallAction -from src.IAgent import IAgent -import service_pb2 as pb2 - - -class BallActionGenerator: - def __init__(self): - self.candidateActions: list[BallAction] = [] - self.debug_list = [] - - def log_debug(self, agent: IAgent, log_level:pb2.LoggerLevel): - for item in self.debug_list: - same_index = float(item[3]) - agent.add_log_circle(log_level, item[1].x(), item[1].y() + 0.05 * same_index, 0.2, "blue" if item[2] else "red", False) - agent.add_log_message(log_level, f"{item[0]}", item[1].x(), item[1].y() - 0.1 * same_index, "blue" if item[2] else "red") - \ No newline at end of file diff --git a/src/IDecisionMaker.py b/src/IDecisionMaker.py deleted file mode 100644 index 12fe6d7..0000000 --- a/src/IDecisionMaker.py +++ /dev/null @@ -1,9 +0,0 @@ -from abc import ABC, abstractmethod -import service_pb2 as pb2 -from src.IAgent import IAgent - - -class IDecisionMaker(ABC): - @abstractmethod - def make_decision(self, agent: IAgent): - pass diff --git a/src/IPositionStrategy.py b/src/IPositionStrategy.py deleted file mode 100644 index d37f1e9..0000000 --- a/src/IPositionStrategy.py +++ /dev/null @@ -1,15 +0,0 @@ -from abc import ABC, abstractmethod -import service_pb2 as pb2 -from pyrusgeom.soccer_math import * -from pyrusgeom.geom_2d import * - - -class IPositionStrategy(ABC): - @abstractmethod - def getPosition(self, uniform_number) -> Vector2D: - pass - - @abstractmethod - def update(self, wm: pb2.WorldModel): - pass - \ No newline at end of file diff --git a/src/SampleCoachAgent.py b/src/SampleCoachAgent.py deleted file mode 100644 index 7a39cd9..0000000 --- a/src/SampleCoachAgent.py +++ /dev/null @@ -1,50 +0,0 @@ -from abc import ABC -from src.IAgent import IAgent -import service_pb2 as pb2 - - -class SampleCoachAgent(IAgent, ABC): - def __init__(self): - super().__init__() - self.serverParams: pb2.ServerParam = None - self.playerParams: pb2.PlayerParam = None - self.playerTypes: dict[pb2.PlayerType] = {} - self.wm: pb2.WorldModel = None - self.first_substitution = True - - def get_actions(self, wm:pb2.WorldModel) -> pb2.CoachActions: - self.wm = wm - - actions = pb2.CoachActions() - # if (wm.cycle == 0 - # and self.first_substitution - # and self.playerParams is not None - # and len(self.playerTypes.keys()) == self.playerParams.player_types): - - # self.first_substitution = False - # for i in range(11): - # actions.actions.append( - # pb2.CoachAction( - # change_player_types=pb2.ChangePlayerType( - # uniform_number=i+1, - # type=i - # ) - # ) - # ) - - actions.actions.append( - pb2.CoachAction( - do_helios_substitute=pb2.DoHeliosSubstitute() - ) - ) - return actions - - def set_params(self, params): - if isinstance(params, pb2.ServerParam): - self.serverParams = params - elif isinstance(params, pb2.PlayerParam): - self.playerParams = params - elif isinstance(params, pb2.PlayerType): - self.playerTypes[params.id] = params - else: - raise Exception("Unknown params type") \ No newline at end of file diff --git a/src/SamplePlayerAgent.py b/src/SamplePlayerAgent.py deleted file mode 100644 index 19322b0..0000000 --- a/src/SamplePlayerAgent.py +++ /dev/null @@ -1,38 +0,0 @@ -from abc import ABC -import service_pb2 as pb2 -from src.DecisionMaker import DecisionMaker -from src.IAgent import IAgent -from src.FormationStrategy import FormationStrategy - - -class SamplePlayerAgent(IAgent, ABC): - def __init__(self): - super().__init__() - self.decisionMaker = DecisionMaker() - self.strategy = FormationStrategy() - self.serverParams: pb2.ServerParam = None - self.playerParams: pb2.PlayerParam = None - self.playerTypes: dict[pb2.PlayerType] = {} - self.wm: pb2.WorldModel = None - - def get_actions(self, wm:pb2.WorldModel) -> pb2.PlayerActions: - self.wm = wm - self.actions.clear() - self.strategy.update(wm) - self.decisionMaker.make_decision(self) - actions = pb2.PlayerActions() - actions.actions.extend(self.actions) - return actions - - def get_strategy(self): - return self.strategy - - def set_params(self, params): - if isinstance(params, pb2.ServerParam): - self.serverParams = params - elif isinstance(params, pb2.PlayerParam): - self.playerParams = params - elif isinstance(params, pb2.PlayerType): - self.playerTypes[params.id] = params - else: - raise Exception("Unknown params type") \ No newline at end of file diff --git a/src/SampleTrainerAgent.py b/src/SampleTrainerAgent.py deleted file mode 100644 index 5debe9e..0000000 --- a/src/SampleTrainerAgent.py +++ /dev/null @@ -1,47 +0,0 @@ -from abc import ABC -from src.IAgent import IAgent -import service_pb2 as pb2 - - -class SampleTrainerAgent(IAgent, ABC): - def __init__(self): - super().__init__() - self.serverParams: pb2.ServerParam = None - self.playerParams: pb2.PlayerParam = None - self.playerTypes: dict[pb2.PlayerType] = {} - self.wm: pb2.WorldModel = None - self.first_substitution = True - - def get_actions(self, wm:pb2.WorldModel) -> pb2.TrainerActions: - self.wm = wm - - actions = pb2.TrainerActions() - print(f'cycle: {self.wm.cycle}') - print(f'cycle: {self.wm.ball.position.x}, {self.wm.ball.position.y}') - - if self.wm.cycle % 100 == 0: - actions.actions.append( - pb2.TrainerAction( - do_move_ball=pb2.DoMoveBall( - position=pb2.Vector2D( - x=0, - y=0 - ), - velocity=pb2.Vector2D( - x=0, - y=0 - ), - ) - ) - ) - return actions - - def set_params(self, params): - if isinstance(params, pb2.ServerParam): - self.serverParams = params - elif isinstance(params, pb2.PlayerParam): - self.playerParams = params - elif isinstance(params, pb2.PlayerType): - self.playerTypes[params.id] = params - else: - raise Exception("Unknown params type") \ No newline at end of file diff --git a/src/Tools.py b/src/Tools.py deleted file mode 100644 index dee2211..0000000 --- a/src/Tools.py +++ /dev/null @@ -1,239 +0,0 @@ -import service_pb2 as pb2 -import pyrusgeom.soccer_math as smath -from pyrusgeom.soccer_math import * -from pyrusgeom.geom_2d import * -from src.IAgent import IAgent -import math - -class Tools: - @staticmethod - def inertia_final_point(playerType: pb2.PlayerType, position: Vector2D, velocity: Vector2D) -> Vector2D: - return smath.inertia_final_point(position, velocity, playerType.player_decay) - - @staticmethod - def ball_move_step(first_ball_speed, ball_move_dist, ball_decay): - return int(math.ceil(calc_length_geom_series(first_ball_speed, ball_move_dist, ball_decay)) + 1.0e-10) - - @staticmethod - def first_ball_speed(ball_move_dist: float, total_step: int, ball_decay: float): - return calc_first_term_geom_series(ball_move_dist, ball_decay, total_step) - - @staticmethod - def predict_kick_count(agent: IAgent, kicker_uniform_number, first_ball_speed, ball_move_angle: AngleDeg): - if agent.wm.game_mode_type not in [pb2.GameModeType.PlayOn, pb2.GameModeType.PenaltyKick_]: - return 1 - - if kicker_uniform_number == agent.wm.self.uniform_number and agent.wm.self.is_kickable: - max_vel = Tools.calc_max_velocity(ball_move_angle, agent.wm.self.kick_rate, Tools.vector2d_message_to_vector2d(agent.wm.ball.velocity), agent.serverParams) - if max_vel.r() >= first_ball_speed: - return 1 - if first_ball_speed > 2.5: - return 3 - elif first_ball_speed > 1.5: - return 2 - return 1 - - @staticmethod - def calc_max_velocity(target_angle: AngleDeg, - krate, - ball_vel: Vector2D, - sp: pb2.ServerParam): - ball_speed_max2 = sp.ball_speed_max ** 2 - max_accel = min(sp.max_power * krate, - sp.ball_accel_max) - - desired_ray = Ray2D(Vector2D(0.0, 0.0), target_angle) - next_reachable_circle = Circle2D(ball_vel, max_accel) - - num = next_reachable_circle.intersection(desired_ray) - if len(num) == 0: - return Vector2D(0.0, 0.0) - - vel1 = num[0] - - if len(num) == 1: - if vel1.r2() > ball_speed_max2: - # next inertia ball point is within reachable circle. - if next_reachable_circle.contains(Vector2D(0.0, 0.0)): - # can adjust angle at least - vel1.set_length(sp.ball_speed_max) - - else: - # failed - vel1.assign(0.0, 0.0) - - return vel1 - - vel2 = num[1] - # - # num == 2 - # ball reachable circle does not contain the current ball pos. - - length1 = vel1.r2() - length2 = vel2.r2() - - if length1 < length2: - vel1, vel2 = vel2, vel1 - length1, length2 = length2, length1 - - if length1 > ball_speed_max2: - if length2 > ball_speed_max2: - # failed - vel1.assign(0.0, 0.0) - - else: - vel1.set_length(sp.ball_speed_max) - - return vel1 - - @staticmethod - def estimate_min_reach_cycle(player_pos: Vector2D, player_speed_max, target_first_point: Vector2D, target_move_angle: AngleDeg): - target_to_player: Vector2D = (player_pos - target_first_point).rotated_vector(-target_move_angle) - if target_to_player.x() < -1.0: - return -1 - else: - return max( 1, int(target_to_player.abs_y() / player_speed_max)) - - @staticmethod - def inertia_point(initial_pos: Vector2D, initial_vel: Vector2D, n_step: int, player_decay: float): - return smath.inertia_n_step_point(initial_pos, initial_vel, n_step, player_decay) - - @staticmethod - def vector2d_message_to_vector2d(v: pb2.Vector2D): - return Vector2D(v.x, v.y) - - @staticmethod - def estimate_virtual_dash_distance(player: pb2.Player, real_speed_max: float): - pos_count = min(10, player.pos_count, player.seen_pos_count) - max_speed = real_speed_max * 0.8 - - d = 0. - for i in range(pos_count): - d += max_speed * math.exp(-(i**2)/15) - - return d - - @staticmethod - def cycles_to_reach_distance(dash_dist, real_speed_max): - if dash_dist <= 0.001: - return 0 - return int(math.ceil(dash_dist / real_speed_max)) - # todo: implement this - # ddc = 0 - # for dd in self._dash_distance_table: - # if dash_dist <= dd: - # return ddc - # ddc += 1 - - # cycle = len(self._dash_distance_table) - # rest_dist = dash_dist - self._dash_distance_table[cycle - 1] - # cycle += int(math.ceil(rest_dist / self.real_speed_max())) - # return cycle - - @staticmethod - def predict_player_turn_cycle(sp: pb2.ServerParam, ptype: pb2.PlayerType, player_body: AngleDeg, player_speed, target_dist, - target_angle: AngleDeg, dist_thr, use_back_dash): - n_turn = 0 - angle_diff = (target_angle - player_body).abs() - - if use_back_dash and target_dist < 5.0 and angle_diff > 90.0 and sp.min_dash_power < -sp.max_dash_power + 1.0: - angle_diff = abs( angle_diff - 180.0 ) - - turn_margin = 180.0 - if dist_thr < target_dist: - turn_margin = max( 15.0, AngleDeg.asin_deg( dist_thr / target_dist ) ) - - speed = float(player_speed) - while angle_diff > turn_margin: - angle_diff -= Tools.effective_turn( sp.max_moment, speed, ptype.inertia_moment ) - speed *= ptype.player_decay - n_turn += 1 - - return n_turn - - @staticmethod - def effective_turn(command_moment, speed, inertia_moment): - return command_moment / (1.0 + inertia_moment * speed) - - @staticmethod - def get_nearest_teammate(agent: IAgent, position: Vector2D): - players = agent.wm.teammates - best_player = None - min_dist2 = 1000 - for player in players: - player_position = Tools.vector2d_message_to_vector2d(player.position) - d2 = player_position.dist2( position ) - if d2 < min_dist2: - min_dist2 = d2 - best_player = player - - return best_player - - @staticmethod - def predict_opponent_reach_step(agent: IAgent, opponent: pb2.Player, first_ball_pos: Vector2D, first_ball_vel: Vector2D, - ball_move_angle: AngleDeg, receive_point: Vector2D, max_cycle, description): - sp = agent.serverParams - - penalty_area = Rect2D(Vector2D(sp.their_penalty_area_line_x, -sp.penalty_area_half_width ), - Size2D(sp.penalty_area_length, sp.penalty_area_half_width * 2.0)) - CONTROL_AREA_BUF = 0.15 - - opp_pos = Vector2D(opponent.position.x, opponent.position.y) - opp_vel = Vector2D(opponent.velocity.x, opponent.velocity.y) - ptype:pb2.PlayerType = agent.get_type(opponent.type_id) - min_cycle = Tools.estimate_min_reach_cycle(opp_pos, ptype.real_speed_max, first_ball_pos, - ball_move_angle) - - if min_cycle < 0: - return 1000, None - - for cycle in range(max(1, min_cycle), max_cycle + 1): - ball_pos = smath.inertia_n_step_point(first_ball_pos, first_ball_vel, cycle, sp.ball_decay) - control_area = sp.catchable_area if opponent.is_goalie and penalty_area.contains(ball_pos) else ptype.kickable_area - - inertia_pos = Tools.inertia_point(opp_pos, opp_vel, cycle, ptype.player_decay) - target_dist = inertia_pos.dist(ball_pos) - - dash_dist = target_dist - if description == 'T' \ - and first_ball_vel.x() > 2.\ - and ( receive_point.x() > agent.wm.offside_line_x or receive_point.x() > 30.): - pass - else: - dash_dist -= Tools.estimate_virtual_dash_distance(opponent, ptype.real_speed_max) - if dash_dist - control_area - CONTROL_AREA_BUF < 0.001: - return cycle, ball_pos - - if description == 'T' \ - and first_ball_vel.x() > 2.\ - and ( receive_point.x() > agent.wm.offside_line_x or receive_point.x() > 30.): - - dash_dist -= control_area - else: - if receive_point.x() < 25.: - dash_dist -= control_area + 0.5 - else: - dash_dist -= control_area + 0.2 - - if dash_dist > ptype.real_speed_max * (cycle + min(opponent.pos_count, 5)): - continue - - n_dash = Tools.cycles_to_reach_distance(dash_dist, ptype.real_speed_max) - if n_dash > cycle + opponent.pos_count: - continue - - n_turn = 0 - if opponent.body_direction_count > 1: - n_turn = Tools.predict_player_turn_cycle(sp, ptype, AngleDeg(opponent.body_direction), opp_vel.r(), - target_dist, - (ball_pos - inertia_pos).th(), control_area, True) - - n_step = n_turn + n_dash if n_turn == 0 else n_turn + n_dash + 1 - - bonus_step = 0 - if opponent.is_tackling: - bonus_step = -5 - if n_step - bonus_step <= cycle: - return cycle, ball_pos - return 1000, None - diff --git a/src/delaunay_triangulation.py b/src/delaunay_triangulation.py deleted file mode 100644 index 3b12e50..0000000 --- a/src/delaunay_triangulation.py +++ /dev/null @@ -1,122 +0,0 @@ -from scipy.spatial import Delaunay -from pyrusgeom.geom_2d import * -from enum import Enum -# from lib.rcsc.server_param import ServerParam -from pyrusgeom.soccer_math import min_max - -class FormationType(Enum): - Static = 's' - DelaunayTriangulation2 = 'D' - - -class Formation: - def __init__(self, path): - self._balls = [] - self._players = [] - self._triangles = [] - self._formation_type = FormationType.Static - self._target_players = [] - self._path = path - self.read_file(path) - self.calculate() - - def read_file(self, path): - file = open(path, 'r') - lines = file.readlines() - if lines[0].find('Static') < 0: - self._formation_type = FormationType.DelaunayTriangulation2 - if self._formation_type == FormationType.Static: - self.read_static(lines) - else: - self.read_delaunay(lines) - - def read_static(self, lines): - for i in range(len(lines)): - if i == 0 or lines[i].startswith('#'): - continue - player = lines[i].split() - self._target_players.append(Vector2D(float(player[2]), float(player[3]))) - - def read_delaunay(self, lines): - for i in range(len(lines)): - if lines[i].find('Ball') >= 0: - self.read_sample(i, lines) - i += 11 - - def read_sample(self, i, lines): - ball = lines[i].split(' ') - ball_x = float(ball[1]) - ball_y = float(ball[2]) - self._balls.append([ball_x, ball_y]) - players = [] - for j in range(1, 12): - player = lines[i + j].split(' ') - player_x = float(player[1]) - player_y = float(player[2]) - players.append([player_x, player_y]) - self._players.append(players) - - def calculate(self): - if self._formation_type == FormationType.Static: - return - self._tri = Delaunay(self._balls).simplices - for tri in self._tri: - tmp = [Triangle2D(Vector2D(self._balls[tri[0]][0], self._balls[tri[0]][1]), - Vector2D(self._balls[tri[1]][0], self._balls[tri[1]][1]), - Vector2D(self._balls[tri[2]][0], self._balls[tri[2]][1])), tri[0], tri[1], tri[2]] - self._triangles.append(tmp) - - def update(self, B:Vector2D): - # SP = ServerParam.i() - if self._formation_type == FormationType.Static: - return - ids = [] - - point = B.copy() - if point.abs_x() > 52.5: #todo SP.pitch_half_length(): - point._x = min_max(-52.5, point.x(), 52.5) #todo - if point.abs_y() > 34.0: #SP.pitch_half_width(): - point._y = min_max(-34.0, point.y(), +34.0) #todo - - for tri in self._triangles: - if tri[0].contains(point): - ids = [tri[1], tri[2], tri[3]] - break - Pa = Vector2D(self._balls[ids[0]][0], self._balls[ids[0]][1]) - Pb = Vector2D(self._balls[ids[1]][0], self._balls[ids[1]][1]) - Pc = Vector2D(self._balls[ids[2]][0], self._balls[ids[2]][1]) - lineProj = Line2D(p1=Pb, p2=Pc).projection(B) - m1 = Pb.dist(lineProj) - n1 = Pc.dist(lineProj) - m2 = Pa.dist(B) - n2 = lineProj.dist(B) - - self._target_players.clear() - for p in range(11): - OPa = Vector2D(self._players[ids[0]][p][0], self._players[ids[0]][p][1]) - OPb = Vector2D(self._players[ids[1]][p][0], self._players[ids[1]][p][1]) - OPc = Vector2D(self._players[ids[2]][p][0], self._players[ids[2]][p][1]) - OI = (OPc - OPb) - OI *= (m1 / (m1 + n1)) - OI += OPb - OB = (OI - OPa) - OB *= (m2 / (m2 + n2)) - OB += OPa - self._target_players.append(OB) - - def get_pos(self, unum): - return self._target_players[unum - 1] - - def get_poses(self): - return self._target_players - - def __repr__(self): - return self._path - -# f = Formation('base/formations-dt/before-kick-off.conf') -# debug_print(len(f._balls)) -# debug_print(len(f._players)) -# debug_print(f._formation_type) -# f.update(Vector2D(20, 16)) -# debug_print(f._formation_type) -# debug_print(f._target_players) diff --git a/src/formation_dt/before_kick_off.conf b/src/formation_dt/before_kick_off.conf deleted file mode 100644 index a603ab2..0000000 --- a/src/formation_dt/before_kick_off.conf +++ /dev/null @@ -1,15 +0,0 @@ -Formation Static -# --------------------------------------------------------- -# move positions when playmode is BeforeKickOff or AfterGoal. -1 Goalie -49.0 0.0 -2 CenterBack -25.0 -5.0 -3 CenterBack -25.0 5.0 -4 SideBack -25.0 -10.0 -5 SideBack -25.0 10.0 -6 DefensiveHalf -25.0 0.0 -7 OffensiveHalf -15.0 -5.0 -8 OffensiveHalf -15.0 5.0 -9 SideForward -15.0 -10.0 -10 SideForward -15.0 10.0 -11 CenterForward -15.0 0.0 -# --------------------------------------------------------- diff --git a/src/formation_dt/defense_formation.conf b/src/formation_dt/defense_formation.conf deleted file mode 100644 index cacfcc2..0000000 --- a/src/formation_dt/defense_formation.conf +++ /dev/null @@ -1,1512 +0,0 @@ -Formation DelaunayTriangulation 2 -Begin Roles -1 Goalie 0 -2 CenterBack -1 -3 CenterBack 2 -4 SideBack -1 -5 SideBack 4 -6 DefensiveHalf 0 -7 OffensiveHalf -1 -8 OffensiveHalf 7 -9 SideForward -1 -10 SideForward 9 -11 CenterForward 0 -End Roles -Begin Samples 2 115 ------ 0 ----- -Ball 54.5 -36 -1 -50 0 -2 -0.72 -12 -3 -0.84 1.08 -4 4.9 -27.3 -5 10 8 -6 27.43 -16.5 -7 33.12 -27 -8 38.22 -3.5 -9 44.22 -30.85 -10 46 6.8 -11 46.28 -14 ------ 1 ----- -Ball 54.5 36 -1 -50 -0 -2 -0.84 -1.08 -3 -0.72 12 -4 10 -8 -5 4.9 27.3 -6 27.43 16.5 -7 38.22 3.5 -8 33.12 27 -9 46 -6.8 -10 44.22 30.85 -11 46.28 14 ------ 2 ----- -Ball 0 0 -1 -50 0 -2 -15.53 -5.42 -3 -15.53 5.42 -4 -11.56 -15.78 -5 -11.56 15.78 -6 -6.73 -1.87 -7 2.83 -10.81 -8 2.83 10.81 -9 9.3 -23.78 -10 9.3 23.78 -11 9.41 -3.12 ------ 3 ----- -Ball 54.5 0 -1 -50 0 -2 2.74 -6.07 -3 2.74 6.07 -4 7.21 -18.58 -5 7.21 18.58 -6 26.86 -3.2 -7 40.73 -3.77 -8 40.73 3.77 -9 48.97 -9.82 -10 48.97 9.82 -11 45.6 -1.65 ------ 4 ----- -Ball 36.57 -12.09 -1 -50 0 -2 -1.25 -9.96 -3 0.52 3.2 -4 5.09 -23.21 -5 7.36 15.67 -6 18.98 -7.3 -7 27.73 -14.57 -8 32.4 1.86 -9 39.17 -19.85 -10 42.41 10.78 -11 38.1 -8.45 ------ 5 ----- -Ball 36.57 12.09 -1 -50 -0 -2 0.52 -3.2 -3 -1.25 9.96 -4 7.36 -15.67 -5 5.09 23.21 -6 18.98 7.3 -7 32.4 -1.86 -8 27.73 14.57 -9 42.41 -10.78 -10 39.17 19.85 -11 38.1 8.45 ------ 6 ----- -Ball 48.51 -15.92 -1 -50 0 -2 0.51 -10.77 -3 3.07 3.38 -4 2.27 -23.46 -5 12.83 13.63 -6 25.2 -9.33 -7 34.83 -14.95 -8 39.34 -1.01 -9 45.03 -20.81 -10 46.88 6.76 -11 43.86 -8.86 ------ 7 ----- -Ball 48.51 15.92 -1 -50 -0 -2 3.07 -3.38 -3 0.51 10.77 -4 12.83 -13.63 -5 2.27 23.46 -6 25.2 9.33 -7 39.34 1.01 -8 34.83 14.95 -9 46.88 -6.76 -10 45.03 20.81 -11 43.86 8.86 ------ 8 ----- -Ball 42.76 0 -1 -50 0 -2 0.98 -5.97 -3 0.98 5.97 -4 6.85 -19.24 -5 6.85 19.24 -6 21.77 -2.76 -7 35.57 -5.84 -8 35.57 5.84 -9 44.37 -9.81 -10 44.37 9.81 -11 40.72 -2.36 ------ 9 ----- -Ball 48.66 -5.01 -1 -50 0 -2 1.54 -7.25 -3 2.33 5.02 -4 6.06 -20.44 -5 8.38 17.49 -6 24.7 -4.89 -7 37.7 -7.4 -8 39.2 2.37 -9 46.09 -15.6 -10 46.8 0.42 -11 43.57 -4.31 ------ 10 ----- -Ball 48.66 5.01 -1 -50 -0 -2 2.33 -5.02 -3 1.54 7.25 -4 8.38 -17.49 -5 6.06 20.44 -6 24.7 4.89 -7 39.2 -2.37 -8 37.7 7.4 -9 46.8 -0.42 -10 46.09 15.6 -11 43.57 4.31 ------ 11 ----- -Ball 50.57 -6.78 -1 -50 0 -2 1.66 -7.71 -3 2.75 4.77 -4 5.36 -20.8 -5 9.23 16.82 -6 25.62 -5.67 -7 38.2 -8.13 -8 40.06 1.43 -9 47 -17.67 -10 47.39 -0.36 -11 44.4 -4.93 ------ 12 ----- -Ball 50.57 6.78 -1 -50 -0 -2 2.75 -4.77 -3 1.66 7.71 -4 9.23 -16.82 -5 5.36 20.8 -6 25.62 5.67 -7 40.06 -1.43 -8 38.2 8.13 -9 47.39 0.36 -10 47 17.67 -11 44.4 4.93 ------ 13 ----- -Ball 52.49 -17.1 -1 -50 0 -2 0.95 -10.96 -3 3.74 3.5 -4 0.75 -23.35 -5 14.73 12.86 -6 27.02 -9.99 -7 36.71 -15.3 -8 40.72 -1.59 -9 47.62 -24.13 -10 47.64 7.59 -11 45.39 -8.87 ------ 14 ----- -Ball 52.49 17.1 -1 -50 -0 -2 3.74 -3.5 -3 0.95 10.96 -4 14.73 -12.86 -5 0.75 23.35 -6 27.02 9.99 -7 40.72 1.59 -8 36.71 15.3 -9 47.64 -7.59 -10 47.62 24.13 -11 45.39 8.87 ------ 15 ----- -Ball 52.49 -7.96 -1 -50 0 -2 1.82 -7.99 -3 3.1 4.66 -4 4.65 -20.95 -5 10.02 16.31 -6 26.49 -6.22 -7 38.78 -8.58 -8 40.75 0.8 -9 48.07 -19.82 -10 47.99 0.19 -11 45.16 -5.26 ------ 16 ----- -Ball 52.49 7.96 -1 -50 -0 -2 3.1 -4.66 -3 1.82 7.99 -4 10.02 -16.31 -5 4.65 20.95 -6 26.49 6.22 -7 40.75 -0.8 -8 38.78 8.58 -9 47.99 -0.19 -10 48.07 19.82 -11 45.16 5.26 ------ 17 ----- -Ball 49.25 -9.29 -1 -50 0 -2 1.25 -8.48 -3 2.73 4.33 -4 4.73 -21.62 -5 9.92 16.07 -6 25.18 -6.62 -7 37.01 -10.02 -8 39.69 0.74 -9 46.18 -17.93 -10 47.11 1.01 -11 43.96 -6.11 ------ 18 ----- -Ball 49.25 9.29 -1 -50 -0 -2 2.73 -4.33 -3 1.25 8.48 -4 9.92 -16.07 -5 4.73 21.62 -6 25.18 6.62 -7 39.69 -0.74 -8 37.01 10.02 -9 47.11 -1.01 -10 46.18 17.93 -11 43.96 6.11 ------ 19 ----- -Ball 46.74 0 -1 -50 0 -2 1.62 -6.08 -3 1.62 6.08 -4 7.1 -19.05 -5 7.1 19.05 -6 23.75 -0.9 -7 37.73 -4.99 -8 37.73 4.99 -9 45.7 -9.75 -10 45.7 9.75 -11 42.56 -2.13 ------ 20 ----- -Ball 42.61 -5.6 -1 -50 0 -2 0.5 -7.52 -3 1.36 4.72 -4 6.18 -20.97 -5 7.57 17.56 -6 21.91 -4.9 -7 34.21 -9.06 -8 36.27 3.21 -9 43.47 -15.1 -10 45.41 2.8 -11 40.91 -5.04 ------ 21 ----- -Ball 42.61 5.6 -1 -50 -0 -2 1.36 -4.72 -3 0.5 7.52 -4 7.57 -17.56 -5 6.18 20.97 -6 21.91 4.9 -7 36.27 -3.21 -8 34.21 9.06 -9 45.41 -2.8 -10 43.47 15.1 -11 40.91 5.04 ------ 22 ----- -Ball 45.86 -3.54 -1 -50 0 -2 1.23 -6.89 -3 1.78 5.23 -4 6.49 -20.18 -5 7.68 18.07 -6 23.37 -4.21 -7 36.61 -7.09 -8 37.8 3.47 -9 45.04 -13.82 -10 45.96 2.43 -11 42.32 -3.85 ------ 23 ----- -Ball 45.86 3.54 -1 -50 -0 -2 1.78 -5.23 -3 1.23 6.89 -4 7.68 -18.07 -5 6.49 20.18 -6 23.37 4.21 -7 37.8 -3.47 -8 36.61 7.09 -9 45.96 -2.43 -10 45.04 13.82 -11 42.32 3.85 ------ 24 ----- -Ball 46.89 -6.49 -1 -50 0 -2 1.14 -7.7 -3 2.17 4.7 -4 5.83 -20.99 -5 8.52 17.12 -6 23.98 -5.41 -7 36.48 -8.62 -8 38.57 2.07 -9 45.21 -15.64 -10 46.51 0.08 -11 42.89 -5.11 ------ 25 ----- -Ball 46.89 6.49 -1 -50 -0 -2 2.17 -4.7 -3 1.14 7.7 -4 8.52 -17.12 -5 5.83 20.99 -6 23.98 5.41 -7 38.57 -2.07 -8 36.48 8.62 -9 46.51 -0.08 -10 45.21 15.64 -11 42.89 5.11 ------ 26 ----- -Ball 38.63 0 -1 -50 0 -2 0.18 -5.93 -3 0.18 5.93 -4 6.41 -19.34 -5 6.41 19.34 -6 19.71 -2.62 -7 32.73 -6.84 -8 32.73 6.84 -9 42.2 -11.81 -10 42.2 11.81 -11 38.61 -2.57 ------ 27 ----- -Ball 39.22 -5.75 -1 -50 0 -2 -0.15 -7.62 -3 0.71 4.57 -4 6.1 -21.14 -5 6.93 17.6 -6 20.2 -4.84 -7 31.8 -9.98 -8 34.05 3.87 -9 41.58 -16.28 -10 44.01 6.35 -11 39.22 -5.35 ------ 28 ----- -Ball 39.22 5.75 -1 -50 -0 -2 0.71 -4.57 -3 -0.15 7.62 -4 6.93 -17.6 -5 6.1 21.14 -6 20.2 4.84 -7 34.05 -3.87 -8 31.8 9.98 -9 44.01 -6.35 -10 41.58 16.28 -11 39.22 5.35 ------ 29 ----- -Ball 30.37 -15.92 -1 -50 0 -2 -3.06 -11.84 -3 -0.92 2.05 -4 3.83 -24.4 -5 6 14.49 -6 15.44 -8.7 -7 21.07 -17.96 -8 27.44 1.55 -9 34.11 -24.3 -10 34.71 14.57 -11 34.7 -10.66 ------ 30 ----- -Ball 30.37 15.92 -1 -50 -0 -2 -0.92 -2.05 -3 -3.06 11.84 -4 6 -14.49 -5 3.83 24.4 -6 15.44 8.7 -7 27.44 -1.55 -8 21.07 17.96 -9 34.71 -14.57 -10 34.11 24.3 -11 34.7 10.66 ------ 31 ----- -Ball 0 -36 -1 -50 0 -2 -17.18 -19.96 -3 -16.68 -6.05 -4 -13.42 -30.3 -5 -7.16 6.63 -6 -8.38 -16.63 -7 -7.37 -25.18 -8 -4.81 -1.58 -9 13.45 -32.14 -10 10.92 18.27 -11 14.62 -20.6 ------ 32 ----- -Ball 0 36 -1 -50 -0 -2 -16.68 6.05 -3 -17.18 19.96 -4 -7.16 -6.63 -5 -13.42 30.3 -6 -8.38 16.63 -7 -4.81 1.58 -8 -7.37 25.18 -9 10.92 -18.27 -10 13.45 32.14 -11 14.62 20.6 ------ 33 ----- -Ball 44.53 -22.41 -1 -50 0 -2 -0.79 -13.56 -3 2.77 2.31 -4 0.88 -25.3 -5 14.3 11.33 -6 23.64 -11.92 -7 30.42 -20.33 -8 36.76 -1.94 -9 41.44 -22.71 -10 45.59 7.46 -11 42.36 -11.75 ------ 34 ----- -Ball 44.53 22.41 -1 -50 -0 -2 2.77 -2.31 -3 -0.79 13.56 -4 14.3 -11.33 -5 0.88 25.3 -6 23.64 11.92 -7 36.76 1.94 -8 30.42 20.33 -9 45.59 -7.46 -10 41.44 22.71 -11 42.36 11.75 ------ 35 ----- -Ball 44.09 -29.78 -1 -50 0 -2 -1.7 -16.43 -3 3.08 1.45 -4 2.15 -27.12 -5 15.32 8.96 -6 23.78 -15.03 -7 28.49 -25.4 -8 35.1 -2.94 -9 39.72 -25.13 -10 44.65 7.22 -11 42.31 -14.34 ------ 36 ----- -Ball 44.09 29.78 -1 -50 -0 -2 3.08 -1.45 -3 -1.7 16.43 -4 15.32 -8.96 -5 2.15 27.12 -6 23.78 15.03 -7 35.1 2.94 -8 28.49 25.4 -9 44.65 -7.22 -10 39.72 25.13 -11 42.31 14.34 ------ 37 ----- -Ball 29.19 -34.36 -1 -50 0 -2 -5.36 -18.8 -3 -0.74 -0.94 -4 2.3 -27.83 -5 9.4 8.12 -6 15.16 -16.5 -7 19.03 -27.25 -8 26.04 -3.11 -9 36.79 -29.36 -10 29.88 13.71 -11 34.81 -17.65 ------ 38 ----- -Ball 29.19 34.36 -1 -50 -0 -2 -0.74 0.94 -3 -5.36 18.8 -4 9.4 -8.12 -5 2.3 27.83 -6 15.16 16.5 -7 26.04 3.11 -8 19.03 27.25 -9 29.88 -13.71 -10 36.79 29.36 -11 34.81 17.65 ------ 39 ----- -Ball 33.03 -31.26 -1 -50 0 -2 -4.18 -17.73 -3 0.28 -0.08 -4 2.01 -27.43 -5 11.01 8.83 -6 17.29 -15.35 -7 20.92 -26.07 -8 28.24 -2.72 -9 38.57 -27.83 -10 34.68 12.1 -11 36.65 -16.3 ------ 40 ----- -Ball 33.03 31.26 -1 -50 -0 -2 0.28 0.08 -3 -4.18 17.73 -4 11.01 -8.83 -5 2.01 27.43 -6 17.29 15.35 -7 28.24 2.72 -8 20.92 26.07 -9 34.68 -12.1 -10 38.57 27.83 -11 36.65 16.3 ------ 41 ----- -Ball 23 -5.16 -1 -50 0 -2 -4.35 -7.68 -3 -3.76 4.1 -4 2.99 -20.69 -5 2.22 17.45 -6 10.52 -4.14 -7 15.33 -13.53 -8 18.29 8.05 -9 23.07 -25.95 -10 24.74 20.06 -11 29.04 -6 ------ 42 ----- -Ball 23 5.16 -1 -50 -0 -2 -3.76 -4.1 -3 -4.35 7.68 -4 2.22 -17.45 -5 2.99 20.69 -6 10.52 4.14 -7 18.29 -8.05 -8 15.33 13.53 -9 24.74 -20.06 -10 23.07 25.95 -11 29.04 6 ------ 43 ----- -Ball 28.16 0 -1 -50 0 -2 -2.39 -5.82 -3 -2.39 5.82 -4 4.32 -19.24 -5 4.32 19.24 -6 13.8 -2.33 -7 22.61 -9.6 -8 22.61 9.6 -9 29.71 -21.47 -10 29.71 21.47 -11 32.25 -1 ------ 44 ----- -Ball 34.65 -5.75 -1 -50 0 -2 -1.13 -7.7 -3 -0.31 4.4 -4 5.74 -21.22 -5 5.89 17.64 -6 17.72 -4.69 -7 27.93 -11.15 -8 30.34 4.95 -9 37.52 -18.78 -10 40.2 11.53 -11 36.7 -5.66 ------ 45 ----- -Ball 34.65 5.75 -1 -50 -0 -2 -0.31 -4.4 -3 -1.13 7.7 -4 5.89 -17.64 -5 5.74 21.22 -6 17.72 4.69 -7 30.34 -4.95 -8 27.93 11.15 -9 40.2 -11.53 -10 37.52 18.78 -11 36.7 5.66 ------ 46 ----- -Ball 19.91 -28.6 -1 -50 0 -2 -7.44 -17.45 -3 -4.43 -1.6 -4 -1.88 -26.53 -5 4.35 9.94 -6 8.44 -13.83 -7 11.6 -24.14 -8 21.83 -1.79 -9 28.02 -30.94 -10 24.91 17.54 -11 28.57 -16.62 ------ 47 ----- -Ball 19.91 28.6 -1 -50 -0 -2 -4.43 1.6 -3 -7.44 17.45 -4 4.35 -9.94 -5 -1.88 26.53 -6 8.44 13.83 -7 21.83 1.79 -8 11.6 24.14 -9 24.91 -17.54 -10 28.02 30.94 -11 28.57 16.62 ------ 48 ----- -Ball 14.3 -11.06 -1 -50 0 -2 -8.06 -10.45 -3 -7.15 1.87 -4 -1.04 -21.99 -5 -2.42 15.19 -6 4.24 -6.29 -7 5.05 -17.13 -8 13.68 6.13 -9 17.23 -26.9 -10 18.09 19.6 -11 22.95 -9.41 ------ 49 ----- -Ball 14.3 11.06 -1 -50 -0 -2 -7.15 -1.87 -3 -8.06 10.45 -4 -2.42 -15.19 -5 -1.04 21.99 -6 4.24 6.29 -7 13.68 -6.13 -8 5.05 17.13 -9 18.09 -19.6 -10 17.23 26.9 -11 22.95 9.41 ------ 50 ----- -Ball 11.35 -25.07 -1 -50 0 -2 -10.43 -16.57 -3 -8.68 -1.89 -4 -5.48 -25.58 -5 -2.46 11.03 -6 1.71 -12.12 -7 3.25 -22.2 -8 16.29 -0.28 -9 18.9 -29.64 -10 17.57 18.46 -11 22.04 -15.92 ------ 51 ----- -Ball 11.35 25.07 -1 -50 -0 -2 -8.68 1.89 -3 -10.43 16.57 -4 -2.46 -11.03 -5 -5.48 25.58 -6 1.71 12.12 -7 16.29 0.28 -8 3.25 22.2 -9 17.57 -18.46 -10 18.9 29.64 -11 22.04 15.92 ------ 52 ----- -Ball 9.58 0 -1 -50 0 -2 -9.77 -5.58 -3 -9.77 5.58 -4 -4.36 -17.44 -5 -4.36 17.44 -6 0.91 -0.62 -7 5.26 -12.1 -8 5.26 12.1 -9 14.64 -25.04 -10 14.64 25.04 -11 17.81 -1.03 ------ 53 ----- -Ball 18.58 0 -1 -50 0 -2 -5.66 -5.71 -3 -5.66 5.71 -4 0.77 -18.6 -5 0.77 18.6 -6 7.52 -2.11 -7 11.95 -11.59 -8 11.95 11.59 -9 20.57 -25.76 -10 20.57 25.76 -11 25.23 -0.34 ------ 54 ----- -Ball 3.83 -20.2 -1 -50 0 -2 -13.84 -14.96 -3 -13.2 -1.74 -4 -9.32 -24.18 -5 -9.54 11.72 -6 -4.47 -9.91 -7 -3.05 -19.66 -8 10.11 2 -9 11.32 -27.46 -10 11.22 18.5 -11 15.55 -14.21 ------ 55 ----- -Ball 3.83 20.2 -1 -50 -0 -2 -13.2 1.74 -3 -13.84 14.96 -4 -9.54 -11.72 -5 -9.32 24.18 -6 -4.47 9.91 -7 10.11 -2 -8 -3.05 19.66 -9 11.22 -18.5 -10 11.32 27.46 -11 15.55 14.21 ------ 56 ----- -Ball 6.19 -10.32 -1 -50 0 -2 -11.99 -10.37 -3 -11.54 1.49 -4 -6.34 -20.75 -5 -7.77 14.2 -6 -2.15 -5.86 -7 -0.16 -16.34 -8 9.32 6.62 -9 11.66 -29.11 -10 12.63 18.96 -11 16.23 -9.25 ------ 57 ----- -Ball 6.19 10.32 -1 -50 -0 -2 -11.54 -1.49 -3 -11.99 10.37 -4 -7.77 -14.2 -5 -6.34 20.75 -6 -2.15 5.86 -7 9.32 -6.62 -8 -0.16 16.34 -9 12.63 -18.96 -10 11.66 29.11 -11 16.23 9.25 ------ 58 ----- -Ball 10.47 -29.78 -1 -50 0 -2 -11.25 -18.18 -3 -9.28 -3 -4 -6.48 -26.52 -5 -1.47 9.34 -6 0.92 -14.14 -7 3.65 -23.76 -8 14.34 -1.54 -9 19.43 -31.04 -10 18.15 18.08 -11 21.84 -17.79 ------ 59 ----- -Ball 10.47 29.78 -1 -50 -0 -2 -9.28 3 -3 -11.25 18.18 -4 -1.47 -9.34 -5 -6.48 26.52 -6 0.92 14.14 -7 14.34 1.54 -8 3.65 23.76 -9 18.15 -18.08 -10 19.43 31.04 -11 21.84 17.79 ------ 60 ----- -Ball 13.27 -33.18 -1 -50 0 -2 -10.4 -19.06 -3 -7.76 -3.2 -4 -4.63 -27.14 -5 1.37 8.33 -6 3.2 -15.64 -7 7.31 -25.26 -8 15.53 -2.38 -9 22.52 -31.88 -10 21.76 17.76 -11 24.21 -18.79 ------ 61 ----- -Ball 13.27 33.18 -1 -50 -0 -2 -7.76 3.2 -3 -10.4 19.06 -4 1.37 -8.33 -5 -4.63 27.14 -6 3.2 15.64 -7 15.53 2.38 -8 7.31 25.26 -9 21.76 -17.76 -10 22.52 31.88 -11 24.21 18.79 ------ 62 ----- -Ball -16.96 -30.52 -1 -50 0 -2 -23.33 -18.45 -3 -23.18 -4.34 -4 -23.94 -27.93 -5 -22.14 9.35 -6 -19.24 -13.98 -7 -16.33 -22.81 -8 -14.1 -0.07 -9 0.44 -30.41 -10 -4.28 17.04 -11 0.06 -9.81 ------ 63 ----- -Ball -16.96 30.52 -1 -50 -0 -2 -23.18 4.34 -3 -23.33 18.45 -4 -22.14 -9.35 -5 -23.94 27.93 -6 -19.24 13.98 -7 -14.1 0.07 -8 -16.33 22.81 -9 -4.28 -17.04 -10 0.44 30.41 -11 0.06 9.81 ------ 64 ----- -Ball -4.28 -16.81 -1 -50 0 -2 -12.71 -15.79 -3 -14.88 -3.68 -4 -13.76 -23.07 -5 -12.63 11.13 -6 -8.8 -11.13 -7 -3.79 -19.5 -8 -3.98 5.9 -9 6.03 -29.81 -10 2.6 22.3 -11 5.59 -8.48 ------ 65 ----- -Ball -4.28 16.81 -1 -50 -0 -2 -14.88 3.68 -3 -12.71 15.79 -4 -12.63 -11.13 -5 -13.76 23.07 -6 -8.8 11.13 -7 -3.98 -5.9 -8 -3.79 19.5 -9 2.6 -22.3 -10 6.03 29.81 -11 5.59 8.48 ------ 66 ----- -Ball -7.08 -27.57 -1 -50 0 -2 -15.15 -19.34 -3 -16.57 -4.96 -4 -15.35 -27.21 -5 -13.48 10.45 -6 -10.91 -14.26 -7 -6.54 -22.94 -8 -6.22 1.56 -9 6.84 -30.97 -10 1.32 18.51 -11 6.91 -10.52 ------ 67 ----- -Ball -7.08 27.57 -1 -50 -0 -2 -16.57 4.96 -3 -15.15 19.34 -4 -13.48 -10.45 -5 -15.35 27.21 -6 -10.91 14.26 -7 -6.22 -1.56 -8 -6.54 22.94 -9 1.32 -18.51 -10 6.84 30.97 -11 6.91 10.52 ------ 68 ----- -Ball -7.96 -31.41 -1 -50 0 -2 -15.89 -20.09 -3 -17.14 -5.03 -4 -15.83 -28.57 -5 -13.66 11 -6 -11.44 -14.98 -7 -7.45 -24.07 -8 -6.86 0.18 -9 7.39 -31.3 -10 1.09 17.04 -11 8.36 -10.67 ------ 69 ----- -Ball -7.96 31.41 -1 -50 -0 -2 -17.14 5.03 -3 -15.89 20.09 -4 -13.66 -11 -5 -15.83 28.57 -6 -11.44 14.98 -7 -6.86 -0.18 -8 -7.45 24.07 -9 1.09 -17.04 -10 7.39 31.3 -11 8.36 10.67 ------ 70 ----- -Ball -23.89 -34.21 -1 -50 0 -2 -31.05 -17.31 -3 -29.37 -4.33 -4 -29.93 -27.83 -5 -28.55 8.6 -6 -24.69 -13.7 -7 -22.94 -23.29 -8 -19.22 -1.39 -9 -3.39 -30.07 -10 -7.83 15.33 -11 -3.41 -8.93 ------ 71 ----- -Ball -23.89 34.21 -1 -50 -0 -2 -29.37 4.33 -3 -31.05 17.31 -4 -28.55 -8.6 -5 -29.93 27.83 -6 -24.69 13.7 -7 -19.22 1.39 -8 -22.94 23.29 -9 -7.83 -15.33 -10 -3.39 30.07 -11 -3.41 8.93 ------ 72 ----- -Ball -54.5 0 -1 -50 0 -2 -47.53 -3.17 -3 -47.53 3.17 -4 -49.99 -6.88 -5 -49.99 6.88 -6 -44.06 1.02 -7 -41.64 -8.61 -8 -41.64 8.61 -9 -23.83 -22.2 -10 -23.83 22.2 -11 -30.03 4.57 ------ 73 ----- -Ball -19.61 -5.46 -1 -50 0 -2 -26.74 -7.22 -3 -27.37 1.07 -4 -27.57 -15.59 -5 -27.52 9.88 -6 -23.16 -4.67 -7 -18.04 -13.11 -8 -17.58 8.75 -9 -6.06 -26.78 -10 -6.72 24.53 -11 -8.99 -3.01 ------ 74 ----- -Ball -19.61 5.46 -1 -50 -0 -2 -27.37 -1.07 -3 -26.74 7.22 -4 -27.52 -9.88 -5 -27.57 15.59 -6 -23.16 4.67 -7 -17.58 -8.75 -8 -18.04 13.11 -9 -6.72 -24.53 -10 -6.06 26.78 -11 -8.99 3.01 ------ 75 ----- -Ball -7.96 -7.37 -1 -50 0 -2 -15.64 -9.85 -3 -17.18 0.07 -4 -16.91 -19.09 -5 -16.52 12.59 -6 -12.21 -6.37 -7 -7.34 -15.32 -8 -7.25 9.27 -9 1.69 -28.01 -10 0.38 24.81 -11 0.76 -4.5 ------ 76 ----- -Ball -7.96 7.37 -1 -50 -0 -2 -17.18 -0.07 -3 -15.64 9.85 -4 -16.52 -12.59 -5 -16.91 19.09 -6 -12.21 6.37 -7 -7.25 -9.27 -8 -7.34 15.32 -9 0.38 -24.81 -10 1.69 28.01 -11 0.76 4.5 ------ 77 ----- -Ball -5.31 0 -1 -50 0 -2 -14.82 -4.5 -3 -14.82 4.5 -4 -14.59 -16.26 -5 -14.59 16.26 -6 -9.26 -1.26 -7 -4.86 -12.66 -8 -4.86 12.66 -9 2.61 -26.72 -10 2.61 26.72 -11 2.2 -0.09 ------ 78 ----- -Ball -2.06 -11.35 -1 -50 0 -2 -11.37 -12.91 -3 -13.56 -2.16 -4 -12.2 -21.01 -5 -11.39 13.02 -6 -6.73 -8.68 -7 -1.72 -17.72 -8 -2.03 8.39 -9 6.48 -29.12 -10 4.06 24.04 -11 6.06 -6.47 ------ 79 ----- -Ball -2.06 11.35 -1 -50 -0 -2 -13.56 2.16 -3 -11.37 12.91 -4 -11.39 -13.02 -5 -12.2 21.01 -6 -6.73 8.68 -7 -2.03 -8.39 -8 -1.72 17.72 -9 4.06 -24.04 -10 6.48 29.12 -11 6.06 6.47 ------ 80 ----- -Ball -3.39 -5.9 -1 -50 0 -2 -12.7 -8.99 -3 -14.14 0.58 -4 -13.2 -18.92 -5 -12.79 14.39 -6 -7.76 -5.48 -7 -3.04 -15.36 -8 -3.16 10.48 -9 4.62 -28.05 -10 3.43 25.44 -11 4.7 -3.75 ------ 81 ----- -Ball -3.39 5.9 -1 -50 -0 -2 -14.14 -0.58 -3 -12.7 8.99 -4 -12.79 -14.39 -5 -13.2 18.92 -6 -7.76 5.48 -7 -3.16 -10.48 -8 -3.04 15.36 -9 3.43 -25.44 -10 4.62 28.05 -11 4.7 3.75 ------ 82 ----- -Ball -9.44 -24.77 -1 -50 0 -2 -16.56 -18.28 -3 -17.92 -4.5 -4 -17.58 -26.25 -5 -15.92 9.67 -6 -13.12 -13.42 -7 -8.86 -21.71 -8 -8.23 2.36 -9 4.27 -30.45 -10 -0.29 19.43 -11 3.59 -10.02 ------ 83 ----- -Ball -9.44 24.77 -1 -50 -0 -2 -17.92 4.5 -3 -16.56 18.28 -4 -15.92 -9.67 -5 -17.58 26.25 -6 -13.12 13.42 -7 -8.23 -2.36 -8 -8.86 21.71 -9 -0.29 -19.43 -10 4.27 30.45 -11 3.59 10.02 ------ 84 ----- -Ball -12.39 -12.39 -1 -50 0 -2 -18.61 -12.64 -3 -20.37 -1.72 -4 -20.71 -20.92 -5 -20.15 9.72 -6 -16.37 -8.83 -7 -11.58 -16.74 -8 -11.06 6.74 -9 -0.53 -28.52 -10 -2.47 23.22 -11 -2.1 -6.61 ------ 85 ----- -Ball -12.39 12.39 -1 -50 -0 -2 -20.37 1.72 -3 -18.61 12.64 -4 -20.15 -9.72 -5 -20.71 20.92 -6 -16.37 8.83 -7 -11.06 -6.74 -8 -11.58 16.74 -9 -2.47 -23.22 -10 -0.53 28.52 -11 -2.1 6.61 ------ 86 ----- -Ball -16.37 -15.78 -1 -50 0 -2 -22.13 -13.78 -3 -23.54 -2.52 -4 -24.22 -21.95 -5 -23.62 8.03 -6 -19.87 -9.96 -7 -15.41 -17.57 -8 -14.35 5.07 -9 -2.6 -28.7 -10 -4.82 22.01 -11 -4.48 -7.55 ------ 87 ----- -Ball -16.37 15.78 -1 -50 -0 -2 -23.54 2.52 -3 -22.13 13.78 -4 -23.62 -8.03 -5 -24.22 21.95 -6 -19.87 9.96 -7 -14.35 -5.07 -8 -15.41 17.57 -9 -4.82 -22.01 -10 -2.6 28.7 -11 -4.48 7.55 ------ 88 ----- -Ball -19.91 -18.28 -1 -50 0 -2 -25.82 -14.13 -3 -26.7 -3.02 -4 -27.37 -22.39 -5 -26.83 6.95 -6 -22.83 -10.5 -7 -18.77 -18.12 -8 -17.16 3.88 -9 -4.47 -28.73 -10 -6.79 21.05 -11 -6.47 -7.96 ------ 89 ----- -Ball -19.91 18.28 -1 -50 -0 -2 -26.7 3.02 -3 -25.82 14.13 -4 -26.83 -6.95 -5 -27.37 22.39 -6 -22.83 10.5 -7 -17.16 -3.88 -8 -18.77 18.12 -9 -6.79 -21.05 -10 -4.47 28.73 -11 -6.47 7.96 ------ 90 ----- -Ball -32.73 -29.19 -1 -50 0 -2 -39.69 -13.44 -3 -38.23 -4.58 -4 -37.42 -22.97 -5 -37.47 4.45 -6 -32.04 -11.42 -7 -30.22 -20.74 -8 -26.1 -0.09 -9 -10.38 -28.63 -10 -13.04 16.63 -11 -12 -7.92 ------ 91 ----- -Ball -32.73 29.19 -1 -50 -0 -2 -38.23 4.58 -3 -39.69 13.44 -4 -37.47 -4.45 -5 -37.42 22.97 -6 -32.04 11.42 -7 -26.1 0.09 -8 -30.22 20.74 -9 -13.04 -16.63 -10 -10.38 28.63 -11 -12 7.92 ------ 92 ----- -Ball -24.03 -17.55 -1 -50 0 -2 -30.55 -12.75 -3 -31.07 -2.95 -4 -31.18 -20.78 -5 -30.99 5.87 -6 -26.38 -9.76 -7 -22.45 -17.38 -8 -20.54 3.87 -9 -7.22 -28.24 -10 -9.15 21.01 -11 -9.46 -7.39 ------ 93 ----- -Ball -24.03 17.55 -1 -50 -0 -2 -31.07 2.95 -3 -30.55 12.75 -4 -30.99 -5.87 -5 -31.18 20.78 -6 -26.38 9.76 -7 -20.54 -3.87 -8 -22.45 17.38 -9 -9.15 -21.01 -10 -7.22 28.24 -11 -9.46 7.39 ------ 94 ----- -Ball -31.26 0 -1 -50 0 -2 -39.65 -2.16 -3 -39.65 2.16 -4 -38.28 -8.03 -5 -38.28 8.03 -6 -32.56 -0.43 -7 -27.38 -9.85 -8 -27.38 9.85 -9 -13.07 -24.74 -10 -13.07 24.74 -11 -18.33 1.17 ------ 95 ----- -Ball -29.34 -15.33 -1 -50 0 -2 -36.56 -10.26 -3 -36.79 -2.72 -4 -35.95 -17.42 -5 -36.13 4.57 -6 -30.72 -8.28 -7 -26.82 -15.97 -8 -24.81 4.35 -9 -10.73 -27.4 -10 -12.11 21.27 -11 -13.3 -6.21 ------ 96 ----- -Ball -29.34 15.33 -1 -50 -0 -2 -36.79 2.72 -3 -36.56 10.26 -4 -36.13 -4.57 -5 -35.95 17.42 -6 -30.72 8.28 -7 -24.81 -4.35 -8 -26.82 15.97 -9 -12.11 -21.27 -10 -10.73 27.4 -11 -13.3 6.21 ------ 97 ----- -Ball -37.01 -33.03 -1 -50 0 -2 -42.77 -12.81 -3 -40.82 -4.62 -4 -40.07 -23.04 -5 -40.14 3.64 -6 -34.61 -11.31 -7 -33.61 -21.66 -8 -28.64 -1.11 -9 -12.13 -28.47 -10 -14.85 14.96 -11 -13.43 -7.26 ------ 98 ----- -Ball -37.01 33.03 -1 -50 -0 -2 -40.82 4.62 -3 -42.77 12.81 -4 -40.14 -3.64 -5 -40.07 23.04 -6 -34.61 11.31 -7 -28.64 1.11 -8 -33.61 21.66 -9 -14.85 -14.96 -10 -12.13 28.47 -11 -13.43 7.26 ------ 99 ----- -Ball -54.5 -36 -1 -50 0 -2 -46.24 -10.29 -3 -44.48 -1.69 -4 -48.45 -21.85 -5 -48.06 2.31 -6 -43.6 -8.28 -7 -43.89 -21.18 -8 -38.36 -1.28 -9 -20.87 -26.29 -10 -22.49 12.44 -11 -22.8 -4.37 ------ 100 ----- -Ball -54.5 36 -1 -50 -0 -2 -44.48 1.69 -3 -46.24 10.29 -4 -48.06 -2.31 -5 -48.45 21.85 -6 -43.6 8.28 -7 -38.36 1.28 -8 -43.89 21.18 -9 -22.49 -12.44 -10 -20.87 26.29 -11 -22.8 4.37 ------ 101 ----- -Ball -48.66 -22.71 -1 -50 0 -2 -46.06 -8.98 -3 -45.54 -2.25 -4 -47.21 -15.63 -5 -47.31 2.84 -6 -41.76 -7.28 -7 -40.32 -17.03 -8 -36.69 1.74 -9 -19.94 -26.01 -10 -21.01 17.44 -11 -22.29 -5.05 ------ 102 ----- -Ball -48.66 22.71 -1 -50 -0 -2 -45.54 2.25 -3 -46.06 8.98 -4 -47.31 -2.84 -5 -47.21 15.63 -6 -41.76 7.28 -7 -36.69 -1.74 -8 -40.32 17.03 -9 -21.01 -17.44 -10 -19.94 26.01 -11 -22.29 5.05 ------ 103 ----- -Ball -39.52 -28.16 -1 -50 0 -2 -43.82 -11.32 -3 -42.6 -4.34 -4 -42.05 -20.13 -5 -42.42 2.74 -6 -36.63 -10.01 -7 -35.11 -19.75 -8 -30.74 0.19 -9 -14.51 -27.72 -10 -16.49 16.49 -11 -16.44 -6.95 ------ 104 ----- -Ball -39.52 28.16 -1 -50 -0 -2 -42.6 4.34 -3 -43.82 11.32 -4 -42.42 -2.74 -5 -42.05 20.13 -6 -36.63 10.01 -7 -30.74 -0.19 -8 -35.11 19.75 -9 -16.49 -16.49 -10 -14.51 27.72 -11 -16.44 6.95 ------ 105 ----- -Ball -39.22 -22.12 -1 -50 0 -2 -43.64 -10.02 -3 -43.11 -3.81 -4 -42.46 -17.18 -5 -42.88 2.69 -6 -36.9 -8.77 -7 -34.57 -17.6 -8 -31.14 1.89 -9 -15.29 -27.15 -10 -16.77 18.47 -11 -17.55 -6.43 ------ 106 ----- -Ball -39.22 22.12 -1 -50 -0 -2 -43.11 3.81 -3 -43.64 10.02 -4 -42.88 -2.69 -5 -42.46 17.18 -6 -36.9 8.77 -7 -31.14 -1.89 -8 -34.57 17.6 -9 -16.77 -18.47 -10 -15.29 27.15 -11 -17.55 6.43 ------ 107 ----- -Ball -41.58 -7.22 -1 -50 0 -2 -45.59 -4.05 -3 -45.51 -0.6 -4 -44.96 -8.55 -5 -45.08 3.99 -6 -38.84 -3.44 -7 -35.13 -11.83 -8 -33.99 6.61 -9 -17.94 -24.94 -10 -18.33 22.22 -11 -21.98 -1.47 ------ 108 ----- -Ball -41.58 7.22 -1 -50 -0 -2 -45.51 0.6 -3 -45.59 4.05 -4 -45.08 -3.99 -5 -44.96 8.55 -6 -38.84 3.44 -7 -33.99 -6.61 -8 -35.13 11.83 -9 -18.33 -22.22 -10 -17.94 24.94 -11 -21.98 1.47 ------ 109 ----- -Ball -34.06 -7.37 -1 -50 0 -2 -41.55 -5.15 -3 -41.6 -0.8 -4 -40.2 -10.73 -5 -40.73 4.73 -6 -34.41 -4.35 -7 -29.99 -12.46 -8 -28.91 6.92 -9 -14.14 -25.77 -10 -14.67 22.91 -11 -17.91 -2.58 ------ 110 ----- -Ball -34.06 7.37 -1 -50 -0 -2 -41.6 0.8 -3 -41.55 5.15 -4 -40.73 -4.73 -5 -40.2 10.73 -6 -34.41 4.35 -7 -28.91 -6.92 -8 -29.99 12.46 -9 -14.67 -22.91 -10 -14.14 25.77 -11 -17.91 2.58 ------ 111 ----- -Ball -48.22 -9.88 -1 -50 0 -2 -46.9 -4.98 -3 -46.74 -0.12 -4 -47.87 -9.24 -5 -47.87 4.14 -6 -41.91 -3.75 -7 -39.23 -12.38 -8 -37.64 5.54 -9 -20.84 -24.54 -10 -21.27 20.92 -11 -24.49 -1.57 ------ 112 ----- -Ball -48.22 9.88 -1 -50 -0 -2 -46.74 0.12 -3 -46.9 4.98 -4 -47.87 -4.14 -5 -47.87 9.24 -6 -41.91 3.75 -7 -37.64 -5.54 -8 -39.23 12.38 -9 -21.27 -20.92 -10 -20.84 24.54 -11 -24.49 1.57 ------ 113 ----- -Ball 15.33 -21.38 -1 -50 0 -2 -8.43 -14.97 -3 -6.57 -0.58 -4 -2.37 -25.05 -5 -0.76 12.47 -6 4.93 -10.62 -7 4.93 -21.15 -8 18.46 0.94 -9 21.33 -29.66 -10 20.06 18.78 -11 24.72 -14.15 ------ 114 ----- -Ball 15.33 21.38 -1 -50 -0 -2 -6.57 0.58 -3 -8.43 14.97 -4 -0.76 -12.47 -5 -2.37 25.05 -6 4.93 10.62 -7 18.46 -0.94 -8 4.93 21.15 -9 20.06 -18.78 -10 21.33 29.66 -11 24.72 14.15 -End Samples -End diff --git a/src/formation_dt/goalie_kick_opp_formation.conf b/src/formation_dt/goalie_kick_opp_formation.conf deleted file mode 100644 index 59602f6..0000000 --- a/src/formation_dt/goalie_kick_opp_formation.conf +++ /dev/null @@ -1,15 +0,0 @@ -Formation Static -# --------------------------------------------------------- -# for opponent goal kick - 1 Goalie -49.0 0.0 - 2 CenterBack 0.0 -5.0 - 3 CenterBack 0.0 5.0 - 4 SideBack 0.0 -12.0 - 5 SideBack 0.0 12.0 - 6 DefensiveHalf 10.0 0.0 - 7 OffensiveHalf 15.0 -12.0 - 8 OffensiveHalf 15.0 12.0 - 9 SideForward 31.0 -17.5 -10 SideForward 31.0 17.5 -11 CenterForward 31.0 0.0 -# --------------------------------------------------------- diff --git a/src/formation_dt/goalie_kick_our_formation.conf b/src/formation_dt/goalie_kick_our_formation.conf deleted file mode 100644 index 5bfc5db..0000000 --- a/src/formation_dt/goalie_kick_our_formation.conf +++ /dev/null @@ -1,15 +0,0 @@ -Formation Static -# --------------------------------------------------------- -# for our goalie catch - 1 Goalie -49.0 0.0 - 2 CenterBack -33.5 -4.0 - 3 CenterBack -33.5 4.0 - 4 SideBack -33.0 -24.0 - 5 SideBack -33.0 24.0 - 6 DefensiveHalf -20.0 0.0 - 7 OffensiveHalf -20.5 -13.0 - 8 OffensiveHalf -20.5 13.0 - 9 SideForward -10.0 -27.0 -10 SideForward -10.0 27.0 -11 CenterForward -10.0 0.0 -# --------------------------------------------------------- diff --git a/src/formation_dt/kickin_our_formation.conf b/src/formation_dt/kickin_our_formation.conf deleted file mode 100644 index 78a12b0..0000000 --- a/src/formation_dt/kickin_our_formation.conf +++ /dev/null @@ -1,290 +0,0 @@ -Formation DelaunayTriangulation 2 -Begin Roles -1 Goalie 0 -2 CenterBack -1 -3 CenterBack 2 -4 SideBack -1 -5 SideBack 4 -6 DefensiveHalf 0 -7 OffensiveHalf -1 -8 OffensiveHalf 7 -9 SideForward -1 -10 SideForward 9 -11 CenterForward 0 -End Roles -Begin Samples 2 21 ------ 0 ----- -Ball 54 0 -1 -50 0 -2 0 -9 -3 0 9 -4 7 -19 -5 7 19 -6 21 0 -7 35 -6 -8 35 6 -9 46 -9.5 -10 46 9.5 -11 46 0 ------ 1 ----- -Ball -54 0 -1 -50 -0 -2 -47 -2.5 -3 -47 2.5 -4 -47 -7 -5 -47 7 -6 -43 0 -7 -35 -13 -8 -35 13 -9 -22 -28 -10 -22 28 -11 -18.49 0 ------ 2 ----- -Ball 0 0 -1 -50 0 -2 -15.06 -4.84 -3 -15.18 3.68 -4 -12.58 -14.88 -5 -13.39 14.07 -6 -5.61 0 -7 0.11 -11.99 -8 0.11 11.99 -9 10.37 -23.99 -10 10.84 23.99 -11 10.84 0 ------ 3 ----- -Ball -54 -35 -1 -50 0 -2 -47.35 -11.81 -3 -46.51 -4.65 -4 -47.81 -26.33 -5 -45.56 4.77 -6 -41.23 -11.92 -7 -37.38 -21.36 -8 -27.94 1.74 -9 -22.23 -31.17 -10 -17.01 19.99 -11 -17.51 -11.55 ------ 4 ----- -Ball -54 35 -1 -50 -0 -2 -46.51 4.65 -3 -47.35 11.81 -4 -45.56 -4.77 -5 -47.81 26.33 -6 -41.23 11.92 -7 -27.94 -1.74 -8 -37.38 21.36 -9 -17.01 -19.99 -10 -22.23 31.17 -11 -17.51 11.55 ------ 5 ----- -Ball -36.02 -35 -1 -50 -0.01 -2 -39.12 -16.02 -3 -38.87 -6.58 -4 -36.39 -27.94 -5 -36.76 3.85 -6 -28.32 -15.28 -7 -22.23 -24.59 -8 -20.16 0.6 -9 -10.43 -32.54 -10 -7.44 19.44 -11 -7.2 -14.16 ------ 6 ----- -Ball -36.02 35 -1 -50 0.01 -2 -38.87 6.58 -3 -39.12 16.02 -4 -36.76 -3.85 -5 -36.39 27.94 -6 -28.32 15.28 -7 -20.16 -0.6 -8 -22.23 24.59 -9 -7.44 -19.44 -10 -10.43 32.54 -11 -7.2 14.16 ------ 7 ----- -Ball -12 -35 -1 -50 0 -2 -18.5 -21.61 -3 -18.5 -8.94 -4 -12.42 -34.65 -5 -18.38 4.72 -6 -9.07 -14.9 -7 -0.5 -22.48 -8 -5.96 0.12 -9 11.67 -32.29 -10 10.8 14.03 -11 8.2 -15.15 ------ 8 ----- -Ball -12 35 -1 -50 -0 -2 -18.5 8.94 -3 -18.5 21.61 -4 -18.38 -4.72 -5 -12.42 34.65 -6 -9.07 14.9 -7 -5.96 -0.12 -8 -0.5 22.48 -9 10.8 -14.03 -10 11.67 32.29 -11 8.2 15.15 ------ 9 ----- -Ball 38.13 -35 -1 -50 0 -2 -0.14 -16.53 -3 6.25 -1.8 -4 7.93 -28 -5 17.31 8.77 -6 24.88 -17.67 -7 36.3 -31.49 -8 32.09 -0.36 -9 46.75 -24.64 -10 44.23 -0.72 -11 44.59 -13.82 ------ 10 ----- -Ball 38.13 35 -1 -50 -0 -2 6.25 1.8 -3 -0.14 16.53 -4 17.31 -8.77 -5 7.93 28 -6 24.88 17.67 -7 32.09 0.36 -8 36.3 31.49 -9 44.23 0.72 -10 46.75 24.64 -11 44.59 13.82 ------ 11 ----- -Ball 35 -35 -1 -50 0 -2 1.68 -14.54 -3 6.49 -0.12 -4 6.37 -27.76 -5 15.86 8.65 -6 22.73 -17.39 -7 33.41 -32.69 -8 29.81 0 -9 43.03 -29.81 -10 41.7 -1.08 -11 42.31 -15.38 ------ 12 ----- -Ball 35 35 -1 -50 -0 -2 6.49 0.12 -3 1.68 14.54 -4 15.86 -8.65 -5 6.37 27.76 -6 22.73 17.39 -7 29.81 -0 -8 33.41 32.69 -9 41.7 1.08 -10 43.03 29.81 -11 42.31 15.38 ------ 13 ----- -Ball 24.88 -35 -1 -50 0 -2 -0.84 -21.03 -3 2.88 -5.53 -4 20.67 -32.93 -5 11.42 7.69 -6 14.54 -13.46 -7 26.08 -19.11 -8 31.01 -6.01 -9 44.23 -29.93 -10 39.54 -1.08 -11 41.34 -17.43 ------ 14 ----- -Ball 24.88 35 -1 -50 -0 -2 2.88 5.53 -3 -0.84 21.03 -4 11.42 -7.69 -5 20.67 32.93 -6 14.54 13.46 -7 31.01 6.01 -8 26.08 19.11 -9 39.54 1.08 -10 44.23 29.93 -11 41.34 17.43 ------ 15 ----- -Ball 12.98 -35 -1 -50 0 -2 -3.61 -21.51 -3 -0.12 -4.33 -4 9.86 -31.97 -5 8.29 8.17 -6 8.51 -16.2 -7 20.91 -20.67 -8 18.15 -1.2 -9 37.02 -31.25 -10 31.49 -1.08 -11 34.97 -15.38 ------ 16 ----- -Ball 12.98 35 -1 -50 -0 -2 -0.12 4.33 -3 -3.61 21.51 -4 8.29 -8.17 -5 9.86 31.97 -6 8.51 16.2 -7 18.15 1.2 -8 20.91 20.67 -9 31.49 1.08 -10 37.02 31.25 -11 34.97 15.38 ------ 17 ----- -Ball 0 -35 -1 -50 0 -2 -7.58 -23.22 -3 -9.06 -10.97 -4 -1.56 -32.69 -5 -5.37 4.29 -6 0 -16.95 -7 7.57 -22.71 -8 5.49 -0.12 -9 24.47 -30.18 -10 23.68 3.97 -11 20.91 -14.66 ------ 18 ----- -Ball 0 35 -1 -50 -0 -2 -9.06 10.97 -3 -7.58 23.22 -4 -5.37 -4.29 -5 -1.56 32.69 -6 0 16.95 -7 5.49 0.12 -8 7.57 22.71 -9 23.68 -3.97 -10 24.47 30.18 -11 20.91 14.66 ------ 19 ----- -Ball 54 -35 -1 -50 0 -2 -0.24 -14.54 -3 7.21 -0.48 -4 8.3 -27.3 -5 17.19 10.22 -6 24.76 -14.66 -7 39.78 -28.6 -8 38.65 -11.04 -9 51.54 -34.65 -10 46.27 -8.05 -11 48.07 -22.35 ------ 20 ----- -Ball 54 35 -1 -50 -0 -2 7.21 0.48 -3 -0.24 14.54 -4 17.19 -10.22 -5 8.3 27.3 -6 24.76 14.66 -7 38.65 11.04 -8 39.78 28.6 -9 46.27 8.05 -10 51.54 34.65 -11 48.07 22.35 -End Samples -End diff --git a/src/formation_dt/offense_formation.conf b/src/formation_dt/offense_formation.conf deleted file mode 100644 index cacfcc2..0000000 --- a/src/formation_dt/offense_formation.conf +++ /dev/null @@ -1,1512 +0,0 @@ -Formation DelaunayTriangulation 2 -Begin Roles -1 Goalie 0 -2 CenterBack -1 -3 CenterBack 2 -4 SideBack -1 -5 SideBack 4 -6 DefensiveHalf 0 -7 OffensiveHalf -1 -8 OffensiveHalf 7 -9 SideForward -1 -10 SideForward 9 -11 CenterForward 0 -End Roles -Begin Samples 2 115 ------ 0 ----- -Ball 54.5 -36 -1 -50 0 -2 -0.72 -12 -3 -0.84 1.08 -4 4.9 -27.3 -5 10 8 -6 27.43 -16.5 -7 33.12 -27 -8 38.22 -3.5 -9 44.22 -30.85 -10 46 6.8 -11 46.28 -14 ------ 1 ----- -Ball 54.5 36 -1 -50 -0 -2 -0.84 -1.08 -3 -0.72 12 -4 10 -8 -5 4.9 27.3 -6 27.43 16.5 -7 38.22 3.5 -8 33.12 27 -9 46 -6.8 -10 44.22 30.85 -11 46.28 14 ------ 2 ----- -Ball 0 0 -1 -50 0 -2 -15.53 -5.42 -3 -15.53 5.42 -4 -11.56 -15.78 -5 -11.56 15.78 -6 -6.73 -1.87 -7 2.83 -10.81 -8 2.83 10.81 -9 9.3 -23.78 -10 9.3 23.78 -11 9.41 -3.12 ------ 3 ----- -Ball 54.5 0 -1 -50 0 -2 2.74 -6.07 -3 2.74 6.07 -4 7.21 -18.58 -5 7.21 18.58 -6 26.86 -3.2 -7 40.73 -3.77 -8 40.73 3.77 -9 48.97 -9.82 -10 48.97 9.82 -11 45.6 -1.65 ------ 4 ----- -Ball 36.57 -12.09 -1 -50 0 -2 -1.25 -9.96 -3 0.52 3.2 -4 5.09 -23.21 -5 7.36 15.67 -6 18.98 -7.3 -7 27.73 -14.57 -8 32.4 1.86 -9 39.17 -19.85 -10 42.41 10.78 -11 38.1 -8.45 ------ 5 ----- -Ball 36.57 12.09 -1 -50 -0 -2 0.52 -3.2 -3 -1.25 9.96 -4 7.36 -15.67 -5 5.09 23.21 -6 18.98 7.3 -7 32.4 -1.86 -8 27.73 14.57 -9 42.41 -10.78 -10 39.17 19.85 -11 38.1 8.45 ------ 6 ----- -Ball 48.51 -15.92 -1 -50 0 -2 0.51 -10.77 -3 3.07 3.38 -4 2.27 -23.46 -5 12.83 13.63 -6 25.2 -9.33 -7 34.83 -14.95 -8 39.34 -1.01 -9 45.03 -20.81 -10 46.88 6.76 -11 43.86 -8.86 ------ 7 ----- -Ball 48.51 15.92 -1 -50 -0 -2 3.07 -3.38 -3 0.51 10.77 -4 12.83 -13.63 -5 2.27 23.46 -6 25.2 9.33 -7 39.34 1.01 -8 34.83 14.95 -9 46.88 -6.76 -10 45.03 20.81 -11 43.86 8.86 ------ 8 ----- -Ball 42.76 0 -1 -50 0 -2 0.98 -5.97 -3 0.98 5.97 -4 6.85 -19.24 -5 6.85 19.24 -6 21.77 -2.76 -7 35.57 -5.84 -8 35.57 5.84 -9 44.37 -9.81 -10 44.37 9.81 -11 40.72 -2.36 ------ 9 ----- -Ball 48.66 -5.01 -1 -50 0 -2 1.54 -7.25 -3 2.33 5.02 -4 6.06 -20.44 -5 8.38 17.49 -6 24.7 -4.89 -7 37.7 -7.4 -8 39.2 2.37 -9 46.09 -15.6 -10 46.8 0.42 -11 43.57 -4.31 ------ 10 ----- -Ball 48.66 5.01 -1 -50 -0 -2 2.33 -5.02 -3 1.54 7.25 -4 8.38 -17.49 -5 6.06 20.44 -6 24.7 4.89 -7 39.2 -2.37 -8 37.7 7.4 -9 46.8 -0.42 -10 46.09 15.6 -11 43.57 4.31 ------ 11 ----- -Ball 50.57 -6.78 -1 -50 0 -2 1.66 -7.71 -3 2.75 4.77 -4 5.36 -20.8 -5 9.23 16.82 -6 25.62 -5.67 -7 38.2 -8.13 -8 40.06 1.43 -9 47 -17.67 -10 47.39 -0.36 -11 44.4 -4.93 ------ 12 ----- -Ball 50.57 6.78 -1 -50 -0 -2 2.75 -4.77 -3 1.66 7.71 -4 9.23 -16.82 -5 5.36 20.8 -6 25.62 5.67 -7 40.06 -1.43 -8 38.2 8.13 -9 47.39 0.36 -10 47 17.67 -11 44.4 4.93 ------ 13 ----- -Ball 52.49 -17.1 -1 -50 0 -2 0.95 -10.96 -3 3.74 3.5 -4 0.75 -23.35 -5 14.73 12.86 -6 27.02 -9.99 -7 36.71 -15.3 -8 40.72 -1.59 -9 47.62 -24.13 -10 47.64 7.59 -11 45.39 -8.87 ------ 14 ----- -Ball 52.49 17.1 -1 -50 -0 -2 3.74 -3.5 -3 0.95 10.96 -4 14.73 -12.86 -5 0.75 23.35 -6 27.02 9.99 -7 40.72 1.59 -8 36.71 15.3 -9 47.64 -7.59 -10 47.62 24.13 -11 45.39 8.87 ------ 15 ----- -Ball 52.49 -7.96 -1 -50 0 -2 1.82 -7.99 -3 3.1 4.66 -4 4.65 -20.95 -5 10.02 16.31 -6 26.49 -6.22 -7 38.78 -8.58 -8 40.75 0.8 -9 48.07 -19.82 -10 47.99 0.19 -11 45.16 -5.26 ------ 16 ----- -Ball 52.49 7.96 -1 -50 -0 -2 3.1 -4.66 -3 1.82 7.99 -4 10.02 -16.31 -5 4.65 20.95 -6 26.49 6.22 -7 40.75 -0.8 -8 38.78 8.58 -9 47.99 -0.19 -10 48.07 19.82 -11 45.16 5.26 ------ 17 ----- -Ball 49.25 -9.29 -1 -50 0 -2 1.25 -8.48 -3 2.73 4.33 -4 4.73 -21.62 -5 9.92 16.07 -6 25.18 -6.62 -7 37.01 -10.02 -8 39.69 0.74 -9 46.18 -17.93 -10 47.11 1.01 -11 43.96 -6.11 ------ 18 ----- -Ball 49.25 9.29 -1 -50 -0 -2 2.73 -4.33 -3 1.25 8.48 -4 9.92 -16.07 -5 4.73 21.62 -6 25.18 6.62 -7 39.69 -0.74 -8 37.01 10.02 -9 47.11 -1.01 -10 46.18 17.93 -11 43.96 6.11 ------ 19 ----- -Ball 46.74 0 -1 -50 0 -2 1.62 -6.08 -3 1.62 6.08 -4 7.1 -19.05 -5 7.1 19.05 -6 23.75 -0.9 -7 37.73 -4.99 -8 37.73 4.99 -9 45.7 -9.75 -10 45.7 9.75 -11 42.56 -2.13 ------ 20 ----- -Ball 42.61 -5.6 -1 -50 0 -2 0.5 -7.52 -3 1.36 4.72 -4 6.18 -20.97 -5 7.57 17.56 -6 21.91 -4.9 -7 34.21 -9.06 -8 36.27 3.21 -9 43.47 -15.1 -10 45.41 2.8 -11 40.91 -5.04 ------ 21 ----- -Ball 42.61 5.6 -1 -50 -0 -2 1.36 -4.72 -3 0.5 7.52 -4 7.57 -17.56 -5 6.18 20.97 -6 21.91 4.9 -7 36.27 -3.21 -8 34.21 9.06 -9 45.41 -2.8 -10 43.47 15.1 -11 40.91 5.04 ------ 22 ----- -Ball 45.86 -3.54 -1 -50 0 -2 1.23 -6.89 -3 1.78 5.23 -4 6.49 -20.18 -5 7.68 18.07 -6 23.37 -4.21 -7 36.61 -7.09 -8 37.8 3.47 -9 45.04 -13.82 -10 45.96 2.43 -11 42.32 -3.85 ------ 23 ----- -Ball 45.86 3.54 -1 -50 -0 -2 1.78 -5.23 -3 1.23 6.89 -4 7.68 -18.07 -5 6.49 20.18 -6 23.37 4.21 -7 37.8 -3.47 -8 36.61 7.09 -9 45.96 -2.43 -10 45.04 13.82 -11 42.32 3.85 ------ 24 ----- -Ball 46.89 -6.49 -1 -50 0 -2 1.14 -7.7 -3 2.17 4.7 -4 5.83 -20.99 -5 8.52 17.12 -6 23.98 -5.41 -7 36.48 -8.62 -8 38.57 2.07 -9 45.21 -15.64 -10 46.51 0.08 -11 42.89 -5.11 ------ 25 ----- -Ball 46.89 6.49 -1 -50 -0 -2 2.17 -4.7 -3 1.14 7.7 -4 8.52 -17.12 -5 5.83 20.99 -6 23.98 5.41 -7 38.57 -2.07 -8 36.48 8.62 -9 46.51 -0.08 -10 45.21 15.64 -11 42.89 5.11 ------ 26 ----- -Ball 38.63 0 -1 -50 0 -2 0.18 -5.93 -3 0.18 5.93 -4 6.41 -19.34 -5 6.41 19.34 -6 19.71 -2.62 -7 32.73 -6.84 -8 32.73 6.84 -9 42.2 -11.81 -10 42.2 11.81 -11 38.61 -2.57 ------ 27 ----- -Ball 39.22 -5.75 -1 -50 0 -2 -0.15 -7.62 -3 0.71 4.57 -4 6.1 -21.14 -5 6.93 17.6 -6 20.2 -4.84 -7 31.8 -9.98 -8 34.05 3.87 -9 41.58 -16.28 -10 44.01 6.35 -11 39.22 -5.35 ------ 28 ----- -Ball 39.22 5.75 -1 -50 -0 -2 0.71 -4.57 -3 -0.15 7.62 -4 6.93 -17.6 -5 6.1 21.14 -6 20.2 4.84 -7 34.05 -3.87 -8 31.8 9.98 -9 44.01 -6.35 -10 41.58 16.28 -11 39.22 5.35 ------ 29 ----- -Ball 30.37 -15.92 -1 -50 0 -2 -3.06 -11.84 -3 -0.92 2.05 -4 3.83 -24.4 -5 6 14.49 -6 15.44 -8.7 -7 21.07 -17.96 -8 27.44 1.55 -9 34.11 -24.3 -10 34.71 14.57 -11 34.7 -10.66 ------ 30 ----- -Ball 30.37 15.92 -1 -50 -0 -2 -0.92 -2.05 -3 -3.06 11.84 -4 6 -14.49 -5 3.83 24.4 -6 15.44 8.7 -7 27.44 -1.55 -8 21.07 17.96 -9 34.71 -14.57 -10 34.11 24.3 -11 34.7 10.66 ------ 31 ----- -Ball 0 -36 -1 -50 0 -2 -17.18 -19.96 -3 -16.68 -6.05 -4 -13.42 -30.3 -5 -7.16 6.63 -6 -8.38 -16.63 -7 -7.37 -25.18 -8 -4.81 -1.58 -9 13.45 -32.14 -10 10.92 18.27 -11 14.62 -20.6 ------ 32 ----- -Ball 0 36 -1 -50 -0 -2 -16.68 6.05 -3 -17.18 19.96 -4 -7.16 -6.63 -5 -13.42 30.3 -6 -8.38 16.63 -7 -4.81 1.58 -8 -7.37 25.18 -9 10.92 -18.27 -10 13.45 32.14 -11 14.62 20.6 ------ 33 ----- -Ball 44.53 -22.41 -1 -50 0 -2 -0.79 -13.56 -3 2.77 2.31 -4 0.88 -25.3 -5 14.3 11.33 -6 23.64 -11.92 -7 30.42 -20.33 -8 36.76 -1.94 -9 41.44 -22.71 -10 45.59 7.46 -11 42.36 -11.75 ------ 34 ----- -Ball 44.53 22.41 -1 -50 -0 -2 2.77 -2.31 -3 -0.79 13.56 -4 14.3 -11.33 -5 0.88 25.3 -6 23.64 11.92 -7 36.76 1.94 -8 30.42 20.33 -9 45.59 -7.46 -10 41.44 22.71 -11 42.36 11.75 ------ 35 ----- -Ball 44.09 -29.78 -1 -50 0 -2 -1.7 -16.43 -3 3.08 1.45 -4 2.15 -27.12 -5 15.32 8.96 -6 23.78 -15.03 -7 28.49 -25.4 -8 35.1 -2.94 -9 39.72 -25.13 -10 44.65 7.22 -11 42.31 -14.34 ------ 36 ----- -Ball 44.09 29.78 -1 -50 -0 -2 3.08 -1.45 -3 -1.7 16.43 -4 15.32 -8.96 -5 2.15 27.12 -6 23.78 15.03 -7 35.1 2.94 -8 28.49 25.4 -9 44.65 -7.22 -10 39.72 25.13 -11 42.31 14.34 ------ 37 ----- -Ball 29.19 -34.36 -1 -50 0 -2 -5.36 -18.8 -3 -0.74 -0.94 -4 2.3 -27.83 -5 9.4 8.12 -6 15.16 -16.5 -7 19.03 -27.25 -8 26.04 -3.11 -9 36.79 -29.36 -10 29.88 13.71 -11 34.81 -17.65 ------ 38 ----- -Ball 29.19 34.36 -1 -50 -0 -2 -0.74 0.94 -3 -5.36 18.8 -4 9.4 -8.12 -5 2.3 27.83 -6 15.16 16.5 -7 26.04 3.11 -8 19.03 27.25 -9 29.88 -13.71 -10 36.79 29.36 -11 34.81 17.65 ------ 39 ----- -Ball 33.03 -31.26 -1 -50 0 -2 -4.18 -17.73 -3 0.28 -0.08 -4 2.01 -27.43 -5 11.01 8.83 -6 17.29 -15.35 -7 20.92 -26.07 -8 28.24 -2.72 -9 38.57 -27.83 -10 34.68 12.1 -11 36.65 -16.3 ------ 40 ----- -Ball 33.03 31.26 -1 -50 -0 -2 0.28 0.08 -3 -4.18 17.73 -4 11.01 -8.83 -5 2.01 27.43 -6 17.29 15.35 -7 28.24 2.72 -8 20.92 26.07 -9 34.68 -12.1 -10 38.57 27.83 -11 36.65 16.3 ------ 41 ----- -Ball 23 -5.16 -1 -50 0 -2 -4.35 -7.68 -3 -3.76 4.1 -4 2.99 -20.69 -5 2.22 17.45 -6 10.52 -4.14 -7 15.33 -13.53 -8 18.29 8.05 -9 23.07 -25.95 -10 24.74 20.06 -11 29.04 -6 ------ 42 ----- -Ball 23 5.16 -1 -50 -0 -2 -3.76 -4.1 -3 -4.35 7.68 -4 2.22 -17.45 -5 2.99 20.69 -6 10.52 4.14 -7 18.29 -8.05 -8 15.33 13.53 -9 24.74 -20.06 -10 23.07 25.95 -11 29.04 6 ------ 43 ----- -Ball 28.16 0 -1 -50 0 -2 -2.39 -5.82 -3 -2.39 5.82 -4 4.32 -19.24 -5 4.32 19.24 -6 13.8 -2.33 -7 22.61 -9.6 -8 22.61 9.6 -9 29.71 -21.47 -10 29.71 21.47 -11 32.25 -1 ------ 44 ----- -Ball 34.65 -5.75 -1 -50 0 -2 -1.13 -7.7 -3 -0.31 4.4 -4 5.74 -21.22 -5 5.89 17.64 -6 17.72 -4.69 -7 27.93 -11.15 -8 30.34 4.95 -9 37.52 -18.78 -10 40.2 11.53 -11 36.7 -5.66 ------ 45 ----- -Ball 34.65 5.75 -1 -50 -0 -2 -0.31 -4.4 -3 -1.13 7.7 -4 5.89 -17.64 -5 5.74 21.22 -6 17.72 4.69 -7 30.34 -4.95 -8 27.93 11.15 -9 40.2 -11.53 -10 37.52 18.78 -11 36.7 5.66 ------ 46 ----- -Ball 19.91 -28.6 -1 -50 0 -2 -7.44 -17.45 -3 -4.43 -1.6 -4 -1.88 -26.53 -5 4.35 9.94 -6 8.44 -13.83 -7 11.6 -24.14 -8 21.83 -1.79 -9 28.02 -30.94 -10 24.91 17.54 -11 28.57 -16.62 ------ 47 ----- -Ball 19.91 28.6 -1 -50 -0 -2 -4.43 1.6 -3 -7.44 17.45 -4 4.35 -9.94 -5 -1.88 26.53 -6 8.44 13.83 -7 21.83 1.79 -8 11.6 24.14 -9 24.91 -17.54 -10 28.02 30.94 -11 28.57 16.62 ------ 48 ----- -Ball 14.3 -11.06 -1 -50 0 -2 -8.06 -10.45 -3 -7.15 1.87 -4 -1.04 -21.99 -5 -2.42 15.19 -6 4.24 -6.29 -7 5.05 -17.13 -8 13.68 6.13 -9 17.23 -26.9 -10 18.09 19.6 -11 22.95 -9.41 ------ 49 ----- -Ball 14.3 11.06 -1 -50 -0 -2 -7.15 -1.87 -3 -8.06 10.45 -4 -2.42 -15.19 -5 -1.04 21.99 -6 4.24 6.29 -7 13.68 -6.13 -8 5.05 17.13 -9 18.09 -19.6 -10 17.23 26.9 -11 22.95 9.41 ------ 50 ----- -Ball 11.35 -25.07 -1 -50 0 -2 -10.43 -16.57 -3 -8.68 -1.89 -4 -5.48 -25.58 -5 -2.46 11.03 -6 1.71 -12.12 -7 3.25 -22.2 -8 16.29 -0.28 -9 18.9 -29.64 -10 17.57 18.46 -11 22.04 -15.92 ------ 51 ----- -Ball 11.35 25.07 -1 -50 -0 -2 -8.68 1.89 -3 -10.43 16.57 -4 -2.46 -11.03 -5 -5.48 25.58 -6 1.71 12.12 -7 16.29 0.28 -8 3.25 22.2 -9 17.57 -18.46 -10 18.9 29.64 -11 22.04 15.92 ------ 52 ----- -Ball 9.58 0 -1 -50 0 -2 -9.77 -5.58 -3 -9.77 5.58 -4 -4.36 -17.44 -5 -4.36 17.44 -6 0.91 -0.62 -7 5.26 -12.1 -8 5.26 12.1 -9 14.64 -25.04 -10 14.64 25.04 -11 17.81 -1.03 ------ 53 ----- -Ball 18.58 0 -1 -50 0 -2 -5.66 -5.71 -3 -5.66 5.71 -4 0.77 -18.6 -5 0.77 18.6 -6 7.52 -2.11 -7 11.95 -11.59 -8 11.95 11.59 -9 20.57 -25.76 -10 20.57 25.76 -11 25.23 -0.34 ------ 54 ----- -Ball 3.83 -20.2 -1 -50 0 -2 -13.84 -14.96 -3 -13.2 -1.74 -4 -9.32 -24.18 -5 -9.54 11.72 -6 -4.47 -9.91 -7 -3.05 -19.66 -8 10.11 2 -9 11.32 -27.46 -10 11.22 18.5 -11 15.55 -14.21 ------ 55 ----- -Ball 3.83 20.2 -1 -50 -0 -2 -13.2 1.74 -3 -13.84 14.96 -4 -9.54 -11.72 -5 -9.32 24.18 -6 -4.47 9.91 -7 10.11 -2 -8 -3.05 19.66 -9 11.22 -18.5 -10 11.32 27.46 -11 15.55 14.21 ------ 56 ----- -Ball 6.19 -10.32 -1 -50 0 -2 -11.99 -10.37 -3 -11.54 1.49 -4 -6.34 -20.75 -5 -7.77 14.2 -6 -2.15 -5.86 -7 -0.16 -16.34 -8 9.32 6.62 -9 11.66 -29.11 -10 12.63 18.96 -11 16.23 -9.25 ------ 57 ----- -Ball 6.19 10.32 -1 -50 -0 -2 -11.54 -1.49 -3 -11.99 10.37 -4 -7.77 -14.2 -5 -6.34 20.75 -6 -2.15 5.86 -7 9.32 -6.62 -8 -0.16 16.34 -9 12.63 -18.96 -10 11.66 29.11 -11 16.23 9.25 ------ 58 ----- -Ball 10.47 -29.78 -1 -50 0 -2 -11.25 -18.18 -3 -9.28 -3 -4 -6.48 -26.52 -5 -1.47 9.34 -6 0.92 -14.14 -7 3.65 -23.76 -8 14.34 -1.54 -9 19.43 -31.04 -10 18.15 18.08 -11 21.84 -17.79 ------ 59 ----- -Ball 10.47 29.78 -1 -50 -0 -2 -9.28 3 -3 -11.25 18.18 -4 -1.47 -9.34 -5 -6.48 26.52 -6 0.92 14.14 -7 14.34 1.54 -8 3.65 23.76 -9 18.15 -18.08 -10 19.43 31.04 -11 21.84 17.79 ------ 60 ----- -Ball 13.27 -33.18 -1 -50 0 -2 -10.4 -19.06 -3 -7.76 -3.2 -4 -4.63 -27.14 -5 1.37 8.33 -6 3.2 -15.64 -7 7.31 -25.26 -8 15.53 -2.38 -9 22.52 -31.88 -10 21.76 17.76 -11 24.21 -18.79 ------ 61 ----- -Ball 13.27 33.18 -1 -50 -0 -2 -7.76 3.2 -3 -10.4 19.06 -4 1.37 -8.33 -5 -4.63 27.14 -6 3.2 15.64 -7 15.53 2.38 -8 7.31 25.26 -9 21.76 -17.76 -10 22.52 31.88 -11 24.21 18.79 ------ 62 ----- -Ball -16.96 -30.52 -1 -50 0 -2 -23.33 -18.45 -3 -23.18 -4.34 -4 -23.94 -27.93 -5 -22.14 9.35 -6 -19.24 -13.98 -7 -16.33 -22.81 -8 -14.1 -0.07 -9 0.44 -30.41 -10 -4.28 17.04 -11 0.06 -9.81 ------ 63 ----- -Ball -16.96 30.52 -1 -50 -0 -2 -23.18 4.34 -3 -23.33 18.45 -4 -22.14 -9.35 -5 -23.94 27.93 -6 -19.24 13.98 -7 -14.1 0.07 -8 -16.33 22.81 -9 -4.28 -17.04 -10 0.44 30.41 -11 0.06 9.81 ------ 64 ----- -Ball -4.28 -16.81 -1 -50 0 -2 -12.71 -15.79 -3 -14.88 -3.68 -4 -13.76 -23.07 -5 -12.63 11.13 -6 -8.8 -11.13 -7 -3.79 -19.5 -8 -3.98 5.9 -9 6.03 -29.81 -10 2.6 22.3 -11 5.59 -8.48 ------ 65 ----- -Ball -4.28 16.81 -1 -50 -0 -2 -14.88 3.68 -3 -12.71 15.79 -4 -12.63 -11.13 -5 -13.76 23.07 -6 -8.8 11.13 -7 -3.98 -5.9 -8 -3.79 19.5 -9 2.6 -22.3 -10 6.03 29.81 -11 5.59 8.48 ------ 66 ----- -Ball -7.08 -27.57 -1 -50 0 -2 -15.15 -19.34 -3 -16.57 -4.96 -4 -15.35 -27.21 -5 -13.48 10.45 -6 -10.91 -14.26 -7 -6.54 -22.94 -8 -6.22 1.56 -9 6.84 -30.97 -10 1.32 18.51 -11 6.91 -10.52 ------ 67 ----- -Ball -7.08 27.57 -1 -50 -0 -2 -16.57 4.96 -3 -15.15 19.34 -4 -13.48 -10.45 -5 -15.35 27.21 -6 -10.91 14.26 -7 -6.22 -1.56 -8 -6.54 22.94 -9 1.32 -18.51 -10 6.84 30.97 -11 6.91 10.52 ------ 68 ----- -Ball -7.96 -31.41 -1 -50 0 -2 -15.89 -20.09 -3 -17.14 -5.03 -4 -15.83 -28.57 -5 -13.66 11 -6 -11.44 -14.98 -7 -7.45 -24.07 -8 -6.86 0.18 -9 7.39 -31.3 -10 1.09 17.04 -11 8.36 -10.67 ------ 69 ----- -Ball -7.96 31.41 -1 -50 -0 -2 -17.14 5.03 -3 -15.89 20.09 -4 -13.66 -11 -5 -15.83 28.57 -6 -11.44 14.98 -7 -6.86 -0.18 -8 -7.45 24.07 -9 1.09 -17.04 -10 7.39 31.3 -11 8.36 10.67 ------ 70 ----- -Ball -23.89 -34.21 -1 -50 0 -2 -31.05 -17.31 -3 -29.37 -4.33 -4 -29.93 -27.83 -5 -28.55 8.6 -6 -24.69 -13.7 -7 -22.94 -23.29 -8 -19.22 -1.39 -9 -3.39 -30.07 -10 -7.83 15.33 -11 -3.41 -8.93 ------ 71 ----- -Ball -23.89 34.21 -1 -50 -0 -2 -29.37 4.33 -3 -31.05 17.31 -4 -28.55 -8.6 -5 -29.93 27.83 -6 -24.69 13.7 -7 -19.22 1.39 -8 -22.94 23.29 -9 -7.83 -15.33 -10 -3.39 30.07 -11 -3.41 8.93 ------ 72 ----- -Ball -54.5 0 -1 -50 0 -2 -47.53 -3.17 -3 -47.53 3.17 -4 -49.99 -6.88 -5 -49.99 6.88 -6 -44.06 1.02 -7 -41.64 -8.61 -8 -41.64 8.61 -9 -23.83 -22.2 -10 -23.83 22.2 -11 -30.03 4.57 ------ 73 ----- -Ball -19.61 -5.46 -1 -50 0 -2 -26.74 -7.22 -3 -27.37 1.07 -4 -27.57 -15.59 -5 -27.52 9.88 -6 -23.16 -4.67 -7 -18.04 -13.11 -8 -17.58 8.75 -9 -6.06 -26.78 -10 -6.72 24.53 -11 -8.99 -3.01 ------ 74 ----- -Ball -19.61 5.46 -1 -50 -0 -2 -27.37 -1.07 -3 -26.74 7.22 -4 -27.52 -9.88 -5 -27.57 15.59 -6 -23.16 4.67 -7 -17.58 -8.75 -8 -18.04 13.11 -9 -6.72 -24.53 -10 -6.06 26.78 -11 -8.99 3.01 ------ 75 ----- -Ball -7.96 -7.37 -1 -50 0 -2 -15.64 -9.85 -3 -17.18 0.07 -4 -16.91 -19.09 -5 -16.52 12.59 -6 -12.21 -6.37 -7 -7.34 -15.32 -8 -7.25 9.27 -9 1.69 -28.01 -10 0.38 24.81 -11 0.76 -4.5 ------ 76 ----- -Ball -7.96 7.37 -1 -50 -0 -2 -17.18 -0.07 -3 -15.64 9.85 -4 -16.52 -12.59 -5 -16.91 19.09 -6 -12.21 6.37 -7 -7.25 -9.27 -8 -7.34 15.32 -9 0.38 -24.81 -10 1.69 28.01 -11 0.76 4.5 ------ 77 ----- -Ball -5.31 0 -1 -50 0 -2 -14.82 -4.5 -3 -14.82 4.5 -4 -14.59 -16.26 -5 -14.59 16.26 -6 -9.26 -1.26 -7 -4.86 -12.66 -8 -4.86 12.66 -9 2.61 -26.72 -10 2.61 26.72 -11 2.2 -0.09 ------ 78 ----- -Ball -2.06 -11.35 -1 -50 0 -2 -11.37 -12.91 -3 -13.56 -2.16 -4 -12.2 -21.01 -5 -11.39 13.02 -6 -6.73 -8.68 -7 -1.72 -17.72 -8 -2.03 8.39 -9 6.48 -29.12 -10 4.06 24.04 -11 6.06 -6.47 ------ 79 ----- -Ball -2.06 11.35 -1 -50 -0 -2 -13.56 2.16 -3 -11.37 12.91 -4 -11.39 -13.02 -5 -12.2 21.01 -6 -6.73 8.68 -7 -2.03 -8.39 -8 -1.72 17.72 -9 4.06 -24.04 -10 6.48 29.12 -11 6.06 6.47 ------ 80 ----- -Ball -3.39 -5.9 -1 -50 0 -2 -12.7 -8.99 -3 -14.14 0.58 -4 -13.2 -18.92 -5 -12.79 14.39 -6 -7.76 -5.48 -7 -3.04 -15.36 -8 -3.16 10.48 -9 4.62 -28.05 -10 3.43 25.44 -11 4.7 -3.75 ------ 81 ----- -Ball -3.39 5.9 -1 -50 -0 -2 -14.14 -0.58 -3 -12.7 8.99 -4 -12.79 -14.39 -5 -13.2 18.92 -6 -7.76 5.48 -7 -3.16 -10.48 -8 -3.04 15.36 -9 3.43 -25.44 -10 4.62 28.05 -11 4.7 3.75 ------ 82 ----- -Ball -9.44 -24.77 -1 -50 0 -2 -16.56 -18.28 -3 -17.92 -4.5 -4 -17.58 -26.25 -5 -15.92 9.67 -6 -13.12 -13.42 -7 -8.86 -21.71 -8 -8.23 2.36 -9 4.27 -30.45 -10 -0.29 19.43 -11 3.59 -10.02 ------ 83 ----- -Ball -9.44 24.77 -1 -50 -0 -2 -17.92 4.5 -3 -16.56 18.28 -4 -15.92 -9.67 -5 -17.58 26.25 -6 -13.12 13.42 -7 -8.23 -2.36 -8 -8.86 21.71 -9 -0.29 -19.43 -10 4.27 30.45 -11 3.59 10.02 ------ 84 ----- -Ball -12.39 -12.39 -1 -50 0 -2 -18.61 -12.64 -3 -20.37 -1.72 -4 -20.71 -20.92 -5 -20.15 9.72 -6 -16.37 -8.83 -7 -11.58 -16.74 -8 -11.06 6.74 -9 -0.53 -28.52 -10 -2.47 23.22 -11 -2.1 -6.61 ------ 85 ----- -Ball -12.39 12.39 -1 -50 -0 -2 -20.37 1.72 -3 -18.61 12.64 -4 -20.15 -9.72 -5 -20.71 20.92 -6 -16.37 8.83 -7 -11.06 -6.74 -8 -11.58 16.74 -9 -2.47 -23.22 -10 -0.53 28.52 -11 -2.1 6.61 ------ 86 ----- -Ball -16.37 -15.78 -1 -50 0 -2 -22.13 -13.78 -3 -23.54 -2.52 -4 -24.22 -21.95 -5 -23.62 8.03 -6 -19.87 -9.96 -7 -15.41 -17.57 -8 -14.35 5.07 -9 -2.6 -28.7 -10 -4.82 22.01 -11 -4.48 -7.55 ------ 87 ----- -Ball -16.37 15.78 -1 -50 -0 -2 -23.54 2.52 -3 -22.13 13.78 -4 -23.62 -8.03 -5 -24.22 21.95 -6 -19.87 9.96 -7 -14.35 -5.07 -8 -15.41 17.57 -9 -4.82 -22.01 -10 -2.6 28.7 -11 -4.48 7.55 ------ 88 ----- -Ball -19.91 -18.28 -1 -50 0 -2 -25.82 -14.13 -3 -26.7 -3.02 -4 -27.37 -22.39 -5 -26.83 6.95 -6 -22.83 -10.5 -7 -18.77 -18.12 -8 -17.16 3.88 -9 -4.47 -28.73 -10 -6.79 21.05 -11 -6.47 -7.96 ------ 89 ----- -Ball -19.91 18.28 -1 -50 -0 -2 -26.7 3.02 -3 -25.82 14.13 -4 -26.83 -6.95 -5 -27.37 22.39 -6 -22.83 10.5 -7 -17.16 -3.88 -8 -18.77 18.12 -9 -6.79 -21.05 -10 -4.47 28.73 -11 -6.47 7.96 ------ 90 ----- -Ball -32.73 -29.19 -1 -50 0 -2 -39.69 -13.44 -3 -38.23 -4.58 -4 -37.42 -22.97 -5 -37.47 4.45 -6 -32.04 -11.42 -7 -30.22 -20.74 -8 -26.1 -0.09 -9 -10.38 -28.63 -10 -13.04 16.63 -11 -12 -7.92 ------ 91 ----- -Ball -32.73 29.19 -1 -50 -0 -2 -38.23 4.58 -3 -39.69 13.44 -4 -37.47 -4.45 -5 -37.42 22.97 -6 -32.04 11.42 -7 -26.1 0.09 -8 -30.22 20.74 -9 -13.04 -16.63 -10 -10.38 28.63 -11 -12 7.92 ------ 92 ----- -Ball -24.03 -17.55 -1 -50 0 -2 -30.55 -12.75 -3 -31.07 -2.95 -4 -31.18 -20.78 -5 -30.99 5.87 -6 -26.38 -9.76 -7 -22.45 -17.38 -8 -20.54 3.87 -9 -7.22 -28.24 -10 -9.15 21.01 -11 -9.46 -7.39 ------ 93 ----- -Ball -24.03 17.55 -1 -50 -0 -2 -31.07 2.95 -3 -30.55 12.75 -4 -30.99 -5.87 -5 -31.18 20.78 -6 -26.38 9.76 -7 -20.54 -3.87 -8 -22.45 17.38 -9 -9.15 -21.01 -10 -7.22 28.24 -11 -9.46 7.39 ------ 94 ----- -Ball -31.26 0 -1 -50 0 -2 -39.65 -2.16 -3 -39.65 2.16 -4 -38.28 -8.03 -5 -38.28 8.03 -6 -32.56 -0.43 -7 -27.38 -9.85 -8 -27.38 9.85 -9 -13.07 -24.74 -10 -13.07 24.74 -11 -18.33 1.17 ------ 95 ----- -Ball -29.34 -15.33 -1 -50 0 -2 -36.56 -10.26 -3 -36.79 -2.72 -4 -35.95 -17.42 -5 -36.13 4.57 -6 -30.72 -8.28 -7 -26.82 -15.97 -8 -24.81 4.35 -9 -10.73 -27.4 -10 -12.11 21.27 -11 -13.3 -6.21 ------ 96 ----- -Ball -29.34 15.33 -1 -50 -0 -2 -36.79 2.72 -3 -36.56 10.26 -4 -36.13 -4.57 -5 -35.95 17.42 -6 -30.72 8.28 -7 -24.81 -4.35 -8 -26.82 15.97 -9 -12.11 -21.27 -10 -10.73 27.4 -11 -13.3 6.21 ------ 97 ----- -Ball -37.01 -33.03 -1 -50 0 -2 -42.77 -12.81 -3 -40.82 -4.62 -4 -40.07 -23.04 -5 -40.14 3.64 -6 -34.61 -11.31 -7 -33.61 -21.66 -8 -28.64 -1.11 -9 -12.13 -28.47 -10 -14.85 14.96 -11 -13.43 -7.26 ------ 98 ----- -Ball -37.01 33.03 -1 -50 -0 -2 -40.82 4.62 -3 -42.77 12.81 -4 -40.14 -3.64 -5 -40.07 23.04 -6 -34.61 11.31 -7 -28.64 1.11 -8 -33.61 21.66 -9 -14.85 -14.96 -10 -12.13 28.47 -11 -13.43 7.26 ------ 99 ----- -Ball -54.5 -36 -1 -50 0 -2 -46.24 -10.29 -3 -44.48 -1.69 -4 -48.45 -21.85 -5 -48.06 2.31 -6 -43.6 -8.28 -7 -43.89 -21.18 -8 -38.36 -1.28 -9 -20.87 -26.29 -10 -22.49 12.44 -11 -22.8 -4.37 ------ 100 ----- -Ball -54.5 36 -1 -50 -0 -2 -44.48 1.69 -3 -46.24 10.29 -4 -48.06 -2.31 -5 -48.45 21.85 -6 -43.6 8.28 -7 -38.36 1.28 -8 -43.89 21.18 -9 -22.49 -12.44 -10 -20.87 26.29 -11 -22.8 4.37 ------ 101 ----- -Ball -48.66 -22.71 -1 -50 0 -2 -46.06 -8.98 -3 -45.54 -2.25 -4 -47.21 -15.63 -5 -47.31 2.84 -6 -41.76 -7.28 -7 -40.32 -17.03 -8 -36.69 1.74 -9 -19.94 -26.01 -10 -21.01 17.44 -11 -22.29 -5.05 ------ 102 ----- -Ball -48.66 22.71 -1 -50 -0 -2 -45.54 2.25 -3 -46.06 8.98 -4 -47.31 -2.84 -5 -47.21 15.63 -6 -41.76 7.28 -7 -36.69 -1.74 -8 -40.32 17.03 -9 -21.01 -17.44 -10 -19.94 26.01 -11 -22.29 5.05 ------ 103 ----- -Ball -39.52 -28.16 -1 -50 0 -2 -43.82 -11.32 -3 -42.6 -4.34 -4 -42.05 -20.13 -5 -42.42 2.74 -6 -36.63 -10.01 -7 -35.11 -19.75 -8 -30.74 0.19 -9 -14.51 -27.72 -10 -16.49 16.49 -11 -16.44 -6.95 ------ 104 ----- -Ball -39.52 28.16 -1 -50 -0 -2 -42.6 4.34 -3 -43.82 11.32 -4 -42.42 -2.74 -5 -42.05 20.13 -6 -36.63 10.01 -7 -30.74 -0.19 -8 -35.11 19.75 -9 -16.49 -16.49 -10 -14.51 27.72 -11 -16.44 6.95 ------ 105 ----- -Ball -39.22 -22.12 -1 -50 0 -2 -43.64 -10.02 -3 -43.11 -3.81 -4 -42.46 -17.18 -5 -42.88 2.69 -6 -36.9 -8.77 -7 -34.57 -17.6 -8 -31.14 1.89 -9 -15.29 -27.15 -10 -16.77 18.47 -11 -17.55 -6.43 ------ 106 ----- -Ball -39.22 22.12 -1 -50 -0 -2 -43.11 3.81 -3 -43.64 10.02 -4 -42.88 -2.69 -5 -42.46 17.18 -6 -36.9 8.77 -7 -31.14 -1.89 -8 -34.57 17.6 -9 -16.77 -18.47 -10 -15.29 27.15 -11 -17.55 6.43 ------ 107 ----- -Ball -41.58 -7.22 -1 -50 0 -2 -45.59 -4.05 -3 -45.51 -0.6 -4 -44.96 -8.55 -5 -45.08 3.99 -6 -38.84 -3.44 -7 -35.13 -11.83 -8 -33.99 6.61 -9 -17.94 -24.94 -10 -18.33 22.22 -11 -21.98 -1.47 ------ 108 ----- -Ball -41.58 7.22 -1 -50 -0 -2 -45.51 0.6 -3 -45.59 4.05 -4 -45.08 -3.99 -5 -44.96 8.55 -6 -38.84 3.44 -7 -33.99 -6.61 -8 -35.13 11.83 -9 -18.33 -22.22 -10 -17.94 24.94 -11 -21.98 1.47 ------ 109 ----- -Ball -34.06 -7.37 -1 -50 0 -2 -41.55 -5.15 -3 -41.6 -0.8 -4 -40.2 -10.73 -5 -40.73 4.73 -6 -34.41 -4.35 -7 -29.99 -12.46 -8 -28.91 6.92 -9 -14.14 -25.77 -10 -14.67 22.91 -11 -17.91 -2.58 ------ 110 ----- -Ball -34.06 7.37 -1 -50 -0 -2 -41.6 0.8 -3 -41.55 5.15 -4 -40.73 -4.73 -5 -40.2 10.73 -6 -34.41 4.35 -7 -28.91 -6.92 -8 -29.99 12.46 -9 -14.67 -22.91 -10 -14.14 25.77 -11 -17.91 2.58 ------ 111 ----- -Ball -48.22 -9.88 -1 -50 0 -2 -46.9 -4.98 -3 -46.74 -0.12 -4 -47.87 -9.24 -5 -47.87 4.14 -6 -41.91 -3.75 -7 -39.23 -12.38 -8 -37.64 5.54 -9 -20.84 -24.54 -10 -21.27 20.92 -11 -24.49 -1.57 ------ 112 ----- -Ball -48.22 9.88 -1 -50 -0 -2 -46.74 0.12 -3 -46.9 4.98 -4 -47.87 -4.14 -5 -47.87 9.24 -6 -41.91 3.75 -7 -37.64 -5.54 -8 -39.23 12.38 -9 -21.27 -20.92 -10 -20.84 24.54 -11 -24.49 1.57 ------ 113 ----- -Ball 15.33 -21.38 -1 -50 0 -2 -8.43 -14.97 -3 -6.57 -0.58 -4 -2.37 -25.05 -5 -0.76 12.47 -6 4.93 -10.62 -7 4.93 -21.15 -8 18.46 0.94 -9 21.33 -29.66 -10 20.06 18.78 -11 24.72 -14.15 ------ 114 ----- -Ball 15.33 21.38 -1 -50 -0 -2 -6.57 0.58 -3 -8.43 14.97 -4 -0.76 -12.47 -5 -2.37 25.05 -6 4.93 10.62 -7 18.46 -0.94 -8 4.93 21.15 -9 20.06 -18.78 -10 21.33 29.66 -11 24.72 14.15 -End Samples -End diff --git a/src/formation_dt/setplay_opp_formation.conf b/src/formation_dt/setplay_opp_formation.conf deleted file mode 100644 index fcacfcf..0000000 --- a/src/formation_dt/setplay_opp_formation.conf +++ /dev/null @@ -1,602 +0,0 @@ -Formation DelaunayTriangulation 2 -Begin Roles -1 Goalie 0 -2 CenterBack -1 -3 CenterBack 2 -4 SideBack -1 -5 SideBack 4 -6 DefensiveHalf 0 -7 OffensiveHalf -1 -8 OffensiveHalf 7 -9 SideForward -1 -10 SideForward 9 -11 CenterForward 0 -End Roles -Begin Samples 2 45 ------ 0 ----- -Ball 0 0 -1 -50 0 -2 -11.63 -4.6 -3 -11.9 4.06 -4 -10.09 -16.13 -5 -9.91 14.51 -6 -11.18 -0.36 -7 -6.58 -8.2 -8 -7.57 8.29 -9 -1.26 -11.99 -10 -1.8 12.17 -11 11.72 0 ------ 1 ----- -Ball -54.44 -20.73 -1 -50 0 -2 -47.41 -10.72 -3 -45.24 -5.14 -4 -50.02 -17.21 -5 -45.6 3.88 -6 -39.73 -9.8 -7 -40.83 -15.77 -8 -30.82 6.85 -9 -24.78 -29.47 -10 -14.69 21.98 -11 -14.9 -5.27 ------ 2 ----- -Ball -54.44 20.73 -1 -50 0 -2 -45.24 5.14 -3 -47.41 10.72 -4 -45.6 -3.88 -5 -50.02 17.21 -6 -39.73 9.8 -7 -30.82 -6.85 -8 -40.83 15.77 -9 -14.69 -21.98 -10 -24.78 29.47 -11 -14.9 5.27 ------ 3 ----- -Ball 45.24 0 -1 -50 0 -2 -0.18 -6.92 -3 -0.18 6.92 -4 6.47 -17.34 -5 6.47 17.34 -6 15.5 -0 -7 31.36 -6.2 -8 31.36 6.2 -9 36.39 -9.79 -10 36.39 9.79 -11 35.58 0.54 ------ 4 ----- -Ball -31.36 0 -1 -50 0 -2 -41.28 -3.97 -3 -41.19 3.97 -4 -40.38 -8.74 -5 -40.02 8.47 -6 -41.46 -0.27 -7 -34.88 -9.1 -8 -34.34 9.19 -9 -10.86 -21.61 -10 -10.75 21.75 -11 -19.2 0.27 ------ 5 ----- -Ball 22.08 0 -1 -50 0 -2 -0.09 -9.37 -3 0.18 7.75 -4 0.09 -19.47 -5 0.27 19.02 -6 1.35 0 -7 10.63 -6.13 -8 10.45 5.5 -9 13.16 -10.72 -10 13.43 11.36 -11 10.63 -0.27 ------ 6 ----- -Ball 11.72 0 -1 -50 0 -2 -2.25 -6.67 -3 -2.61 4.6 -4 -1.53 -14.15 -5 -1.44 14.78 -6 -1.44 -0.18 -7 1.98 -8.92 -8 1.71 8.56 -9 7.84 -13.16 -10 8.65 12.89 -11 0.99 0 ------ 7 ----- -Ball -15.95 -22.98 -1 -50 0 -2 -28.75 -17.21 -3 -28.57 -6.02 -4 -28.66 -24.78 -5 -28.3 4.67 -6 -25.34 -11.68 -7 -25.88 -20.3 -8 -21.02 -7.1 -9 0.09 -24.26 -10 2.02 15.41 -11 -12.76 -6.65 ------ 8 ----- -Ball -15.95 22.98 -1 -50 0 -2 -28.57 6.02 -3 -28.75 17.21 -4 -28.3 -4.67 -5 -28.66 24.78 -6 -25.34 11.68 -7 -21.02 7.1 -8 -25.88 20.3 -9 2.02 -15.41 -10 0.09 24.26 -11 -12.76 6.65 ------ 9 ----- -Ball 30.73 -36 -1 -50 0 -2 0.18 -11.95 -3 0.09 0.63 -4 0.45 -25.43 -5 3.05 8.45 -6 8.27 -18.15 -7 18.6 -28.03 -8 22.55 -14.64 -9 20.84 -33.15 -10 29.56 -5.66 -11 23.09 -22.91 ------ 10 ----- -Ball 30.73 36 -1 -50 0 -2 0.09 -0.63 -3 0.18 11.95 -4 3.05 -8.45 -5 0.45 25.43 -6 8.27 18.15 -7 22.55 14.64 -8 18.6 28.03 -9 29.56 5.66 -10 20.84 33.15 -11 23.09 22.91 ------ 11 ----- -Ball -54.5 -36 -1 -50 0 -2 -45.64 -14.73 -3 -45.24 -5.14 -4 -49.75 -24.6 -5 -45.6 3.88 -6 -39.84 -15.59 -7 -41.33 -23.81 -8 -34.88 -0.09 -9 -34.41 -31.45 -10 -13.66 14.2 -11 -15.54 -11.23 ------ 12 ----- -Ball -54.5 36 -1 -50 0 -2 -45.24 5.14 -3 -45.64 14.73 -4 -45.6 -3.88 -5 -49.75 24.6 -6 -39.84 15.59 -7 -34.88 0.09 -8 -41.33 23.81 -9 -13.66 -14.2 -10 -34.41 31.45 -11 -15.54 11.23 ------ 13 ----- -Ball -35.51 -20.1 -1 -50 0 -2 -35.85 -6.47 -3 -35.94 -0.54 -4 -35.51 -10.18 -5 -35.85 6.83 -6 -31.54 -9.91 -7 -26.05 -14.96 -8 -28.84 -0.72 -9 -21.72 -27.22 -10 -4.96 16.58 -11 -12.35 -9.19 ------ 14 ----- -Ball -35.51 20.1 -1 -50 0 -2 -35.94 0.54 -3 -35.85 6.47 -4 -35.85 -6.83 -5 -35.51 10.18 -6 -31.54 9.91 -7 -28.84 0.72 -8 -26.05 14.96 -9 -4.96 -16.58 -10 -21.72 27.22 -11 -12.35 9.19 ------ 15 ----- -Ball 40.11 -36 -1 -50 0 -2 -0.63 -13.93 -3 0.45 -1.08 -4 9.7 -29.65 -5 4.94 5.48 -6 11.18 -14.06 -7 26.5 -27.94 -8 29.92 -16.62 -9 31.09 -34.7 -10 32.43 -4.67 -11 31.98 -25.52 ------ 16 ----- -Ball 40.11 36 -1 -50 0 -2 0.45 1.08 -3 -0.63 13.93 -4 4.94 -5.48 -5 9.7 29.65 -6 11.18 14.06 -7 29.92 16.62 -8 26.5 27.94 -9 32.43 4.67 -10 31.09 34.7 -11 31.98 25.52 ------ 17 ----- -Ball 54.5 -36 -1 -50 0 -2 -0.54 -11.68 -3 0.09 0.09 -4 12.58 -26.14 -5 4.94 9.6 -6 20.39 -13.39 -7 35.49 -27.13 -8 35.49 -9.7 -9 39.53 -32.88 -10 46 -11.32 -11 37.2 -20.21 ------ 18 ----- -Ball 54.5 36 -1 -50 0 -2 0.09 -0.09 -3 -0.54 11.68 -4 4.94 -9.6 -5 12.58 26.14 -6 20.39 13.39 -7 35.49 9.7 -8 35.49 27.13 -9 46 11.32 -10 39.53 32.88 -11 37.2 20.21 ------ 19 ----- -Ball 19.65 -36 -1 -50 0 -2 -1.44 -23.27 -3 -0.36 -0.63 -4 -0.45 -32.99 -5 -0.09 10.51 -6 1.17 -17.16 -7 2.34 -27.67 -8 8.36 -11.86 -9 10.27 -29.92 -10 15.18 -1.26 -11 12.85 -22.73 ------ 20 ----- -Ball 19.65 36 -1 -50 0 -2 -0.36 0.63 -3 -1.44 23.27 -4 -0.09 -10.51 -5 -0.45 32.99 -6 1.17 17.16 -7 8.36 11.86 -8 2.34 27.67 -9 15.18 1.26 -10 10.27 29.92 -11 12.85 22.73 ------ 21 ----- -Ball 0.27 -36 -1 -50 0 -2 -18.57 -23.88 -3 -18.93 -8.47 -4 -15.68 -32.72 -5 -15.77 4.15 -6 -12.98 -19.2 -7 -12.08 -27.58 -8 -6.67 -7.48 -9 -6.58 -22.8 -10 8.56 9.37 -11 0.09 -18.75 ------ 22 ----- -Ball 0.27 36 -1 -50 0 -2 -18.93 8.47 -3 -18.57 23.88 -4 -15.77 -4.15 -5 -15.68 32.72 -6 -12.98 19.2 -7 -6.67 7.48 -8 -12.08 27.58 -9 8.56 -9.37 -10 -6.58 22.8 -11 0.09 18.75 ------ 23 ----- -Ball 5.59 -11.36 -1 -50 0 -2 -8.36 -12.85 -3 -7.1 -4.4 -4 -6.92 -21.11 -5 -5.59 6.22 -6 -5.12 -10.24 -7 -5.57 -17.61 -8 -1.98 -1.26 -9 -3.05 -19.68 -10 13.16 16.76 -11 6.94 -1.17 ------ 24 ----- -Ball 5.59 11.36 -1 -50 0 -2 -7.1 4.4 -3 -8.36 12.85 -4 -5.59 -6.22 -5 -6.92 21.11 -6 -5.12 10.24 -7 -1.98 1.26 -8 -5.57 17.61 -9 13.16 -16.76 -10 -3.05 19.68 -11 6.94 1.17 ------ 25 ----- -Ball 5.32 -20.37 -1 -50 0 -2 -9.61 -19.5 -3 -7.66 -7.93 -4 -8.45 -27.04 -5 -7.12 5.05 -6 -6.94 -13.52 -7 -6.65 -23.36 -8 -0.72 -4.15 -9 -5.93 -18.42 -10 11.43 14.05 -11 5.59 -8.29 ------ 26 ----- -Ball 5.32 20.37 -1 -50 0 -2 -7.66 7.93 -3 -9.61 19.5 -4 -7.12 -5.05 -5 -8.45 27.04 -6 -6.94 13.52 -7 -0.72 4.15 -8 -6.65 23.36 -9 11.43 -14.05 -10 -5.93 18.42 -11 5.59 8.29 ------ 27 ----- -Ball 6.04 -27.85 -1 -50 0 -2 -6.02 -21.65 -3 -5.77 -10.36 -4 -6.65 -29.47 -5 -4.69 1.98 -6 -2.34 -16.53 -7 -4.04 -25.43 -8 0.81 -3.7 -9 -1.35 -21.02 -10 11.65 12.19 -11 8.47 -14.06 ------ 28 ----- -Ball 6.04 27.85 -1 -50 0 -2 -5.77 10.36 -3 -6.02 21.65 -4 -4.69 -1.98 -5 -6.65 29.47 -6 -2.34 16.53 -7 0.81 3.7 -8 -4.04 25.43 -9 11.65 -12.19 -10 -1.35 21.02 -11 8.47 14.06 ------ 29 ----- -Ball 43.71 -26.77 -1 -50 0 -2 -0.54 -11.68 -3 0.09 0.09 -4 3.15 -22.59 -5 4.94 9.6 -6 18.69 -12.31 -7 27.58 -23.72 -8 32.7 -10.78 -9 31.36 -28.03 -10 40.79 -5.75 -11 31.98 -19.5 ------ 30 ----- -Ball 43.71 26.77 -1 -50 0 -2 0.09 -0.09 -3 -0.54 11.68 -4 4.94 -9.6 -5 3.15 22.59 -6 18.69 12.31 -7 32.7 10.78 -8 27.58 23.72 -9 40.79 5.75 -10 31.36 28.03 -11 31.98 19.5 ------ 31 ----- -Ball 21.9 -12.8 -1 -50 0 -2 0.08 -11.13 -3 0.03 2.01 -4 0.18 -23.54 -5 0.45 13.08 -6 7.55 -6.2 -7 7.28 -16.26 -8 11.5 -1.71 -9 11.86 -21.47 -10 21.65 15 -11 10.42 -11.05 ------ 32 ----- -Ball 21.9 12.8 -1 -50 0 -2 0.03 -2.01 -3 0.08 11.13 -4 0.45 -13.08 -5 0.18 23.54 -6 7.55 6.2 -7 11.5 1.71 -8 7.28 16.26 -9 21.65 -15 -10 11.86 21.47 -11 10.42 11.05 ------ 33 ----- -Ball 21.27 -21.99 -1 -50 0 -2 0.18 -13.61 -3 0.27 -3.24 -4 -0.18 -27.58 -5 0.54 8.56 -6 9.55 -10.09 -7 7.75 -20.55 -8 12.71 -7.39 -9 9.91 -25.05 -10 20.64 -0.99 -11 9.64 -16.49 ------ 34 ----- -Ball 21.27 21.99 -1 -50 0 -2 0.27 3.24 -3 0.18 13.61 -4 0.54 -8.56 -5 -0.18 27.58 -6 9.55 10.09 -7 12.71 7.39 -8 7.75 20.55 -9 20.64 0.99 -10 9.91 25.05 -11 9.64 16.49 ------ 35 ----- -Ball 35.69 -8.56 -1 -50 0 -2 -0.45 -10.42 -3 0.63 3.5 -4 3.45 -20.89 -5 5.09 13.48 -6 9.25 -3.23 -7 22.01 -14.46 -8 23.09 -3.41 -9 25.79 -17.88 -10 26.32 3.68 -11 24.51 -8.92 ------ 36 ----- -Ball 35.69 8.56 -1 -50 0 -2 0.63 -3.5 -3 -0.45 10.42 -4 5.09 -13.48 -5 3.45 20.89 -6 9.25 3.23 -7 23.09 3.41 -8 22.01 14.46 -9 26.32 -3.68 -10 25.79 17.88 -11 24.51 8.92 ------ 37 ----- -Ball 31 -28.39 -1 -50 0 -2 0.18 -10.36 -3 2.88 0.27 -4 0.36 -22.89 -5 9.88 9.61 -6 10.42 -9.34 -7 17.66 -23.88 -8 22.64 -15.18 -9 18.39 -28.75 -10 25.34 -2.16 -11 19.56 -19.47 ------ 38 ----- -Ball 31 28.39 -1 -50 0 -2 2.88 -0.27 -3 0.18 10.36 -4 9.88 -9.61 -5 0.36 22.89 -6 10.42 9.34 -7 22.64 15.18 -8 17.66 23.88 -9 25.34 2.16 -10 18.39 28.75 -11 19.56 19.47 ------ 39 ----- -Ball -25.96 -36 -1 -50 0 -2 -38.99 -16.71 -3 -37.91 -6.56 -4 -39.53 -27.31 -5 -36.57 4.94 -6 -32.43 -17.43 -7 -34.23 -24.89 -8 -19.65 -5.68 -9 -25.25 -22.37 -10 0.05 16.07 -11 -2.05 -11.45 ------ 40 ----- -Ball -25.96 36 -1 -50 0 -2 -37.91 6.56 -3 -38.99 16.71 -4 -36.57 -4.94 -5 -39.53 27.31 -6 -32.43 17.43 -7 -19.65 5.68 -8 -34.23 24.89 -9 0.05 -16.07 -10 -25.25 22.37 -11 -2.05 11.45 ------ 41 ----- -Ball -34.7 -36 -1 -50 -0 -2 -45.42 -16.67 -3 -41.17 -6.38 -4 -43.38 -26.2 -5 -42.27 5.02 -6 -40.74 -16.42 -7 -38.7 -22.37 -8 -26.68 -5.3 -9 -30.37 -23.56 -10 -6.21 10.04 -11 -15.91 -13.86 ------ 42 ----- -Ball -34.7 36 -1 -50 0 -2 -41.17 6.38 -3 -45.42 16.67 -4 -42.27 -5.02 -5 -43.38 26.2 -6 -40.74 16.42 -7 -26.68 5.3 -8 -38.7 22.37 -9 -6.21 -10.04 -10 -30.37 23.56 -11 -15.91 13.86 ------ 43 ----- -Ball -16.13 -36 -1 -50 0 -2 -30.37 -20.37 -3 -29.74 -7.57 -4 -30.19 -31.27 -5 -25.42 2.88 -6 -24.53 -18.78 -7 -26.86 -26.5 -8 -14.15 -4.87 -9 -17.07 -21.11 -10 3.1 15.08 -11 0.51 -11.31 ------ 44 ----- -Ball -16.13 36 -1 -50 0 -2 -29.74 7.57 -3 -30.37 20.37 -4 -25.42 -2.88 -5 -30.19 31.27 -6 -24.53 18.78 -7 -14.15 4.87 -8 -26.86 26.5 -9 3.1 -15.08 -10 -17.07 21.11 -11 0.51 11.31 -End Samples -End diff --git a/src/formation_dt/setplay_our_formation.conf b/src/formation_dt/setplay_our_formation.conf deleted file mode 100644 index 537c483..0000000 --- a/src/formation_dt/setplay_our_formation.conf +++ /dev/null @@ -1,615 +0,0 @@ -Formation DelaunayTriangulation 2 -Begin Roles -1 Goalie 0 -2 CenterBack -1 -3 CenterBack 2 -4 SideBack -1 -5 SideBack 4 -6 DefensiveHalf 0 -7 OffensiveHalf -1 -8 OffensiveHalf 7 -9 SideForward -1 -10 SideForward 9 -11 CenterForward 0 -End Roles -Begin Samples 2 46 ------ 0 ----- -Ball 0 0 -1 -50 0 -2 -15.22 -4.84 -3 -15.33 3.66 -4 -9.29 -15.12 -5 -10.84 13.69 -6 -0.71 -0.36 -7 0 -6.97 -8 0.48 6.73 -9 13.69 -20.13 -10 10.73 24 -11 16.08 0 ------ 1 ----- -Ball -54 0 -1 -50 -0 -2 -46.15 -1.92 -3 -46.03 2.88 -4 -45.07 -7.57 -5 -45.55 7.93 -6 -39.78 0 -7 -36.3 -15.98 -8 -37.02 11.78 -9 -22 -28 -10 -19.29 26.44 -11 -16.47 -0.84 ------ 2 ----- -Ball 36.26 0 -1 -50 0 -2 0 -7.38 -3 0 7.38 -4 4 -17.7 -5 4 17.7 -6 15.24 0.48 -7 27.75 -8.1 -8 28.1 9.76 -9 35.96 -16.2 -10 36.56 16.91 -11 35.61 0 ------ 3 ----- -Ball -41.78 0 -1 -50 0 -2 -42.99 -0.71 -3 -42.91 4.21 -4 -42.31 -7.69 -5 -42.91 9.01 -6 -36.66 0.36 -7 -33.41 -10.82 -8 -31.61 10.94 -9 -15.48 -29.41 -10 -17.51 27.15 -11 -18.27 -0.36 ------ 4 ----- -Ball -26.95 0 -1 -50 0 -2 -30.96 -1.91 -3 -30.25 7.74 -4 -29.9 -11.32 -5 -28.25 16.41 -6 -15.27 -7.63 -7 -17.43 -23.41 -8 -15.52 9.16 -9 -4.76 -27.75 -10 -5.34 26.47 -11 -0.51 0.51 ------ 5 ----- -Ball -17.5 0 -1 -50 0 -2 -23.22 -1.67 -3 -23.2 3.73 -4 -22.84 -8.89 -5 -22.96 12.26 -6 -16.1 1.2 -7 -11.9 -4.69 -8 -10.94 6.37 -9 1.2 -15.38 -10 0.12 18.51 -11 2.4 0 ------ 6 ----- -Ball 7.67 0 -1 -50 0 -2 -5.9 -5.31 -3 -6.02 5.19 -4 -3.07 -16.04 -5 -2.95 16.39 -6 6.25 -0.36 -7 11.66 -5.77 -8 11.78 6.13 -9 21.76 -22.52 -10 22.78 23.54 -11 17.43 0 ------ 7 ----- -Ball 49.5 -20.51 -1 -50 -0 -2 3 -8.85 -3 0 5 -4 5 -20 -5 12 15.5 -6 21.04 -6.95 -7 32.8 -18.96 -8 35.1 0.46 -9 45.46 -24.17 -10 44.84 10.61 -11 45.68 -10.85 ------ 8 ----- -Ball 49.5 20.51 -1 -50 0 -2 0 -5 -3 3 8.85 -4 12 -15.5 -5 5 20 -6 21.04 6.95 -7 35.1 -0.46 -8 32.8 18.96 -9 44.84 -10.61 -10 45.46 24.17 -11 45.68 10.85 ------ 9 ----- -Ball -54 -10 -1 -50.57 -6.44 -2 -48.18 -5.96 -3 -48.06 -1.07 -4 -49.5 -9.06 -5 -47.94 4.06 -6 -44.37 -2.62 -7 -43.73 -9.47 -8 -31.39 8.23 -9 -24.81 -29.58 -10 -18.82 25.56 -11 -20.87 -8.59 ------ 10 ----- -Ball -54 10 -1 -50.57 6.44 -2 -48.06 1.07 -3 -48.18 5.96 -4 -47.94 -4.06 -5 -49.5 9.06 -6 -44.37 2.62 -7 -31.39 -8.23 -8 -43.73 9.47 -9 -18.82 -25.56 -10 -24.81 29.58 -11 -20.87 8.59 ------ 11 ----- -Ball -6 0 -1 -50 0 -2 -9.67 -0.25 -3 -14 4.58 -4 -13.23 -12.34 -5 -8.91 12.34 -6 -5.09 -9.92 -7 -0.51 -21.38 -8 1.65 11.71 -9 10.26 -24 -10 10.73 24 -11 4.84 0 ------ 12 ----- -Ball -12 0 -1 -50 0 -2 -19.35 -3.12 -3 -19.11 3 -4 -17.91 -11.18 -5 -17.55 11.06 -6 -13.22 0.12 -7 -6.97 -6.85 -8 -7.57 5.29 -9 1.92 -21.51 -10 0.84 22.23 -11 5.65 0.36 ------ 13 ----- -Ball 35.78 -9.54 -1 -50 0 -2 1.68 -7.93 -3 4.93 6.85 -4 5 -20 -5 12.26 16.47 -6 16.55 -2.26 -7 21.79 -15.36 -8 26.44 1.07 -9 35.73 -17.03 -10 35.13 8.57 -11 33.94 -8.57 ------ 14 ----- -Ball 35.78 9.54 -1 -50 -0 -2 4.93 -7.33 -3 2.16 8.65 -4 12 -15.5 -5 5 20 -6 16.55 2.26 -7 26.44 -1.07 -8 21.79 15.36 -9 35.13 -8.57 -10 35.73 17.03 -11 33.94 8.57 ------ 15 ----- -Ball 54 -35 -1 -50 0 -2 -0.89 -12.98 -3 6.36 2.29 -4 8.3 -27.3 -5 18.32 10.56 -6 20.16 -10.85 -7 38.11 -27.75 -8 38.3 -4.2 -9 47.63 -30.13 -10 47.28 -2.38 -11 48.47 -19.77 ------ 16 ----- -Ball 54 35 -1 -50 -0 -2 6.36 -2.29 -3 -0.89 12.98 -4 18.32 -10.56 -5 8.3 27.3 -6 20.16 10.85 -7 38.3 4.2 -8 38.11 27.75 -9 47.28 2.38 -10 47.63 30.13 -11 48.47 19.77 ------ 17 ----- -Ball -12 -35 -1 -50 0 -2 -17.51 -22.27 -3 -18.01 -8.59 -4 -13.46 -32.39 -5 -18.72 4.06 -6 -7.5 -15.36 -7 -8.65 -28.96 -8 -5.96 0.12 -9 4.17 -31.84 -10 0.95 18.25 -11 5.48 -7.15 ------ 18 ----- -Ball -12 35 -1 -50 -0 -2 -18.01 8.59 -3 -17.51 22.27 -4 -18.72 -4.06 -5 -13.46 32.39 -6 -7.5 15.36 -7 -5.96 -0.12 -8 -7.57 30.17 -9 0.95 -18.25 -10 4.17 31.84 -11 5.48 7.15 ------ 19 ----- -Ball -36.02 -35 -1 -50 -0.01 -2 -37.79 -14.51 -3 -38.05 -7.25 -4 -36.32 -30.49 -5 -37.92 1.27 -6 -30.54 -19.34 -7 -26.08 -24.69 -8 -20.16 0.6 -9 -12.72 -32.32 -10 -7.44 19.44 -11 -7.62 -11.95 ------ 20 ----- -Ball -36.02 35 -1 -50 0.01 -2 -38.05 7.25 -3 -37.79 14.51 -4 -37.92 -1.27 -5 -36.32 30.49 -6 -30.54 19.34 -7 -20.16 -0.6 -8 -26.08 24.69 -9 -7.44 -19.44 -10 -12.72 32.32 -11 -7.62 11.95 ------ 21 ----- -Ball -54 -35 -1 -50 0 -2 -46.83 -11.96 -3 -46.51 -4.65 -4 -50.73 -32.15 -5 -45.56 4.77 -6 -41.99 -15.01 -7 -35.76 -22.52 -8 -23.79 0.76 -9 -22.39 -31.81 -10 -12.98 19.47 -11 -16.92 -13.11 ------ 22 ----- -Ball -54 35 -1 -50 -0 -2 -46.51 4.65 -3 -46.83 11.96 -4 -45.56 -4.77 -5 -50.73 32.15 -6 -41.99 15.01 -7 -23.79 -0.76 -8 -35.76 22.52 -9 -12.98 -19.47 -10 -22.39 31.81 -11 -16.92 13.11 ------ 23 ----- -Ball -17.5 -11 -1 -50 0 -2 -26.59 -10.18 -3 -26.47 -3.94 -4 -26.72 -14.63 -5 -26.21 2.54 -6 -19.98 -11.07 -7 -17.43 -18.96 -8 -15.27 -1.4 -9 -4.07 -30.92 -10 -1.02 17.69 -11 -3.82 -10.69 ------ 24 ----- -Ball -17.5 11 -1 -50 -0 -2 -26.47 3.94 -3 -26.59 10.18 -4 -26.21 -2.54 -5 -26.72 14.63 -6 -19.98 11.07 -7 -15.27 1.4 -8 -17.43 18.96 -9 -1.02 -17.69 -10 -4.07 30.92 -11 -3.82 10.69 ------ 25 ----- -Ball 36.08 -20.6 -1 -50 0 -2 2.57 -11.68 -3 0 2.08 -4 4.57 -22.24 -5 9.42 13.34 -6 17.57 -12.21 -7 32.96 -16.03 -8 28.91 -1.62 -9 38.94 -20.74 -10 39.06 2.16 -11 37.92 -10.18 ------ 26 ----- -Ball 36.08 20.6 -1 -50 -0 -2 0 -2.08 -3 2.57 11.68 -4 9.42 -13.34 -5 4.57 22.24 -6 17.57 12.21 -7 28.91 1.62 -8 32.96 16.03 -9 39.06 -2.16 -10 38.94 20.74 -11 37.92 10.18 ------ 27 ----- -Ball -26.95 -11 -1 -50 0 -2 -30.25 -11.07 -3 -29.69 -2.28 -4 -29.81 -18.03 -5 -26.92 7.69 -6 -21.75 -7.69 -7 -18.87 -29.81 -8 -12.5 5.05 -9 -4.64 -30.01 -10 -3.73 23.56 -11 -6.61 -10.94 ------ 28 ----- -Ball -26.95 11 -1 -50 -0 -2 -29.69 2.28 -3 -30.25 11.07 -4 -26.92 -7.69 -5 -29.81 18.03 -6 -21.75 7.69 -7 -12.5 -5.05 -8 -18.87 29.81 -9 -3.73 -23.56 -10 -4.64 30.01 -11 -6.61 10.94 ------ 29 ----- -Ball -48.97 -17.73 -1 -50 -7 -2 -47.24 -6.8 -3 -46.76 -0.19 -4 -46.68 -16.79 -5 -46.57 4.31 -6 -40.62 -8.41 -7 -37.14 -28.12 -8 -35.33 4.21 -9 -18.7 -31.91 -10 -20.48 23.1 -11 -17.62 -9.17 ------ 30 ----- -Ball -48.97 17.73 -1 -50 7 -2 -46.76 0.19 -3 -47.24 6.8 -4 -46.57 -4.31 -5 -46.68 16.79 -6 -40.62 8.41 -7 -35.33 -4.21 -8 -37.14 28.12 -9 -20.48 -23.1 -10 -18.7 31.91 -11 -17.62 9.17 ------ 31 ----- -Ball -26.95 -31.61 -1 -50 -0.02 -2 -30.65 -16.82 -3 -30.77 -6.44 -4 -30.06 -29.1 -5 -30.29 3.7 -6 -21.03 -15.74 -7 -24.04 -26.08 -8 -15.24 -1.07 -9 -4.96 -32.07 -10 -7.86 21.08 -11 -0.24 -11.31 ------ 32 ----- -Ball -26.95 31.61 -1 -50 0.02 -2 -30.77 6.44 -3 -30.65 16.82 -4 -30.29 -3.7 -5 -30.06 29.1 -6 -21.03 15.74 -7 -15.24 1.07 -8 -24.04 26.08 -9 -7.86 -21.08 -10 -4.96 32.07 -11 -0.24 11.31 ------ 33 ----- -Ball 15.14 0 -1 -50 0 -2 0.13 -4.07 -3 0.25 4.45 -4 0 -16.13 -5 0 16.13 -6 13.34 0.24 -7 17.07 -7.45 -8 18.15 6.85 -9 22.63 -28.94 -10 24.41 28.34 -11 22.59 0.12 ------ 34 ----- -Ball 23.26 -21.95 -1 -50 0 -2 2 -15.44 -3 4.45 -1.2 -4 4 -25.21 -5 7.81 9.98 -6 13.81 -12.62 -7 20.31 -21.63 -8 20.24 1.31 -9 28.58 -31.08 -10 27.63 19.29 -11 28.22 -12.15 ------ 35 ----- -Ball 23.26 21.95 -1 -50 -0 -2 4.45 1.2 -3 2 15.44 -4 7.81 -9.98 -5 4 25.21 -6 13.81 12.62 -7 20.24 -1.31 -8 20.31 21.63 -9 27.63 -19.29 -10 28.58 31.08 -11 28.22 12.15 ------ 36 ----- -Ball 0 -11 -1 -50 0 -2 -10.84 -11.19 -3 -10.46 -3.85 -4 -9.65 -21.67 -5 -9.54 9.16 -6 -1.32 -11.18 -7 1.44 -16.35 -8 2.16 0.96 -9 14.12 -27.99 -10 14.51 16.92 -11 12.72 -8.91 ------ 37 ----- -Ball 0 11 -1 -50 -0 -2 -10.46 3.85 -3 -10.84 11.19 -4 -9.54 -9.16 -5 -9.65 21.67 -6 -1.32 11.18 -7 2.16 -0.96 -8 1.44 16.35 -9 14.51 -16.92 -10 14.12 27.99 -11 12.72 8.91 ------ 38 ----- -Ball 0 -35 -1 -50 0 -2 -7.81 -20.31 -3 -8.65 -10.46 -4 -2.16 -33.05 -5 -5.37 4.29 -6 -0.48 -16.47 -7 2.88 -28.72 -8 5.49 -0.12 -9 15.14 -32.93 -10 14.89 18.34 -11 14.89 -12.5 ------ 39 ----- -Ball 0 35 -1 -50 -0 -2 -8.65 10.46 -3 -7.81 20.31 -4 -5.37 -4.29 -5 -2.16 33.05 -6 -0.48 16.47 -7 5.49 0.12 -8 2.88 28.72 -9 14.89 -18.34 -10 15.14 32.93 -11 14.89 12.5 ------ 40 ----- -Ball 22.74 -30.01 -1 -50 0 -2 -0.96 -16.59 -3 1.68 -2.28 -4 1.85 -27.71 -5 4.21 8.37 -6 12.38 -17.15 -7 21.03 -29.57 -8 18.62 0.38 -9 26.08 -24.88 -10 27 16.09 -11 27.75 -9.17 ------ 41 ----- -Ball 22.74 30.01 -1 -50 -0 -2 1.68 2.28 -3 -0.96 16.59 -4 4.21 -8.37 -5 1.85 27.71 -6 12.38 17.15 -7 18.62 -0.38 -8 21.03 29.57 -9 27 -16.09 -10 26.08 24.88 -11 27.75 9.17 ------ 42 ----- -Ball -12 -19 -1 -50 0 -2 -14.06 -18.51 -3 -18.1 -7.15 -4 -16.95 -24.28 -5 -17.43 3.61 -6 -8.29 -12.74 -7 -5.89 -20.67 -8 -1.53 3.94 -9 3.45 -30.49 -10 3.33 25.13 -11 2.38 -8.1 ------ 43 ----- -Ball -12 19 -1 -50 -0 -2 -18.1 7.15 -3 -14.06 18.51 -4 -17.43 -3.61 -5 -16.95 24.28 -6 -8.29 12.74 -7 -1.53 -3.94 -8 -5.89 20.67 -9 3.33 -25.13 -10 3.45 30.49 -11 2.38 8.1 ------ 44 ----- -Ball -42.1 -28.03 -1 -50 -0.04 -2 -42.16 -14.65 -3 -41.86 -6.87 -4 -42.99 -26.08 -5 -40.72 1.53 -6 -35.21 -15.5 -7 -37.26 -22.84 -8 -22.03 1.19 -9 -18.99 -32.33 -10 -12.76 21.71 -11 -10.36 -13.93 ------ 45 ----- -Ball -42.1 28.03 -1 -50 0.04 -2 -41.86 6.87 -3 -42.16 14.65 -4 -40.72 -1.53 -5 -42.99 26.08 -6 -35.21 15.5 -7 -22.03 -1.19 -8 -37.26 22.84 -9 -12.76 -21.71 -10 -18.99 32.33 -11 -10.36 13.93 -End Samples -End