diff --git a/generate.sh b/generate.sh index 35b8c55..82de731 100755 --- a/generate.sh +++ b/generate.sh @@ -1 +1,2 @@ -python3 -m grpc_tools.protoc -I./protos --python_out=./ --pyi_out=./ --grpc_python_out=./ ./protos/*.proto \ No newline at end of file +#python3 -m grpc_tools.protoc -I./protos --python_out=./ --pyi_out=./ --grpc_python_out=./ ./protos/*.proto +thrift --gen py -out ./ ./idl/*.thrift \ No newline at end of file diff --git a/idl/soccer_service.thrift b/idl/soccer_service.thrift new file mode 100644 index 0000000..be77b97 --- /dev/null +++ b/idl/soccer_service.thrift @@ -0,0 +1,1173 @@ +namespace cpp soccer +namespace py soccer + +enum ViewWidth { + NARROW = 0, + NORMAL = 1, + WIDE = 2 +} + +enum AgentType { + PlayerT = 0, + CoachT = 1, + TrainerT = 2 +} + +struct RpcVector2D { + 1: double x, + 2: double y, + 3: double dist, + 4: double angle +} + +struct Ball { + 1: RpcVector2D position, + 2: RpcVector2D relative_position, + 3: RpcVector2D seen_position, + 4: RpcVector2D heard_position, + 5: RpcVector2D velocity, + 6: RpcVector2D seen_velocity, + 7: RpcVector2D heard_velocity, + 8: i32 pos_count, + 9: i32 seen_pos_count, + 10: i32 heard_pos_count, + 11: i32 vel_count, + 12: i32 seen_vel_count, + 13: i32 heard_vel_count, + 14: i32 lost_count, + 15: i32 ghost_count, + 16: double dist_from_self, + 17: double angle_from_self +} + +enum Side { + UNKNOWN = 0, + LEFT = 1, + RIGHT = 2 +} + +enum LoggerLevel { + NoneLevel = 0, + SYSTEM = 1, + SENSOR = 2, + WORLD = 4, + ACTION = 8, + INTERCEPT = 16, + KICK = 32, + HOLD = 64, + DRIBBLE = 128, + PASS = 256, + CROSS = 512, + SHOOT = 1024, + CLEAR = 2048, + BLOCK = 4096, + MARK = 8192, + POSITIONING = 16384, + ROLE = 32768, + TEAM = 65536, + COMMUNICATION = 131072, + ANALYZER = 262144, + ACTION_CHAIN = 524288, + PLAN = 1048576 +} + +struct Player { + 1: RpcVector2D position, + 2: RpcVector2D seen_position, + 3: RpcVector2D heard_position, + 4: RpcVector2D velocity, + 5: RpcVector2D seen_velocity, + 6: i32 pos_count, + 7: i32 seen_pos_count, + 8: i32 heard_pos_count, + 9: i32 vel_count, + 10: i32 seen_vel_count, + 11: i32 ghost_count, + 12: double dist_from_self, + 13: double angle_from_self, + 14: i32 id, + 15: Side side, + 16: i32 uniform_number, + 17: i32 uniform_number_count, + 18: bool is_goalie, + 19: double body_direction, + 20: i32 body_direction_count, + 21: double face_direction, + 22: i32 face_direction_count, + 23: double point_to_direction, + 24: i32 point_to_direction_count, + 25: bool is_kicking, + 26: double dist_from_ball, + 27: double angle_from_ball, + 28: i32 ball_reach_steps, + 29: bool is_tackling, + 30: i32 type_id +} + +struct Self { + 1: RpcVector2D position, + 2: RpcVector2D seen_position, + 3: RpcVector2D heard_position, + 4: RpcVector2D velocity, + 5: RpcVector2D seen_velocity, + 6: i32 pos_count, + 7: i32 seen_pos_count, + 8: i32 heard_pos_count, + 9: i32 vel_count, + 10: i32 seen_vel_count, + 11: i32 ghost_count, + 12: i32 id, + 13: Side side, + 14: i32 uniform_number, + 15: i32 uniform_number_count, + 16: bool is_goalie, + 17: double body_direction, + 18: i32 body_direction_count, + 19: double face_direction, + 20: i32 face_direction_count, + 21: double point_to_direction, + 22: i32 point_to_direction_count, + 23: bool is_kicking, + 24: double dist_from_ball, + 25: double angle_from_ball, + 26: i32 ball_reach_steps, + 27: bool is_tackling, + 28: double relative_neck_direction, + 29: double stamina, + 30: bool is_kickable, + 31: double catch_probability, + 32: double tackle_probability, + 33: double foul_probability, + 34: ViewWidth view_width, + 35: i32 type_id, + 36: double kick_rate +} + +enum InterceptActionType { + UNKNOWN_Intercept_Action_Type = 0, + OMNI_DASH = 1, + TURN_FORWARD_DASH = 2, + TURN_BACKWARD_DASH = 3 +} + +struct InterceptInfo { + 1: InterceptActionType action_type, + 2: i32 turn_steps, + 3: double turn_angle, + 4: i32 dash_steps, + 5: double dash_power, + 6: double dash_dir, + 7: RpcVector2D final_self_position, + 8: double final_ball_dist, + 9: double final_stamina, + 10: double value +} + +struct InterceptTable { + 1: i32 self_reach_steps, + 2: i32 first_teammate_reach_steps, + 3: i32 second_teammate_reach_steps, + 4: i32 first_opponent_reach_steps, + 5: i32 second_opponent_reach_steps, + 6: i32 first_teammate_id, + 7: i32 second_teammate_id, + 8: i32 first_opponent_id, + 9: i32 second_opponent_id, + 10: list self_intercept_info +} + +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 +} + +struct WorldModel { + 1: InterceptTable intercept_table, + 2: string our_team_name, + 3: string their_team_name, + 4: Side our_side, + 5: i32 last_set_play_start_time, + 6: Self myself, + 7: Ball ball, + 8: list teammates, + 9: list opponents, + 10: list unknowns, + 11: map our_players_dict, + 12: map their_players_dict, + 13: i32 our_goalie_uniform_number, + 14: i32 their_goalie_uniform_number, + 15: double offside_line_x, + 16: i32 offside_line_x_count, + 17: i32 kickable_teammate_id, + 18: i32 kickable_opponent_id, + 19: Side last_kick_side, + 20: i32 last_kicker_uniform_number, + 21: i32 cycle, + 22: GameModeType game_mode_type, + 23: i32 left_team_score, + 24: i32 right_team_score, + 25: bool is_our_set_play, + 26: bool is_their_set_play, + 27: i32 stoped_cycle, + 28: i32 our_team_score, + 29: i32 their_team_score, + 30: bool is_penalty_kick_mode, + 31: map helios_home_positions +} + +struct State { + 1: AgentType agent_type, + 2: WorldModel world_model, + 3: WorldModel full_world_model +} + +struct InitMessage { + 1: AgentType agent_type, + 2: bool debug_mode +} + +struct Dash { + 1: double power, + 2: double relative_direction +} + +struct Turn { + 1: double relative_direction +} + +struct Kick { + 1: double power, + 2: double relative_direction +} + +struct Tackle { + 1: double power_or_dir, + 2: bool foul +} + +struct Catch {} + +struct Move { + 1: double x, + 2: double y +} + +struct TurnNeck { + 1: double moment +} + +struct ChangeView { + 1: ViewWidth view_width +} + +struct BallMessage { + 1: RpcVector2D ball_position, + 2: RpcVector2D ball_velocity +} + +struct PassMessage { + 1: i32 receiver_uniform_number, + 2: RpcVector2D receiver_point, + 3: RpcVector2D ball_position, + 4: RpcVector2D ball_velocity +} + +struct InterceptMessage { + 1: bool our, + 2: i32 uniform_number, + 3: i32 cycle +} + +struct GoalieMessage { + 1: i32 goalie_uniform_number, + 2: RpcVector2D goalie_position, + 3: double goalie_body_direction +} + +struct GoalieAndPlayerMessage { + 1: i32 goalie_uniform_number, + 2: RpcVector2D goalie_position, + 3: double goalie_body_direction, + 4: i32 player_uniform_number, + 5: RpcVector2D player_position +} + +struct OffsideLineMessage { + 1: double offside_line_x +} + +struct DefenseLineMessage { + 1: double defense_line_x +} + +struct WaitRequestMessage {} + +struct SetplayMessage { + 1: i32 wait_step +} + +struct PassRequestMessage { + 1: RpcVector2D target_point +} + +struct StaminaMessage { + 1: double stamina +} + +struct RecoveryMessage { + 1: double recovery +} + +struct StaminaCapacityMessage { + 1: double stamina_capacity +} + +struct DribbleMessage { + 1: RpcVector2D target_point, + 2: i32 queue_count +} + +struct BallGoalieMessage { + 1: RpcVector2D ball_position, + 2: RpcVector2D ball_velocity, + 3: RpcVector2D goalie_position, + 4: double goalie_body_direction +} + +struct OnePlayerMessage { + 1: i32 uniform_number, + 2: RpcVector2D position +} + +struct TwoPlayerMessage { + 1: i32 first_uniform_number, + 2: RpcVector2D first_position, + 3: i32 second_uniform_number, + 4: RpcVector2D second_position +} + +struct ThreePlayerMessage { + 1: i32 first_uniform_number, + 2: RpcVector2D first_position, + 3: i32 second_uniform_number, + 4: RpcVector2D second_position, + 5: i32 third_uniform_number, + 6: RpcVector2D third_position +} + +struct SelfMessage { + 1: RpcVector2D self_position, + 2: double self_body_direction, + 3: double self_stamina +} + +struct TeammateMessage { + 1: i32 uniform_number, + 2: RpcVector2D position, + 3: double body_direction +} + +struct OpponentMessage { + 1: i32 uniform_number, + 2: RpcVector2D position, + 3: double body_direction +} + +struct BallPlayerMessage { + 1: RpcVector2D ball_position, + 2: RpcVector2D ball_velocity, + 3: i32 uniform_number, + 4: RpcVector2D player_position, + 5: double body_direction +} + +struct Say { + 1: optional BallMessage ball_message, + 2: optional PassMessage pass_message, + 3: optional InterceptMessage intercept_message, + 4: optional GoalieMessage goalie_message, + 5: optional GoalieAndPlayerMessage goalie_and_player_message, + 6: optional OffsideLineMessage offside_line_message, + 7: optional DefenseLineMessage defense_line_message, + 8: optional WaitRequestMessage wait_request_message, + 9: optional SetplayMessage setplay_message, + 10: optional PassRequestMessage pass_request_message, + 11: optional StaminaMessage stamina_message, + 12: optional RecoveryMessage recovery_message, + 13: optional StaminaCapacityMessage stamina_capacity_message, + 14: optional DribbleMessage dribble_message, + 15: optional BallGoalieMessage ball_goalie_message, + 16: optional OnePlayerMessage one_player_message, + 17: optional TwoPlayerMessage two_player_message, + 18: optional ThreePlayerMessage three_player_message, + 19: optional SelfMessage self_message, + 20: optional TeammateMessage teammate_message, + 21: optional OpponentMessage opponent_message, + 22: optional BallPlayerMessage ball_player_message +} + +struct PointTo { + 1: double x, + 2: double y +} + +struct PointToOf {} + +struct AttentionTo { + 1: Side side, + 2: i32 unum +} + +struct AttentionToOf {} + +struct AddText { + 1: LoggerLevel level, + 2: string message +} + +struct AddPoint { + 1: LoggerLevel level, + 2: RpcVector2D point, + 3: string color +} + +struct AddLine { + 1: LoggerLevel level, + 2: RpcVector2D start_point, + 3: RpcVector2D end_point, + 4: string color +} + +struct AddArc { + 1: LoggerLevel level, + 2: RpcVector2D center, + 3: double radius, + 4: double start_angle, + 5: double span_angel, + 6: string color +} + +struct AddCircle { + 1: LoggerLevel level, + 2: RpcVector2D center, + 3: double radius, + 4: string color, + 5: bool fill +} + +struct AddTriangle { + 1: LoggerLevel level, + 2: RpcVector2D point1, + 3: RpcVector2D point2, + 4: RpcVector2D point3, + 5: string color, + 6: bool fill +} + +struct AddRectangle { + 1: LoggerLevel level, + 2: double left, + 3: double top, + 4: double length, + 5: double width, + 6: string color, + 7: bool fill +} + +struct AddSector { + 1: LoggerLevel level, + 2: RpcVector2D center, + 3: double min_radius, + 4: double max_radius, + 5: double start_angle, + 6: double span_angel, + 7: string color, + 8: bool fill +} + +struct AddMessage { + 1: LoggerLevel level, + 2: RpcVector2D position, + 3: string message, + 4: string color +} + +struct Log { + 1: optional AddText add_text, + 2: optional AddPoint add_point, + 3: optional AddLine add_line, + 4: optional AddArc add_arc, + 5: optional AddCircle add_circle, + 6: optional AddTriangle add_triangle, + 7: optional AddRectangle add_rectangle, + 8: optional AddSector add_sector, + 9: optional AddMessage add_message +} + +struct DebugClient { + 1: string message +} + +struct Body_GoToPoint { + 1: RpcVector2D target_point, + 2: double distance_threshold, + 3: double max_dash_power +} + +struct Body_SmartKick { + 1: RpcVector2D target_point, + 2: double first_speed, + 3: double first_speed_threshold, + 4: i32 max_steps +} + +struct Bhv_BeforeKickOff { + 1: RpcVector2D point +} + +struct Bhv_BodyNeckToBall {} + +struct Bhv_BodyNeckToPoint { + 1: RpcVector2D point +} + +struct Bhv_Emergency {} + +struct Bhv_GoToPointLookBall { + 1: RpcVector2D target_point, + 2: double distance_threshold, + 3: double max_dash_power +} + +struct Bhv_NeckBodyToBall { + 1: double angle_buf +} + +struct Bhv_NeckBodyToPoint { + 1: RpcVector2D point, + 2: double angle_buf +} + +struct Bhv_ScanField {} + +struct Body_AdvanceBall {} + +struct Body_ClearBall {} + +struct Body_Dribble { + 1: RpcVector2D target_point, + 2: double distance_threshold, + 3: double dash_power, + 4: i32 dash_count, + 5: bool dodge +} + +struct Body_GoToPointDodge { + 1: RpcVector2D target_point, + 2: double dash_power +} + +struct Body_HoldBall { + 1: bool do_turn, + 2: RpcVector2D turn_target_point, + 3: RpcVector2D kick_target_point +} + +struct Body_Intercept { + 1: bool save_recovery, + 2: RpcVector2D face_point +} + +struct Body_KickOneStep { + 1: RpcVector2D target_point, + 2: double first_speed, + 3: bool force_mode +} + +struct Body_StopBall {} + +struct Body_StopDash { + 1: bool save_recovery +} + +struct Body_TackleToPoint { + 1: RpcVector2D target_point, + 2: double min_probability, + 3: double min_speed +} + +struct Body_TurnToAngle { + 1: double angle +} + +struct Body_TurnToBall { + 1: i32 cycle +} + +struct Body_TurnToPoint { + 1: RpcVector2D target_point, + 2: i32 cycle +} + +struct Focus_MoveToPoint { + 1: RpcVector2D target_point +} + +struct Focus_Reset {} + +struct Neck_ScanField {} + +struct Neck_ScanPlayers {} + +struct Neck_TurnToBallAndPlayer { + 1: Side side, + 2: i32 uniform_number, + 3: i32 count_threshold +} + +struct Neck_TurnToBallOrScan { + 1: i32 count_threshold +} + +struct Neck_TurnToBall {} + +struct Neck_TurnToGoalieOrScan { + 1: i32 count_threshold +} + +struct Neck_TurnToLowConfTeammate {} + +struct Neck_TurnToPlayerOrScan { + 1: Side side, + 2: i32 uniform_number, + 3: i32 count_threshold +} + +struct Neck_TurnToPoint { + 1: RpcVector2D target_point +} + +struct Neck_TurnToRelative { + 1: double angle +} + +struct View_ChangeWidth { + 1: ViewWidth view_width +} + +struct View_Normal {} + +struct View_Synch {} + +struct View_Wide {} + +struct HeliosGoalie {} + +struct HeliosGoalieMove {} + +struct HeliosGoalieKick {} + +struct HeliosShoot {} + +struct HeliosChainAction { + 1: bool direct_pass, + 2: bool lead_pass, + 3: bool through_pass, + 4: bool short_dribble, + 5: bool long_dribble, + 6: bool cross, + 7: bool simple_pass, + 8: bool simple_dribble, + 9: bool simple_shoot +} + +struct HeliosBasicOffensive {} + +struct HeliosBasicMove {} + +struct HeliosSetPlay {} + +struct HeliosPenalty {} + +struct HeliosCommunicaion {} + +struct PlayerAction { + 1: optional Dash dash, + 2: optional Turn turn, + 3: optional Kick kick, + 4: optional Tackle tackle, + 5: optional Catch catch_action, + 6: optional Move move, + 7: optional TurnNeck turn_neck, + 8: optional ChangeView change_view, + 9: optional Say say, + 10: optional PointTo point_to, + 11: optional PointToOf point_to_of, + 12: optional AttentionTo attention_to, + 13: optional AttentionToOf attention_to_of, + 14: optional Log log, + 15: optional DebugClient debug_client, + 16: optional Body_GoToPoint body_go_to_point, + 17: optional Body_SmartKick body_smart_kick, + 18: optional Bhv_BeforeKickOff bhv_before_kick_off, + 19: optional Bhv_BodyNeckToBall bhv_body_neck_to_ball, + 20: optional Bhv_BodyNeckToPoint bhv_body_neck_to_point, + 21: optional Bhv_Emergency bhv_emergency, + 22: optional Bhv_GoToPointLookBall bhv_go_to_point_look_ball, + 23: optional Bhv_NeckBodyToBall bhv_neck_body_to_ball, + 24: optional Bhv_NeckBodyToPoint bhv_neck_body_to_point, + 25: optional Bhv_ScanField bhv_scan_field, + 26: optional Body_AdvanceBall body_advance_ball, + 27: optional Body_ClearBall body_clear_ball, + 28: optional Body_Dribble body_dribble, + 29: optional Body_GoToPointDodge body_go_to_point_dodge, + 30: optional Body_HoldBall body_hold_ball, + 31: optional Body_Intercept body_intercept, + 32: optional Body_KickOneStep body_kick_one_step, + 33: optional Body_StopBall body_stop_ball, + 34: optional Body_StopDash body_stop_dash, + 35: optional Body_TackleToPoint body_tackle_to_point, + 36: optional Body_TurnToAngle body_turn_to_angle, + 37: optional Body_TurnToBall body_turn_to_ball, + 38: optional Body_TurnToPoint body_turn_to_point, + 39: optional Focus_MoveToPoint focus_move_to_point, + 40: optional Focus_Reset focus_reset, + 41: optional Neck_ScanField neck_scan_field, + 42: optional Neck_ScanPlayers neck_scan_players, + 43: optional Neck_TurnToBallAndPlayer neck_turn_to_ball_and_player, + 44: optional Neck_TurnToBallOrScan neck_turn_to_ball_or_scan, + 45: optional Neck_TurnToBall neck_turn_to_ball, + 46: optional Neck_TurnToGoalieOrScan neck_turn_to_goalie_or_scan, + 47: optional Neck_TurnToLowConfTeammate neck_turn_to_low_conf_teammate, + 48: optional Neck_TurnToPlayerOrScan neck_turn_to_player_or_scan, + 49: optional Neck_TurnToPoint neck_turn_to_point, + 50: optional Neck_TurnToRelative neck_turn_to_relative, + 51: optional View_ChangeWidth view_change_width, + 52: optional View_Normal view_normal, + 53: optional View_Synch view_synch, + 54: optional View_Wide view_wide, + 55: optional HeliosGoalie helios_goalie, + 56: optional HeliosGoalieMove helios_goalie_move, + 57: optional HeliosGoalieKick helios_goalie_kick, + 58: optional HeliosShoot helios_shoot, + 59: optional HeliosChainAction helios_chain_action, + 60: optional HeliosBasicOffensive helios_basic_offensive, + 61: optional HeliosBasicMove helios_basic_move, + 62: optional HeliosSetPlay helios_set_play, + 63: optional HeliosPenalty helios_penalty, + 64: optional HeliosCommunicaion helios_communication +} + +struct PlayerActions { + 1: list actions +} + +struct ChangePlayerType { + 1: i32 uniform_number, + 2: i32 type +} + +struct DoHeliosSubstitute {} + +struct DoHeliosSayPlayerTypes {} + +struct CoachAction { + 1: optional ChangePlayerType change_player_types, + 2: optional DoHeliosSubstitute do_helios_substitute, + 3: optional DoHeliosSayPlayerTypes do_helios_say_player_types +} + +struct CoachActions { + 1: list actions +} + +struct DoKickOff {} + +struct DoMoveBall { + 1: RpcVector2D position, + 2: optional RpcVector2D velocity +} + +struct DoMovePlayer { + 1: bool our_side, + 2: i32 uniform_number, + 3: RpcVector2D position, + 4: double body_direction +} + +struct DoRecover {} + +struct DoChangeMode { + 1: GameModeType game_mode_type, + 2: Side side +} + +struct DoChangePlayerType { + 1: bool our_side, + 2: i32 uniform_number, + 3: i32 type +} + +struct TrainerAction { + 1: optional DoKickOff do_kick_off, + 2: optional DoMoveBall do_move_ball, + 3: optional DoMovePlayer do_move_player, + 4: optional DoRecover do_recover, + 5: optional DoChangeMode do_change_mode, + 6: optional DoChangePlayerType do_change_player_type +} + +struct TrainerActions { + 1: list actions +} + +struct ServerParam { + 1: AgentType agent_type, + 2: double inertia_moment, + 3: double player_size, + 4: double player_decay, + 5: double player_rand, + 6: double player_weight, + 7: double player_speed_max, + 8: double player_accel_max, + 9: double stamina_max, + 10: double stamina_inc_max, + 11: double recover_init, + 12: double recover_dec_thr, + 13: double recover_min, + 14: double recover_dec, + 15: double effort_init, + 16: double effort_dec_thr, + 17: double effort_min, + 18: double effort_dec, + 19: double effort_inc_thr, + 20: double effort_inc, + 21: double kick_rand, + 22: bool team_actuator_noise, + 23: double player_rand_factor_l, + 24: double player_rand_factor_r, + 25: double kick_rand_factor_l, + 26: double kick_rand_factor_r, + 27: double ball_size, + 28: double ball_decay, + 29: double ball_rand, + 30: double ball_weight, + 31: double ball_speed_max, + 32: double ball_accel_max, + 33: double dash_power_rate, + 34: double kick_power_rate, + 35: double kickable_margin, + 36: double control_radius, + 37: double control_radius_width, + 38: double max_power, + 39: double min_power, + 40: double max_moment, + 41: double min_moment, + 42: double max_neck_moment, + 43: double min_neck_moment, + 44: double max_neck_angle, + 45: double min_neck_angle, + 46: double visible_angle, + 47: double visible_distance, + 48: double wind_dir, + 49: double wind_force, + 50: double wind_angle, + 51: double wind_rand, + 52: double kickable_area, + 53: double catch_area_l, + 54: double catch_area_w, + 55: double catch_probability, + 56: i32 goalie_max_moves, + 57: double corner_kick_margin, + 58: double offside_active_area_size, + 59: bool wind_none, + 60: bool use_wind_random, + 61: i32 coach_say_count_max, + 62: i32 coach_say_msg_size, + 63: i32 clang_win_size, + 64: i32 clang_define_win, + 65: i32 clang_meta_win, + 66: i32 clang_advice_win, + 67: i32 clang_info_win, + 68: i32 clang_mess_delay, + 69: i32 clang_mess_per_cycle, + 70: i32 half_time, + 71: i32 simulator_step, + 72: i32 send_step, + 73: i32 recv_step, + 74: i32 sense_body_step, + 75: i32 lcm_step, + 76: i32 player_say_msg_size, + 77: i32 player_hear_max, + 78: i32 player_hear_inc, + 79: i32 player_hear_decay, + 80: i32 catch_ban_cycle, + 81: i32 slow_down_factor, + 82: bool use_offside, + 83: bool kickoff_offside, + 84: double offside_kick_margin, + 85: double audio_cut_dist, + 86: double dist_quantize_step, + 87: double landmark_dist_quantize_step, + 88: double dir_quantize_step, + 89: double dist_quantize_step_l, + 90: double dist_quantize_step_r, + 91: double landmark_dist_quantize_step_l, + 92: double landmark_dist_quantize_step_r, + 93: double dir_quantize_step_l, + 94: double dir_quantize_step_r, + 95: bool coach_mode, + 96: bool coach_with_referee_mode, + 97: bool use_old_coach_hear, + 98: double slowness_on_top_for_left_team, + 99: double slowness_on_top_for_right_team, + 100: i32 start_goal_l, + 101: i32 start_goal_r, + 102: bool fullstate_l, + 103: bool fullstate_r, + 104: i32 drop_ball_time, + 105: bool synch_mode, + 106: i32 synch_offset, + 107: i32 synch_micro_sleep, + 108: i32 point_to_ban, + 109: i32 point_to_duration, + 110: i32 player_port, + 111: i32 trainer_port, + 112: i32 online_coach_port, + 113: bool verbose_mode, + 114: i32 coach_send_vi_step, + 115: string replay_file, + 116: string landmark_file, + 117: bool send_comms, + 118: bool text_logging, + 119: bool game_logging, + 120: i32 game_log_version, + 121: string text_log_dir, + 122: string game_log_dir, + 123: string text_log_fixed_name, + 124: string game_log_fixed_name, + 125: bool use_text_log_fixed, + 126: bool use_game_log_fixed, + 127: bool use_text_log_dated, + 128: bool use_game_log_dated, + 129: string log_date_format, + 130: bool log_times, + 131: bool record_message, + 132: i32 text_log_compression, + 133: i32 game_log_compression, + 134: bool use_profile, + 135: double tackle_dist, + 136: double tackle_back_dist, + 137: double tackle_width, + 138: double tackle_exponent, + 139: i32 tackle_cycles, + 140: double tackle_power_rate, + 141: i32 freeform_wait_period, + 142: i32 freeform_send_period, + 143: bool free_kick_faults, + 144: bool back_passes, + 145: bool proper_goal_kicks, + 146: double stopped_ball_vel, + 147: i32 max_goal_kicks, + 148: i32 clang_del_win, + 149: i32 clang_rule_win, + 150: bool auto_mode, + 151: i32 kick_off_wait, + 152: i32 connect_wait, + 153: i32 game_over_wait, + 154: string team_l_start, + 155: string team_r_start, + 156: bool keepaway_mode, + 157: double keepaway_length, + 158: double keepaway_width, + 159: bool keepaway_logging, + 160: string keepaway_log_dir, + 161: string keepaway_log_fixed_name, + 162: bool keepaway_log_fixed, + 163: bool keepaway_log_dated, + 164: i32 keepaway_start, + 165: i32 nr_normal_halfs, + 166: i32 nr_extra_halfs, + 167: bool penalty_shoot_outs, + 168: i32 pen_before_setup_wait, + 169: i32 pen_setup_wait, + 170: i32 pen_ready_wait, + 171: i32 pen_taken_wait, + 172: i32 pen_nr_kicks, + 173: i32 pen_max_extra_kicks, + 174: double pen_dist_x, + 175: bool pen_random_winner, + 176: bool pen_allow_mult_kicks, + 177: double pen_max_goalie_dist_x, + 178: bool pen_coach_moves_players, + 179: string module_dir, + 180: double ball_stuck_area, + 181: string coach_msg_file, + 182: double max_tackle_power, + 183: double max_back_tackle_power, + 184: double player_speed_max_min, + 185: double extra_stamina, + 186: i32 synch_see_offset, + 187: i32 extra_half_time, + 188: double stamina_capacity, + 189: double max_dash_angle, + 190: double min_dash_angle, + 191: double dash_angle_step, + 192: double side_dash_rate, + 193: double back_dash_rate, + 194: double max_dash_power, + 195: double min_dash_power, + 196: double tackle_rand_factor, + 197: double foul_detect_probability, + 198: double foul_exponent, + 199: i32 foul_cycles, + 200: bool golden_goal, + 201: double red_card_probability, + 202: i32 illegal_defense_duration, + 203: i32 illegal_defense_number, + 204: double illegal_defense_dist_x, + 205: double illegal_defense_width, + 206: string fixed_teamname_l, + 207: string fixed_teamname_r, + 208: double max_catch_angle, + 209: double min_catch_angle, + 210: i32 random_seed, + 211: double long_kick_power_factor, + 212: i32 long_kick_delay, + 213: i32 max_monitors, + 214: double catchable_area, + 215: double real_speed_max, + 216: double pitch_half_length, + 217: double pitch_half_width, + 218: double our_penalty_area_line_x, + 219: double their_penalty_area_line_x, + 220: double penalty_area_half_width, + 221: double penalty_area_length, + 222: double goal_width +} + +struct PlayerParam { + 1: AgentType agent_type, + 2: i32 player_types, + 3: i32 subs_max, + 4: i32 pt_max, + 5: bool allow_mult_default_type, + 6: double player_speed_max_delta_min, + 7: double player_speed_max_delta_max, + 8: double stamina_inc_max_delta_factor, + 9: double player_decay_delta_min, + 10: double player_decay_delta_max, + 11: double inertia_moment_delta_factor, + 12: double dash_power_rate_delta_min, + 13: double dash_power_rate_delta_max, + 14: double player_size_delta_factor, + 15: double kickable_margin_delta_min, + 16: double kickable_margin_delta_max, + 17: double kick_rand_delta_factor, + 18: double extra_stamina_delta_min, + 19: double extra_stamina_delta_max, + 20: double effort_max_delta_factor, + 21: double effort_min_delta_factor, + 22: i32 random_seed, + 23: double new_dash_power_rate_delta_min, + 24: double new_dash_power_rate_delta_max, + 25: double new_stamina_inc_max_delta_factor, + 26: double kick_power_rate_delta_min, + 27: double kick_power_rate_delta_max, + 28: double foul_detect_probability_delta_factor, + 29: double catchable_area_l_stretch_min, + 30: double catchable_area_l_stretch_max +} + +struct PlayerType { + 1: AgentType agent_type, + 2: i32 id, + 3: double stamina_inc_max, + 4: double player_decay, + 5: double inertia_moment, + 6: double dash_power_rate, + 7: double player_size, + 8: double kickable_margin, + 9: double kick_rand, + 10: double extra_stamina, + 11: double effort_max, + 12: double effort_min, + 13: double kick_power_rate, + 14: double foul_detect_probability, + 15: double catchable_area_l_stretch, + 16: double unum_far_length, + 17: double unum_too_far_length, + 18: double team_far_length, + 19: double team_too_far_length, + 20: double player_max_observation_length, + 21: double ball_vel_far_length, + 22: double ball_vel_too_far_length, + 23: double ball_max_observation_length, + 24: double flag_chg_far_length, + 25: double flag_chg_too_far_length, + 26: double flag_max_observation_length, + 27: double kickable_area, + 28: double reliable_catchable_dist, + 29: double max_catchable_dist, + 30: double real_speed_max, + 31: double player_speed_max2, + 32: double real_speed_max2, + 33: i32 cycles_to_reach_max_speed, + 34: double player_speed_max +} + +struct Empty {} + +struct RegisterRequest { + 1: AgentType agent_type, + 2: string team_name, + 3: i32 uniform_number +} + +struct RegisterResponse { + 1: i32 client_id +} + +service Game { + PlayerActions GetPlayerActions(1: RegisterResponse register_response, 2: State state), + CoachActions GetCoachActions(1: RegisterResponse register_response, 2: State state), + TrainerActions GetTrainerActions(1: RegisterResponse register_response, 2: State state), + Empty SendInitMessage(1: RegisterResponse register_response, 2: InitMessage init_message), + Empty SendServerParams(1: RegisterResponse register_response, 2: ServerParam server_param), + Empty SendPlayerParams(1: RegisterResponse register_response, 2: PlayerParam player_param), + Empty SendPlayerType(1: RegisterResponse register_response, 2: PlayerType player_type), + RegisterResponse Register(1: RegisterRequest request), + Empty SendByeCommand(1: RegisterResponse register_response) +} + diff --git a/protos/service.proto b/protos/service.proto deleted file mode 100644 index caea7d9..0000000 --- a/protos/service.proto +++ /dev/null @@ -1,1208 +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 { -} - -message InitMessageFromServer { -} - -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 - rpc GetInitMessage(Empty) returns (InitMessageFromServer) {} - rpc SendByeCommand(Empty) returns (Empty) {} -} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 1d13c87..df1b54f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -grpcio==1.60.0 -grpcio-tools==1.60.0 numpy==1.26.3 protobuf==4.25.2 pyrusgeom==0.1.2 scipy==1.11.4 +thrift==0.16.0 +gym==0.26.2 \ No newline at end of file diff --git a/server-gym.py b/server-gym.py new file mode 100644 index 0000000..a3eddb7 --- /dev/null +++ b/server-gym.py @@ -0,0 +1,223 @@ +from thrift.protocol import TBinaryProtocol +from thrift.transport import TSocket, TTransport +from soccer import Game +import sys +import os +from utils.PFProcessServer import PFProcessServer +from thrift.server.TServer import TThreadedServer +import logging +import multiprocessing +import gym +from gym import spaces +import numpy as np +from typing import Union +from soccer.ttypes import State, Empty, PlayerActions, CoachActions, TrainerActions, WorldModel, Self, RpcVector2D, Dash, PlayerAction +from soccer.ttypes import ServerParam, PlayerParam, PlayerType, InitMessage, RegisterRequest, RegisterResponse, AgentType, TrainerAction, DoMoveBall, DoMovePlayer +from src.SamplePlayerAgent import SamplePlayerAgent +from src.SampleCoachAgent import SampleCoachAgent +from src.SampleTrainerAgent import SampleTrainerAgent +from threading import Semaphore +from multiprocessing import Manager, Lock +import logging +import random + +logging.basicConfig(level=logging.DEBUG) +#set color to logging +logging.addLevelName(logging.DEBUG, "\033[1;34m%s\033[1;0m" % logging.getLevelName(logging.DEBUG)) +logging.addLevelName(logging.INFO, "\033[1;32m%s\033[1;0m" % logging.getLevelName(logging.INFO)) +logging.addLevelName(logging.WARNING, "\033[1;33m%s\033[1;0m" % logging.getLevelName(logging.WARNING)) +logging.addLevelName(logging.ERROR, "\033[1;31m%s\033[1;0m" % logging.getLevelName(logging.ERROR)) +logging.addLevelName(logging.CRITICAL, "\033[1;41m%s\033[1;0m" % logging.getLevelName(logging.CRITICAL)) + +manager = Manager() +shared_lock = Lock() # Create a Lock for synchronization +shared_number_of_connections = manager.Value('i', 0) + +class SoccerEnv(gym.Env): + def __init__(self, action_queue, observation_queue, reward_done_queue, request_to_trainer): + super(SoccerEnv, self).__init__() + self.action_queue = action_queue + self.observation_queue = observation_queue + self.reward_done_queue = reward_done_queue + self.request_to_trainer = request_to_trainer + + self.action_space = spaces.Space() + + def reset(self): + return observation_queue.get() + + def step(self, action): + logging.debug(f"SoccerEnv: step {action}") + self.action_queue.put(action) + logging.debug("SoccerEnv: Waiting for reward_done") + self.request_to_trainer.put(Empty()) + reward_done = self.reward_done_queue.get() + logging.debug(f"SoccerEnv: Reward done: {reward_done}") + # reward_done = RewardDone(0, False) + logging.debug("SoccerEnv: Waiting for observation") + obs = self.observation_queue.get() + logging.debug(f"SoccerEnv: Observation: {obs}") + logging.debug(f"SoccerEnv: Returning observation: {obs}, reward: {reward_done.reward}, done: {reward_done.done}") + return obs, reward_done.reward, reward_done.done, {} + + def render(self): + # Clear the screen + print("Rendering") + + def distruct(self): + pass + +class RewardDone: + def __init__(self, reward, done): + self.reward = reward + self.done = done + + def __str__(self): + return f"Reward: {self.reward}, Done: {self.done}" + +class GameHandler: + def __init__(self, action_queue, observation_queue, reward_done_queue, request_to_trainer): + self.agents: dict[int, Union[SamplePlayerAgent, SampleTrainerAgent, SampleCoachAgent]] = {} + self.running = Semaphore() + self.action_queue = action_queue + self.observation_queue = observation_queue + self.reward_done_queue = reward_done_queue + self.request_to_trainer = request_to_trainer + + def GetPlayerActions(self, register_response: RegisterResponse, state: State): + logging.info(f"Handler: GetPlayerActions {state.world_model.cycle}") + wm: WorldModel = state.world_model + myself: Self = wm.myself + self.observation_queue.put([myself.position.x, myself.position.y, myself.body_direction]) + act = self.action_queue.get() + dash = Dash(power=100, relative_direction=act) + + actions: list[PlayerAction] = [PlayerAction(dash=dash)] + res = PlayerActions(actions=actions) + logging.info(f"Handler: Player actions: {res}") + return res + + def GetCoachActions(self, register_response: RegisterResponse, state): + logging.debug(f"GetCoachActions {state.world_model.cycle}") + actions = self.agents[register_response.client_id].get_actions(state.world_model) + return CoachActions(actions=actions) + + def GetTrainerActions(self, register_response: RegisterResponse, state: State): + + if len(state.world_model.teammates) == 0: + return TrainerActions(actions=[]) + if self.request_to_trainer.empty(): + return TrainerActions(actions=[]) + logging.error(f"Handler: GetTrainerActions {state.world_model.cycle}") + player_pos = state.world_model.teammates[0].position + logging.error(f"Handler: Player position: {player_pos.x} {player_pos.y}") + if player_pos.x > -25: + action = TrainerAction( + do_move_player=DoMovePlayer( + our_side=True, + uniform_number=1, + body_direction=0, + position=RpcVector2D(x=-45, y=0) + ) + ) + logging.error("Handler: >>done") + self.reward_done_queue.put(RewardDone(10, True)) + return TrainerActions(actions=[action]) + else: + logging.error("Handler: >>not done") + self.reward_done_queue.put(RewardDone(0, False)) + return TrainerActions(actions=[]) + + def SendServerParams(self, register_response: RegisterResponse, serverParam): + # logging.debug(f"Server params received {serverParam}") + self.agents[register_response.client_id].set_params(serverParam) + res = Empty() + return res + + def SendPlayerParams(self, register_response: RegisterResponse, playerParam): + # logging.debug(f"Player params received {playerParam}") + self.agents[register_response.client_id].set_params(playerParam) + res = Empty() + return res + + def SendPlayerType(self, register_response: RegisterResponse, playerType): + # logging.debug(f"Player type received {playerType}") + self.agents[register_response.client_id].set_params(playerType) + res = Empty() + return res + + def SendInitMessage(self, register_response: RegisterResponse, initMessage): + logging.debug(f"Init message received {initMessage}") + self.agents[register_response.client_id].set_debug_mode(initMessage.debug_mode) + res = Empty() + return res + + def Register(self, register_request: RegisterRequest): + logging.debug("New connection") + with shared_lock: + shared_number_of_connections.value += 1 + logging.debug(f"Number of connections {shared_number_of_connections.value}") + if register_request.agent_type == AgentType.PlayerT: + self.agents[shared_number_of_connections.value] = SamplePlayerAgent() + elif register_request.agent_type == AgentType.CoachT: + self.agents[shared_number_of_connections.value] = SampleCoachAgent() + elif register_request.agent_type == AgentType.TrainerT: + self.agents[shared_number_of_connections.value] = SampleTrainerAgent() + res = RegisterResponse(client_id=shared_number_of_connections.value) + return res + + def SendByeCommand(self, register_response: RegisterResponse): + with shared_lock: + self.agents.pop(register_response.client_id) + res = Empty() + return res + +def serve(port, action_queue, observation_queue, reward_done_queue, request_to_trainer): + handler = GameHandler(action_queue, observation_queue, reward_done_queue, request_to_trainer) + processor = Game.Processor(handler) + transport = TSocket.TServerSocket(host='0.0.0.0', port=port) + tfactory = TTransport.TBufferedTransportFactory() + pfactory = TBinaryProtocol.TBinaryProtocolFactory() + + server = PFProcessServer(processor, transport, tfactory, pfactory) + # server = TThreadedServer(processor, transport, tfactory, pfactory) + + logging.info(f"Starting server on port {port}") + try: + handler.running.acquire() + server.serve() + except KeyboardInterrupt: + print("Stopping server") + handler.running.release() + os._exit(0) + + +def rl(action_queue, observation_queue, reward_done_queue, request_to_trainer): + logging.critical("RL: Process started") + env = SoccerEnv(action_queue, observation_queue, reward_done_queue, request_to_trainer) + logging.info("Environment created") + logging.critical("RL:Resetting environment") + obs = env.reset() + while True: + logging.critical(f"RL:Environment reset with observation: {obs}") + done = False + while not done: + action = random.randint(0, 360) + logging.critical(f"RL:Taking action: {action}") + obs, reward, done, _ = env.step(action) + logging.critical(f"RL:Observation: {obs} Reward: {reward} Done: {done}") + env.distruct() + +if __name__ == '__main__': + manager = multiprocessing.Manager() + action_queue = manager.Queue() + observation_queue = manager.Queue() + reward_done_queue = manager.Queue() + request_to_trainer = manager.Queue() + serve_process = multiprocessing.Process(target=serve, args=(50051, action_queue, observation_queue, reward_done_queue, request_to_trainer)) + serve_process.start() + rl_process = multiprocessing.Process(target=rl, args=(action_queue, observation_queue, reward_done_queue, request_to_trainer)) + rl_process.start() + + serve_process.join() + rl_process.join() diff --git a/server.py b/server.py index e4a129d..83332e8 100644 --- a/server.py +++ b/server.py @@ -1,87 +1,38 @@ -from time import sleep -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 Semaphore +from thrift.protocol import TBinaryProtocol +from thrift.transport import TSocket, TTransport +from soccer import Game +import sys import os +from utils.PFProcessServer import PFProcessServer +from thrift.server.TServer import TThreadedServer +from utils.GameHandler import GameHandler +import logging +logging.basicConfig(level=logging.INFO) -class Game(pb2_grpc.GameServicer): - def __init__(self): - self.player_agent = SamplePlayerAgent() - self.coach_agent = SampleCoachAgent() - self.trainer_agent = SampleTrainerAgent() - self.number_of_connections = 0 - self.lock = Semaphore() - self.running = Semaphore() - - 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) - return pb2.Empty() - - def GetInitMessage(self, request, context): - with self.lock: - self.number_of_connections += 1 - return pb2.InitMessageFromServer() - - def SendByeCommand(self, request, context): - with self.lock: - self.number_of_connections -= 1 - if self.number_of_connections <= 0: - self.running.release() - return pb2.Empty() +def serve(port): + handler = GameHandler() + processor = Game.Processor(handler) + transport = TSocket.TServerSocket(host='0.0.0.0', port=port) + tfactory = TTransport.TBufferedTransportFactory() + pfactory = TBinaryProtocol.TBinaryProtocolFactory() + server = PFProcessServer(processor, transport, tfactory, pfactory) + # server = TThreadedServer(processor, transport, tfactory, pfactory) -def serve(): - server = grpc.server(futures.ThreadPoolExecutor(max_workers=22)) - game_service = Game() - game_service.running.acquire() - pb2_grpc.add_GameServicer_to_server(game_service, server) - server.add_insecure_port('[::]:50051') - server.start() - print("Server started at port 50051") - - game_service.running.acquire() - print("Stopping server") - sleep(1) - os._exit(0) - server.wait_for_termination() + logging.info(f"Starting server on port {port}") + try: + handler.running.acquire() + server.serve() + except KeyboardInterrupt: + print("Stopping server") + handler.running.release() + os._exit(0) if __name__ == '__main__': - serve() + if len(sys.argv) < 2: + port = 50051 + else: + port = sys.argv[1] + serve(port) diff --git a/service_pb2.py b/service_pb2.py deleted file mode 100644 index ccd7d8d..0000000 --- a/service_pb2.py +++ /dev/null @@ -1,298 +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\"\x85\x01\n\x05State\x12%\n\nagent_type\x18\x01 \x01(\x0e\x32\x11.protos.AgentType\x12\'\n\x0bworld_model\x18\x02 \x01(\x0b\x32\x12.protos.WorldModel\x12,\n\x10\x66ull_world_model\x18\x03 \x01(\x0b\x32\x12.protos.WorldModel\"H\n\x0bInitMessage\x12%\n\nagent_type\x18\x01 \x01(\x0e\x32\x11.protos.AgentType\x12\x12\n\ndebug_mode\x18\x02 \x01(\x08\"1\n\x04\x44\x61sh\x12\r\n\x05power\x18\x01 \x01(\x02\x12\x1a\n\x12relative_direction\x18\x02 \x01(\x02\"\"\n\x04Turn\x12\x1a\n\x12relative_direction\x18\x01 \x01(\x02\"1\n\x04Kick\x12\r\n\x05power\x18\x01 \x01(\x02\x12\x1a\n\x12relative_direction\x18\x02 \x01(\x02\",\n\x06Tackle\x12\x14\n\x0cpower_or_dir\x18\x01 \x01(\x02\x12\x0c\n\x04\x66oul\x18\x02 \x01(\x08\"\x07\n\x05\x43\x61tch\"\x1c\n\x04Move\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\"\x1a\n\x08TurnNeck\x12\x0e\n\x06moment\x18\x01 \x01(\x02\"3\n\nChangeView\x12%\n\nview_width\x18\x01 \x01(\x0e\x32\x11.protos.ViewWidth\"_\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\"\xe3\x19\n\x0cPlayerAction\x12\x1c\n\x04\x64\x61sh\x18\x01 \x01(\x0b\x32\x0c.protos.DashH\x00\x12\x1c\n\x04turn\x18\x02 \x01(\x0b\x32\x0c.protos.TurnH\x00\x12\x1c\n\x04kick\x18\x03 \x01(\x0b\x32\x0c.protos.KickH\x00\x12 \n\x06tackle\x18\x04 \x01(\x0b\x32\x0e.protos.TackleH\x00\x12\x1e\n\x05\x63\x61tch\x18\x05 \x01(\x0b\x32\r.protos.CatchH\x00\x12\x1c\n\x04move\x18\x06 \x01(\x0b\x32\x0c.protos.MoveH\x00\x12%\n\tturn_neck\x18\x07 \x01(\x0b\x32\x10.protos.TurnNeckH\x00\x12)\n\x0b\x63hange_view\x18\x08 \x01(\x0b\x32\x12.protos.ChangeViewH\x00\x12\x1a\n\x03say\x18\t \x01(\x0b\x32\x0b.protos.SayH\x00\x12#\n\x08point_to\x18\n \x01(\x0b\x32\x0f.protos.PointToH\x00\x12(\n\x0bpoint_to_of\x18\x0b \x01(\x0b\x32\x11.protos.PointToOfH\x00\x12+\n\x0c\x61ttention_to\x18\x0c \x01(\x0b\x32\x13.protos.AttentionToH\x00\x12\x30\n\x0f\x61ttention_to_of\x18\r \x01(\x0b\x32\x15.protos.AttentionToOfH\x00\x12\x1a\n\x03log\x18\x0e \x01(\x0b\x32\x0b.protos.LogH\x00\x12+\n\x0c\x64\x65\x62ug_client\x18\x0f \x01(\x0b\x32\x13.protos.DebugClientH\x00\x12\x32\n\x10\x62ody_go_to_point\x18\x10 \x01(\x0b\x32\x16.protos.Body_GoToPointH\x00\x12\x31\n\x0f\x62ody_smart_kick\x18\x11 \x01(\x0b\x32\x16.protos.Body_SmartKickH\x00\x12\x38\n\x13\x62hv_before_kick_off\x18\x12 \x01(\x0b\x32\x19.protos.Bhv_BeforeKickOffH\x00\x12;\n\x15\x62hv_body_neck_to_ball\x18\x13 \x01(\x0b\x32\x1a.protos.Bhv_BodyNeckToBallH\x00\x12=\n\x16\x62hv_body_neck_to_point\x18\x14 \x01(\x0b\x32\x1b.protos.Bhv_BodyNeckToPointH\x00\x12.\n\rbhv_emergency\x18\x15 \x01(\x0b\x32\x15.protos.Bhv_EmergencyH\x00\x12\x42\n\x19\x62hv_go_to_point_look_ball\x18\x16 \x01(\x0b\x32\x1d.protos.Bhv_GoToPointLookBallH\x00\x12;\n\x15\x62hv_neck_body_to_ball\x18\x17 \x01(\x0b\x32\x1a.protos.Bhv_NeckBodyToBallH\x00\x12=\n\x16\x62hv_neck_body_to_point\x18\x18 \x01(\x0b\x32\x1b.protos.Bhv_NeckBodyToPointH\x00\x12/\n\x0e\x62hv_scan_field\x18\x19 \x01(\x0b\x32\x15.protos.Bhv_ScanFieldH\x00\x12\x35\n\x11\x62ody_advance_ball\x18\x1a \x01(\x0b\x32\x18.protos.Body_AdvanceBallH\x00\x12\x31\n\x0f\x62ody_clear_ball\x18\x1b \x01(\x0b\x32\x16.protos.Body_ClearBallH\x00\x12,\n\x0c\x62ody_dribble\x18\x1c \x01(\x0b\x32\x14.protos.Body_DribbleH\x00\x12=\n\x16\x62ody_go_to_point_dodge\x18\x1d \x01(\x0b\x32\x1b.protos.Body_GoToPointDodgeH\x00\x12/\n\x0e\x62ody_hold_ball\x18\x1e \x01(\x0b\x32\x15.protos.Body_HoldBallH\x00\x12\x30\n\x0e\x62ody_intercept\x18\x1f \x01(\x0b\x32\x16.protos.Body_InterceptH\x00\x12\x36\n\x12\x62ody_kick_one_step\x18 \x01(\x0b\x32\x18.protos.Body_KickOneStepH\x00\x12/\n\x0e\x62ody_stop_ball\x18! \x01(\x0b\x32\x15.protos.Body_StopBallH\x00\x12/\n\x0e\x62ody_stop_dash\x18\" \x01(\x0b\x32\x15.protos.Body_StopDashH\x00\x12:\n\x14\x62ody_tackle_to_point\x18# \x01(\x0b\x32\x1a.protos.Body_TackleToPointH\x00\x12\x36\n\x12\x62ody_turn_to_angle\x18$ \x01(\x0b\x32\x18.protos.Body_TurnToAngleH\x00\x12\x34\n\x11\x62ody_turn_to_ball\x18% \x01(\x0b\x32\x17.protos.Body_TurnToBallH\x00\x12\x36\n\x12\x62ody_turn_to_point\x18& \x01(\x0b\x32\x18.protos.Body_TurnToPointH\x00\x12\x38\n\x13\x66ocus_move_to_point\x18\' \x01(\x0b\x32\x19.protos.Focus_MoveToPointH\x00\x12*\n\x0b\x66ocus_reset\x18( \x01(\x0b\x32\x13.protos.Focus_ResetH\x00\x12\x31\n\x0fneck_scan_field\x18) \x01(\x0b\x32\x16.protos.Neck_ScanFieldH\x00\x12\x35\n\x11neck_scan_players\x18* \x01(\x0b\x32\x18.protos.Neck_ScanPlayersH\x00\x12H\n\x1cneck_turn_to_ball_and_player\x18+ \x01(\x0b\x32 .protos.Neck_TurnToBallAndPlayerH\x00\x12\x42\n\x19neck_turn_to_ball_or_scan\x18, \x01(\x0b\x32\x1d.protos.Neck_TurnToBallOrScanH\x00\x12\x34\n\x11neck_turn_to_ball\x18- \x01(\x0b\x32\x17.protos.Neck_TurnToBallH\x00\x12\x46\n\x1bneck_turn_to_goalie_or_scan\x18. \x01(\x0b\x32\x1f.protos.Neck_TurnToGoalieOrScanH\x00\x12L\n\x1eneck_turn_to_low_conf_teammate\x18/ \x01(\x0b\x32\".protos.Neck_TurnToLowConfTeammateH\x00\x12\x46\n\x1bneck_turn_to_player_or_scan\x18\x30 \x01(\x0b\x32\x1f.protos.Neck_TurnToPlayerOrScanH\x00\x12\x36\n\x12neck_turn_to_point\x18\x31 \x01(\x0b\x32\x18.protos.Neck_TurnToPointH\x00\x12<\n\x15neck_turn_to_relative\x18\x32 \x01(\x0b\x32\x1b.protos.Neck_TurnToRelativeH\x00\x12\x35\n\x11view_change_width\x18\x33 \x01(\x0b\x32\x18.protos.View_ChangeWidthH\x00\x12*\n\x0bview_normal\x18\x34 \x01(\x0b\x32\x13.protos.View_NormalH\x00\x12(\n\nview_synch\x18\x35 \x01(\x0b\x32\x12.protos.View_SynchH\x00\x12&\n\tview_wide\x18\x36 \x01(\x0b\x32\x11.protos.View_WideH\x00\x12-\n\rhelios_goalie\x18\x37 \x01(\x0b\x32\x14.protos.HeliosGoalieH\x00\x12\x36\n\x12helios_goalie_move\x18\x38 \x01(\x0b\x32\x18.protos.HeliosGoalieMoveH\x00\x12\x36\n\x12helios_goalie_kick\x18\x39 \x01(\x0b\x32\x18.protos.HeliosGoalieKickH\x00\x12+\n\x0chelios_shoot\x18: \x01(\x0b\x32\x13.protos.HeliosShootH\x00\x12\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\"6\n\rPlayerActions\x12%\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x14.protos.PlayerAction\"8\n\x10\x43hangePlayerType\x12\x16\n\x0euniform_number\x18\x01 \x01(\x05\x12\x0c\n\x04type\x18\x02 \x01(\x05\"\x14\n\x12\x44oHeliosSubstitute\"\x18\n\x16\x44oHeliosSayPlayerTypes\"\xd2\x01\n\x0b\x43oachAction\x12\x37\n\x13\x63hange_player_types\x18\x01 \x01(\x0b\x32\x18.protos.ChangePlayerTypeH\x00\x12:\n\x14\x64o_helios_substitute\x18\x02 \x01(\x0b\x32\x1a.protos.DoHeliosSubstituteH\x00\x12\x44\n\x1a\x64o_helios_say_player_types\x18\x03 \x01(\x0b\x32\x1e.protos.DoHeliosSayPlayerTypesH\x00\x42\x08\n\x06\x61\x63tion\"4\n\x0c\x43oachActions\x12$\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x13.protos.CoachAction\"\x0b\n\tDoKickOff\"T\n\nDoMoveBall\x12\"\n\x08position\x18\x01 \x01(\x0b\x32\x10.protos.Vector2D\x12\"\n\x08velocity\x18\x02 \x01(\x0b\x32\x10.protos.Vector2D\"t\n\x0c\x44oMovePlayer\x12\x10\n\x08our_side\x18\x01 \x01(\x08\x12\x16\n\x0euniform_number\x18\x02 \x01(\x05\x12\"\n\x08position\x18\x03 \x01(\x0b\x32\x10.protos.Vector2D\x12\x16\n\x0e\x62ody_direction\x18\x04 \x01(\x02\"\x0b\n\tDoRecover\"X\n\x0c\x44oChangeMode\x12,\n\x0egame_mode_type\x18\x01 \x01(\x0e\x32\x14.protos.GameModeType\x12\x1a\n\x04side\x18\x02 \x01(\x0e\x32\x0c.protos.Side\"L\n\x12\x44oChangePlayerType\x12\x10\n\x08our_side\x18\x01 \x01(\x08\x12\x16\n\x0euniform_number\x18\x02 \x01(\x05\x12\x0c\n\x04type\x18\x03 \x01(\x05\"\xb5\x02\n\rTrainerAction\x12(\n\x0b\x64o_kick_off\x18\x01 \x01(\x0b\x32\x11.protos.DoKickOffH\x00\x12*\n\x0c\x64o_move_ball\x18\x02 \x01(\x0b\x32\x12.protos.DoMoveBallH\x00\x12.\n\x0e\x64o_move_player\x18\x03 \x01(\x0b\x32\x14.protos.DoMovePlayerH\x00\x12\'\n\ndo_recover\x18\x04 \x01(\x0b\x32\x11.protos.DoRecoverH\x00\x12.\n\x0e\x64o_change_mode\x18\x05 \x01(\x0b\x32\x14.protos.DoChangeModeH\x00\x12;\n\x15\x64o_change_player_type\x18\x06 \x01(\x0b\x32\x1a.protos.DoChangePlayerTypeH\x00\x42\x08\n\x06\x61\x63tion\"8\n\x0eTrainerActions\x12&\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32\x15.protos.TrainerAction\"\xcf,\n\x0bServerParam\x12%\n\nagent_type\x18\x01 \x01(\x0e\x32\x11.protos.AgentType\x12\x16\n\x0einertia_moment\x18\x02 \x01(\x02\x12\x13\n\x0bplayer_size\x18\x03 \x01(\x02\x12\x14\n\x0cplayer_decay\x18\x04 \x01(\x02\x12\x13\n\x0bplayer_rand\x18\x05 \x01(\x02\x12\x15\n\rplayer_weight\x18\x06 \x01(\x02\x12\x18\n\x10player_speed_max\x18\x07 \x01(\x02\x12\x18\n\x10player_accel_max\x18\x08 \x01(\x02\x12\x13\n\x0bstamina_max\x18\t \x01(\x02\x12\x17\n\x0fstamina_inc_max\x18\n \x01(\x02\x12\x14\n\x0crecover_init\x18\x0b \x01(\x02\x12\x17\n\x0frecover_dec_thr\x18\x0c \x01(\x02\x12\x13\n\x0brecover_min\x18\r \x01(\x02\x12\x13\n\x0brecover_dec\x18\x0e \x01(\x02\x12\x13\n\x0b\x65\x66\x66ort_init\x18\x0f \x01(\x02\x12\x16\n\x0e\x65\x66\x66ort_dec_thr\x18\x10 \x01(\x02\x12\x12\n\neffort_min\x18\x11 \x01(\x02\x12\x12\n\neffort_dec\x18\x12 \x01(\x02\x12\x16\n\x0e\x65\x66\x66ort_inc_thr\x18\x13 \x01(\x02\x12\x12\n\neffort_inc\x18\x14 \x01(\x02\x12\x11\n\tkick_rand\x18\x15 \x01(\x02\x12\x1b\n\x13team_actuator_noise\x18\x16 \x01(\x08\x12\x1c\n\x14player_rand_factor_l\x18\x17 \x01(\x02\x12\x1c\n\x14player_rand_factor_r\x18\x18 \x01(\x02\x12\x1a\n\x12kick_rand_factor_l\x18\x19 \x01(\x02\x12\x1a\n\x12kick_rand_factor_r\x18\x1a \x01(\x02\x12\x11\n\tball_size\x18\x1b \x01(\x02\x12\x12\n\nball_decay\x18\x1c \x01(\x02\x12\x11\n\tball_rand\x18\x1d \x01(\x02\x12\x13\n\x0b\x62\x61ll_weight\x18\x1e \x01(\x02\x12\x16\n\x0e\x62\x61ll_speed_max\x18\x1f \x01(\x02\x12\x16\n\x0e\x62\x61ll_accel_max\x18 \x01(\x02\x12\x17\n\x0f\x64\x61sh_power_rate\x18! \x01(\x02\x12\x17\n\x0fkick_power_rate\x18\" \x01(\x02\x12\x17\n\x0fkickable_margin\x18# \x01(\x02\x12\x16\n\x0e\x63ontrol_radius\x18$ \x01(\x02\x12\x1c\n\x14\x63ontrol_radius_width\x18% \x01(\x02\x12\x11\n\tmax_power\x18& \x01(\x02\x12\x11\n\tmin_power\x18\' \x01(\x02\x12\x12\n\nmax_moment\x18( \x01(\x02\x12\x12\n\nmin_moment\x18) \x01(\x02\x12\x17\n\x0fmax_neck_moment\x18* \x01(\x02\x12\x17\n\x0fmin_neck_moment\x18+ \x01(\x02\x12\x16\n\x0emax_neck_angle\x18, \x01(\x02\x12\x16\n\x0emin_neck_angle\x18- \x01(\x02\x12\x15\n\rvisible_angle\x18. \x01(\x02\x12\x18\n\x10visible_distance\x18/ \x01(\x02\x12\x10\n\x08wind_dir\x18\x30 \x01(\x02\x12\x12\n\nwind_force\x18\x31 \x01(\x02\x12\x12\n\nwind_angle\x18\x32 \x01(\x02\x12\x11\n\twind_rand\x18\x33 \x01(\x02\x12\x15\n\rkickable_area\x18\x34 \x01(\x02\x12\x14\n\x0c\x63\x61tch_area_l\x18\x35 \x01(\x02\x12\x14\n\x0c\x63\x61tch_area_w\x18\x36 \x01(\x02\x12\x19\n\x11\x63\x61tch_probability\x18\x37 \x01(\x02\x12\x18\n\x10goalie_max_moves\x18\x38 \x01(\x05\x12\x1a\n\x12\x63orner_kick_margin\x18\x39 \x01(\x02\x12 \n\x18offside_active_area_size\x18: \x01(\x02\x12\x11\n\twind_none\x18; \x01(\x08\x12\x17\n\x0fuse_wind_random\x18< \x01(\x08\x12\x1b\n\x13\x63oach_say_count_max\x18= \x01(\x05\x12\x1a\n\x12\x63oach_say_msg_size\x18> \x01(\x05\x12\x16\n\x0e\x63lang_win_size\x18? \x01(\x05\x12\x18\n\x10\x63lang_define_win\x18@ \x01(\x05\x12\x16\n\x0e\x63lang_meta_win\x18\x41 \x01(\x05\x12\x18\n\x10\x63lang_advice_win\x18\x42 \x01(\x05\x12\x16\n\x0e\x63lang_info_win\x18\x43 \x01(\x05\x12\x18\n\x10\x63lang_mess_delay\x18\x44 \x01(\x05\x12\x1c\n\x14\x63lang_mess_per_cycle\x18\x45 \x01(\x05\x12\x11\n\thalf_time\x18\x46 \x01(\x05\x12\x16\n\x0esimulator_step\x18G \x01(\x05\x12\x11\n\tsend_step\x18H \x01(\x05\x12\x11\n\trecv_step\x18I \x01(\x05\x12\x17\n\x0fsense_body_step\x18J \x01(\x05\x12\x10\n\x08lcm_step\x18K \x01(\x05\x12\x1b\n\x13player_say_msg_size\x18L \x01(\x05\x12\x17\n\x0fplayer_hear_max\x18M \x01(\x05\x12\x17\n\x0fplayer_hear_inc\x18N \x01(\x05\x12\x19\n\x11player_hear_decay\x18O \x01(\x05\x12\x17\n\x0f\x63\x61tch_ban_cycle\x18P \x01(\x05\x12\x18\n\x10slow_down_factor\x18Q \x01(\x05\x12\x13\n\x0buse_offside\x18R \x01(\x08\x12\x17\n\x0fkickoff_offside\x18S \x01(\x08\x12\x1b\n\x13offside_kick_margin\x18T \x01(\x02\x12\x16\n\x0e\x61udio_cut_dist\x18U \x01(\x02\x12\x1a\n\x12\x64ist_quantize_step\x18V \x01(\x02\x12#\n\x1blandmark_dist_quantize_step\x18W \x01(\x02\x12\x19\n\x11\x64ir_quantize_step\x18X \x01(\x02\x12\x1c\n\x14\x64ist_quantize_step_l\x18Y \x01(\x02\x12\x1c\n\x14\x64ist_quantize_step_r\x18Z \x01(\x02\x12%\n\x1dlandmark_dist_quantize_step_l\x18[ \x01(\x02\x12%\n\x1dlandmark_dist_quantize_step_r\x18\\ \x01(\x02\x12\x1b\n\x13\x64ir_quantize_step_l\x18] \x01(\x02\x12\x1b\n\x13\x64ir_quantize_step_r\x18^ \x01(\x02\x12\x12\n\ncoach_mode\x18_ \x01(\x08\x12\x1f\n\x17\x63oach_with_referee_mode\x18` \x01(\x08\x12\x1a\n\x12use_old_coach_hear\x18\x61 \x01(\x08\x12%\n\x1dslowness_on_top_for_left_team\x18\x62 \x01(\x02\x12&\n\x1eslowness_on_top_for_right_team\x18\x63 \x01(\x02\x12\x14\n\x0cstart_goal_l\x18\x64 \x01(\x05\x12\x14\n\x0cstart_goal_r\x18\x65 \x01(\x05\x12\x13\n\x0b\x66ullstate_l\x18\x66 \x01(\x08\x12\x13\n\x0b\x66ullstate_r\x18g \x01(\x08\x12\x16\n\x0e\x64rop_ball_time\x18h \x01(\x05\x12\x12\n\nsynch_mode\x18i \x01(\x08\x12\x14\n\x0csynch_offset\x18j \x01(\x05\x12\x19\n\x11synch_micro_sleep\x18k \x01(\x05\x12\x14\n\x0cpoint_to_ban\x18l \x01(\x05\x12\x19\n\x11point_to_duration\x18m \x01(\x05\x12\x13\n\x0bplayer_port\x18n \x01(\x05\x12\x14\n\x0ctrainer_port\x18o \x01(\x05\x12\x19\n\x11online_coach_port\x18p \x01(\x05\x12\x14\n\x0cverbose_mode\x18q \x01(\x08\x12\x1a\n\x12\x63oach_send_vi_step\x18r \x01(\x05\x12\x13\n\x0breplay_file\x18s \x01(\t\x12\x15\n\rlandmark_file\x18t \x01(\t\x12\x12\n\nsend_comms\x18u \x01(\x08\x12\x14\n\x0ctext_logging\x18v \x01(\x08\x12\x14\n\x0cgame_logging\x18w \x01(\x08\x12\x18\n\x10game_log_version\x18x \x01(\x05\x12\x14\n\x0ctext_log_dir\x18y \x01(\t\x12\x14\n\x0cgame_log_dir\x18z \x01(\t\x12\x1b\n\x13text_log_fixed_name\x18{ \x01(\t\x12\x1b\n\x13game_log_fixed_name\x18| \x01(\t\x12\x1a\n\x12use_text_log_fixed\x18} \x01(\x08\x12\x1a\n\x12use_game_log_fixed\x18~ \x01(\x08\x12\x1a\n\x12use_text_log_dated\x18\x7f \x01(\x08\x12\x1b\n\x12use_game_log_dated\x18\x80\x01 \x01(\x08\x12\x18\n\x0flog_date_format\x18\x81\x01 \x01(\t\x12\x12\n\tlog_times\x18\x82\x01 \x01(\x08\x12\x17\n\x0erecord_message\x18\x83\x01 \x01(\x08\x12\x1d\n\x14text_log_compression\x18\x84\x01 \x01(\x05\x12\x1d\n\x14game_log_compression\x18\x85\x01 \x01(\x05\x12\x14\n\x0buse_profile\x18\x86\x01 \x01(\x08\x12\x14\n\x0btackle_dist\x18\x87\x01 \x01(\x02\x12\x19\n\x10tackle_back_dist\x18\x88\x01 \x01(\x02\x12\x15\n\x0ctackle_width\x18\x89\x01 \x01(\x02\x12\x18\n\x0ftackle_exponent\x18\x8a\x01 \x01(\x02\x12\x16\n\rtackle_cycles\x18\x8b\x01 \x01(\x05\x12\x1a\n\x11tackle_power_rate\x18\x8c\x01 \x01(\x02\x12\x1d\n\x14\x66reeform_wait_period\x18\x8d\x01 \x01(\x05\x12\x1d\n\x14\x66reeform_send_period\x18\x8e\x01 \x01(\x05\x12\x19\n\x10\x66ree_kick_faults\x18\x8f\x01 \x01(\x08\x12\x14\n\x0b\x62\x61\x63k_passes\x18\x90\x01 \x01(\x08\x12\x1a\n\x11proper_goal_kicks\x18\x91\x01 \x01(\x08\x12\x19\n\x10stopped_ball_vel\x18\x92\x01 \x01(\x02\x12\x17\n\x0emax_goal_kicks\x18\x93\x01 \x01(\x05\x12\x16\n\rclang_del_win\x18\x94\x01 \x01(\x05\x12\x17\n\x0e\x63lang_rule_win\x18\x95\x01 \x01(\x05\x12\x12\n\tauto_mode\x18\x96\x01 \x01(\x08\x12\x16\n\rkick_off_wait\x18\x97\x01 \x01(\x05\x12\x15\n\x0c\x63onnect_wait\x18\x98\x01 \x01(\x05\x12\x17\n\x0egame_over_wait\x18\x99\x01 \x01(\x05\x12\x15\n\x0cteam_l_start\x18\x9a\x01 \x01(\t\x12\x15\n\x0cteam_r_start\x18\x9b\x01 \x01(\t\x12\x16\n\rkeepaway_mode\x18\x9c\x01 \x01(\x08\x12\x18\n\x0fkeepaway_length\x18\x9d\x01 \x01(\x02\x12\x17\n\x0ekeepaway_width\x18\x9e\x01 \x01(\x02\x12\x19\n\x10keepaway_logging\x18\x9f\x01 \x01(\x08\x12\x19\n\x10keepaway_log_dir\x18\xa0\x01 \x01(\t\x12 \n\x17keepaway_log_fixed_name\x18\xa1\x01 \x01(\t\x12\x1b\n\x12keepaway_log_fixed\x18\xa2\x01 \x01(\x08\x12\x1b\n\x12keepaway_log_dated\x18\xa3\x01 \x01(\x08\x12\x17\n\x0ekeepaway_start\x18\xa4\x01 \x01(\x05\x12\x18\n\x0fnr_normal_halfs\x18\xa5\x01 \x01(\x05\x12\x17\n\x0enr_extra_halfs\x18\xa6\x01 \x01(\x05\x12\x1b\n\x12penalty_shoot_outs\x18\xa7\x01 \x01(\x08\x12\x1e\n\x15pen_before_setup_wait\x18\xa8\x01 \x01(\x05\x12\x17\n\x0epen_setup_wait\x18\xa9\x01 \x01(\x05\x12\x17\n\x0epen_ready_wait\x18\xaa\x01 \x01(\x05\x12\x17\n\x0epen_taken_wait\x18\xab\x01 \x01(\x05\x12\x15\n\x0cpen_nr_kicks\x18\xac\x01 \x01(\x05\x12\x1c\n\x13pen_max_extra_kicks\x18\xad\x01 \x01(\x05\x12\x13\n\npen_dist_x\x18\xae\x01 \x01(\x02\x12\x1a\n\x11pen_random_winner\x18\xaf\x01 \x01(\x08\x12\x1d\n\x14pen_allow_mult_kicks\x18\xb0\x01 \x01(\x08\x12\x1e\n\x15pen_max_goalie_dist_x\x18\xb1\x01 \x01(\x02\x12 \n\x17pen_coach_moves_players\x18\xb2\x01 \x01(\x08\x12\x13\n\nmodule_dir\x18\xb3\x01 \x01(\t\x12\x18\n\x0f\x62\x61ll_stuck_area\x18\xb4\x01 \x01(\x02\x12\x17\n\x0e\x63oach_msg_file\x18\xb5\x01 \x01(\t\x12\x19\n\x10max_tackle_power\x18\xb6\x01 \x01(\x02\x12\x1e\n\x15max_back_tackle_power\x18\xb7\x01 \x01(\x02\x12\x1d\n\x14player_speed_max_min\x18\xb8\x01 \x01(\x02\x12\x16\n\rextra_stamina\x18\xb9\x01 \x01(\x02\x12\x19\n\x10synch_see_offset\x18\xba\x01 \x01(\x05\x12\x18\n\x0f\x65xtra_half_time\x18\xbb\x01 \x01(\x05\x12\x19\n\x10stamina_capacity\x18\xbc\x01 \x01(\x02\x12\x17\n\x0emax_dash_angle\x18\xbd\x01 \x01(\x02\x12\x17\n\x0emin_dash_angle\x18\xbe\x01 \x01(\x02\x12\x18\n\x0f\x64\x61sh_angle_step\x18\xbf\x01 \x01(\x02\x12\x17\n\x0eside_dash_rate\x18\xc0\x01 \x01(\x02\x12\x17\n\x0e\x62\x61\x63k_dash_rate\x18\xc1\x01 \x01(\x02\x12\x17\n\x0emax_dash_power\x18\xc2\x01 \x01(\x02\x12\x17\n\x0emin_dash_power\x18\xc3\x01 \x01(\x02\x12\x1b\n\x12tackle_rand_factor\x18\xc4\x01 \x01(\x02\x12 \n\x17\x66oul_detect_probability\x18\xc5\x01 \x01(\x02\x12\x16\n\rfoul_exponent\x18\xc6\x01 \x01(\x02\x12\x14\n\x0b\x66oul_cycles\x18\xc7\x01 \x01(\x05\x12\x14\n\x0bgolden_goal\x18\xc8\x01 \x01(\x08\x12\x1d\n\x14red_card_probability\x18\xc9\x01 \x01(\x02\x12!\n\x18illegal_defense_duration\x18\xca\x01 \x01(\x05\x12\x1f\n\x16illegal_defense_number\x18\xcb\x01 \x01(\x05\x12\x1f\n\x16illegal_defense_dist_x\x18\xcc\x01 \x01(\x02\x12\x1e\n\x15illegal_defense_width\x18\xcd\x01 \x01(\x02\x12\x19\n\x10\x66ixed_teamname_l\x18\xce\x01 \x01(\t\x12\x19\n\x10\x66ixed_teamname_r\x18\xcf\x01 \x01(\t\x12\x18\n\x0fmax_catch_angle\x18\xd0\x01 \x01(\x02\x12\x18\n\x0fmin_catch_angle\x18\xd1\x01 \x01(\x02\x12\x14\n\x0brandom_seed\x18\xd2\x01 \x01(\x05\x12\x1f\n\x16long_kick_power_factor\x18\xd3\x01 \x01(\x02\x12\x18\n\x0flong_kick_delay\x18\xd4\x01 \x01(\x05\x12\x15\n\x0cmax_monitors\x18\xd5\x01 \x01(\x05\x12\x17\n\x0e\x63\x61tchable_area\x18\xd6\x01 \x01(\x02\x12\x17\n\x0ereal_speed_max\x18\xd7\x01 \x01(\x02\x12\x1a\n\x11pitch_half_length\x18\xd8\x01 \x01(\x02\x12\x19\n\x10pitch_half_width\x18\xd9\x01 \x01(\x02\x12 \n\x17our_penalty_area_line_x\x18\xda\x01 \x01(\x02\x12\"\n\x19their_penalty_area_line_x\x18\xdb\x01 \x01(\x02\x12 \n\x17penalty_area_half_width\x18\xdc\x01 \x01(\x02\x12\x1c\n\x13penalty_area_length\x18\xdd\x01 \x01(\x02\x12\x13\n\ngoal_width\x18\xde\x01 \x01(\x02\"\xff\x07\n\x0bPlayerParam\x12%\n\nagent_type\x18\x01 \x01(\x0e\x32\x11.protos.AgentType\x12\x14\n\x0cplayer_types\x18\x02 \x01(\x05\x12\x10\n\x08subs_max\x18\x03 \x01(\x05\x12\x0e\n\x06pt_max\x18\x04 \x01(\x05\x12\x1f\n\x17\x61llow_mult_default_type\x18\x05 \x01(\x08\x12\"\n\x1aplayer_speed_max_delta_min\x18\x06 \x01(\x02\x12\"\n\x1aplayer_speed_max_delta_max\x18\x07 \x01(\x02\x12$\n\x1cstamina_inc_max_delta_factor\x18\x08 \x01(\x02\x12\x1e\n\x16player_decay_delta_min\x18\t \x01(\x02\x12\x1e\n\x16player_decay_delta_max\x18\n \x01(\x02\x12#\n\x1binertia_moment_delta_factor\x18\x0b \x01(\x02\x12!\n\x19\x64\x61sh_power_rate_delta_min\x18\x0c \x01(\x02\x12!\n\x19\x64\x61sh_power_rate_delta_max\x18\r \x01(\x02\x12 \n\x18player_size_delta_factor\x18\x0e \x01(\x02\x12!\n\x19kickable_margin_delta_min\x18\x0f \x01(\x02\x12!\n\x19kickable_margin_delta_max\x18\x10 \x01(\x02\x12\x1e\n\x16kick_rand_delta_factor\x18\x11 \x01(\x02\x12\x1f\n\x17\x65xtra_stamina_delta_min\x18\x12 \x01(\x02\x12\x1f\n\x17\x65xtra_stamina_delta_max\x18\x13 \x01(\x02\x12\x1f\n\x17\x65\x66\x66ort_max_delta_factor\x18\x14 \x01(\x02\x12\x1f\n\x17\x65\x66\x66ort_min_delta_factor\x18\x15 \x01(\x02\x12\x13\n\x0brandom_seed\x18\x16 \x01(\x05\x12%\n\x1dnew_dash_power_rate_delta_min\x18\x17 \x01(\x02\x12%\n\x1dnew_dash_power_rate_delta_max\x18\x18 \x01(\x02\x12(\n new_stamina_inc_max_delta_factor\x18\x19 \x01(\x02\x12!\n\x19kick_power_rate_delta_min\x18\x1a \x01(\x02\x12!\n\x19kick_power_rate_delta_max\x18\x1b \x01(\x02\x12,\n$foul_detect_probability_delta_factor\x18\x1c \x01(\x02\x12$\n\x1c\x63\x61tchable_area_l_stretch_min\x18\x1d \x01(\x02\x12$\n\x1c\x63\x61tchable_area_l_stretch_max\x18\x1e \x01(\x02\"\xb1\x07\n\nPlayerType\x12%\n\nagent_type\x18\x01 \x01(\x0e\x32\x11.protos.AgentType\x12\n\n\x02id\x18\x02 \x01(\x05\x12\x17\n\x0fstamina_inc_max\x18\x03 \x01(\x02\x12\x14\n\x0cplayer_decay\x18\x04 \x01(\x02\x12\x16\n\x0einertia_moment\x18\x05 \x01(\x02\x12\x17\n\x0f\x64\x61sh_power_rate\x18\x06 \x01(\x02\x12\x13\n\x0bplayer_size\x18\x07 \x01(\x02\x12\x17\n\x0fkickable_margin\x18\x08 \x01(\x02\x12\x11\n\tkick_rand\x18\t \x01(\x02\x12\x15\n\rextra_stamina\x18\n \x01(\x02\x12\x12\n\neffort_max\x18\x0b \x01(\x02\x12\x12\n\neffort_min\x18\x0c \x01(\x02\x12\x17\n\x0fkick_power_rate\x18\r \x01(\x02\x12\x1f\n\x17\x66oul_detect_probability\x18\x0e \x01(\x02\x12 \n\x18\x63\x61tchable_area_l_stretch\x18\x0f \x01(\x02\x12\x17\n\x0funum_far_length\x18\x10 \x01(\x02\x12\x1b\n\x13unum_too_far_length\x18\x11 \x01(\x02\x12\x17\n\x0fteam_far_length\x18\x12 \x01(\x02\x12\x1b\n\x13team_too_far_length\x18\x13 \x01(\x02\x12%\n\x1dplayer_max_observation_length\x18\x14 \x01(\x02\x12\x1b\n\x13\x62\x61ll_vel_far_length\x18\x15 \x01(\x02\x12\x1f\n\x17\x62\x61ll_vel_too_far_length\x18\x16 \x01(\x02\x12#\n\x1b\x62\x61ll_max_observation_length\x18\x17 \x01(\x02\x12\x1b\n\x13\x66lag_chg_far_length\x18\x18 \x01(\x02\x12\x1f\n\x17\x66lag_chg_too_far_length\x18\x19 \x01(\x02\x12#\n\x1b\x66lag_max_observation_length\x18\x1a \x01(\x02\x12\x15\n\rkickable_area\x18\x1b \x01(\x02\x12\x1f\n\x17reliable_catchable_dist\x18\x1c \x01(\x02\x12\x1a\n\x12max_catchable_dist\x18\x1d \x01(\x02\x12\x16\n\x0ereal_speed_max\x18\x1e \x01(\x02\x12\x19\n\x11player_speed_max2\x18\x1f \x01(\x02\x12\x17\n\x0freal_speed_max2\x18 \x01(\x02\x12!\n\x19\x63ycles_to_reach_max_speed\x18! \x01(\x05\x12\x18\n\x10player_speed_max\x18\" \x01(\x02\"\x07\n\x05\x45mpty\"\x17\n\x15InitMessageFromServer*-\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\n\tAgentType\x12\x0b\n\x07PlayerT\x10\x00\x12\n\n\x06\x43oachT\x10\x01\x12\x0c\n\x08TrainerT\x10\x02\x32\x92\x04\n\x04Game\x12:\n\x10GetPlayerActions\x12\r.protos.State\x1a\x15.protos.PlayerActions\"\x00\x12\x38\n\x0fGetCoachActions\x12\r.protos.State\x1a\x14.protos.CoachActions\"\x00\x12<\n\x11GetTrainerActions\x12\r.protos.State\x1a\x16.protos.TrainerActions\"\x00\x12\x37\n\x0fSendInitMessage\x12\x13.protos.InitMessage\x1a\r.protos.Empty\"\x00\x12\x38\n\x10SendServerParams\x12\x13.protos.ServerParam\x1a\r.protos.Empty\"\x00\x12\x38\n\x10SendPlayerParams\x12\x13.protos.PlayerParam\x1a\r.protos.Empty\"\x00\x12\x35\n\x0eSendPlayerType\x12\x12.protos.PlayerType\x1a\r.protos.Empty\"\x00\x12@\n\x0eGetInitMessage\x12\r.protos.Empty\x1a\x1d.protos.InitMessageFromServer\"\x00\x12\x30\n\x0eSendByeCommand\x12\r.protos.Empty\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=24827 - _globals['_VIEWWIDTH']._serialized_end=24872 - _globals['_SIDE']._serialized_start=24874 - _globals['_SIDE']._serialized_end=24914 - _globals['_LOGGERLEVEL']._serialized_start=24917 - _globals['_LOGGERLEVEL']._serialized_end=25218 - _globals['_INTERCEPTACTIONTYPE']._serialized_start=25220 - _globals['_INTERCEPTACTIONTYPE']._serialized_end=25338 - _globals['_GAMEMODETYPE']._serialized_start=25341 - _globals['_GAMEMODETYPE']._serialized_end=25912 - _globals['_AGENTTYPE']._serialized_start=25914 - _globals['_AGENTTYPE']._serialized_end=25964 - _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=4300 - _globals['_STATE']._serialized_end=4433 - _globals['_INITMESSAGE']._serialized_start=4435 - _globals['_INITMESSAGE']._serialized_end=4507 - _globals['_DASH']._serialized_start=4509 - _globals['_DASH']._serialized_end=4558 - _globals['_TURN']._serialized_start=4560 - _globals['_TURN']._serialized_end=4594 - _globals['_KICK']._serialized_start=4596 - _globals['_KICK']._serialized_end=4645 - _globals['_TACKLE']._serialized_start=4647 - _globals['_TACKLE']._serialized_end=4691 - _globals['_CATCH']._serialized_start=4693 - _globals['_CATCH']._serialized_end=4700 - _globals['_MOVE']._serialized_start=4702 - _globals['_MOVE']._serialized_end=4730 - _globals['_TURNNECK']._serialized_start=4732 - _globals['_TURNNECK']._serialized_end=4758 - _globals['_CHANGEVIEW']._serialized_start=4760 - _globals['_CHANGEVIEW']._serialized_end=4811 - _globals['_BALLMESSAGE']._serialized_start=4813 - _globals['_BALLMESSAGE']._serialized_end=4908 - _globals['_PASSMESSAGE']._serialized_start=4911 - _globals['_PASSMESSAGE']._serialized_end=5081 - _globals['_INTERCEPTMESSAGE']._serialized_start=5083 - _globals['_INTERCEPTMESSAGE']._serialized_end=5153 - _globals['_GOALIEMESSAGE']._serialized_start=5155 - _globals['_GOALIEMESSAGE']._serialized_end=5275 - _globals['_GOALIEANDPLAYERMESSAGE']._serialized_start=5278 - _globals['_GOALIEANDPLAYERMESSAGE']._serialized_end=5481 - _globals['_OFFSIDELINEMESSAGE']._serialized_start=5483 - _globals['_OFFSIDELINEMESSAGE']._serialized_end=5527 - _globals['_DEFENSELINEMESSAGE']._serialized_start=5529 - _globals['_DEFENSELINEMESSAGE']._serialized_end=5573 - _globals['_WAITREQUESTMESSAGE']._serialized_start=5575 - _globals['_WAITREQUESTMESSAGE']._serialized_end=5595 - _globals['_SETPLAYMESSAGE']._serialized_start=5597 - _globals['_SETPLAYMESSAGE']._serialized_end=5632 - _globals['_PASSREQUESTMESSAGE']._serialized_start=5634 - _globals['_PASSREQUESTMESSAGE']._serialized_end=5694 - _globals['_STAMINAMESSAGE']._serialized_start=5696 - _globals['_STAMINAMESSAGE']._serialized_end=5729 - _globals['_RECOVERYMESSAGE']._serialized_start=5731 - _globals['_RECOVERYMESSAGE']._serialized_end=5766 - _globals['_STAMINACAPACITYMESSAGE']._serialized_start=5768 - _globals['_STAMINACAPACITYMESSAGE']._serialized_end=5818 - _globals['_DRIBBLEMESSAGE']._serialized_start=5820 - _globals['_DRIBBLEMESSAGE']._serialized_end=5897 - _globals['_BALLGOALIEMESSAGE']._serialized_start=5900 - _globals['_BALLGOALIEMESSAGE']._serialized_end=6075 - _globals['_ONEPLAYERMESSAGE']._serialized_start=6077 - _globals['_ONEPLAYERMESSAGE']._serialized_end=6155 - _globals['_TWOPLAYERMESSAGE']._serialized_start=6158 - _globals['_TWOPLAYERMESSAGE']._serialized_end=6322 - _globals['_THREEPLAYERMESSAGE']._serialized_start=6325 - _globals['_THREEPLAYERMESSAGE']._serialized_end=6563 - _globals['_SELFMESSAGE']._serialized_start=6565 - _globals['_SELFMESSAGE']._serialized_end=6670 - _globals['_TEAMMATEMESSAGE']._serialized_start=6672 - _globals['_TEAMMATEMESSAGE']._serialized_end=6773 - _globals['_OPPONENTMESSAGE']._serialized_start=6775 - _globals['_OPPONENTMESSAGE']._serialized_end=6876 - _globals['_BALLPLAYERMESSAGE']._serialized_start=6879 - _globals['_BALLPLAYERMESSAGE']._serialized_end=7071 - _globals['_SAY']._serialized_start=7074 - _globals['_SAY']._serialized_end=8306 - _globals['_POINTTO']._serialized_start=8308 - _globals['_POINTTO']._serialized_end=8339 - _globals['_POINTTOOF']._serialized_start=8341 - _globals['_POINTTOOF']._serialized_end=8352 - _globals['_ATTENTIONTO']._serialized_start=8354 - _globals['_ATTENTIONTO']._serialized_end=8409 - _globals['_ATTENTIONTOOF']._serialized_start=8411 - _globals['_ATTENTIONTOOF']._serialized_end=8426 - _globals['_ADDTEXT']._serialized_start=8428 - _globals['_ADDTEXT']._serialized_end=8490 - _globals['_ADDPOINT']._serialized_start=8492 - _globals['_ADDPOINT']._serialized_end=8586 - _globals['_ADDLINE']._serialized_start=8588 - _globals['_ADDLINE']._serialized_end=8712 - _globals['_ADDARC']._serialized_start=8715 - _globals['_ADDARC']._serialized_end=8865 - _globals['_ADDCIRCLE']._serialized_start=8867 - _globals['_ADDCIRCLE']._serialized_end=8993 - _globals['_ADDTRIANGLE']._serialized_start=8996 - _globals['_ADDTRIANGLE']._serialized_end=9176 - _globals['_ADDRECTANGLE']._serialized_start=9179 - _globals['_ADDRECTANGLE']._serialized_end=9316 - _globals['_ADDSECTOR']._serialized_start=9319 - _globals['_ADDSECTOR']._serialized_end=9510 - _globals['_ADDMESSAGE']._serialized_start=9512 - _globals['_ADDMESSAGE']._serialized_end=9628 - _globals['_LOG']._serialized_start=9631 - _globals['_LOG']._serialized_end=10008 - _globals['_DEBUGCLIENT']._serialized_start=10010 - _globals['_DEBUGCLIENT']._serialized_end=10040 - _globals['_BODY_GOTOPOINT']._serialized_start=10042 - _globals['_BODY_GOTOPOINT']._serialized_end=10150 - _globals['_BODY_SMARTKICK']._serialized_start=10152 - _globals['_BODY_SMARTKICK']._serialized_end=10279 - _globals['_BHV_BEFOREKICKOFF']._serialized_start=10281 - _globals['_BHV_BEFOREKICKOFF']._serialized_end=10333 - _globals['_BHV_BODYNECKTOBALL']._serialized_start=10335 - _globals['_BHV_BODYNECKTOBALL']._serialized_end=10355 - _globals['_BHV_BODYNECKTOPOINT']._serialized_start=10357 - _globals['_BHV_BODYNECKTOPOINT']._serialized_end=10411 - _globals['_BHV_EMERGENCY']._serialized_start=10413 - _globals['_BHV_EMERGENCY']._serialized_end=10428 - _globals['_BHV_GOTOPOINTLOOKBALL']._serialized_start=10430 - _globals['_BHV_GOTOPOINTLOOKBALL']._serialized_end=10545 - _globals['_BHV_NECKBODYTOBALL']._serialized_start=10547 - _globals['_BHV_NECKBODYTOBALL']._serialized_end=10586 - _globals['_BHV_NECKBODYTOPOINT']._serialized_start=10588 - _globals['_BHV_NECKBODYTOPOINT']._serialized_end=10661 - _globals['_BHV_SCANFIELD']._serialized_start=10663 - _globals['_BHV_SCANFIELD']._serialized_end=10678 - _globals['_BODY_ADVANCEBALL']._serialized_start=10680 - _globals['_BODY_ADVANCEBALL']._serialized_end=10698 - _globals['_BODY_CLEARBALL']._serialized_start=10700 - _globals['_BODY_CLEARBALL']._serialized_end=10716 - _globals['_BODY_DRIBBLE']._serialized_start=10719 - _globals['_BODY_DRIBBLE']._serialized_end=10856 - _globals['_BODY_GOTOPOINTDODGE']._serialized_start=10858 - _globals['_BODY_GOTOPOINTDODGE']._serialized_end=10939 - _globals['_BODY_HOLDBALL']._serialized_start=10941 - _globals['_BODY_HOLDBALL']._serialized_end=11063 - _globals['_BODY_INTERCEPT']._serialized_start=11065 - _globals['_BODY_INTERCEPT']._serialized_end=11142 - _globals['_BODY_KICKONESTEP']._serialized_start=11144 - _globals['_BODY_KICKONESTEP']._serialized_end=11243 - _globals['_BODY_STOPBALL']._serialized_start=11245 - _globals['_BODY_STOPBALL']._serialized_end=11260 - _globals['_BODY_STOPDASH']._serialized_start=11262 - _globals['_BODY_STOPDASH']._serialized_end=11300 - _globals['_BODY_TACKLETOPOINT']._serialized_start=11302 - _globals['_BODY_TACKLETOPOINT']._serialized_end=11406 - _globals['_BODY_TURNTOANGLE']._serialized_start=11408 - _globals['_BODY_TURNTOANGLE']._serialized_end=11441 - _globals['_BODY_TURNTOBALL']._serialized_start=11443 - _globals['_BODY_TURNTOBALL']._serialized_end=11475 - _globals['_BODY_TURNTOPOINT']._serialized_start=11477 - _globals['_BODY_TURNTOPOINT']._serialized_end=11550 - _globals['_FOCUS_MOVETOPOINT']._serialized_start=11552 - _globals['_FOCUS_MOVETOPOINT']._serialized_end=11611 - _globals['_FOCUS_RESET']._serialized_start=11613 - _globals['_FOCUS_RESET']._serialized_end=11626 - _globals['_NECK_SCANFIELD']._serialized_start=11628 - _globals['_NECK_SCANFIELD']._serialized_end=11644 - _globals['_NECK_SCANPLAYERS']._serialized_start=11646 - _globals['_NECK_SCANPLAYERS']._serialized_end=11664 - _globals['_NECK_TURNTOBALLANDPLAYER']._serialized_start=11666 - _globals['_NECK_TURNTOBALLANDPLAYER']._serialized_end=11769 - _globals['_NECK_TURNTOBALLORSCAN']._serialized_start=11771 - _globals['_NECK_TURNTOBALLORSCAN']._serialized_end=11819 - _globals['_NECK_TURNTOBALL']._serialized_start=11821 - _globals['_NECK_TURNTOBALL']._serialized_end=11838 - _globals['_NECK_TURNTOGOALIEORSCAN']._serialized_start=11840 - _globals['_NECK_TURNTOGOALIEORSCAN']._serialized_end=11890 - _globals['_NECK_TURNTOLOWCONFTEAMMATE']._serialized_start=11892 - _globals['_NECK_TURNTOLOWCONFTEAMMATE']._serialized_end=11920 - _globals['_NECK_TURNTOPLAYERORSCAN']._serialized_start=11922 - _globals['_NECK_TURNTOPLAYERORSCAN']._serialized_end=12024 - _globals['_NECK_TURNTOPOINT']._serialized_start=12026 - _globals['_NECK_TURNTOPOINT']._serialized_end=12084 - _globals['_NECK_TURNTORELATIVE']._serialized_start=12086 - _globals['_NECK_TURNTORELATIVE']._serialized_end=12122 - _globals['_VIEW_CHANGEWIDTH']._serialized_start=12124 - _globals['_VIEW_CHANGEWIDTH']._serialized_end=12181 - _globals['_VIEW_NORMAL']._serialized_start=12183 - _globals['_VIEW_NORMAL']._serialized_end=12196 - _globals['_VIEW_SYNCH']._serialized_start=12198 - _globals['_VIEW_SYNCH']._serialized_end=12210 - _globals['_VIEW_WIDE']._serialized_start=12212 - _globals['_VIEW_WIDE']._serialized_end=12223 - _globals['_HELIOSGOALIE']._serialized_start=12225 - _globals['_HELIOSGOALIE']._serialized_end=12239 - _globals['_HELIOSGOALIEMOVE']._serialized_start=12241 - _globals['_HELIOSGOALIEMOVE']._serialized_end=12259 - _globals['_HELIOSGOALIEKICK']._serialized_start=12261 - _globals['_HELIOSGOALIEKICK']._serialized_end=12279 - _globals['_HELIOSSHOOT']._serialized_start=12281 - _globals['_HELIOSSHOOT']._serialized_end=12294 - _globals['_HELIOSCHAINACTION']._serialized_start=12297 - _globals['_HELIOSCHAINACTION']._serialized_end=12505 - _globals['_HELIOSBASICOFFENSIVE']._serialized_start=12507 - _globals['_HELIOSBASICOFFENSIVE']._serialized_end=12529 - _globals['_HELIOSBASICMOVE']._serialized_start=12531 - _globals['_HELIOSBASICMOVE']._serialized_end=12548 - _globals['_HELIOSSETPLAY']._serialized_start=12550 - _globals['_HELIOSSETPLAY']._serialized_end=12565 - _globals['_HELIOSPENALTY']._serialized_start=12567 - _globals['_HELIOSPENALTY']._serialized_end=12582 - _globals['_HELIOSCOMMUNICAION']._serialized_start=12584 - _globals['_HELIOSCOMMUNICAION']._serialized_end=12604 - _globals['_PLAYERACTION']._serialized_start=12607 - _globals['_PLAYERACTION']._serialized_end=15906 - _globals['_PLAYERACTIONS']._serialized_start=15908 - _globals['_PLAYERACTIONS']._serialized_end=15962 - _globals['_CHANGEPLAYERTYPE']._serialized_start=15964 - _globals['_CHANGEPLAYERTYPE']._serialized_end=16020 - _globals['_DOHELIOSSUBSTITUTE']._serialized_start=16022 - _globals['_DOHELIOSSUBSTITUTE']._serialized_end=16042 - _globals['_DOHELIOSSAYPLAYERTYPES']._serialized_start=16044 - _globals['_DOHELIOSSAYPLAYERTYPES']._serialized_end=16068 - _globals['_COACHACTION']._serialized_start=16071 - _globals['_COACHACTION']._serialized_end=16281 - _globals['_COACHACTIONS']._serialized_start=16283 - _globals['_COACHACTIONS']._serialized_end=16335 - _globals['_DOKICKOFF']._serialized_start=16337 - _globals['_DOKICKOFF']._serialized_end=16348 - _globals['_DOMOVEBALL']._serialized_start=16350 - _globals['_DOMOVEBALL']._serialized_end=16434 - _globals['_DOMOVEPLAYER']._serialized_start=16436 - _globals['_DOMOVEPLAYER']._serialized_end=16552 - _globals['_DORECOVER']._serialized_start=16554 - _globals['_DORECOVER']._serialized_end=16565 - _globals['_DOCHANGEMODE']._serialized_start=16567 - _globals['_DOCHANGEMODE']._serialized_end=16655 - _globals['_DOCHANGEPLAYERTYPE']._serialized_start=16657 - _globals['_DOCHANGEPLAYERTYPE']._serialized_end=16733 - _globals['_TRAINERACTION']._serialized_start=16736 - _globals['_TRAINERACTION']._serialized_end=17045 - _globals['_TRAINERACTIONS']._serialized_start=17047 - _globals['_TRAINERACTIONS']._serialized_end=17103 - _globals['_SERVERPARAM']._serialized_start=17106 - _globals['_SERVERPARAM']._serialized_end=22817 - _globals['_PLAYERPARAM']._serialized_start=22820 - _globals['_PLAYERPARAM']._serialized_end=23843 - _globals['_PLAYERTYPE']._serialized_start=23846 - _globals['_PLAYERTYPE']._serialized_end=24791 - _globals['_EMPTY']._serialized_start=24793 - _globals['_EMPTY']._serialized_end=24800 - _globals['_INITMESSAGEFROMSERVER']._serialized_start=24802 - _globals['_INITMESSAGEFROMSERVER']._serialized_end=24825 - _globals['_GAME']._serialized_start=25967 - _globals['_GAME']._serialized_end=26497 -# @@protoc_insertion_point(module_scope) diff --git a/service_pb2.pyi b/service_pb2.pyi deleted file mode 100644 index 38856b4..0000000 --- a/service_pb2.pyi +++ /dev/null @@ -1,2128 +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] - -class AgentType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - PlayerT: _ClassVar[AgentType] - CoachT: _ClassVar[AgentType] - TrainerT: _ClassVar[AgentType] -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 -PlayerT: AgentType -CoachT: AgentType -TrainerT: AgentType - -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__ = ("agent_type", "world_model", "full_world_model") - AGENT_TYPE_FIELD_NUMBER: _ClassVar[int] - WORLD_MODEL_FIELD_NUMBER: _ClassVar[int] - FULL_WORLD_MODEL_FIELD_NUMBER: _ClassVar[int] - agent_type: AgentType - world_model: WorldModel - full_world_model: WorldModel - def __init__(self, agent_type: _Optional[_Union[AgentType, str]] = ..., world_model: _Optional[_Union[WorldModel, _Mapping]] = ..., full_world_model: _Optional[_Union[WorldModel, _Mapping]] = ...) -> None: ... - -class InitMessage(_message.Message): - __slots__ = ("agent_type", "debug_mode") - AGENT_TYPE_FIELD_NUMBER: _ClassVar[int] - DEBUG_MODE_FIELD_NUMBER: _ClassVar[int] - agent_type: AgentType - debug_mode: bool - def __init__(self, agent_type: _Optional[_Union[AgentType, str]] = ..., 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 PlayerAction(_message.Message): - __slots__ = ("dash", "turn", "kick", "tackle", "catch", "move", "turn_neck", "change_view", "say", "point_to", "point_to_of", "attention_to", "attention_to_of", "log", "debug_client", "body_go_to_point", "body_smart_kick", "bhv_before_kick_off", "bhv_body_neck_to_ball", "bhv_body_neck_to_point", "bhv_emergency", "bhv_go_to_point_look_ball", "bhv_neck_body_to_ball", "bhv_neck_body_to_point", "bhv_scan_field", "body_advance_ball", "body_clear_ball", "body_dribble", "body_go_to_point_dodge", "body_hold_ball", "body_intercept", "body_kick_one_step", "body_stop_ball", "body_stop_dash", "body_tackle_to_point", "body_turn_to_angle", "body_turn_to_ball", "body_turn_to_point", "focus_move_to_point", "focus_reset", "neck_scan_field", "neck_scan_players", "neck_turn_to_ball_and_player", "neck_turn_to_ball_or_scan", "neck_turn_to_ball", "neck_turn_to_goalie_or_scan", "neck_turn_to_low_conf_teammate", "neck_turn_to_player_or_scan", "neck_turn_to_point", "neck_turn_to_relative", "view_change_width", "view_normal", "view_synch", "view_wide", "helios_goalie", "helios_goalie_move", "helios_goalie_kick", "helios_shoot", "helios_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 PlayerActions(_message.Message): - __slots__ = ("actions",) - ACTIONS_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[PlayerAction] - def __init__(self, actions: _Optional[_Iterable[_Union[PlayerAction, _Mapping]]] = ...) -> None: ... - -class ChangePlayerType(_message.Message): - __slots__ = ("uniform_number", "type") - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - uniform_number: int - type: int - def __init__(self, uniform_number: _Optional[int] = ..., type: _Optional[int] = ...) -> None: ... - -class DoHeliosSubstitute(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class DoHeliosSayPlayerTypes(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class CoachAction(_message.Message): - __slots__ = ("change_player_types", "do_helios_substitute", "do_helios_say_player_types") - CHANGE_PLAYER_TYPES_FIELD_NUMBER: _ClassVar[int] - DO_HELIOS_SUBSTITUTE_FIELD_NUMBER: _ClassVar[int] - DO_HELIOS_SAY_PLAYER_TYPES_FIELD_NUMBER: _ClassVar[int] - change_player_types: ChangePlayerType - do_helios_substitute: DoHeliosSubstitute - do_helios_say_player_types: DoHeliosSayPlayerTypes - def __init__(self, change_player_types: _Optional[_Union[ChangePlayerType, _Mapping]] = ..., do_helios_substitute: _Optional[_Union[DoHeliosSubstitute, _Mapping]] = ..., do_helios_say_player_types: _Optional[_Union[DoHeliosSayPlayerTypes, _Mapping]] = ...) -> None: ... - -class CoachActions(_message.Message): - __slots__ = ("actions",) - ACTIONS_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[CoachAction] - def __init__(self, actions: _Optional[_Iterable[_Union[CoachAction, _Mapping]]] = ...) -> None: ... - -class DoKickOff(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class DoMoveBall(_message.Message): - __slots__ = ("position", "velocity") - POSITION_FIELD_NUMBER: _ClassVar[int] - VELOCITY_FIELD_NUMBER: _ClassVar[int] - position: Vector2D - velocity: Vector2D - def __init__(self, position: _Optional[_Union[Vector2D, _Mapping]] = ..., velocity: _Optional[_Union[Vector2D, _Mapping]] = ...) -> None: ... - -class DoMovePlayer(_message.Message): - __slots__ = ("our_side", "uniform_number", "position", "body_direction") - OUR_SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - POSITION_FIELD_NUMBER: _ClassVar[int] - BODY_DIRECTION_FIELD_NUMBER: _ClassVar[int] - our_side: bool - uniform_number: int - position: Vector2D - body_direction: float - def __init__(self, our_side: bool = ..., uniform_number: _Optional[int] = ..., position: _Optional[_Union[Vector2D, _Mapping]] = ..., body_direction: _Optional[float] = ...) -> None: ... - -class DoRecover(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class DoChangeMode(_message.Message): - __slots__ = ("game_mode_type", "side") - GAME_MODE_TYPE_FIELD_NUMBER: _ClassVar[int] - SIDE_FIELD_NUMBER: _ClassVar[int] - game_mode_type: GameModeType - side: Side - def __init__(self, game_mode_type: _Optional[_Union[GameModeType, str]] = ..., side: _Optional[_Union[Side, str]] = ...) -> None: ... - -class DoChangePlayerType(_message.Message): - __slots__ = ("our_side", "uniform_number", "type") - OUR_SIDE_FIELD_NUMBER: _ClassVar[int] - UNIFORM_NUMBER_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - our_side: bool - uniform_number: int - type: int - def __init__(self, our_side: bool = ..., uniform_number: _Optional[int] = ..., type: _Optional[int] = ...) -> None: ... - -class TrainerAction(_message.Message): - __slots__ = ("do_kick_off", "do_move_ball", "do_move_player", "do_recover", "do_change_mode", "do_change_player_type") - DO_KICK_OFF_FIELD_NUMBER: _ClassVar[int] - DO_MOVE_BALL_FIELD_NUMBER: _ClassVar[int] - DO_MOVE_PLAYER_FIELD_NUMBER: _ClassVar[int] - DO_RECOVER_FIELD_NUMBER: _ClassVar[int] - DO_CHANGE_MODE_FIELD_NUMBER: _ClassVar[int] - DO_CHANGE_PLAYER_TYPE_FIELD_NUMBER: _ClassVar[int] - do_kick_off: DoKickOff - do_move_ball: DoMoveBall - do_move_player: DoMovePlayer - do_recover: DoRecover - do_change_mode: DoChangeMode - do_change_player_type: DoChangePlayerType - def __init__(self, do_kick_off: _Optional[_Union[DoKickOff, _Mapping]] = ..., do_move_ball: _Optional[_Union[DoMoveBall, _Mapping]] = ..., do_move_player: _Optional[_Union[DoMovePlayer, _Mapping]] = ..., do_recover: _Optional[_Union[DoRecover, _Mapping]] = ..., do_change_mode: _Optional[_Union[DoChangeMode, _Mapping]] = ..., do_change_player_type: _Optional[_Union[DoChangePlayerType, _Mapping]] = ...) -> None: ... - -class TrainerActions(_message.Message): - __slots__ = ("actions",) - ACTIONS_FIELD_NUMBER: _ClassVar[int] - actions: _containers.RepeatedCompositeFieldContainer[TrainerAction] - def __init__(self, actions: _Optional[_Iterable[_Union[TrainerAction, _Mapping]]] = ...) -> None: ... - -class ServerParam(_message.Message): - __slots__ = ("agent_type", "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") - AGENT_TYPE_FIELD_NUMBER: _ClassVar[int] - INERTIA_MOMENT_FIELD_NUMBER: _ClassVar[int] - PLAYER_SIZE_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_FIELD_NUMBER: _ClassVar[int] - PLAYER_RAND_FIELD_NUMBER: _ClassVar[int] - PLAYER_WEIGHT_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_ACCEL_MAX_FIELD_NUMBER: _ClassVar[int] - STAMINA_MAX_FIELD_NUMBER: _ClassVar[int] - STAMINA_INC_MAX_FIELD_NUMBER: _ClassVar[int] - RECOVER_INIT_FIELD_NUMBER: _ClassVar[int] - RECOVER_DEC_THR_FIELD_NUMBER: _ClassVar[int] - RECOVER_MIN_FIELD_NUMBER: _ClassVar[int] - RECOVER_DEC_FIELD_NUMBER: _ClassVar[int] - EFFORT_INIT_FIELD_NUMBER: _ClassVar[int] - EFFORT_DEC_THR_FIELD_NUMBER: _ClassVar[int] - EFFORT_MIN_FIELD_NUMBER: _ClassVar[int] - EFFORT_DEC_FIELD_NUMBER: _ClassVar[int] - EFFORT_INC_THR_FIELD_NUMBER: _ClassVar[int] - EFFORT_INC_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FIELD_NUMBER: _ClassVar[int] - TEAM_ACTUATOR_NOISE_FIELD_NUMBER: _ClassVar[int] - PLAYER_RAND_FACTOR_L_FIELD_NUMBER: _ClassVar[int] - PLAYER_RAND_FACTOR_R_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FACTOR_L_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FACTOR_R_FIELD_NUMBER: _ClassVar[int] - BALL_SIZE_FIELD_NUMBER: _ClassVar[int] - BALL_DECAY_FIELD_NUMBER: _ClassVar[int] - BALL_RAND_FIELD_NUMBER: _ClassVar[int] - BALL_WEIGHT_FIELD_NUMBER: _ClassVar[int] - BALL_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - BALL_ACCEL_MAX_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_FIELD_NUMBER: _ClassVar[int] - CONTROL_RADIUS_FIELD_NUMBER: _ClassVar[int] - CONTROL_RADIUS_WIDTH_FIELD_NUMBER: _ClassVar[int] - MAX_POWER_FIELD_NUMBER: _ClassVar[int] - MIN_POWER_FIELD_NUMBER: _ClassVar[int] - MAX_MOMENT_FIELD_NUMBER: _ClassVar[int] - MIN_MOMENT_FIELD_NUMBER: _ClassVar[int] - MAX_NECK_MOMENT_FIELD_NUMBER: _ClassVar[int] - MIN_NECK_MOMENT_FIELD_NUMBER: _ClassVar[int] - MAX_NECK_ANGLE_FIELD_NUMBER: _ClassVar[int] - MIN_NECK_ANGLE_FIELD_NUMBER: _ClassVar[int] - VISIBLE_ANGLE_FIELD_NUMBER: _ClassVar[int] - VISIBLE_DISTANCE_FIELD_NUMBER: _ClassVar[int] - WIND_DIR_FIELD_NUMBER: _ClassVar[int] - WIND_FORCE_FIELD_NUMBER: _ClassVar[int] - WIND_ANGLE_FIELD_NUMBER: _ClassVar[int] - WIND_RAND_FIELD_NUMBER: _ClassVar[int] - KICKABLE_AREA_FIELD_NUMBER: _ClassVar[int] - CATCH_AREA_L_FIELD_NUMBER: _ClassVar[int] - CATCH_AREA_W_FIELD_NUMBER: _ClassVar[int] - CATCH_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - GOALIE_MAX_MOVES_FIELD_NUMBER: _ClassVar[int] - CORNER_KICK_MARGIN_FIELD_NUMBER: _ClassVar[int] - OFFSIDE_ACTIVE_AREA_SIZE_FIELD_NUMBER: _ClassVar[int] - WIND_NONE_FIELD_NUMBER: _ClassVar[int] - USE_WIND_RANDOM_FIELD_NUMBER: _ClassVar[int] - COACH_SAY_COUNT_MAX_FIELD_NUMBER: _ClassVar[int] - COACH_SAY_MSG_SIZE_FIELD_NUMBER: _ClassVar[int] - CLANG_WIN_SIZE_FIELD_NUMBER: _ClassVar[int] - CLANG_DEFINE_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_META_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_ADVICE_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_INFO_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_MESS_DELAY_FIELD_NUMBER: _ClassVar[int] - CLANG_MESS_PER_CYCLE_FIELD_NUMBER: _ClassVar[int] - HALF_TIME_FIELD_NUMBER: _ClassVar[int] - SIMULATOR_STEP_FIELD_NUMBER: _ClassVar[int] - SEND_STEP_FIELD_NUMBER: _ClassVar[int] - RECV_STEP_FIELD_NUMBER: _ClassVar[int] - SENSE_BODY_STEP_FIELD_NUMBER: _ClassVar[int] - LCM_STEP_FIELD_NUMBER: _ClassVar[int] - PLAYER_SAY_MSG_SIZE_FIELD_NUMBER: _ClassVar[int] - PLAYER_HEAR_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_HEAR_INC_FIELD_NUMBER: _ClassVar[int] - PLAYER_HEAR_DECAY_FIELD_NUMBER: _ClassVar[int] - CATCH_BAN_CYCLE_FIELD_NUMBER: _ClassVar[int] - SLOW_DOWN_FACTOR_FIELD_NUMBER: _ClassVar[int] - USE_OFFSIDE_FIELD_NUMBER: _ClassVar[int] - KICKOFF_OFFSIDE_FIELD_NUMBER: _ClassVar[int] - OFFSIDE_KICK_MARGIN_FIELD_NUMBER: _ClassVar[int] - AUDIO_CUT_DIST_FIELD_NUMBER: _ClassVar[int] - DIST_QUANTIZE_STEP_FIELD_NUMBER: _ClassVar[int] - LANDMARK_DIST_QUANTIZE_STEP_FIELD_NUMBER: _ClassVar[int] - DIR_QUANTIZE_STEP_FIELD_NUMBER: _ClassVar[int] - DIST_QUANTIZE_STEP_L_FIELD_NUMBER: _ClassVar[int] - DIST_QUANTIZE_STEP_R_FIELD_NUMBER: _ClassVar[int] - LANDMARK_DIST_QUANTIZE_STEP_L_FIELD_NUMBER: _ClassVar[int] - LANDMARK_DIST_QUANTIZE_STEP_R_FIELD_NUMBER: _ClassVar[int] - DIR_QUANTIZE_STEP_L_FIELD_NUMBER: _ClassVar[int] - DIR_QUANTIZE_STEP_R_FIELD_NUMBER: _ClassVar[int] - COACH_MODE_FIELD_NUMBER: _ClassVar[int] - COACH_WITH_REFEREE_MODE_FIELD_NUMBER: _ClassVar[int] - USE_OLD_COACH_HEAR_FIELD_NUMBER: _ClassVar[int] - SLOWNESS_ON_TOP_FOR_LEFT_TEAM_FIELD_NUMBER: _ClassVar[int] - SLOWNESS_ON_TOP_FOR_RIGHT_TEAM_FIELD_NUMBER: _ClassVar[int] - START_GOAL_L_FIELD_NUMBER: _ClassVar[int] - START_GOAL_R_FIELD_NUMBER: _ClassVar[int] - FULLSTATE_L_FIELD_NUMBER: _ClassVar[int] - FULLSTATE_R_FIELD_NUMBER: _ClassVar[int] - DROP_BALL_TIME_FIELD_NUMBER: _ClassVar[int] - SYNCH_MODE_FIELD_NUMBER: _ClassVar[int] - SYNCH_OFFSET_FIELD_NUMBER: _ClassVar[int] - SYNCH_MICRO_SLEEP_FIELD_NUMBER: _ClassVar[int] - POINT_TO_BAN_FIELD_NUMBER: _ClassVar[int] - POINT_TO_DURATION_FIELD_NUMBER: _ClassVar[int] - PLAYER_PORT_FIELD_NUMBER: _ClassVar[int] - TRAINER_PORT_FIELD_NUMBER: _ClassVar[int] - ONLINE_COACH_PORT_FIELD_NUMBER: _ClassVar[int] - VERBOSE_MODE_FIELD_NUMBER: _ClassVar[int] - COACH_SEND_VI_STEP_FIELD_NUMBER: _ClassVar[int] - REPLAY_FILE_FIELD_NUMBER: _ClassVar[int] - LANDMARK_FILE_FIELD_NUMBER: _ClassVar[int] - SEND_COMMS_FIELD_NUMBER: _ClassVar[int] - TEXT_LOGGING_FIELD_NUMBER: _ClassVar[int] - GAME_LOGGING_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_VERSION_FIELD_NUMBER: _ClassVar[int] - TEXT_LOG_DIR_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_DIR_FIELD_NUMBER: _ClassVar[int] - TEXT_LOG_FIXED_NAME_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_FIXED_NAME_FIELD_NUMBER: _ClassVar[int] - USE_TEXT_LOG_FIXED_FIELD_NUMBER: _ClassVar[int] - USE_GAME_LOG_FIXED_FIELD_NUMBER: _ClassVar[int] - USE_TEXT_LOG_DATED_FIELD_NUMBER: _ClassVar[int] - USE_GAME_LOG_DATED_FIELD_NUMBER: _ClassVar[int] - LOG_DATE_FORMAT_FIELD_NUMBER: _ClassVar[int] - LOG_TIMES_FIELD_NUMBER: _ClassVar[int] - RECORD_MESSAGE_FIELD_NUMBER: _ClassVar[int] - TEXT_LOG_COMPRESSION_FIELD_NUMBER: _ClassVar[int] - GAME_LOG_COMPRESSION_FIELD_NUMBER: _ClassVar[int] - USE_PROFILE_FIELD_NUMBER: _ClassVar[int] - TACKLE_DIST_FIELD_NUMBER: _ClassVar[int] - TACKLE_BACK_DIST_FIELD_NUMBER: _ClassVar[int] - TACKLE_WIDTH_FIELD_NUMBER: _ClassVar[int] - TACKLE_EXPONENT_FIELD_NUMBER: _ClassVar[int] - TACKLE_CYCLES_FIELD_NUMBER: _ClassVar[int] - TACKLE_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - FREEFORM_WAIT_PERIOD_FIELD_NUMBER: _ClassVar[int] - FREEFORM_SEND_PERIOD_FIELD_NUMBER: _ClassVar[int] - FREE_KICK_FAULTS_FIELD_NUMBER: _ClassVar[int] - BACK_PASSES_FIELD_NUMBER: _ClassVar[int] - PROPER_GOAL_KICKS_FIELD_NUMBER: _ClassVar[int] - STOPPED_BALL_VEL_FIELD_NUMBER: _ClassVar[int] - MAX_GOAL_KICKS_FIELD_NUMBER: _ClassVar[int] - CLANG_DEL_WIN_FIELD_NUMBER: _ClassVar[int] - CLANG_RULE_WIN_FIELD_NUMBER: _ClassVar[int] - AUTO_MODE_FIELD_NUMBER: _ClassVar[int] - KICK_OFF_WAIT_FIELD_NUMBER: _ClassVar[int] - CONNECT_WAIT_FIELD_NUMBER: _ClassVar[int] - GAME_OVER_WAIT_FIELD_NUMBER: _ClassVar[int] - TEAM_L_START_FIELD_NUMBER: _ClassVar[int] - TEAM_R_START_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_MODE_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LENGTH_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_WIDTH_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOGGING_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_DIR_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_FIXED_NAME_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_FIXED_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_LOG_DATED_FIELD_NUMBER: _ClassVar[int] - KEEPAWAY_START_FIELD_NUMBER: _ClassVar[int] - NR_NORMAL_HALFS_FIELD_NUMBER: _ClassVar[int] - NR_EXTRA_HALFS_FIELD_NUMBER: _ClassVar[int] - PENALTY_SHOOT_OUTS_FIELD_NUMBER: _ClassVar[int] - PEN_BEFORE_SETUP_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_SETUP_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_READY_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_TAKEN_WAIT_FIELD_NUMBER: _ClassVar[int] - PEN_NR_KICKS_FIELD_NUMBER: _ClassVar[int] - PEN_MAX_EXTRA_KICKS_FIELD_NUMBER: _ClassVar[int] - PEN_DIST_X_FIELD_NUMBER: _ClassVar[int] - PEN_RANDOM_WINNER_FIELD_NUMBER: _ClassVar[int] - PEN_ALLOW_MULT_KICKS_FIELD_NUMBER: _ClassVar[int] - PEN_MAX_GOALIE_DIST_X_FIELD_NUMBER: _ClassVar[int] - PEN_COACH_MOVES_PLAYERS_FIELD_NUMBER: _ClassVar[int] - MODULE_DIR_FIELD_NUMBER: _ClassVar[int] - BALL_STUCK_AREA_FIELD_NUMBER: _ClassVar[int] - COACH_MSG_FILE_FIELD_NUMBER: _ClassVar[int] - MAX_TACKLE_POWER_FIELD_NUMBER: _ClassVar[int] - MAX_BACK_TACKLE_POWER_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_MIN_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_FIELD_NUMBER: _ClassVar[int] - SYNCH_SEE_OFFSET_FIELD_NUMBER: _ClassVar[int] - EXTRA_HALF_TIME_FIELD_NUMBER: _ClassVar[int] - STAMINA_CAPACITY_FIELD_NUMBER: _ClassVar[int] - MAX_DASH_ANGLE_FIELD_NUMBER: _ClassVar[int] - MIN_DASH_ANGLE_FIELD_NUMBER: _ClassVar[int] - DASH_ANGLE_STEP_FIELD_NUMBER: _ClassVar[int] - SIDE_DASH_RATE_FIELD_NUMBER: _ClassVar[int] - BACK_DASH_RATE_FIELD_NUMBER: _ClassVar[int] - MAX_DASH_POWER_FIELD_NUMBER: _ClassVar[int] - MIN_DASH_POWER_FIELD_NUMBER: _ClassVar[int] - TACKLE_RAND_FACTOR_FIELD_NUMBER: _ClassVar[int] - FOUL_DETECT_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - FOUL_EXPONENT_FIELD_NUMBER: _ClassVar[int] - FOUL_CYCLES_FIELD_NUMBER: _ClassVar[int] - GOLDEN_GOAL_FIELD_NUMBER: _ClassVar[int] - RED_CARD_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_DURATION_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_NUMBER_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_DIST_X_FIELD_NUMBER: _ClassVar[int] - ILLEGAL_DEFENSE_WIDTH_FIELD_NUMBER: _ClassVar[int] - FIXED_TEAMNAME_L_FIELD_NUMBER: _ClassVar[int] - FIXED_TEAMNAME_R_FIELD_NUMBER: _ClassVar[int] - MAX_CATCH_ANGLE_FIELD_NUMBER: _ClassVar[int] - MIN_CATCH_ANGLE_FIELD_NUMBER: _ClassVar[int] - RANDOM_SEED_FIELD_NUMBER: _ClassVar[int] - LONG_KICK_POWER_FACTOR_FIELD_NUMBER: _ClassVar[int] - LONG_KICK_DELAY_FIELD_NUMBER: _ClassVar[int] - MAX_MONITORS_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_FIELD_NUMBER: _ClassVar[int] - REAL_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - PITCH_HALF_LENGTH_FIELD_NUMBER: _ClassVar[int] - PITCH_HALF_WIDTH_FIELD_NUMBER: _ClassVar[int] - OUR_PENALTY_AREA_LINE_X_FIELD_NUMBER: _ClassVar[int] - THEIR_PENALTY_AREA_LINE_X_FIELD_NUMBER: _ClassVar[int] - PENALTY_AREA_HALF_WIDTH_FIELD_NUMBER: _ClassVar[int] - PENALTY_AREA_LENGTH_FIELD_NUMBER: _ClassVar[int] - GOAL_WIDTH_FIELD_NUMBER: _ClassVar[int] - agent_type: AgentType - inertia_moment: float - player_size: float - player_decay: float - player_rand: float - player_weight: float - player_speed_max: float - player_accel_max: float - stamina_max: float - stamina_inc_max: float - recover_init: float - recover_dec_thr: float - recover_min: float - recover_dec: float - effort_init: float - effort_dec_thr: float - effort_min: float - effort_dec: float - effort_inc_thr: float - effort_inc: float - kick_rand: float - team_actuator_noise: bool - player_rand_factor_l: float - player_rand_factor_r: float - kick_rand_factor_l: float - kick_rand_factor_r: float - ball_size: float - ball_decay: float - ball_rand: float - ball_weight: float - ball_speed_max: float - ball_accel_max: float - dash_power_rate: float - kick_power_rate: float - kickable_margin: float - control_radius: float - control_radius_width: float - max_power: float - min_power: float - max_moment: float - min_moment: float - max_neck_moment: float - min_neck_moment: float - max_neck_angle: float - min_neck_angle: float - visible_angle: float - visible_distance: float - wind_dir: float - wind_force: float - wind_angle: float - wind_rand: float - kickable_area: float - catch_area_l: float - catch_area_w: float - catch_probability: float - goalie_max_moves: int - corner_kick_margin: float - offside_active_area_size: float - wind_none: bool - use_wind_random: bool - coach_say_count_max: int - coach_say_msg_size: int - clang_win_size: int - clang_define_win: int - clang_meta_win: int - clang_advice_win: int - clang_info_win: int - clang_mess_delay: int - clang_mess_per_cycle: int - half_time: int - simulator_step: int - send_step: int - recv_step: int - sense_body_step: int - lcm_step: int - player_say_msg_size: int - player_hear_max: int - player_hear_inc: int - player_hear_decay: int - catch_ban_cycle: int - slow_down_factor: int - use_offside: bool - kickoff_offside: bool - offside_kick_margin: float - audio_cut_dist: float - dist_quantize_step: float - landmark_dist_quantize_step: float - dir_quantize_step: float - dist_quantize_step_l: float - dist_quantize_step_r: float - landmark_dist_quantize_step_l: float - landmark_dist_quantize_step_r: float - dir_quantize_step_l: float - dir_quantize_step_r: float - coach_mode: bool - coach_with_referee_mode: bool - use_old_coach_hear: bool - slowness_on_top_for_left_team: float - slowness_on_top_for_right_team: float - start_goal_l: int - start_goal_r: int - fullstate_l: bool - fullstate_r: bool - drop_ball_time: int - synch_mode: bool - synch_offset: int - synch_micro_sleep: int - point_to_ban: int - point_to_duration: int - player_port: int - trainer_port: int - online_coach_port: int - verbose_mode: bool - coach_send_vi_step: int - replay_file: str - landmark_file: str - send_comms: bool - text_logging: bool - game_logging: bool - game_log_version: int - text_log_dir: str - game_log_dir: str - text_log_fixed_name: str - game_log_fixed_name: str - use_text_log_fixed: bool - use_game_log_fixed: bool - use_text_log_dated: bool - use_game_log_dated: bool - log_date_format: str - log_times: bool - record_message: bool - text_log_compression: int - game_log_compression: int - use_profile: bool - tackle_dist: float - tackle_back_dist: float - tackle_width: float - tackle_exponent: float - tackle_cycles: int - tackle_power_rate: float - freeform_wait_period: int - freeform_send_period: int - free_kick_faults: bool - back_passes: bool - proper_goal_kicks: bool - stopped_ball_vel: float - max_goal_kicks: int - clang_del_win: int - clang_rule_win: int - auto_mode: bool - kick_off_wait: int - connect_wait: int - game_over_wait: int - team_l_start: str - team_r_start: str - keepaway_mode: bool - keepaway_length: float - keepaway_width: float - keepaway_logging: bool - keepaway_log_dir: str - keepaway_log_fixed_name: str - keepaway_log_fixed: bool - keepaway_log_dated: bool - keepaway_start: int - nr_normal_halfs: int - nr_extra_halfs: int - penalty_shoot_outs: bool - pen_before_setup_wait: int - pen_setup_wait: int - pen_ready_wait: int - pen_taken_wait: int - pen_nr_kicks: int - pen_max_extra_kicks: int - pen_dist_x: float - pen_random_winner: bool - pen_allow_mult_kicks: bool - pen_max_goalie_dist_x: float - pen_coach_moves_players: bool - module_dir: str - ball_stuck_area: float - coach_msg_file: str - max_tackle_power: float - max_back_tackle_power: float - player_speed_max_min: float - extra_stamina: float - synch_see_offset: int - extra_half_time: int - stamina_capacity: float - max_dash_angle: float - min_dash_angle: float - dash_angle_step: float - side_dash_rate: float - back_dash_rate: float - max_dash_power: float - min_dash_power: float - tackle_rand_factor: float - foul_detect_probability: float - foul_exponent: float - foul_cycles: int - golden_goal: bool - red_card_probability: float - illegal_defense_duration: int - illegal_defense_number: int - illegal_defense_dist_x: float - illegal_defense_width: float - fixed_teamname_l: str - fixed_teamname_r: str - max_catch_angle: float - min_catch_angle: float - random_seed: int - long_kick_power_factor: float - long_kick_delay: int - max_monitors: int - catchable_area: float - real_speed_max: float - pitch_half_length: float - pitch_half_width: float - our_penalty_area_line_x: float - their_penalty_area_line_x: float - penalty_area_half_width: float - penalty_area_length: float - goal_width: float - def __init__(self, agent_type: _Optional[_Union[AgentType, str]] = ..., inertia_moment: _Optional[float] = ..., player_size: _Optional[float] = ..., player_decay: _Optional[float] = ..., player_rand: _Optional[float] = ..., player_weight: _Optional[float] = ..., player_speed_max: _Optional[float] = ..., player_accel_max: _Optional[float] = ..., stamina_max: _Optional[float] = ..., stamina_inc_max: _Optional[float] = ..., recover_init: _Optional[float] = ..., recover_dec_thr: _Optional[float] = ..., recover_min: _Optional[float] = ..., recover_dec: _Optional[float] = ..., effort_init: _Optional[float] = ..., effort_dec_thr: _Optional[float] = ..., effort_min: _Optional[float] = ..., effort_dec: _Optional[float] = ..., effort_inc_thr: _Optional[float] = ..., effort_inc: _Optional[float] = ..., kick_rand: _Optional[float] = ..., team_actuator_noise: bool = ..., player_rand_factor_l: _Optional[float] = ..., player_rand_factor_r: _Optional[float] = ..., kick_rand_factor_l: _Optional[float] = ..., kick_rand_factor_r: _Optional[float] = ..., ball_size: _Optional[float] = ..., ball_decay: _Optional[float] = ..., ball_rand: _Optional[float] = ..., ball_weight: _Optional[float] = ..., ball_speed_max: _Optional[float] = ..., ball_accel_max: _Optional[float] = ..., dash_power_rate: _Optional[float] = ..., kick_power_rate: _Optional[float] = ..., kickable_margin: _Optional[float] = ..., control_radius: _Optional[float] = ..., control_radius_width: _Optional[float] = ..., max_power: _Optional[float] = ..., min_power: _Optional[float] = ..., max_moment: _Optional[float] = ..., min_moment: _Optional[float] = ..., max_neck_moment: _Optional[float] = ..., min_neck_moment: _Optional[float] = ..., max_neck_angle: _Optional[float] = ..., min_neck_angle: _Optional[float] = ..., visible_angle: _Optional[float] = ..., visible_distance: _Optional[float] = ..., wind_dir: _Optional[float] = ..., wind_force: _Optional[float] = ..., wind_angle: _Optional[float] = ..., wind_rand: _Optional[float] = ..., kickable_area: _Optional[float] = ..., catch_area_l: _Optional[float] = ..., catch_area_w: _Optional[float] = ..., catch_probability: _Optional[float] = ..., goalie_max_moves: _Optional[int] = ..., corner_kick_margin: _Optional[float] = ..., offside_active_area_size: _Optional[float] = ..., wind_none: bool = ..., use_wind_random: bool = ..., coach_say_count_max: _Optional[int] = ..., coach_say_msg_size: _Optional[int] = ..., clang_win_size: _Optional[int] = ..., clang_define_win: _Optional[int] = ..., clang_meta_win: _Optional[int] = ..., clang_advice_win: _Optional[int] = ..., clang_info_win: _Optional[int] = ..., clang_mess_delay: _Optional[int] = ..., clang_mess_per_cycle: _Optional[int] = ..., half_time: _Optional[int] = ..., simulator_step: _Optional[int] = ..., send_step: _Optional[int] = ..., recv_step: _Optional[int] = ..., sense_body_step: _Optional[int] = ..., lcm_step: _Optional[int] = ..., player_say_msg_size: _Optional[int] = ..., player_hear_max: _Optional[int] = ..., player_hear_inc: _Optional[int] = ..., player_hear_decay: _Optional[int] = ..., catch_ban_cycle: _Optional[int] = ..., slow_down_factor: _Optional[int] = ..., use_offside: bool = ..., kickoff_offside: bool = ..., offside_kick_margin: _Optional[float] = ..., audio_cut_dist: _Optional[float] = ..., dist_quantize_step: _Optional[float] = ..., landmark_dist_quantize_step: _Optional[float] = ..., dir_quantize_step: _Optional[float] = ..., dist_quantize_step_l: _Optional[float] = ..., dist_quantize_step_r: _Optional[float] = ..., landmark_dist_quantize_step_l: _Optional[float] = ..., landmark_dist_quantize_step_r: _Optional[float] = ..., dir_quantize_step_l: _Optional[float] = ..., dir_quantize_step_r: _Optional[float] = ..., coach_mode: bool = ..., coach_with_referee_mode: bool = ..., use_old_coach_hear: bool = ..., slowness_on_top_for_left_team: _Optional[float] = ..., slowness_on_top_for_right_team: _Optional[float] = ..., start_goal_l: _Optional[int] = ..., start_goal_r: _Optional[int] = ..., fullstate_l: bool = ..., fullstate_r: bool = ..., drop_ball_time: _Optional[int] = ..., synch_mode: bool = ..., synch_offset: _Optional[int] = ..., synch_micro_sleep: _Optional[int] = ..., point_to_ban: _Optional[int] = ..., point_to_duration: _Optional[int] = ..., player_port: _Optional[int] = ..., trainer_port: _Optional[int] = ..., online_coach_port: _Optional[int] = ..., verbose_mode: bool = ..., coach_send_vi_step: _Optional[int] = ..., replay_file: _Optional[str] = ..., landmark_file: _Optional[str] = ..., send_comms: bool = ..., text_logging: bool = ..., game_logging: bool = ..., game_log_version: _Optional[int] = ..., text_log_dir: _Optional[str] = ..., game_log_dir: _Optional[str] = ..., text_log_fixed_name: _Optional[str] = ..., game_log_fixed_name: _Optional[str] = ..., use_text_log_fixed: bool = ..., use_game_log_fixed: bool = ..., use_text_log_dated: bool = ..., use_game_log_dated: bool = ..., log_date_format: _Optional[str] = ..., log_times: bool = ..., record_message: bool = ..., text_log_compression: _Optional[int] = ..., game_log_compression: _Optional[int] = ..., use_profile: bool = ..., tackle_dist: _Optional[float] = ..., tackle_back_dist: _Optional[float] = ..., tackle_width: _Optional[float] = ..., tackle_exponent: _Optional[float] = ..., tackle_cycles: _Optional[int] = ..., tackle_power_rate: _Optional[float] = ..., freeform_wait_period: _Optional[int] = ..., freeform_send_period: _Optional[int] = ..., free_kick_faults: bool = ..., back_passes: bool = ..., proper_goal_kicks: bool = ..., stopped_ball_vel: _Optional[float] = ..., max_goal_kicks: _Optional[int] = ..., clang_del_win: _Optional[int] = ..., clang_rule_win: _Optional[int] = ..., auto_mode: bool = ..., kick_off_wait: _Optional[int] = ..., connect_wait: _Optional[int] = ..., game_over_wait: _Optional[int] = ..., team_l_start: _Optional[str] = ..., team_r_start: _Optional[str] = ..., keepaway_mode: bool = ..., keepaway_length: _Optional[float] = ..., keepaway_width: _Optional[float] = ..., keepaway_logging: bool = ..., keepaway_log_dir: _Optional[str] = ..., keepaway_log_fixed_name: _Optional[str] = ..., keepaway_log_fixed: bool = ..., keepaway_log_dated: bool = ..., keepaway_start: _Optional[int] = ..., nr_normal_halfs: _Optional[int] = ..., nr_extra_halfs: _Optional[int] = ..., penalty_shoot_outs: bool = ..., pen_before_setup_wait: _Optional[int] = ..., pen_setup_wait: _Optional[int] = ..., pen_ready_wait: _Optional[int] = ..., pen_taken_wait: _Optional[int] = ..., pen_nr_kicks: _Optional[int] = ..., pen_max_extra_kicks: _Optional[int] = ..., pen_dist_x: _Optional[float] = ..., pen_random_winner: bool = ..., pen_allow_mult_kicks: bool = ..., pen_max_goalie_dist_x: _Optional[float] = ..., pen_coach_moves_players: bool = ..., module_dir: _Optional[str] = ..., ball_stuck_area: _Optional[float] = ..., coach_msg_file: _Optional[str] = ..., max_tackle_power: _Optional[float] = ..., max_back_tackle_power: _Optional[float] = ..., player_speed_max_min: _Optional[float] = ..., extra_stamina: _Optional[float] = ..., synch_see_offset: _Optional[int] = ..., extra_half_time: _Optional[int] = ..., stamina_capacity: _Optional[float] = ..., max_dash_angle: _Optional[float] = ..., min_dash_angle: _Optional[float] = ..., dash_angle_step: _Optional[float] = ..., side_dash_rate: _Optional[float] = ..., back_dash_rate: _Optional[float] = ..., max_dash_power: _Optional[float] = ..., min_dash_power: _Optional[float] = ..., tackle_rand_factor: _Optional[float] = ..., foul_detect_probability: _Optional[float] = ..., foul_exponent: _Optional[float] = ..., foul_cycles: _Optional[int] = ..., golden_goal: bool = ..., red_card_probability: _Optional[float] = ..., illegal_defense_duration: _Optional[int] = ..., illegal_defense_number: _Optional[int] = ..., illegal_defense_dist_x: _Optional[float] = ..., illegal_defense_width: _Optional[float] = ..., fixed_teamname_l: _Optional[str] = ..., fixed_teamname_r: _Optional[str] = ..., max_catch_angle: _Optional[float] = ..., min_catch_angle: _Optional[float] = ..., random_seed: _Optional[int] = ..., long_kick_power_factor: _Optional[float] = ..., long_kick_delay: _Optional[int] = ..., max_monitors: _Optional[int] = ..., catchable_area: _Optional[float] = ..., real_speed_max: _Optional[float] = ..., pitch_half_length: _Optional[float] = ..., pitch_half_width: _Optional[float] = ..., our_penalty_area_line_x: _Optional[float] = ..., their_penalty_area_line_x: _Optional[float] = ..., penalty_area_half_width: _Optional[float] = ..., penalty_area_length: _Optional[float] = ..., goal_width: _Optional[float] = ...) -> None: ... - -class PlayerParam(_message.Message): - __slots__ = ("agent_type", "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") - AGENT_TYPE_FIELD_NUMBER: _ClassVar[int] - PLAYER_TYPES_FIELD_NUMBER: _ClassVar[int] - SUBS_MAX_FIELD_NUMBER: _ClassVar[int] - PT_MAX_FIELD_NUMBER: _ClassVar[int] - ALLOW_MULT_DEFAULT_TYPE_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - STAMINA_INC_MAX_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - INERTIA_MOMENT_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_SIZE_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - EFFORT_MAX_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - EFFORT_MIN_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - RANDOM_SEED_FIELD_NUMBER: _ClassVar[int] - NEW_DASH_POWER_RATE_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - NEW_DASH_POWER_RATE_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - NEW_STAMINA_INC_MAX_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_DELTA_MIN_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_DELTA_MAX_FIELD_NUMBER: _ClassVar[int] - FOUL_DETECT_PROBABILITY_DELTA_FACTOR_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_L_STRETCH_MIN_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_L_STRETCH_MAX_FIELD_NUMBER: _ClassVar[int] - agent_type: AgentType - 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, agent_type: _Optional[_Union[AgentType, str]] = ..., 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__ = ("agent_type", "id", "stamina_inc_max", "player_decay", "inertia_moment", "dash_power_rate", "player_size", "kickable_margin", "kick_rand", "extra_stamina", "effort_max", "effort_min", "kick_power_rate", "foul_detect_probability", "catchable_area_l_stretch", "unum_far_length", "unum_too_far_length", "team_far_length", "team_too_far_length", "player_max_observation_length", "ball_vel_far_length", "ball_vel_too_far_length", "ball_max_observation_length", "flag_chg_far_length", "flag_chg_too_far_length", "flag_max_observation_length", "kickable_area", "reliable_catchable_dist", "max_catchable_dist", "real_speed_max", "player_speed_max2", "real_speed_max2", "cycles_to_reach_max_speed", "player_speed_max") - AGENT_TYPE_FIELD_NUMBER: _ClassVar[int] - ID_FIELD_NUMBER: _ClassVar[int] - STAMINA_INC_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_DECAY_FIELD_NUMBER: _ClassVar[int] - INERTIA_MOMENT_FIELD_NUMBER: _ClassVar[int] - DASH_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - PLAYER_SIZE_FIELD_NUMBER: _ClassVar[int] - KICKABLE_MARGIN_FIELD_NUMBER: _ClassVar[int] - KICK_RAND_FIELD_NUMBER: _ClassVar[int] - EXTRA_STAMINA_FIELD_NUMBER: _ClassVar[int] - EFFORT_MAX_FIELD_NUMBER: _ClassVar[int] - EFFORT_MIN_FIELD_NUMBER: _ClassVar[int] - KICK_POWER_RATE_FIELD_NUMBER: _ClassVar[int] - FOUL_DETECT_PROBABILITY_FIELD_NUMBER: _ClassVar[int] - CATCHABLE_AREA_L_STRETCH_FIELD_NUMBER: _ClassVar[int] - UNUM_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - UNUM_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - TEAM_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - TEAM_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - PLAYER_MAX_OBSERVATION_LENGTH_FIELD_NUMBER: _ClassVar[int] - BALL_VEL_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - BALL_VEL_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - BALL_MAX_OBSERVATION_LENGTH_FIELD_NUMBER: _ClassVar[int] - FLAG_CHG_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - FLAG_CHG_TOO_FAR_LENGTH_FIELD_NUMBER: _ClassVar[int] - FLAG_MAX_OBSERVATION_LENGTH_FIELD_NUMBER: _ClassVar[int] - KICKABLE_AREA_FIELD_NUMBER: _ClassVar[int] - RELIABLE_CATCHABLE_DIST_FIELD_NUMBER: _ClassVar[int] - MAX_CATCHABLE_DIST_FIELD_NUMBER: _ClassVar[int] - REAL_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX2_FIELD_NUMBER: _ClassVar[int] - REAL_SPEED_MAX2_FIELD_NUMBER: _ClassVar[int] - CYCLES_TO_REACH_MAX_SPEED_FIELD_NUMBER: _ClassVar[int] - PLAYER_SPEED_MAX_FIELD_NUMBER: _ClassVar[int] - agent_type: AgentType - id: int - stamina_inc_max: float - player_decay: float - inertia_moment: float - dash_power_rate: float - player_size: float - kickable_margin: float - kick_rand: float - extra_stamina: float - effort_max: float - effort_min: float - kick_power_rate: float - foul_detect_probability: float - catchable_area_l_stretch: float - unum_far_length: float - unum_too_far_length: float - team_far_length: float - team_too_far_length: float - player_max_observation_length: float - ball_vel_far_length: float - ball_vel_too_far_length: float - ball_max_observation_length: float - flag_chg_far_length: float - flag_chg_too_far_length: float - flag_max_observation_length: float - kickable_area: float - reliable_catchable_dist: float - max_catchable_dist: float - real_speed_max: float - player_speed_max2: float - real_speed_max2: float - cycles_to_reach_max_speed: int - player_speed_max: float - def __init__(self, agent_type: _Optional[_Union[AgentType, str]] = ..., id: _Optional[int] = ..., stamina_inc_max: _Optional[float] = ..., player_decay: _Optional[float] = ..., inertia_moment: _Optional[float] = ..., dash_power_rate: _Optional[float] = ..., player_size: _Optional[float] = ..., kickable_margin: _Optional[float] = ..., kick_rand: _Optional[float] = ..., extra_stamina: _Optional[float] = ..., effort_max: _Optional[float] = ..., effort_min: _Optional[float] = ..., kick_power_rate: _Optional[float] = ..., foul_detect_probability: _Optional[float] = ..., catchable_area_l_stretch: _Optional[float] = ..., unum_far_length: _Optional[float] = ..., unum_too_far_length: _Optional[float] = ..., team_far_length: _Optional[float] = ..., team_too_far_length: _Optional[float] = ..., player_max_observation_length: _Optional[float] = ..., ball_vel_far_length: _Optional[float] = ..., ball_vel_too_far_length: _Optional[float] = ..., ball_max_observation_length: _Optional[float] = ..., flag_chg_far_length: _Optional[float] = ..., flag_chg_too_far_length: _Optional[float] = ..., flag_max_observation_length: _Optional[float] = ..., kickable_area: _Optional[float] = ..., reliable_catchable_dist: _Optional[float] = ..., max_catchable_dist: _Optional[float] = ..., real_speed_max: _Optional[float] = ..., player_speed_max2: _Optional[float] = ..., real_speed_max2: _Optional[float] = ..., cycles_to_reach_max_speed: _Optional[int] = ..., player_speed_max: _Optional[float] = ...) -> None: ... - -class Empty(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class InitMessageFromServer(_message.Message): - __slots__ = () - def __init__(self) -> None: ... diff --git a/service_pb2_grpc.py b/service_pb2_grpc.py deleted file mode 100644 index be0b1ca..0000000 --- a/service_pb2_grpc.py +++ /dev/null @@ -1,330 +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.GetPlayerActions = channel.unary_unary( - '/protos.Game/GetPlayerActions', - request_serializer=service__pb2.State.SerializeToString, - response_deserializer=service__pb2.PlayerActions.FromString, - ) - self.GetCoachActions = channel.unary_unary( - '/protos.Game/GetCoachActions', - request_serializer=service__pb2.State.SerializeToString, - response_deserializer=service__pb2.CoachActions.FromString, - ) - self.GetTrainerActions = channel.unary_unary( - '/protos.Game/GetTrainerActions', - request_serializer=service__pb2.State.SerializeToString, - response_deserializer=service__pb2.TrainerActions.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, - ) - self.GetInitMessage = channel.unary_unary( - '/protos.Game/GetInitMessage', - request_serializer=service__pb2.Empty.SerializeToString, - response_deserializer=service__pb2.InitMessageFromServer.FromString, - ) - self.SendByeCommand = channel.unary_unary( - '/protos.Game/SendByeCommand', - request_serializer=service__pb2.Empty.SerializeToString, - response_deserializer=service__pb2.Empty.FromString, - ) - - -class GameServicer(object): - """Missing associated documentation comment in .proto file.""" - - def GetPlayerActions(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetCoachActions(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetTrainerActions(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendInitMessage(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendServerParams(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendPlayerParams(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendPlayerType(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def GetInitMessage(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def SendByeCommand(self, request, context): - """Missing associated documentation comment in .proto file.""" - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_GameServicer_to_server(servicer, server): - rpc_method_handlers = { - 'GetPlayerActions': grpc.unary_unary_rpc_method_handler( - servicer.GetPlayerActions, - request_deserializer=service__pb2.State.FromString, - response_serializer=service__pb2.PlayerActions.SerializeToString, - ), - 'GetCoachActions': grpc.unary_unary_rpc_method_handler( - servicer.GetCoachActions, - request_deserializer=service__pb2.State.FromString, - response_serializer=service__pb2.CoachActions.SerializeToString, - ), - 'GetTrainerActions': grpc.unary_unary_rpc_method_handler( - servicer.GetTrainerActions, - request_deserializer=service__pb2.State.FromString, - response_serializer=service__pb2.TrainerActions.SerializeToString, - ), - 'SendInitMessage': grpc.unary_unary_rpc_method_handler( - servicer.SendInitMessage, - request_deserializer=service__pb2.InitMessage.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'SendServerParams': grpc.unary_unary_rpc_method_handler( - servicer.SendServerParams, - request_deserializer=service__pb2.ServerParam.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'SendPlayerParams': grpc.unary_unary_rpc_method_handler( - servicer.SendPlayerParams, - request_deserializer=service__pb2.PlayerParam.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'SendPlayerType': grpc.unary_unary_rpc_method_handler( - servicer.SendPlayerType, - request_deserializer=service__pb2.PlayerType.FromString, - response_serializer=service__pb2.Empty.SerializeToString, - ), - 'GetInitMessage': grpc.unary_unary_rpc_method_handler( - servicer.GetInitMessage, - request_deserializer=service__pb2.Empty.FromString, - response_serializer=service__pb2.InitMessageFromServer.SerializeToString, - ), - 'SendByeCommand': grpc.unary_unary_rpc_method_handler( - servicer.SendByeCommand, - request_deserializer=service__pb2.Empty.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 GetPlayerActions(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/protos.Game/GetPlayerActions', - service__pb2.State.SerializeToString, - service__pb2.PlayerActions.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def GetCoachActions(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/protos.Game/GetCoachActions', - service__pb2.State.SerializeToString, - service__pb2.CoachActions.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def GetTrainerActions(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/protos.Game/GetTrainerActions', - service__pb2.State.SerializeToString, - service__pb2.TrainerActions.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @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) - - @staticmethod - def GetInitMessage(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/GetInitMessage', - service__pb2.Empty.SerializeToString, - service__pb2.InitMessageFromServer.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def SendByeCommand(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/protos.Game/SendByeCommand', - service__pb2.Empty.SerializeToString, - service__pb2.Empty.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/soccer/Game-remote b/soccer/Game-remote new file mode 100755 index 0000000..1bdac64 --- /dev/null +++ b/soccer/Game-remote @@ -0,0 +1,173 @@ +#!/usr/bin/env python +# +# Autogenerated by Thrift Compiler (0.16.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py +# + +import sys +import pprint +if sys.version_info[0] > 2: + from urllib.parse import urlparse +else: + from urlparse import urlparse +from thrift.transport import TTransport, TSocket, TSSLSocket, THttpClient +from thrift.protocol.TBinaryProtocol import TBinaryProtocol + +from soccer import Game +from soccer.ttypes import * + +if len(sys.argv) <= 1 or sys.argv[1] == '--help': + print('') + print('Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] [-s[sl]] [-novalidate] [-ca_certs certs] [-keyfile keyfile] [-certfile certfile] function [arg1 [arg2...]]') + print('') + print('Functions:') + print(' PlayerActions GetPlayerActions(RegisterResponse register_response, State state)') + print(' CoachActions GetCoachActions(RegisterResponse register_response, State state)') + print(' TrainerActions GetTrainerActions(RegisterResponse register_response, State state)') + print(' Empty SendInitMessage(RegisterResponse register_response, InitMessage init_message)') + print(' Empty SendServerParams(RegisterResponse register_response, ServerParam server_param)') + print(' Empty SendPlayerParams(RegisterResponse register_response, PlayerParam player_param)') + print(' Empty SendPlayerType(RegisterResponse register_response, PlayerType player_type)') + print(' RegisterResponse Register(RegisterRequest request)') + print(' Empty SendByeCommand(RegisterResponse register_response)') + print('') + sys.exit(0) + +pp = pprint.PrettyPrinter(indent=2) +host = 'localhost' +port = 9090 +uri = '' +framed = False +ssl = False +validate = True +ca_certs = None +keyfile = None +certfile = None +http = False +argi = 1 + +if sys.argv[argi] == '-h': + parts = sys.argv[argi + 1].split(':') + host = parts[0] + if len(parts) > 1: + port = int(parts[1]) + argi += 2 + +if sys.argv[argi] == '-u': + url = urlparse(sys.argv[argi + 1]) + parts = url[1].split(':') + host = parts[0] + if len(parts) > 1: + port = int(parts[1]) + else: + port = 80 + uri = url[2] + if url[4]: + uri += '?%s' % url[4] + http = True + argi += 2 + +if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed': + framed = True + argi += 1 + +if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl': + ssl = True + argi += 1 + +if sys.argv[argi] == '-novalidate': + validate = False + argi += 1 + +if sys.argv[argi] == '-ca_certs': + ca_certs = sys.argv[argi+1] + argi += 2 + +if sys.argv[argi] == '-keyfile': + keyfile = sys.argv[argi+1] + argi += 2 + +if sys.argv[argi] == '-certfile': + certfile = sys.argv[argi+1] + argi += 2 + +cmd = sys.argv[argi] +args = sys.argv[argi + 1:] + +if http: + transport = THttpClient.THttpClient(host, port, uri) +else: + if ssl: + socket = TSSLSocket.TSSLSocket(host, port, validate=validate, ca_certs=ca_certs, keyfile=keyfile, certfile=certfile) + else: + socket = TSocket.TSocket(host, port) + if framed: + transport = TTransport.TFramedTransport(socket) + else: + transport = TTransport.TBufferedTransport(socket) +protocol = TBinaryProtocol(transport) +client = Game.Client(protocol) +transport.open() + +if cmd == 'GetPlayerActions': + if len(args) != 2: + print('GetPlayerActions requires 2 args') + sys.exit(1) + pp.pprint(client.GetPlayerActions(eval(args[0]), eval(args[1]),)) + +elif cmd == 'GetCoachActions': + if len(args) != 2: + print('GetCoachActions requires 2 args') + sys.exit(1) + pp.pprint(client.GetCoachActions(eval(args[0]), eval(args[1]),)) + +elif cmd == 'GetTrainerActions': + if len(args) != 2: + print('GetTrainerActions requires 2 args') + sys.exit(1) + pp.pprint(client.GetTrainerActions(eval(args[0]), eval(args[1]),)) + +elif cmd == 'SendInitMessage': + if len(args) != 2: + print('SendInitMessage requires 2 args') + sys.exit(1) + pp.pprint(client.SendInitMessage(eval(args[0]), eval(args[1]),)) + +elif cmd == 'SendServerParams': + if len(args) != 2: + print('SendServerParams requires 2 args') + sys.exit(1) + pp.pprint(client.SendServerParams(eval(args[0]), eval(args[1]),)) + +elif cmd == 'SendPlayerParams': + if len(args) != 2: + print('SendPlayerParams requires 2 args') + sys.exit(1) + pp.pprint(client.SendPlayerParams(eval(args[0]), eval(args[1]),)) + +elif cmd == 'SendPlayerType': + if len(args) != 2: + print('SendPlayerType requires 2 args') + sys.exit(1) + pp.pprint(client.SendPlayerType(eval(args[0]), eval(args[1]),)) + +elif cmd == 'Register': + if len(args) != 1: + print('Register requires 1 args') + sys.exit(1) + pp.pprint(client.Register(eval(args[0]),)) + +elif cmd == 'SendByeCommand': + if len(args) != 1: + print('SendByeCommand requires 1 args') + sys.exit(1) + pp.pprint(client.SendByeCommand(eval(args[0]),)) + +else: + print('Unrecognized method %s' % cmd) + sys.exit(1) + +transport.close() diff --git a/soccer/Game.py b/soccer/Game.py new file mode 100644 index 0000000..3d97b26 --- /dev/null +++ b/soccer/Game.py @@ -0,0 +1,1872 @@ +# +# Autogenerated by Thrift Compiler (0.16.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py +# + +from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException +from thrift.protocol.TProtocol import TProtocolException +from thrift.TRecursive import fix_spec + +import sys +import logging +from .ttypes import * +from thrift.Thrift import TProcessor +from thrift.transport import TTransport +all_structs = [] + + +class Iface(object): + def GetPlayerActions(self, register_response, state): + """ + Parameters: + - register_response + - state + + """ + pass + + def GetCoachActions(self, register_response, state): + """ + Parameters: + - register_response + - state + + """ + pass + + def GetTrainerActions(self, register_response, state): + """ + Parameters: + - register_response + - state + + """ + pass + + def SendInitMessage(self, register_response, init_message): + """ + Parameters: + - register_response + - init_message + + """ + pass + + def SendServerParams(self, register_response, server_param): + """ + Parameters: + - register_response + - server_param + + """ + pass + + def SendPlayerParams(self, register_response, player_param): + """ + Parameters: + - register_response + - player_param + + """ + pass + + def SendPlayerType(self, register_response, player_type): + """ + Parameters: + - register_response + - player_type + + """ + pass + + def Register(self, request): + """ + Parameters: + - request + + """ + pass + + def SendByeCommand(self, register_response): + """ + Parameters: + - register_response + + """ + pass + + +class Client(Iface): + def __init__(self, iprot, oprot=None): + self._iprot = self._oprot = iprot + if oprot is not None: + self._oprot = oprot + self._seqid = 0 + + def GetPlayerActions(self, register_response, state): + """ + Parameters: + - register_response + - state + + """ + self.send_GetPlayerActions(register_response, state) + return self.recv_GetPlayerActions() + + def send_GetPlayerActions(self, register_response, state): + self._oprot.writeMessageBegin('GetPlayerActions', TMessageType.CALL, self._seqid) + args = GetPlayerActions_args() + args.register_response = register_response + args.state = state + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_GetPlayerActions(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = GetPlayerActions_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "GetPlayerActions failed: unknown result") + + def GetCoachActions(self, register_response, state): + """ + Parameters: + - register_response + - state + + """ + self.send_GetCoachActions(register_response, state) + return self.recv_GetCoachActions() + + def send_GetCoachActions(self, register_response, state): + self._oprot.writeMessageBegin('GetCoachActions', TMessageType.CALL, self._seqid) + args = GetCoachActions_args() + args.register_response = register_response + args.state = state + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_GetCoachActions(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = GetCoachActions_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "GetCoachActions failed: unknown result") + + def GetTrainerActions(self, register_response, state): + """ + Parameters: + - register_response + - state + + """ + self.send_GetTrainerActions(register_response, state) + return self.recv_GetTrainerActions() + + def send_GetTrainerActions(self, register_response, state): + self._oprot.writeMessageBegin('GetTrainerActions', TMessageType.CALL, self._seqid) + args = GetTrainerActions_args() + args.register_response = register_response + args.state = state + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_GetTrainerActions(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = GetTrainerActions_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "GetTrainerActions failed: unknown result") + + def SendInitMessage(self, register_response, init_message): + """ + Parameters: + - register_response + - init_message + + """ + self.send_SendInitMessage(register_response, init_message) + return self.recv_SendInitMessage() + + def send_SendInitMessage(self, register_response, init_message): + self._oprot.writeMessageBegin('SendInitMessage', TMessageType.CALL, self._seqid) + args = SendInitMessage_args() + args.register_response = register_response + args.init_message = init_message + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_SendInitMessage(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = SendInitMessage_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "SendInitMessage failed: unknown result") + + def SendServerParams(self, register_response, server_param): + """ + Parameters: + - register_response + - server_param + + """ + self.send_SendServerParams(register_response, server_param) + return self.recv_SendServerParams() + + def send_SendServerParams(self, register_response, server_param): + self._oprot.writeMessageBegin('SendServerParams', TMessageType.CALL, self._seqid) + args = SendServerParams_args() + args.register_response = register_response + args.server_param = server_param + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_SendServerParams(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = SendServerParams_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "SendServerParams failed: unknown result") + + def SendPlayerParams(self, register_response, player_param): + """ + Parameters: + - register_response + - player_param + + """ + self.send_SendPlayerParams(register_response, player_param) + return self.recv_SendPlayerParams() + + def send_SendPlayerParams(self, register_response, player_param): + self._oprot.writeMessageBegin('SendPlayerParams', TMessageType.CALL, self._seqid) + args = SendPlayerParams_args() + args.register_response = register_response + args.player_param = player_param + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_SendPlayerParams(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = SendPlayerParams_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "SendPlayerParams failed: unknown result") + + def SendPlayerType(self, register_response, player_type): + """ + Parameters: + - register_response + - player_type + + """ + self.send_SendPlayerType(register_response, player_type) + return self.recv_SendPlayerType() + + def send_SendPlayerType(self, register_response, player_type): + self._oprot.writeMessageBegin('SendPlayerType', TMessageType.CALL, self._seqid) + args = SendPlayerType_args() + args.register_response = register_response + args.player_type = player_type + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_SendPlayerType(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = SendPlayerType_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "SendPlayerType failed: unknown result") + + def Register(self, request): + """ + Parameters: + - request + + """ + self.send_Register(request) + return self.recv_Register() + + def send_Register(self, request): + self._oprot.writeMessageBegin('Register', TMessageType.CALL, self._seqid) + args = Register_args() + args.request = request + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_Register(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = Register_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "Register failed: unknown result") + + def SendByeCommand(self, register_response): + """ + Parameters: + - register_response + + """ + self.send_SendByeCommand(register_response) + return self.recv_SendByeCommand() + + def send_SendByeCommand(self, register_response): + self._oprot.writeMessageBegin('SendByeCommand', TMessageType.CALL, self._seqid) + args = SendByeCommand_args() + args.register_response = register_response + args.write(self._oprot) + self._oprot.writeMessageEnd() + self._oprot.trans.flush() + + def recv_SendByeCommand(self): + iprot = self._iprot + (fname, mtype, rseqid) = iprot.readMessageBegin() + if mtype == TMessageType.EXCEPTION: + x = TApplicationException() + x.read(iprot) + iprot.readMessageEnd() + raise x + result = SendByeCommand_result() + result.read(iprot) + iprot.readMessageEnd() + if result.success is not None: + return result.success + raise TApplicationException(TApplicationException.MISSING_RESULT, "SendByeCommand failed: unknown result") + + +class Processor(Iface, TProcessor): + def __init__(self, handler): + self._handler = handler + self._processMap = {} + self._processMap["GetPlayerActions"] = Processor.process_GetPlayerActions + self._processMap["GetCoachActions"] = Processor.process_GetCoachActions + self._processMap["GetTrainerActions"] = Processor.process_GetTrainerActions + self._processMap["SendInitMessage"] = Processor.process_SendInitMessage + self._processMap["SendServerParams"] = Processor.process_SendServerParams + self._processMap["SendPlayerParams"] = Processor.process_SendPlayerParams + self._processMap["SendPlayerType"] = Processor.process_SendPlayerType + self._processMap["Register"] = Processor.process_Register + self._processMap["SendByeCommand"] = Processor.process_SendByeCommand + self._on_message_begin = None + + def on_message_begin(self, func): + self._on_message_begin = func + + def process(self, iprot, oprot): + (name, type, seqid) = iprot.readMessageBegin() + if self._on_message_begin: + self._on_message_begin(name, type, seqid) + if name not in self._processMap: + iprot.skip(TType.STRUCT) + iprot.readMessageEnd() + x = TApplicationException(TApplicationException.UNKNOWN_METHOD, 'Unknown function %s' % (name)) + oprot.writeMessageBegin(name, TMessageType.EXCEPTION, seqid) + x.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + return + else: + self._processMap[name](self, seqid, iprot, oprot) + return True + + def process_GetPlayerActions(self, seqid, iprot, oprot): + args = GetPlayerActions_args() + args.read(iprot) + iprot.readMessageEnd() + result = GetPlayerActions_result() + try: + result.success = self._handler.GetPlayerActions(args.register_response, args.state) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("GetPlayerActions", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_GetCoachActions(self, seqid, iprot, oprot): + args = GetCoachActions_args() + args.read(iprot) + iprot.readMessageEnd() + result = GetCoachActions_result() + try: + result.success = self._handler.GetCoachActions(args.register_response, args.state) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("GetCoachActions", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_GetTrainerActions(self, seqid, iprot, oprot): + args = GetTrainerActions_args() + args.read(iprot) + iprot.readMessageEnd() + result = GetTrainerActions_result() + try: + result.success = self._handler.GetTrainerActions(args.register_response, args.state) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("GetTrainerActions", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_SendInitMessage(self, seqid, iprot, oprot): + args = SendInitMessage_args() + args.read(iprot) + iprot.readMessageEnd() + result = SendInitMessage_result() + try: + result.success = self._handler.SendInitMessage(args.register_response, args.init_message) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("SendInitMessage", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_SendServerParams(self, seqid, iprot, oprot): + args = SendServerParams_args() + args.read(iprot) + iprot.readMessageEnd() + result = SendServerParams_result() + try: + result.success = self._handler.SendServerParams(args.register_response, args.server_param) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("SendServerParams", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_SendPlayerParams(self, seqid, iprot, oprot): + args = SendPlayerParams_args() + args.read(iprot) + iprot.readMessageEnd() + result = SendPlayerParams_result() + try: + result.success = self._handler.SendPlayerParams(args.register_response, args.player_param) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("SendPlayerParams", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_SendPlayerType(self, seqid, iprot, oprot): + args = SendPlayerType_args() + args.read(iprot) + iprot.readMessageEnd() + result = SendPlayerType_result() + try: + result.success = self._handler.SendPlayerType(args.register_response, args.player_type) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("SendPlayerType", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_Register(self, seqid, iprot, oprot): + args = Register_args() + args.read(iprot) + iprot.readMessageEnd() + result = Register_result() + try: + result.success = self._handler.Register(args.request) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("Register", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + + def process_SendByeCommand(self, seqid, iprot, oprot): + args = SendByeCommand_args() + args.read(iprot) + iprot.readMessageEnd() + result = SendByeCommand_result() + try: + result.success = self._handler.SendByeCommand(args.register_response) + msg_type = TMessageType.REPLY + except TTransport.TTransportException: + raise + except TApplicationException as ex: + logging.exception('TApplication exception in handler') + msg_type = TMessageType.EXCEPTION + result = ex + except Exception: + logging.exception('Unexpected exception in handler') + msg_type = TMessageType.EXCEPTION + result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') + oprot.writeMessageBegin("SendByeCommand", msg_type, seqid) + result.write(oprot) + oprot.writeMessageEnd() + oprot.trans.flush() + +# HELPER FUNCTIONS AND STRUCTURES + + +class GetPlayerActions_args(object): + """ + Attributes: + - register_response + - state + + """ + + + def __init__(self, register_response=None, state=None,): + self.register_response = register_response + self.state = state + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.state = State() + self.state.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GetPlayerActions_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + if self.state is not None: + oprot.writeFieldBegin('state', TType.STRUCT, 2) + self.state.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(GetPlayerActions_args) +GetPlayerActions_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 + (2, TType.STRUCT, 'state', [State, None], None, ), # 2 +) + + +class GetPlayerActions_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = PlayerActions() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GetPlayerActions_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(GetPlayerActions_result) +GetPlayerActions_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [PlayerActions, None], None, ), # 0 +) + + +class GetCoachActions_args(object): + """ + Attributes: + - register_response + - state + + """ + + + def __init__(self, register_response=None, state=None,): + self.register_response = register_response + self.state = state + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.state = State() + self.state.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GetCoachActions_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + if self.state is not None: + oprot.writeFieldBegin('state', TType.STRUCT, 2) + self.state.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(GetCoachActions_args) +GetCoachActions_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 + (2, TType.STRUCT, 'state', [State, None], None, ), # 2 +) + + +class GetCoachActions_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = CoachActions() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GetCoachActions_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(GetCoachActions_result) +GetCoachActions_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [CoachActions, None], None, ), # 0 +) + + +class GetTrainerActions_args(object): + """ + Attributes: + - register_response + - state + + """ + + + def __init__(self, register_response=None, state=None,): + self.register_response = register_response + self.state = state + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.state = State() + self.state.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GetTrainerActions_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + if self.state is not None: + oprot.writeFieldBegin('state', TType.STRUCT, 2) + self.state.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(GetTrainerActions_args) +GetTrainerActions_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 + (2, TType.STRUCT, 'state', [State, None], None, ), # 2 +) + + +class GetTrainerActions_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = TrainerActions() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GetTrainerActions_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(GetTrainerActions_result) +GetTrainerActions_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [TrainerActions, None], None, ), # 0 +) + + +class SendInitMessage_args(object): + """ + Attributes: + - register_response + - init_message + + """ + + + def __init__(self, register_response=None, init_message=None,): + self.register_response = register_response + self.init_message = init_message + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.init_message = InitMessage() + self.init_message.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendInitMessage_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + if self.init_message is not None: + oprot.writeFieldBegin('init_message', TType.STRUCT, 2) + self.init_message.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendInitMessage_args) +SendInitMessage_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 + (2, TType.STRUCT, 'init_message', [InitMessage, None], None, ), # 2 +) + + +class SendInitMessage_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = Empty() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendInitMessage_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendInitMessage_result) +SendInitMessage_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [Empty, None], None, ), # 0 +) + + +class SendServerParams_args(object): + """ + Attributes: + - register_response + - server_param + + """ + + + def __init__(self, register_response=None, server_param=None,): + self.register_response = register_response + self.server_param = server_param + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.server_param = ServerParam() + self.server_param.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendServerParams_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + if self.server_param is not None: + oprot.writeFieldBegin('server_param', TType.STRUCT, 2) + self.server_param.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendServerParams_args) +SendServerParams_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 + (2, TType.STRUCT, 'server_param', [ServerParam, None], None, ), # 2 +) + + +class SendServerParams_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = Empty() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendServerParams_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendServerParams_result) +SendServerParams_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [Empty, None], None, ), # 0 +) + + +class SendPlayerParams_args(object): + """ + Attributes: + - register_response + - player_param + + """ + + + def __init__(self, register_response=None, player_param=None,): + self.register_response = register_response + self.player_param = player_param + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.player_param = PlayerParam() + self.player_param.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendPlayerParams_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + if self.player_param is not None: + oprot.writeFieldBegin('player_param', TType.STRUCT, 2) + self.player_param.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendPlayerParams_args) +SendPlayerParams_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 + (2, TType.STRUCT, 'player_param', [PlayerParam, None], None, ), # 2 +) + + +class SendPlayerParams_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = Empty() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendPlayerParams_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendPlayerParams_result) +SendPlayerParams_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [Empty, None], None, ), # 0 +) + + +class SendPlayerType_args(object): + """ + Attributes: + - register_response + - player_type + + """ + + + def __init__(self, register_response=None, player_type=None,): + self.register_response = register_response + self.player_type = player_type + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.player_type = PlayerType() + self.player_type.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendPlayerType_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + if self.player_type is not None: + oprot.writeFieldBegin('player_type', TType.STRUCT, 2) + self.player_type.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendPlayerType_args) +SendPlayerType_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 + (2, TType.STRUCT, 'player_type', [PlayerType, None], None, ), # 2 +) + + +class SendPlayerType_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = Empty() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendPlayerType_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendPlayerType_result) +SendPlayerType_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [Empty, None], None, ), # 0 +) + + +class Register_args(object): + """ + Attributes: + - request + + """ + + + def __init__(self, request=None,): + self.request = request + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.request = RegisterRequest() + self.request.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Register_args') + if self.request is not None: + oprot.writeFieldBegin('request', TType.STRUCT, 1) + self.request.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(Register_args) +Register_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'request', [RegisterRequest, None], None, ), # 1 +) + + +class Register_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = RegisterResponse() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Register_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(Register_result) +Register_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [RegisterResponse, None], None, ), # 0 +) + + +class SendByeCommand_args(object): + """ + Attributes: + - register_response + + """ + + + def __init__(self, register_response=None,): + self.register_response = register_response + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.register_response = RegisterResponse() + self.register_response.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendByeCommand_args') + if self.register_response is not None: + oprot.writeFieldBegin('register_response', TType.STRUCT, 1) + self.register_response.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendByeCommand_args) +SendByeCommand_args.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'register_response', [RegisterResponse, None], None, ), # 1 +) + + +class SendByeCommand_result(object): + """ + Attributes: + - success + + """ + + + def __init__(self, success=None,): + self.success = success + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 0: + if ftype == TType.STRUCT: + self.success = Empty() + self.success.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SendByeCommand_result') + if self.success is not None: + oprot.writeFieldBegin('success', TType.STRUCT, 0) + self.success.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(SendByeCommand_result) +SendByeCommand_result.thrift_spec = ( + (0, TType.STRUCT, 'success', [Empty, None], None, ), # 0 +) +fix_spec(all_structs) +del all_structs diff --git a/soccer/__init__.py b/soccer/__init__.py new file mode 100644 index 0000000..c47c88b --- /dev/null +++ b/soccer/__init__.py @@ -0,0 +1 @@ +__all__ = ['ttypes', 'constants', 'Game'] diff --git a/soccer/constants.py b/soccer/constants.py new file mode 100644 index 0000000..82c674e --- /dev/null +++ b/soccer/constants.py @@ -0,0 +1,14 @@ +# +# Autogenerated by Thrift Compiler (0.16.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py +# + +from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException +from thrift.protocol.TProtocol import TProtocolException +from thrift.TRecursive import fix_spec + +import sys +from .ttypes import * diff --git a/soccer/ttypes.py b/soccer/ttypes.py new file mode 100644 index 0000000..53f18a1 --- /dev/null +++ b/soccer/ttypes.py @@ -0,0 +1,15327 @@ +# +# Autogenerated by Thrift Compiler (0.16.0) +# +# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING +# +# options string: py +# + +from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException +from thrift.protocol.TProtocol import TProtocolException +from thrift.TRecursive import fix_spec + +import sys + +from thrift.transport import TTransport +all_structs = [] + + +class ViewWidth(object): + NARROW = 0 + NORMAL = 1 + WIDE = 2 + + _VALUES_TO_NAMES = { + 0: "NARROW", + 1: "NORMAL", + 2: "WIDE", + } + + _NAMES_TO_VALUES = { + "NARROW": 0, + "NORMAL": 1, + "WIDE": 2, + } + + +class AgentType(object): + PlayerT = 0 + CoachT = 1 + TrainerT = 2 + + _VALUES_TO_NAMES = { + 0: "PlayerT", + 1: "CoachT", + 2: "TrainerT", + } + + _NAMES_TO_VALUES = { + "PlayerT": 0, + "CoachT": 1, + "TrainerT": 2, + } + + +class Side(object): + UNKNOWN = 0 + LEFT = 1 + RIGHT = 2 + + _VALUES_TO_NAMES = { + 0: "UNKNOWN", + 1: "LEFT", + 2: "RIGHT", + } + + _NAMES_TO_VALUES = { + "UNKNOWN": 0, + "LEFT": 1, + "RIGHT": 2, + } + + +class LoggerLevel(object): + NoneLevel = 0 + SYSTEM = 1 + SENSOR = 2 + WORLD = 4 + ACTION = 8 + INTERCEPT = 16 + KICK = 32 + HOLD = 64 + DRIBBLE = 128 + PASS = 256 + CROSS = 512 + SHOOT = 1024 + CLEAR = 2048 + BLOCK = 4096 + MARK = 8192 + POSITIONING = 16384 + ROLE = 32768 + TEAM = 65536 + COMMUNICATION = 131072 + ANALYZER = 262144 + ACTION_CHAIN = 524288 + PLAN = 1048576 + + _VALUES_TO_NAMES = { + 0: "NoneLevel", + 1: "SYSTEM", + 2: "SENSOR", + 4: "WORLD", + 8: "ACTION", + 16: "INTERCEPT", + 32: "KICK", + 64: "HOLD", + 128: "DRIBBLE", + 256: "PASS", + 512: "CROSS", + 1024: "SHOOT", + 2048: "CLEAR", + 4096: "BLOCK", + 8192: "MARK", + 16384: "POSITIONING", + 32768: "ROLE", + 65536: "TEAM", + 131072: "COMMUNICATION", + 262144: "ANALYZER", + 524288: "ACTION_CHAIN", + 1048576: "PLAN", + } + + _NAMES_TO_VALUES = { + "NoneLevel": 0, + "SYSTEM": 1, + "SENSOR": 2, + "WORLD": 4, + "ACTION": 8, + "INTERCEPT": 16, + "KICK": 32, + "HOLD": 64, + "DRIBBLE": 128, + "PASS": 256, + "CROSS": 512, + "SHOOT": 1024, + "CLEAR": 2048, + "BLOCK": 4096, + "MARK": 8192, + "POSITIONING": 16384, + "ROLE": 32768, + "TEAM": 65536, + "COMMUNICATION": 131072, + "ANALYZER": 262144, + "ACTION_CHAIN": 524288, + "PLAN": 1048576, + } + + +class InterceptActionType(object): + UNKNOWN_Intercept_Action_Type = 0 + OMNI_DASH = 1 + TURN_FORWARD_DASH = 2 + TURN_BACKWARD_DASH = 3 + + _VALUES_TO_NAMES = { + 0: "UNKNOWN_Intercept_Action_Type", + 1: "OMNI_DASH", + 2: "TURN_FORWARD_DASH", + 3: "TURN_BACKWARD_DASH", + } + + _NAMES_TO_VALUES = { + "UNKNOWN_Intercept_Action_Type": 0, + "OMNI_DASH": 1, + "TURN_FORWARD_DASH": 2, + "TURN_BACKWARD_DASH": 3, + } + + +class GameModeType(object): + 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 + + _VALUES_TO_NAMES = { + 0: "BeforeKickOff", + 1: "TimeOver", + 2: "PlayOn", + 3: "KickOff_", + 4: "KickIn_", + 5: "FreeKick_", + 6: "CornerKick_", + 7: "GoalKick_", + 8: "AfterGoal_", + 9: "OffSide_", + 10: "PenaltyKick_", + 11: "FirstHalfOver", + 12: "Pause", + 13: "Human", + 14: "FoulCharge_", + 15: "FoulPush_", + 16: "FoulMultipleAttacker_", + 17: "FoulBallOut_", + 18: "BackPass_", + 19: "FreeKickFault_", + 20: "CatchFault_", + 21: "IndFreeKick_", + 22: "PenaltySetup_", + 23: "PenaltyReady_", + 24: "PenaltyTaken_", + 25: "PenaltyMiss_", + 26: "PenaltyScore_", + 27: "IllegalDefense_", + 28: "PenaltyOnfield_", + 29: "PenaltyFoul_", + 30: "GoalieCatch_", + 31: "ExtendHalf", + 32: "MODE_MAX", + } + + _NAMES_TO_VALUES = { + "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, + } + + +class RpcVector2D(object): + """ + Attributes: + - x + - y + - dist + - angle + + """ + + + def __init__(self, x=None, y=None, dist=None, angle=None,): + self.x = x + self.y = y + self.dist = dist + self.angle = angle + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.y = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.dist = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.angle = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('RpcVector2D') + if self.x is not None: + oprot.writeFieldBegin('x', TType.DOUBLE, 1) + oprot.writeDouble(self.x) + oprot.writeFieldEnd() + if self.y is not None: + oprot.writeFieldBegin('y', TType.DOUBLE, 2) + oprot.writeDouble(self.y) + oprot.writeFieldEnd() + if self.dist is not None: + oprot.writeFieldBegin('dist', TType.DOUBLE, 3) + oprot.writeDouble(self.dist) + oprot.writeFieldEnd() + if self.angle is not None: + oprot.writeFieldBegin('angle', TType.DOUBLE, 4) + oprot.writeDouble(self.angle) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Ball(object): + """ + Attributes: + - 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 + + """ + + + def __init__(self, position=None, relative_position=None, seen_position=None, heard_position=None, velocity=None, seen_velocity=None, heard_velocity=None, pos_count=None, seen_pos_count=None, heard_pos_count=None, vel_count=None, seen_vel_count=None, heard_vel_count=None, lost_count=None, ghost_count=None, dist_from_self=None, angle_from_self=None,): + self.position = position + self.relative_position = relative_position + self.seen_position = seen_position + self.heard_position = heard_position + self.velocity = velocity + self.seen_velocity = seen_velocity + self.heard_velocity = heard_velocity + self.pos_count = pos_count + self.seen_pos_count = seen_pos_count + self.heard_pos_count = heard_pos_count + self.vel_count = vel_count + self.seen_vel_count = seen_vel_count + self.heard_vel_count = heard_vel_count + self.lost_count = lost_count + self.ghost_count = ghost_count + self.dist_from_self = dist_from_self + self.angle_from_self = angle_from_self + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.relative_position = RpcVector2D() + self.relative_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.seen_position = RpcVector2D() + self.seen_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.heard_position = RpcVector2D() + self.heard_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.velocity = RpcVector2D() + self.velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRUCT: + self.seen_velocity = RpcVector2D() + self.seen_velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRUCT: + self.heard_velocity = RpcVector2D() + self.heard_velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.I32: + self.pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.I32: + self.seen_pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.I32: + self.heard_pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.I32: + self.vel_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.I32: + self.seen_vel_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.I32: + self.heard_vel_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.I32: + self.lost_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.I32: + self.ghost_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.DOUBLE: + self.dist_from_self = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.DOUBLE: + self.angle_from_self = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Ball') + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 1) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.relative_position is not None: + oprot.writeFieldBegin('relative_position', TType.STRUCT, 2) + self.relative_position.write(oprot) + oprot.writeFieldEnd() + if self.seen_position is not None: + oprot.writeFieldBegin('seen_position', TType.STRUCT, 3) + self.seen_position.write(oprot) + oprot.writeFieldEnd() + if self.heard_position is not None: + oprot.writeFieldBegin('heard_position', TType.STRUCT, 4) + self.heard_position.write(oprot) + oprot.writeFieldEnd() + if self.velocity is not None: + oprot.writeFieldBegin('velocity', TType.STRUCT, 5) + self.velocity.write(oprot) + oprot.writeFieldEnd() + if self.seen_velocity is not None: + oprot.writeFieldBegin('seen_velocity', TType.STRUCT, 6) + self.seen_velocity.write(oprot) + oprot.writeFieldEnd() + if self.heard_velocity is not None: + oprot.writeFieldBegin('heard_velocity', TType.STRUCT, 7) + self.heard_velocity.write(oprot) + oprot.writeFieldEnd() + if self.pos_count is not None: + oprot.writeFieldBegin('pos_count', TType.I32, 8) + oprot.writeI32(self.pos_count) + oprot.writeFieldEnd() + if self.seen_pos_count is not None: + oprot.writeFieldBegin('seen_pos_count', TType.I32, 9) + oprot.writeI32(self.seen_pos_count) + oprot.writeFieldEnd() + if self.heard_pos_count is not None: + oprot.writeFieldBegin('heard_pos_count', TType.I32, 10) + oprot.writeI32(self.heard_pos_count) + oprot.writeFieldEnd() + if self.vel_count is not None: + oprot.writeFieldBegin('vel_count', TType.I32, 11) + oprot.writeI32(self.vel_count) + oprot.writeFieldEnd() + if self.seen_vel_count is not None: + oprot.writeFieldBegin('seen_vel_count', TType.I32, 12) + oprot.writeI32(self.seen_vel_count) + oprot.writeFieldEnd() + if self.heard_vel_count is not None: + oprot.writeFieldBegin('heard_vel_count', TType.I32, 13) + oprot.writeI32(self.heard_vel_count) + oprot.writeFieldEnd() + if self.lost_count is not None: + oprot.writeFieldBegin('lost_count', TType.I32, 14) + oprot.writeI32(self.lost_count) + oprot.writeFieldEnd() + if self.ghost_count is not None: + oprot.writeFieldBegin('ghost_count', TType.I32, 15) + oprot.writeI32(self.ghost_count) + oprot.writeFieldEnd() + if self.dist_from_self is not None: + oprot.writeFieldBegin('dist_from_self', TType.DOUBLE, 16) + oprot.writeDouble(self.dist_from_self) + oprot.writeFieldEnd() + if self.angle_from_self is not None: + oprot.writeFieldBegin('angle_from_self', TType.DOUBLE, 17) + oprot.writeDouble(self.angle_from_self) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Player(object): + """ + Attributes: + - 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 + + """ + + + def __init__(self, position=None, seen_position=None, heard_position=None, velocity=None, seen_velocity=None, pos_count=None, seen_pos_count=None, heard_pos_count=None, vel_count=None, seen_vel_count=None, ghost_count=None, dist_from_self=None, angle_from_self=None, id=None, side=None, uniform_number=None, uniform_number_count=None, is_goalie=None, body_direction=None, body_direction_count=None, face_direction=None, face_direction_count=None, point_to_direction=None, point_to_direction_count=None, is_kicking=None, dist_from_ball=None, angle_from_ball=None, ball_reach_steps=None, is_tackling=None, type_id=None,): + self.position = position + self.seen_position = seen_position + self.heard_position = heard_position + self.velocity = velocity + self.seen_velocity = seen_velocity + self.pos_count = pos_count + self.seen_pos_count = seen_pos_count + self.heard_pos_count = heard_pos_count + self.vel_count = vel_count + self.seen_vel_count = seen_vel_count + self.ghost_count = ghost_count + self.dist_from_self = dist_from_self + self.angle_from_self = angle_from_self + self.id = id + self.side = side + self.uniform_number = uniform_number + self.uniform_number_count = uniform_number_count + self.is_goalie = is_goalie + self.body_direction = body_direction + self.body_direction_count = body_direction_count + self.face_direction = face_direction + self.face_direction_count = face_direction_count + self.point_to_direction = point_to_direction + self.point_to_direction_count = point_to_direction_count + self.is_kicking = is_kicking + self.dist_from_ball = dist_from_ball + self.angle_from_ball = angle_from_ball + self.ball_reach_steps = ball_reach_steps + self.is_tackling = is_tackling + self.type_id = type_id + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.seen_position = RpcVector2D() + self.seen_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.heard_position = RpcVector2D() + self.heard_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.velocity = RpcVector2D() + self.velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.seen_velocity = RpcVector2D() + self.seen_velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.I32: + self.pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.I32: + self.seen_pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.I32: + self.heard_pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.I32: + self.vel_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.I32: + self.seen_vel_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.I32: + self.ghost_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.DOUBLE: + self.dist_from_self = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.DOUBLE: + self.angle_from_self = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.I32: + self.id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.I32: + self.side = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.I32: + self.uniform_number_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.BOOL: + self.is_goalie = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.DOUBLE: + self.body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.I32: + self.body_direction_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.DOUBLE: + self.face_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.I32: + self.face_direction_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 23: + if ftype == TType.DOUBLE: + self.point_to_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 24: + if ftype == TType.I32: + self.point_to_direction_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 25: + if ftype == TType.BOOL: + self.is_kicking = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 26: + if ftype == TType.DOUBLE: + self.dist_from_ball = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 27: + if ftype == TType.DOUBLE: + self.angle_from_ball = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 28: + if ftype == TType.I32: + self.ball_reach_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 29: + if ftype == TType.BOOL: + self.is_tackling = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 30: + if ftype == TType.I32: + self.type_id = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Player') + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 1) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.seen_position is not None: + oprot.writeFieldBegin('seen_position', TType.STRUCT, 2) + self.seen_position.write(oprot) + oprot.writeFieldEnd() + if self.heard_position is not None: + oprot.writeFieldBegin('heard_position', TType.STRUCT, 3) + self.heard_position.write(oprot) + oprot.writeFieldEnd() + if self.velocity is not None: + oprot.writeFieldBegin('velocity', TType.STRUCT, 4) + self.velocity.write(oprot) + oprot.writeFieldEnd() + if self.seen_velocity is not None: + oprot.writeFieldBegin('seen_velocity', TType.STRUCT, 5) + self.seen_velocity.write(oprot) + oprot.writeFieldEnd() + if self.pos_count is not None: + oprot.writeFieldBegin('pos_count', TType.I32, 6) + oprot.writeI32(self.pos_count) + oprot.writeFieldEnd() + if self.seen_pos_count is not None: + oprot.writeFieldBegin('seen_pos_count', TType.I32, 7) + oprot.writeI32(self.seen_pos_count) + oprot.writeFieldEnd() + if self.heard_pos_count is not None: + oprot.writeFieldBegin('heard_pos_count', TType.I32, 8) + oprot.writeI32(self.heard_pos_count) + oprot.writeFieldEnd() + if self.vel_count is not None: + oprot.writeFieldBegin('vel_count', TType.I32, 9) + oprot.writeI32(self.vel_count) + oprot.writeFieldEnd() + if self.seen_vel_count is not None: + oprot.writeFieldBegin('seen_vel_count', TType.I32, 10) + oprot.writeI32(self.seen_vel_count) + oprot.writeFieldEnd() + if self.ghost_count is not None: + oprot.writeFieldBegin('ghost_count', TType.I32, 11) + oprot.writeI32(self.ghost_count) + oprot.writeFieldEnd() + if self.dist_from_self is not None: + oprot.writeFieldBegin('dist_from_self', TType.DOUBLE, 12) + oprot.writeDouble(self.dist_from_self) + oprot.writeFieldEnd() + if self.angle_from_self is not None: + oprot.writeFieldBegin('angle_from_self', TType.DOUBLE, 13) + oprot.writeDouble(self.angle_from_self) + oprot.writeFieldEnd() + if self.id is not None: + oprot.writeFieldBegin('id', TType.I32, 14) + oprot.writeI32(self.id) + oprot.writeFieldEnd() + if self.side is not None: + oprot.writeFieldBegin('side', TType.I32, 15) + oprot.writeI32(self.side) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 16) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.uniform_number_count is not None: + oprot.writeFieldBegin('uniform_number_count', TType.I32, 17) + oprot.writeI32(self.uniform_number_count) + oprot.writeFieldEnd() + if self.is_goalie is not None: + oprot.writeFieldBegin('is_goalie', TType.BOOL, 18) + oprot.writeBool(self.is_goalie) + oprot.writeFieldEnd() + if self.body_direction is not None: + oprot.writeFieldBegin('body_direction', TType.DOUBLE, 19) + oprot.writeDouble(self.body_direction) + oprot.writeFieldEnd() + if self.body_direction_count is not None: + oprot.writeFieldBegin('body_direction_count', TType.I32, 20) + oprot.writeI32(self.body_direction_count) + oprot.writeFieldEnd() + if self.face_direction is not None: + oprot.writeFieldBegin('face_direction', TType.DOUBLE, 21) + oprot.writeDouble(self.face_direction) + oprot.writeFieldEnd() + if self.face_direction_count is not None: + oprot.writeFieldBegin('face_direction_count', TType.I32, 22) + oprot.writeI32(self.face_direction_count) + oprot.writeFieldEnd() + if self.point_to_direction is not None: + oprot.writeFieldBegin('point_to_direction', TType.DOUBLE, 23) + oprot.writeDouble(self.point_to_direction) + oprot.writeFieldEnd() + if self.point_to_direction_count is not None: + oprot.writeFieldBegin('point_to_direction_count', TType.I32, 24) + oprot.writeI32(self.point_to_direction_count) + oprot.writeFieldEnd() + if self.is_kicking is not None: + oprot.writeFieldBegin('is_kicking', TType.BOOL, 25) + oprot.writeBool(self.is_kicking) + oprot.writeFieldEnd() + if self.dist_from_ball is not None: + oprot.writeFieldBegin('dist_from_ball', TType.DOUBLE, 26) + oprot.writeDouble(self.dist_from_ball) + oprot.writeFieldEnd() + if self.angle_from_ball is not None: + oprot.writeFieldBegin('angle_from_ball', TType.DOUBLE, 27) + oprot.writeDouble(self.angle_from_ball) + oprot.writeFieldEnd() + if self.ball_reach_steps is not None: + oprot.writeFieldBegin('ball_reach_steps', TType.I32, 28) + oprot.writeI32(self.ball_reach_steps) + oprot.writeFieldEnd() + if self.is_tackling is not None: + oprot.writeFieldBegin('is_tackling', TType.BOOL, 29) + oprot.writeBool(self.is_tackling) + oprot.writeFieldEnd() + if self.type_id is not None: + oprot.writeFieldBegin('type_id', TType.I32, 30) + oprot.writeI32(self.type_id) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Self(object): + """ + Attributes: + - 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 + + """ + + + def __init__(self, position=None, seen_position=None, heard_position=None, velocity=None, seen_velocity=None, pos_count=None, seen_pos_count=None, heard_pos_count=None, vel_count=None, seen_vel_count=None, ghost_count=None, id=None, side=None, uniform_number=None, uniform_number_count=None, is_goalie=None, body_direction=None, body_direction_count=None, face_direction=None, face_direction_count=None, point_to_direction=None, point_to_direction_count=None, is_kicking=None, dist_from_ball=None, angle_from_ball=None, ball_reach_steps=None, is_tackling=None, relative_neck_direction=None, stamina=None, is_kickable=None, catch_probability=None, tackle_probability=None, foul_probability=None, view_width=None, type_id=None, kick_rate=None,): + self.position = position + self.seen_position = seen_position + self.heard_position = heard_position + self.velocity = velocity + self.seen_velocity = seen_velocity + self.pos_count = pos_count + self.seen_pos_count = seen_pos_count + self.heard_pos_count = heard_pos_count + self.vel_count = vel_count + self.seen_vel_count = seen_vel_count + self.ghost_count = ghost_count + self.id = id + self.side = side + self.uniform_number = uniform_number + self.uniform_number_count = uniform_number_count + self.is_goalie = is_goalie + self.body_direction = body_direction + self.body_direction_count = body_direction_count + self.face_direction = face_direction + self.face_direction_count = face_direction_count + self.point_to_direction = point_to_direction + self.point_to_direction_count = point_to_direction_count + self.is_kicking = is_kicking + self.dist_from_ball = dist_from_ball + self.angle_from_ball = angle_from_ball + self.ball_reach_steps = ball_reach_steps + self.is_tackling = is_tackling + self.relative_neck_direction = relative_neck_direction + self.stamina = stamina + self.is_kickable = is_kickable + self.catch_probability = catch_probability + self.tackle_probability = tackle_probability + self.foul_probability = foul_probability + self.view_width = view_width + self.type_id = type_id + self.kick_rate = kick_rate + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.seen_position = RpcVector2D() + self.seen_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.heard_position = RpcVector2D() + self.heard_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.velocity = RpcVector2D() + self.velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.seen_velocity = RpcVector2D() + self.seen_velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.I32: + self.pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.I32: + self.seen_pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.I32: + self.heard_pos_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.I32: + self.vel_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.I32: + self.seen_vel_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.I32: + self.ghost_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.I32: + self.id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.I32: + self.side = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.I32: + self.uniform_number_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.BOOL: + self.is_goalie = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.DOUBLE: + self.body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.I32: + self.body_direction_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.DOUBLE: + self.face_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.I32: + self.face_direction_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.DOUBLE: + self.point_to_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.I32: + self.point_to_direction_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 23: + if ftype == TType.BOOL: + self.is_kicking = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 24: + if ftype == TType.DOUBLE: + self.dist_from_ball = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 25: + if ftype == TType.DOUBLE: + self.angle_from_ball = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 26: + if ftype == TType.I32: + self.ball_reach_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 27: + if ftype == TType.BOOL: + self.is_tackling = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 28: + if ftype == TType.DOUBLE: + self.relative_neck_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 29: + if ftype == TType.DOUBLE: + self.stamina = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 30: + if ftype == TType.BOOL: + self.is_kickable = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 31: + if ftype == TType.DOUBLE: + self.catch_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 32: + if ftype == TType.DOUBLE: + self.tackle_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 33: + if ftype == TType.DOUBLE: + self.foul_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 34: + if ftype == TType.I32: + self.view_width = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 35: + if ftype == TType.I32: + self.type_id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 36: + if ftype == TType.DOUBLE: + self.kick_rate = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Self') + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 1) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.seen_position is not None: + oprot.writeFieldBegin('seen_position', TType.STRUCT, 2) + self.seen_position.write(oprot) + oprot.writeFieldEnd() + if self.heard_position is not None: + oprot.writeFieldBegin('heard_position', TType.STRUCT, 3) + self.heard_position.write(oprot) + oprot.writeFieldEnd() + if self.velocity is not None: + oprot.writeFieldBegin('velocity', TType.STRUCT, 4) + self.velocity.write(oprot) + oprot.writeFieldEnd() + if self.seen_velocity is not None: + oprot.writeFieldBegin('seen_velocity', TType.STRUCT, 5) + self.seen_velocity.write(oprot) + oprot.writeFieldEnd() + if self.pos_count is not None: + oprot.writeFieldBegin('pos_count', TType.I32, 6) + oprot.writeI32(self.pos_count) + oprot.writeFieldEnd() + if self.seen_pos_count is not None: + oprot.writeFieldBegin('seen_pos_count', TType.I32, 7) + oprot.writeI32(self.seen_pos_count) + oprot.writeFieldEnd() + if self.heard_pos_count is not None: + oprot.writeFieldBegin('heard_pos_count', TType.I32, 8) + oprot.writeI32(self.heard_pos_count) + oprot.writeFieldEnd() + if self.vel_count is not None: + oprot.writeFieldBegin('vel_count', TType.I32, 9) + oprot.writeI32(self.vel_count) + oprot.writeFieldEnd() + if self.seen_vel_count is not None: + oprot.writeFieldBegin('seen_vel_count', TType.I32, 10) + oprot.writeI32(self.seen_vel_count) + oprot.writeFieldEnd() + if self.ghost_count is not None: + oprot.writeFieldBegin('ghost_count', TType.I32, 11) + oprot.writeI32(self.ghost_count) + oprot.writeFieldEnd() + if self.id is not None: + oprot.writeFieldBegin('id', TType.I32, 12) + oprot.writeI32(self.id) + oprot.writeFieldEnd() + if self.side is not None: + oprot.writeFieldBegin('side', TType.I32, 13) + oprot.writeI32(self.side) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 14) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.uniform_number_count is not None: + oprot.writeFieldBegin('uniform_number_count', TType.I32, 15) + oprot.writeI32(self.uniform_number_count) + oprot.writeFieldEnd() + if self.is_goalie is not None: + oprot.writeFieldBegin('is_goalie', TType.BOOL, 16) + oprot.writeBool(self.is_goalie) + oprot.writeFieldEnd() + if self.body_direction is not None: + oprot.writeFieldBegin('body_direction', TType.DOUBLE, 17) + oprot.writeDouble(self.body_direction) + oprot.writeFieldEnd() + if self.body_direction_count is not None: + oprot.writeFieldBegin('body_direction_count', TType.I32, 18) + oprot.writeI32(self.body_direction_count) + oprot.writeFieldEnd() + if self.face_direction is not None: + oprot.writeFieldBegin('face_direction', TType.DOUBLE, 19) + oprot.writeDouble(self.face_direction) + oprot.writeFieldEnd() + if self.face_direction_count is not None: + oprot.writeFieldBegin('face_direction_count', TType.I32, 20) + oprot.writeI32(self.face_direction_count) + oprot.writeFieldEnd() + if self.point_to_direction is not None: + oprot.writeFieldBegin('point_to_direction', TType.DOUBLE, 21) + oprot.writeDouble(self.point_to_direction) + oprot.writeFieldEnd() + if self.point_to_direction_count is not None: + oprot.writeFieldBegin('point_to_direction_count', TType.I32, 22) + oprot.writeI32(self.point_to_direction_count) + oprot.writeFieldEnd() + if self.is_kicking is not None: + oprot.writeFieldBegin('is_kicking', TType.BOOL, 23) + oprot.writeBool(self.is_kicking) + oprot.writeFieldEnd() + if self.dist_from_ball is not None: + oprot.writeFieldBegin('dist_from_ball', TType.DOUBLE, 24) + oprot.writeDouble(self.dist_from_ball) + oprot.writeFieldEnd() + if self.angle_from_ball is not None: + oprot.writeFieldBegin('angle_from_ball', TType.DOUBLE, 25) + oprot.writeDouble(self.angle_from_ball) + oprot.writeFieldEnd() + if self.ball_reach_steps is not None: + oprot.writeFieldBegin('ball_reach_steps', TType.I32, 26) + oprot.writeI32(self.ball_reach_steps) + oprot.writeFieldEnd() + if self.is_tackling is not None: + oprot.writeFieldBegin('is_tackling', TType.BOOL, 27) + oprot.writeBool(self.is_tackling) + oprot.writeFieldEnd() + if self.relative_neck_direction is not None: + oprot.writeFieldBegin('relative_neck_direction', TType.DOUBLE, 28) + oprot.writeDouble(self.relative_neck_direction) + oprot.writeFieldEnd() + if self.stamina is not None: + oprot.writeFieldBegin('stamina', TType.DOUBLE, 29) + oprot.writeDouble(self.stamina) + oprot.writeFieldEnd() + if self.is_kickable is not None: + oprot.writeFieldBegin('is_kickable', TType.BOOL, 30) + oprot.writeBool(self.is_kickable) + oprot.writeFieldEnd() + if self.catch_probability is not None: + oprot.writeFieldBegin('catch_probability', TType.DOUBLE, 31) + oprot.writeDouble(self.catch_probability) + oprot.writeFieldEnd() + if self.tackle_probability is not None: + oprot.writeFieldBegin('tackle_probability', TType.DOUBLE, 32) + oprot.writeDouble(self.tackle_probability) + oprot.writeFieldEnd() + if self.foul_probability is not None: + oprot.writeFieldBegin('foul_probability', TType.DOUBLE, 33) + oprot.writeDouble(self.foul_probability) + oprot.writeFieldEnd() + if self.view_width is not None: + oprot.writeFieldBegin('view_width', TType.I32, 34) + oprot.writeI32(self.view_width) + oprot.writeFieldEnd() + if self.type_id is not None: + oprot.writeFieldBegin('type_id', TType.I32, 35) + oprot.writeI32(self.type_id) + oprot.writeFieldEnd() + if self.kick_rate is not None: + oprot.writeFieldBegin('kick_rate', TType.DOUBLE, 36) + oprot.writeDouble(self.kick_rate) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class InterceptInfo(object): + """ + Attributes: + - action_type + - turn_steps + - turn_angle + - dash_steps + - dash_power + - dash_dir + - final_self_position + - final_ball_dist + - final_stamina + - value + + """ + + + def __init__(self, action_type=None, turn_steps=None, turn_angle=None, dash_steps=None, dash_power=None, dash_dir=None, final_self_position=None, final_ball_dist=None, final_stamina=None, value=None,): + self.action_type = action_type + self.turn_steps = turn_steps + self.turn_angle = turn_angle + self.dash_steps = dash_steps + self.dash_power = dash_power + self.dash_dir = dash_dir + self.final_self_position = final_self_position + self.final_ball_dist = final_ball_dist + self.final_stamina = final_stamina + self.value = value + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.action_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.turn_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.turn_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + self.dash_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.DOUBLE: + self.dash_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.DOUBLE: + self.dash_dir = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRUCT: + self.final_self_position = RpcVector2D() + self.final_self_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.DOUBLE: + self.final_ball_dist = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.DOUBLE: + self.final_stamina = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.DOUBLE: + self.value = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('InterceptInfo') + if self.action_type is not None: + oprot.writeFieldBegin('action_type', TType.I32, 1) + oprot.writeI32(self.action_type) + oprot.writeFieldEnd() + if self.turn_steps is not None: + oprot.writeFieldBegin('turn_steps', TType.I32, 2) + oprot.writeI32(self.turn_steps) + oprot.writeFieldEnd() + if self.turn_angle is not None: + oprot.writeFieldBegin('turn_angle', TType.DOUBLE, 3) + oprot.writeDouble(self.turn_angle) + oprot.writeFieldEnd() + if self.dash_steps is not None: + oprot.writeFieldBegin('dash_steps', TType.I32, 4) + oprot.writeI32(self.dash_steps) + oprot.writeFieldEnd() + if self.dash_power is not None: + oprot.writeFieldBegin('dash_power', TType.DOUBLE, 5) + oprot.writeDouble(self.dash_power) + oprot.writeFieldEnd() + if self.dash_dir is not None: + oprot.writeFieldBegin('dash_dir', TType.DOUBLE, 6) + oprot.writeDouble(self.dash_dir) + oprot.writeFieldEnd() + if self.final_self_position is not None: + oprot.writeFieldBegin('final_self_position', TType.STRUCT, 7) + self.final_self_position.write(oprot) + oprot.writeFieldEnd() + if self.final_ball_dist is not None: + oprot.writeFieldBegin('final_ball_dist', TType.DOUBLE, 8) + oprot.writeDouble(self.final_ball_dist) + oprot.writeFieldEnd() + if self.final_stamina is not None: + oprot.writeFieldBegin('final_stamina', TType.DOUBLE, 9) + oprot.writeDouble(self.final_stamina) + oprot.writeFieldEnd() + if self.value is not None: + oprot.writeFieldBegin('value', TType.DOUBLE, 10) + oprot.writeDouble(self.value) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class InterceptTable(object): + """ + Attributes: + - 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 + + """ + + + def __init__(self, self_reach_steps=None, first_teammate_reach_steps=None, second_teammate_reach_steps=None, first_opponent_reach_steps=None, second_opponent_reach_steps=None, first_teammate_id=None, second_teammate_id=None, first_opponent_id=None, second_opponent_id=None, self_intercept_info=None,): + self.self_reach_steps = self_reach_steps + self.first_teammate_reach_steps = first_teammate_reach_steps + self.second_teammate_reach_steps = second_teammate_reach_steps + self.first_opponent_reach_steps = first_opponent_reach_steps + self.second_opponent_reach_steps = second_opponent_reach_steps + self.first_teammate_id = first_teammate_id + self.second_teammate_id = second_teammate_id + self.first_opponent_id = first_opponent_id + self.second_opponent_id = second_opponent_id + self.self_intercept_info = self_intercept_info + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.self_reach_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.first_teammate_reach_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.second_teammate_reach_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + self.first_opponent_reach_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.I32: + self.second_opponent_reach_steps = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.I32: + self.first_teammate_id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.I32: + self.second_teammate_id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.I32: + self.first_opponent_id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.I32: + self.second_opponent_id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.LIST: + self.self_intercept_info = [] + (_etype3, _size0) = iprot.readListBegin() + for _i4 in range(_size0): + _elem5 = InterceptInfo() + _elem5.read(iprot) + self.self_intercept_info.append(_elem5) + iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('InterceptTable') + if self.self_reach_steps is not None: + oprot.writeFieldBegin('self_reach_steps', TType.I32, 1) + oprot.writeI32(self.self_reach_steps) + oprot.writeFieldEnd() + if self.first_teammate_reach_steps is not None: + oprot.writeFieldBegin('first_teammate_reach_steps', TType.I32, 2) + oprot.writeI32(self.first_teammate_reach_steps) + oprot.writeFieldEnd() + if self.second_teammate_reach_steps is not None: + oprot.writeFieldBegin('second_teammate_reach_steps', TType.I32, 3) + oprot.writeI32(self.second_teammate_reach_steps) + oprot.writeFieldEnd() + if self.first_opponent_reach_steps is not None: + oprot.writeFieldBegin('first_opponent_reach_steps', TType.I32, 4) + oprot.writeI32(self.first_opponent_reach_steps) + oprot.writeFieldEnd() + if self.second_opponent_reach_steps is not None: + oprot.writeFieldBegin('second_opponent_reach_steps', TType.I32, 5) + oprot.writeI32(self.second_opponent_reach_steps) + oprot.writeFieldEnd() + if self.first_teammate_id is not None: + oprot.writeFieldBegin('first_teammate_id', TType.I32, 6) + oprot.writeI32(self.first_teammate_id) + oprot.writeFieldEnd() + if self.second_teammate_id is not None: + oprot.writeFieldBegin('second_teammate_id', TType.I32, 7) + oprot.writeI32(self.second_teammate_id) + oprot.writeFieldEnd() + if self.first_opponent_id is not None: + oprot.writeFieldBegin('first_opponent_id', TType.I32, 8) + oprot.writeI32(self.first_opponent_id) + oprot.writeFieldEnd() + if self.second_opponent_id is not None: + oprot.writeFieldBegin('second_opponent_id', TType.I32, 9) + oprot.writeI32(self.second_opponent_id) + oprot.writeFieldEnd() + if self.self_intercept_info is not None: + oprot.writeFieldBegin('self_intercept_info', TType.LIST, 10) + oprot.writeListBegin(TType.STRUCT, len(self.self_intercept_info)) + for iter6 in self.self_intercept_info: + iter6.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class WorldModel(object): + """ + Attributes: + - intercept_table + - our_team_name + - their_team_name + - our_side + - last_set_play_start_time + - myself + - ball + - teammates + - opponents + - unknowns + - our_players_dict + - their_players_dict + - our_goalie_uniform_number + - their_goalie_uniform_number + - offside_line_x + - offside_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 + + """ + + + def __init__(self, intercept_table=None, our_team_name=None, their_team_name=None, our_side=None, last_set_play_start_time=None, myself=None, ball=None, teammates=None, opponents=None, unknowns=None, our_players_dict=None, their_players_dict=None, our_goalie_uniform_number=None, their_goalie_uniform_number=None, offside_line_x=None, offside_line_x_count=None, kickable_teammate_id=None, kickable_opponent_id=None, last_kick_side=None, last_kicker_uniform_number=None, cycle=None, game_mode_type=None, left_team_score=None, right_team_score=None, is_our_set_play=None, is_their_set_play=None, stoped_cycle=None, our_team_score=None, their_team_score=None, is_penalty_kick_mode=None, helios_home_positions=None,): + self.intercept_table = intercept_table + self.our_team_name = our_team_name + self.their_team_name = their_team_name + self.our_side = our_side + self.last_set_play_start_time = last_set_play_start_time + self.myself = myself + self.ball = ball + self.teammates = teammates + self.opponents = opponents + self.unknowns = unknowns + self.our_players_dict = our_players_dict + self.their_players_dict = their_players_dict + self.our_goalie_uniform_number = our_goalie_uniform_number + self.their_goalie_uniform_number = their_goalie_uniform_number + self.offside_line_x = offside_line_x + self.offside_line_x_count = offside_line_x_count + self.kickable_teammate_id = kickable_teammate_id + self.kickable_opponent_id = kickable_opponent_id + self.last_kick_side = last_kick_side + self.last_kicker_uniform_number = last_kicker_uniform_number + self.cycle = cycle + self.game_mode_type = game_mode_type + self.left_team_score = left_team_score + self.right_team_score = right_team_score + self.is_our_set_play = is_our_set_play + self.is_their_set_play = is_their_set_play + self.stoped_cycle = stoped_cycle + self.our_team_score = our_team_score + self.their_team_score = their_team_score + self.is_penalty_kick_mode = is_penalty_kick_mode + self.helios_home_positions = helios_home_positions + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.intercept_table = InterceptTable() + self.intercept_table.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + self.our_team_name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + self.their_team_name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + self.our_side = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.I32: + self.last_set_play_start_time = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRUCT: + self.myself = Self() + self.myself.read(iprot) + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRUCT: + self.ball = Ball() + self.ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.LIST: + self.teammates = [] + (_etype10, _size7) = iprot.readListBegin() + for _i11 in range(_size7): + _elem12 = Player() + _elem12.read(iprot) + self.teammates.append(_elem12) + iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.LIST: + self.opponents = [] + (_etype16, _size13) = iprot.readListBegin() + for _i17 in range(_size13): + _elem18 = Player() + _elem18.read(iprot) + self.opponents.append(_elem18) + iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.LIST: + self.unknowns = [] + (_etype22, _size19) = iprot.readListBegin() + for _i23 in range(_size19): + _elem24 = Player() + _elem24.read(iprot) + self.unknowns.append(_elem24) + iprot.readListEnd() + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.MAP: + self.our_players_dict = {} + (_ktype26, _vtype27, _size25) = iprot.readMapBegin() + for _i29 in range(_size25): + _key30 = iprot.readI32() + _val31 = Player() + _val31.read(iprot) + self.our_players_dict[_key30] = _val31 + iprot.readMapEnd() + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.MAP: + self.their_players_dict = {} + (_ktype33, _vtype34, _size32) = iprot.readMapBegin() + for _i36 in range(_size32): + _key37 = iprot.readI32() + _val38 = Player() + _val38.read(iprot) + self.their_players_dict[_key37] = _val38 + iprot.readMapEnd() + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.I32: + self.our_goalie_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.I32: + self.their_goalie_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.DOUBLE: + self.offside_line_x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.I32: + self.offside_line_x_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.I32: + self.kickable_teammate_id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.I32: + self.kickable_opponent_id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.I32: + self.last_kick_side = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.I32: + self.last_kicker_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.I32: + self.cycle = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.I32: + self.game_mode_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 23: + if ftype == TType.I32: + self.left_team_score = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 24: + if ftype == TType.I32: + self.right_team_score = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 25: + if ftype == TType.BOOL: + self.is_our_set_play = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 26: + if ftype == TType.BOOL: + self.is_their_set_play = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 27: + if ftype == TType.I32: + self.stoped_cycle = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 28: + if ftype == TType.I32: + self.our_team_score = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 29: + if ftype == TType.I32: + self.their_team_score = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 30: + if ftype == TType.BOOL: + self.is_penalty_kick_mode = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 31: + if ftype == TType.MAP: + self.helios_home_positions = {} + (_ktype40, _vtype41, _size39) = iprot.readMapBegin() + for _i43 in range(_size39): + _key44 = iprot.readI32() + _val45 = RpcVector2D() + _val45.read(iprot) + self.helios_home_positions[_key44] = _val45 + iprot.readMapEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('WorldModel') + if self.intercept_table is not None: + oprot.writeFieldBegin('intercept_table', TType.STRUCT, 1) + self.intercept_table.write(oprot) + oprot.writeFieldEnd() + if self.our_team_name is not None: + oprot.writeFieldBegin('our_team_name', TType.STRING, 2) + oprot.writeString(self.our_team_name.encode('utf-8') if sys.version_info[0] == 2 else self.our_team_name) + oprot.writeFieldEnd() + if self.their_team_name is not None: + oprot.writeFieldBegin('their_team_name', TType.STRING, 3) + oprot.writeString(self.their_team_name.encode('utf-8') if sys.version_info[0] == 2 else self.their_team_name) + oprot.writeFieldEnd() + if self.our_side is not None: + oprot.writeFieldBegin('our_side', TType.I32, 4) + oprot.writeI32(self.our_side) + oprot.writeFieldEnd() + if self.last_set_play_start_time is not None: + oprot.writeFieldBegin('last_set_play_start_time', TType.I32, 5) + oprot.writeI32(self.last_set_play_start_time) + oprot.writeFieldEnd() + if self.myself is not None: + oprot.writeFieldBegin('myself', TType.STRUCT, 6) + self.myself.write(oprot) + oprot.writeFieldEnd() + if self.ball is not None: + oprot.writeFieldBegin('ball', TType.STRUCT, 7) + self.ball.write(oprot) + oprot.writeFieldEnd() + if self.teammates is not None: + oprot.writeFieldBegin('teammates', TType.LIST, 8) + oprot.writeListBegin(TType.STRUCT, len(self.teammates)) + for iter46 in self.teammates: + iter46.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + if self.opponents is not None: + oprot.writeFieldBegin('opponents', TType.LIST, 9) + oprot.writeListBegin(TType.STRUCT, len(self.opponents)) + for iter47 in self.opponents: + iter47.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + if self.unknowns is not None: + oprot.writeFieldBegin('unknowns', TType.LIST, 10) + oprot.writeListBegin(TType.STRUCT, len(self.unknowns)) + for iter48 in self.unknowns: + iter48.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + if self.our_players_dict is not None: + oprot.writeFieldBegin('our_players_dict', TType.MAP, 11) + oprot.writeMapBegin(TType.I32, TType.STRUCT, len(self.our_players_dict)) + for kiter49, viter50 in self.our_players_dict.items(): + oprot.writeI32(kiter49) + viter50.write(oprot) + oprot.writeMapEnd() + oprot.writeFieldEnd() + if self.their_players_dict is not None: + oprot.writeFieldBegin('their_players_dict', TType.MAP, 12) + oprot.writeMapBegin(TType.I32, TType.STRUCT, len(self.their_players_dict)) + for kiter51, viter52 in self.their_players_dict.items(): + oprot.writeI32(kiter51) + viter52.write(oprot) + oprot.writeMapEnd() + oprot.writeFieldEnd() + if self.our_goalie_uniform_number is not None: + oprot.writeFieldBegin('our_goalie_uniform_number', TType.I32, 13) + oprot.writeI32(self.our_goalie_uniform_number) + oprot.writeFieldEnd() + if self.their_goalie_uniform_number is not None: + oprot.writeFieldBegin('their_goalie_uniform_number', TType.I32, 14) + oprot.writeI32(self.their_goalie_uniform_number) + oprot.writeFieldEnd() + if self.offside_line_x is not None: + oprot.writeFieldBegin('offside_line_x', TType.DOUBLE, 15) + oprot.writeDouble(self.offside_line_x) + oprot.writeFieldEnd() + if self.offside_line_x_count is not None: + oprot.writeFieldBegin('offside_line_x_count', TType.I32, 16) + oprot.writeI32(self.offside_line_x_count) + oprot.writeFieldEnd() + if self.kickable_teammate_id is not None: + oprot.writeFieldBegin('kickable_teammate_id', TType.I32, 17) + oprot.writeI32(self.kickable_teammate_id) + oprot.writeFieldEnd() + if self.kickable_opponent_id is not None: + oprot.writeFieldBegin('kickable_opponent_id', TType.I32, 18) + oprot.writeI32(self.kickable_opponent_id) + oprot.writeFieldEnd() + if self.last_kick_side is not None: + oprot.writeFieldBegin('last_kick_side', TType.I32, 19) + oprot.writeI32(self.last_kick_side) + oprot.writeFieldEnd() + if self.last_kicker_uniform_number is not None: + oprot.writeFieldBegin('last_kicker_uniform_number', TType.I32, 20) + oprot.writeI32(self.last_kicker_uniform_number) + oprot.writeFieldEnd() + if self.cycle is not None: + oprot.writeFieldBegin('cycle', TType.I32, 21) + oprot.writeI32(self.cycle) + oprot.writeFieldEnd() + if self.game_mode_type is not None: + oprot.writeFieldBegin('game_mode_type', TType.I32, 22) + oprot.writeI32(self.game_mode_type) + oprot.writeFieldEnd() + if self.left_team_score is not None: + oprot.writeFieldBegin('left_team_score', TType.I32, 23) + oprot.writeI32(self.left_team_score) + oprot.writeFieldEnd() + if self.right_team_score is not None: + oprot.writeFieldBegin('right_team_score', TType.I32, 24) + oprot.writeI32(self.right_team_score) + oprot.writeFieldEnd() + if self.is_our_set_play is not None: + oprot.writeFieldBegin('is_our_set_play', TType.BOOL, 25) + oprot.writeBool(self.is_our_set_play) + oprot.writeFieldEnd() + if self.is_their_set_play is not None: + oprot.writeFieldBegin('is_their_set_play', TType.BOOL, 26) + oprot.writeBool(self.is_their_set_play) + oprot.writeFieldEnd() + if self.stoped_cycle is not None: + oprot.writeFieldBegin('stoped_cycle', TType.I32, 27) + oprot.writeI32(self.stoped_cycle) + oprot.writeFieldEnd() + if self.our_team_score is not None: + oprot.writeFieldBegin('our_team_score', TType.I32, 28) + oprot.writeI32(self.our_team_score) + oprot.writeFieldEnd() + if self.their_team_score is not None: + oprot.writeFieldBegin('their_team_score', TType.I32, 29) + oprot.writeI32(self.their_team_score) + oprot.writeFieldEnd() + if self.is_penalty_kick_mode is not None: + oprot.writeFieldBegin('is_penalty_kick_mode', TType.BOOL, 30) + oprot.writeBool(self.is_penalty_kick_mode) + oprot.writeFieldEnd() + if self.helios_home_positions is not None: + oprot.writeFieldBegin('helios_home_positions', TType.MAP, 31) + oprot.writeMapBegin(TType.I32, TType.STRUCT, len(self.helios_home_positions)) + for kiter53, viter54 in self.helios_home_positions.items(): + oprot.writeI32(kiter53) + viter54.write(oprot) + oprot.writeMapEnd() + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class State(object): + """ + Attributes: + - agent_type + - world_model + - full_world_model + + """ + + + def __init__(self, agent_type=None, world_model=None, full_world_model=None,): + self.agent_type = agent_type + self.world_model = world_model + self.full_world_model = full_world_model + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.agent_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.world_model = WorldModel() + self.world_model.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.full_world_model = WorldModel() + self.full_world_model.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('State') + if self.agent_type is not None: + oprot.writeFieldBegin('agent_type', TType.I32, 1) + oprot.writeI32(self.agent_type) + oprot.writeFieldEnd() + if self.world_model is not None: + oprot.writeFieldBegin('world_model', TType.STRUCT, 2) + self.world_model.write(oprot) + oprot.writeFieldEnd() + if self.full_world_model is not None: + oprot.writeFieldBegin('full_world_model', TType.STRUCT, 3) + self.full_world_model.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class InitMessage(object): + """ + Attributes: + - agent_type + - debug_mode + + """ + + + def __init__(self, agent_type=None, debug_mode=None,): + self.agent_type = agent_type + self.debug_mode = debug_mode + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.agent_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + self.debug_mode = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('InitMessage') + if self.agent_type is not None: + oprot.writeFieldBegin('agent_type', TType.I32, 1) + oprot.writeI32(self.agent_type) + oprot.writeFieldEnd() + if self.debug_mode is not None: + oprot.writeFieldBegin('debug_mode', TType.BOOL, 2) + oprot.writeBool(self.debug_mode) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Dash(object): + """ + Attributes: + - power + - relative_direction + + """ + + + def __init__(self, power=None, relative_direction=None,): + self.power = power + self.relative_direction = relative_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.relative_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Dash') + if self.power is not None: + oprot.writeFieldBegin('power', TType.DOUBLE, 1) + oprot.writeDouble(self.power) + oprot.writeFieldEnd() + if self.relative_direction is not None: + oprot.writeFieldBegin('relative_direction', TType.DOUBLE, 2) + oprot.writeDouble(self.relative_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Turn(object): + """ + Attributes: + - relative_direction + + """ + + + def __init__(self, relative_direction=None,): + self.relative_direction = relative_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.relative_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Turn') + if self.relative_direction is not None: + oprot.writeFieldBegin('relative_direction', TType.DOUBLE, 1) + oprot.writeDouble(self.relative_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Kick(object): + """ + Attributes: + - power + - relative_direction + + """ + + + def __init__(self, power=None, relative_direction=None,): + self.power = power + self.relative_direction = relative_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.relative_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Kick') + if self.power is not None: + oprot.writeFieldBegin('power', TType.DOUBLE, 1) + oprot.writeDouble(self.power) + oprot.writeFieldEnd() + if self.relative_direction is not None: + oprot.writeFieldBegin('relative_direction', TType.DOUBLE, 2) + oprot.writeDouble(self.relative_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Tackle(object): + """ + Attributes: + - power_or_dir + - foul + + """ + + + def __init__(self, power_or_dir=None, foul=None,): + self.power_or_dir = power_or_dir + self.foul = foul + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.power_or_dir = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + self.foul = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Tackle') + if self.power_or_dir is not None: + oprot.writeFieldBegin('power_or_dir', TType.DOUBLE, 1) + oprot.writeDouble(self.power_or_dir) + oprot.writeFieldEnd() + if self.foul is not None: + oprot.writeFieldBegin('foul', TType.BOOL, 2) + oprot.writeBool(self.foul) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Catch(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Catch') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Move(object): + """ + Attributes: + - x + - y + + """ + + + def __init__(self, x=None, y=None,): + self.x = x + self.y = y + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.y = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Move') + if self.x is not None: + oprot.writeFieldBegin('x', TType.DOUBLE, 1) + oprot.writeDouble(self.x) + oprot.writeFieldEnd() + if self.y is not None: + oprot.writeFieldBegin('y', TType.DOUBLE, 2) + oprot.writeDouble(self.y) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class TurnNeck(object): + """ + Attributes: + - moment + + """ + + + def __init__(self, moment=None,): + self.moment = moment + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.moment = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('TurnNeck') + if self.moment is not None: + oprot.writeFieldBegin('moment', TType.DOUBLE, 1) + oprot.writeDouble(self.moment) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class ChangeView(object): + """ + Attributes: + - view_width + + """ + + + def __init__(self, view_width=None,): + self.view_width = view_width + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.view_width = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('ChangeView') + if self.view_width is not None: + oprot.writeFieldBegin('view_width', TType.I32, 1) + oprot.writeI32(self.view_width) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class BallMessage(object): + """ + Attributes: + - ball_position + - ball_velocity + + """ + + + def __init__(self, ball_position=None, ball_velocity=None,): + self.ball_position = ball_position + self.ball_velocity = ball_velocity + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.ball_position = RpcVector2D() + self.ball_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.ball_velocity = RpcVector2D() + self.ball_velocity.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('BallMessage') + if self.ball_position is not None: + oprot.writeFieldBegin('ball_position', TType.STRUCT, 1) + self.ball_position.write(oprot) + oprot.writeFieldEnd() + if self.ball_velocity is not None: + oprot.writeFieldBegin('ball_velocity', TType.STRUCT, 2) + self.ball_velocity.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PassMessage(object): + """ + Attributes: + - receiver_uniform_number + - receiver_point + - ball_position + - ball_velocity + + """ + + + def __init__(self, receiver_uniform_number=None, receiver_point=None, ball_position=None, ball_velocity=None,): + self.receiver_uniform_number = receiver_uniform_number + self.receiver_point = receiver_point + self.ball_position = ball_position + self.ball_velocity = ball_velocity + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.receiver_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.receiver_point = RpcVector2D() + self.receiver_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.ball_position = RpcVector2D() + self.ball_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.ball_velocity = RpcVector2D() + self.ball_velocity.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PassMessage') + if self.receiver_uniform_number is not None: + oprot.writeFieldBegin('receiver_uniform_number', TType.I32, 1) + oprot.writeI32(self.receiver_uniform_number) + oprot.writeFieldEnd() + if self.receiver_point is not None: + oprot.writeFieldBegin('receiver_point', TType.STRUCT, 2) + self.receiver_point.write(oprot) + oprot.writeFieldEnd() + if self.ball_position is not None: + oprot.writeFieldBegin('ball_position', TType.STRUCT, 3) + self.ball_position.write(oprot) + oprot.writeFieldEnd() + if self.ball_velocity is not None: + oprot.writeFieldBegin('ball_velocity', TType.STRUCT, 4) + self.ball_velocity.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class InterceptMessage(object): + """ + Attributes: + - our + - uniform_number + - cycle + + """ + + + def __init__(self, our=None, uniform_number=None, cycle=None,): + self.our = our + self.uniform_number = uniform_number + self.cycle = cycle + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.BOOL: + self.our = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.cycle = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('InterceptMessage') + if self.our is not None: + oprot.writeFieldBegin('our', TType.BOOL, 1) + oprot.writeBool(self.our) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 2) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.cycle is not None: + oprot.writeFieldBegin('cycle', TType.I32, 3) + oprot.writeI32(self.cycle) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class GoalieMessage(object): + """ + Attributes: + - goalie_uniform_number + - goalie_position + - goalie_body_direction + + """ + + + def __init__(self, goalie_uniform_number=None, goalie_position=None, goalie_body_direction=None,): + self.goalie_uniform_number = goalie_uniform_number + self.goalie_position = goalie_position + self.goalie_body_direction = goalie_body_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.goalie_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.goalie_position = RpcVector2D() + self.goalie_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.goalie_body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GoalieMessage') + if self.goalie_uniform_number is not None: + oprot.writeFieldBegin('goalie_uniform_number', TType.I32, 1) + oprot.writeI32(self.goalie_uniform_number) + oprot.writeFieldEnd() + if self.goalie_position is not None: + oprot.writeFieldBegin('goalie_position', TType.STRUCT, 2) + self.goalie_position.write(oprot) + oprot.writeFieldEnd() + if self.goalie_body_direction is not None: + oprot.writeFieldBegin('goalie_body_direction', TType.DOUBLE, 3) + oprot.writeDouble(self.goalie_body_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class GoalieAndPlayerMessage(object): + """ + Attributes: + - goalie_uniform_number + - goalie_position + - goalie_body_direction + - player_uniform_number + - player_position + + """ + + + def __init__(self, goalie_uniform_number=None, goalie_position=None, goalie_body_direction=None, player_uniform_number=None, player_position=None,): + self.goalie_uniform_number = goalie_uniform_number + self.goalie_position = goalie_position + self.goalie_body_direction = goalie_body_direction + self.player_uniform_number = player_uniform_number + self.player_position = player_position + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.goalie_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.goalie_position = RpcVector2D() + self.goalie_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.goalie_body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + self.player_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.player_position = RpcVector2D() + self.player_position.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('GoalieAndPlayerMessage') + if self.goalie_uniform_number is not None: + oprot.writeFieldBegin('goalie_uniform_number', TType.I32, 1) + oprot.writeI32(self.goalie_uniform_number) + oprot.writeFieldEnd() + if self.goalie_position is not None: + oprot.writeFieldBegin('goalie_position', TType.STRUCT, 2) + self.goalie_position.write(oprot) + oprot.writeFieldEnd() + if self.goalie_body_direction is not None: + oprot.writeFieldBegin('goalie_body_direction', TType.DOUBLE, 3) + oprot.writeDouble(self.goalie_body_direction) + oprot.writeFieldEnd() + if self.player_uniform_number is not None: + oprot.writeFieldBegin('player_uniform_number', TType.I32, 4) + oprot.writeI32(self.player_uniform_number) + oprot.writeFieldEnd() + if self.player_position is not None: + oprot.writeFieldBegin('player_position', TType.STRUCT, 5) + self.player_position.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class OffsideLineMessage(object): + """ + Attributes: + - offside_line_x + + """ + + + def __init__(self, offside_line_x=None,): + self.offside_line_x = offside_line_x + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.offside_line_x = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('OffsideLineMessage') + if self.offside_line_x is not None: + oprot.writeFieldBegin('offside_line_x', TType.DOUBLE, 1) + oprot.writeDouble(self.offside_line_x) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DefenseLineMessage(object): + """ + Attributes: + - defense_line_x + + """ + + + def __init__(self, defense_line_x=None,): + self.defense_line_x = defense_line_x + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.defense_line_x = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DefenseLineMessage') + if self.defense_line_x is not None: + oprot.writeFieldBegin('defense_line_x', TType.DOUBLE, 1) + oprot.writeDouble(self.defense_line_x) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class WaitRequestMessage(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('WaitRequestMessage') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class SetplayMessage(object): + """ + Attributes: + - wait_step + + """ + + + def __init__(self, wait_step=None,): + self.wait_step = wait_step + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.wait_step = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SetplayMessage') + if self.wait_step is not None: + oprot.writeFieldBegin('wait_step', TType.I32, 1) + oprot.writeI32(self.wait_step) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PassRequestMessage(object): + """ + Attributes: + - target_point + + """ + + + def __init__(self, target_point=None,): + self.target_point = target_point + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PassRequestMessage') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class StaminaMessage(object): + """ + Attributes: + - stamina + + """ + + + def __init__(self, stamina=None,): + self.stamina = stamina + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.stamina = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('StaminaMessage') + if self.stamina is not None: + oprot.writeFieldBegin('stamina', TType.DOUBLE, 1) + oprot.writeDouble(self.stamina) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class RecoveryMessage(object): + """ + Attributes: + - recovery + + """ + + + def __init__(self, recovery=None,): + self.recovery = recovery + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.recovery = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('RecoveryMessage') + if self.recovery is not None: + oprot.writeFieldBegin('recovery', TType.DOUBLE, 1) + oprot.writeDouble(self.recovery) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class StaminaCapacityMessage(object): + """ + Attributes: + - stamina_capacity + + """ + + + def __init__(self, stamina_capacity=None,): + self.stamina_capacity = stamina_capacity + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.stamina_capacity = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('StaminaCapacityMessage') + if self.stamina_capacity is not None: + oprot.writeFieldBegin('stamina_capacity', TType.DOUBLE, 1) + oprot.writeDouble(self.stamina_capacity) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DribbleMessage(object): + """ + Attributes: + - target_point + - queue_count + + """ + + + def __init__(self, target_point=None, queue_count=None,): + self.target_point = target_point + self.queue_count = queue_count + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.queue_count = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DribbleMessage') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.queue_count is not None: + oprot.writeFieldBegin('queue_count', TType.I32, 2) + oprot.writeI32(self.queue_count) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class BallGoalieMessage(object): + """ + Attributes: + - ball_position + - ball_velocity + - goalie_position + - goalie_body_direction + + """ + + + def __init__(self, ball_position=None, ball_velocity=None, goalie_position=None, goalie_body_direction=None,): + self.ball_position = ball_position + self.ball_velocity = ball_velocity + self.goalie_position = goalie_position + self.goalie_body_direction = goalie_body_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.ball_position = RpcVector2D() + self.ball_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.ball_velocity = RpcVector2D() + self.ball_velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.goalie_position = RpcVector2D() + self.goalie_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.goalie_body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('BallGoalieMessage') + if self.ball_position is not None: + oprot.writeFieldBegin('ball_position', TType.STRUCT, 1) + self.ball_position.write(oprot) + oprot.writeFieldEnd() + if self.ball_velocity is not None: + oprot.writeFieldBegin('ball_velocity', TType.STRUCT, 2) + self.ball_velocity.write(oprot) + oprot.writeFieldEnd() + if self.goalie_position is not None: + oprot.writeFieldBegin('goalie_position', TType.STRUCT, 3) + self.goalie_position.write(oprot) + oprot.writeFieldEnd() + if self.goalie_body_direction is not None: + oprot.writeFieldBegin('goalie_body_direction', TType.DOUBLE, 4) + oprot.writeDouble(self.goalie_body_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class OnePlayerMessage(object): + """ + Attributes: + - uniform_number + - position + + """ + + + def __init__(self, uniform_number=None, position=None,): + self.uniform_number = uniform_number + self.position = position + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('OnePlayerMessage') + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 1) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 2) + self.position.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class TwoPlayerMessage(object): + """ + Attributes: + - first_uniform_number + - first_position + - second_uniform_number + - second_position + + """ + + + def __init__(self, first_uniform_number=None, first_position=None, second_uniform_number=None, second_position=None,): + self.first_uniform_number = first_uniform_number + self.first_position = first_position + self.second_uniform_number = second_uniform_number + self.second_position = second_position + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.first_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.first_position = RpcVector2D() + self.first_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.second_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.second_position = RpcVector2D() + self.second_position.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('TwoPlayerMessage') + if self.first_uniform_number is not None: + oprot.writeFieldBegin('first_uniform_number', TType.I32, 1) + oprot.writeI32(self.first_uniform_number) + oprot.writeFieldEnd() + if self.first_position is not None: + oprot.writeFieldBegin('first_position', TType.STRUCT, 2) + self.first_position.write(oprot) + oprot.writeFieldEnd() + if self.second_uniform_number is not None: + oprot.writeFieldBegin('second_uniform_number', TType.I32, 3) + oprot.writeI32(self.second_uniform_number) + oprot.writeFieldEnd() + if self.second_position is not None: + oprot.writeFieldBegin('second_position', TType.STRUCT, 4) + self.second_position.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class ThreePlayerMessage(object): + """ + Attributes: + - first_uniform_number + - first_position + - second_uniform_number + - second_position + - third_uniform_number + - third_position + + """ + + + def __init__(self, first_uniform_number=None, first_position=None, second_uniform_number=None, second_position=None, third_uniform_number=None, third_position=None,): + self.first_uniform_number = first_uniform_number + self.first_position = first_position + self.second_uniform_number = second_uniform_number + self.second_position = second_position + self.third_uniform_number = third_uniform_number + self.third_position = third_position + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.first_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.first_position = RpcVector2D() + self.first_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.second_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.second_position = RpcVector2D() + self.second_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.I32: + self.third_uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRUCT: + self.third_position = RpcVector2D() + self.third_position.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('ThreePlayerMessage') + if self.first_uniform_number is not None: + oprot.writeFieldBegin('first_uniform_number', TType.I32, 1) + oprot.writeI32(self.first_uniform_number) + oprot.writeFieldEnd() + if self.first_position is not None: + oprot.writeFieldBegin('first_position', TType.STRUCT, 2) + self.first_position.write(oprot) + oprot.writeFieldEnd() + if self.second_uniform_number is not None: + oprot.writeFieldBegin('second_uniform_number', TType.I32, 3) + oprot.writeI32(self.second_uniform_number) + oprot.writeFieldEnd() + if self.second_position is not None: + oprot.writeFieldBegin('second_position', TType.STRUCT, 4) + self.second_position.write(oprot) + oprot.writeFieldEnd() + if self.third_uniform_number is not None: + oprot.writeFieldBegin('third_uniform_number', TType.I32, 5) + oprot.writeI32(self.third_uniform_number) + oprot.writeFieldEnd() + if self.third_position is not None: + oprot.writeFieldBegin('third_position', TType.STRUCT, 6) + self.third_position.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class SelfMessage(object): + """ + Attributes: + - self_position + - self_body_direction + - self_stamina + + """ + + + def __init__(self, self_position=None, self_body_direction=None, self_stamina=None,): + self.self_position = self_position + self.self_body_direction = self_body_direction + self.self_stamina = self_stamina + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.self_position = RpcVector2D() + self.self_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.self_body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.self_stamina = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('SelfMessage') + if self.self_position is not None: + oprot.writeFieldBegin('self_position', TType.STRUCT, 1) + self.self_position.write(oprot) + oprot.writeFieldEnd() + if self.self_body_direction is not None: + oprot.writeFieldBegin('self_body_direction', TType.DOUBLE, 2) + oprot.writeDouble(self.self_body_direction) + oprot.writeFieldEnd() + if self.self_stamina is not None: + oprot.writeFieldBegin('self_stamina', TType.DOUBLE, 3) + oprot.writeDouble(self.self_stamina) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class TeammateMessage(object): + """ + Attributes: + - uniform_number + - position + - body_direction + + """ + + + def __init__(self, uniform_number=None, position=None, body_direction=None,): + self.uniform_number = uniform_number + self.position = position + self.body_direction = body_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('TeammateMessage') + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 1) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 2) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.body_direction is not None: + oprot.writeFieldBegin('body_direction', TType.DOUBLE, 3) + oprot.writeDouble(self.body_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class OpponentMessage(object): + """ + Attributes: + - uniform_number + - position + - body_direction + + """ + + + def __init__(self, uniform_number=None, position=None, body_direction=None,): + self.uniform_number = uniform_number + self.position = position + self.body_direction = body_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('OpponentMessage') + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 1) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 2) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.body_direction is not None: + oprot.writeFieldBegin('body_direction', TType.DOUBLE, 3) + oprot.writeDouble(self.body_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class BallPlayerMessage(object): + """ + Attributes: + - ball_position + - ball_velocity + - uniform_number + - player_position + - body_direction + + """ + + + def __init__(self, ball_position=None, ball_velocity=None, uniform_number=None, player_position=None, body_direction=None,): + self.ball_position = ball_position + self.ball_velocity = ball_velocity + self.uniform_number = uniform_number + self.player_position = player_position + self.body_direction = body_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.ball_position = RpcVector2D() + self.ball_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.ball_velocity = RpcVector2D() + self.ball_velocity.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.player_position = RpcVector2D() + self.player_position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.DOUBLE: + self.body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('BallPlayerMessage') + if self.ball_position is not None: + oprot.writeFieldBegin('ball_position', TType.STRUCT, 1) + self.ball_position.write(oprot) + oprot.writeFieldEnd() + if self.ball_velocity is not None: + oprot.writeFieldBegin('ball_velocity', TType.STRUCT, 2) + self.ball_velocity.write(oprot) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 3) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.player_position is not None: + oprot.writeFieldBegin('player_position', TType.STRUCT, 4) + self.player_position.write(oprot) + oprot.writeFieldEnd() + if self.body_direction is not None: + oprot.writeFieldBegin('body_direction', TType.DOUBLE, 5) + oprot.writeDouble(self.body_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Say(object): + """ + Attributes: + - 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 + + """ + + + def __init__(self, ball_message=None, pass_message=None, intercept_message=None, goalie_message=None, goalie_and_player_message=None, offside_line_message=None, defense_line_message=None, wait_request_message=None, setplay_message=None, pass_request_message=None, stamina_message=None, recovery_message=None, stamina_capacity_message=None, dribble_message=None, ball_goalie_message=None, one_player_message=None, two_player_message=None, three_player_message=None, self_message=None, teammate_message=None, opponent_message=None, ball_player_message=None,): + self.ball_message = ball_message + self.pass_message = pass_message + self.intercept_message = intercept_message + self.goalie_message = goalie_message + self.goalie_and_player_message = goalie_and_player_message + self.offside_line_message = offside_line_message + self.defense_line_message = defense_line_message + self.wait_request_message = wait_request_message + self.setplay_message = setplay_message + self.pass_request_message = pass_request_message + self.stamina_message = stamina_message + self.recovery_message = recovery_message + self.stamina_capacity_message = stamina_capacity_message + self.dribble_message = dribble_message + self.ball_goalie_message = ball_goalie_message + self.one_player_message = one_player_message + self.two_player_message = two_player_message + self.three_player_message = three_player_message + self.self_message = self_message + self.teammate_message = teammate_message + self.opponent_message = opponent_message + self.ball_player_message = ball_player_message + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.ball_message = BallMessage() + self.ball_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.pass_message = PassMessage() + self.pass_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.intercept_message = InterceptMessage() + self.intercept_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.goalie_message = GoalieMessage() + self.goalie_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.goalie_and_player_message = GoalieAndPlayerMessage() + self.goalie_and_player_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRUCT: + self.offside_line_message = OffsideLineMessage() + self.offside_line_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRUCT: + self.defense_line_message = DefenseLineMessage() + self.defense_line_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.STRUCT: + self.wait_request_message = WaitRequestMessage() + self.wait_request_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.STRUCT: + self.setplay_message = SetplayMessage() + self.setplay_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.STRUCT: + self.pass_request_message = PassRequestMessage() + self.pass_request_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.STRUCT: + self.stamina_message = StaminaMessage() + self.stamina_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.STRUCT: + self.recovery_message = RecoveryMessage() + self.recovery_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.STRUCT: + self.stamina_capacity_message = StaminaCapacityMessage() + self.stamina_capacity_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.STRUCT: + self.dribble_message = DribbleMessage() + self.dribble_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.STRUCT: + self.ball_goalie_message = BallGoalieMessage() + self.ball_goalie_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.STRUCT: + self.one_player_message = OnePlayerMessage() + self.one_player_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.STRUCT: + self.two_player_message = TwoPlayerMessage() + self.two_player_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.STRUCT: + self.three_player_message = ThreePlayerMessage() + self.three_player_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.STRUCT: + self.self_message = SelfMessage() + self.self_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.STRUCT: + self.teammate_message = TeammateMessage() + self.teammate_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.STRUCT: + self.opponent_message = OpponentMessage() + self.opponent_message.read(iprot) + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.STRUCT: + self.ball_player_message = BallPlayerMessage() + self.ball_player_message.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Say') + if self.ball_message is not None: + oprot.writeFieldBegin('ball_message', TType.STRUCT, 1) + self.ball_message.write(oprot) + oprot.writeFieldEnd() + if self.pass_message is not None: + oprot.writeFieldBegin('pass_message', TType.STRUCT, 2) + self.pass_message.write(oprot) + oprot.writeFieldEnd() + if self.intercept_message is not None: + oprot.writeFieldBegin('intercept_message', TType.STRUCT, 3) + self.intercept_message.write(oprot) + oprot.writeFieldEnd() + if self.goalie_message is not None: + oprot.writeFieldBegin('goalie_message', TType.STRUCT, 4) + self.goalie_message.write(oprot) + oprot.writeFieldEnd() + if self.goalie_and_player_message is not None: + oprot.writeFieldBegin('goalie_and_player_message', TType.STRUCT, 5) + self.goalie_and_player_message.write(oprot) + oprot.writeFieldEnd() + if self.offside_line_message is not None: + oprot.writeFieldBegin('offside_line_message', TType.STRUCT, 6) + self.offside_line_message.write(oprot) + oprot.writeFieldEnd() + if self.defense_line_message is not None: + oprot.writeFieldBegin('defense_line_message', TType.STRUCT, 7) + self.defense_line_message.write(oprot) + oprot.writeFieldEnd() + if self.wait_request_message is not None: + oprot.writeFieldBegin('wait_request_message', TType.STRUCT, 8) + self.wait_request_message.write(oprot) + oprot.writeFieldEnd() + if self.setplay_message is not None: + oprot.writeFieldBegin('setplay_message', TType.STRUCT, 9) + self.setplay_message.write(oprot) + oprot.writeFieldEnd() + if self.pass_request_message is not None: + oprot.writeFieldBegin('pass_request_message', TType.STRUCT, 10) + self.pass_request_message.write(oprot) + oprot.writeFieldEnd() + if self.stamina_message is not None: + oprot.writeFieldBegin('stamina_message', TType.STRUCT, 11) + self.stamina_message.write(oprot) + oprot.writeFieldEnd() + if self.recovery_message is not None: + oprot.writeFieldBegin('recovery_message', TType.STRUCT, 12) + self.recovery_message.write(oprot) + oprot.writeFieldEnd() + if self.stamina_capacity_message is not None: + oprot.writeFieldBegin('stamina_capacity_message', TType.STRUCT, 13) + self.stamina_capacity_message.write(oprot) + oprot.writeFieldEnd() + if self.dribble_message is not None: + oprot.writeFieldBegin('dribble_message', TType.STRUCT, 14) + self.dribble_message.write(oprot) + oprot.writeFieldEnd() + if self.ball_goalie_message is not None: + oprot.writeFieldBegin('ball_goalie_message', TType.STRUCT, 15) + self.ball_goalie_message.write(oprot) + oprot.writeFieldEnd() + if self.one_player_message is not None: + oprot.writeFieldBegin('one_player_message', TType.STRUCT, 16) + self.one_player_message.write(oprot) + oprot.writeFieldEnd() + if self.two_player_message is not None: + oprot.writeFieldBegin('two_player_message', TType.STRUCT, 17) + self.two_player_message.write(oprot) + oprot.writeFieldEnd() + if self.three_player_message is not None: + oprot.writeFieldBegin('three_player_message', TType.STRUCT, 18) + self.three_player_message.write(oprot) + oprot.writeFieldEnd() + if self.self_message is not None: + oprot.writeFieldBegin('self_message', TType.STRUCT, 19) + self.self_message.write(oprot) + oprot.writeFieldEnd() + if self.teammate_message is not None: + oprot.writeFieldBegin('teammate_message', TType.STRUCT, 20) + self.teammate_message.write(oprot) + oprot.writeFieldEnd() + if self.opponent_message is not None: + oprot.writeFieldBegin('opponent_message', TType.STRUCT, 21) + self.opponent_message.write(oprot) + oprot.writeFieldEnd() + if self.ball_player_message is not None: + oprot.writeFieldBegin('ball_player_message', TType.STRUCT, 22) + self.ball_player_message.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PointTo(object): + """ + Attributes: + - x + - y + + """ + + + def __init__(self, x=None, y=None,): + self.x = x + self.y = y + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.y = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PointTo') + if self.x is not None: + oprot.writeFieldBegin('x', TType.DOUBLE, 1) + oprot.writeDouble(self.x) + oprot.writeFieldEnd() + if self.y is not None: + oprot.writeFieldBegin('y', TType.DOUBLE, 2) + oprot.writeDouble(self.y) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PointToOf(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PointToOf') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AttentionTo(object): + """ + Attributes: + - side + - unum + + """ + + + def __init__(self, side=None, unum=None,): + self.side = side + self.unum = unum + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.side = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.unum = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AttentionTo') + if self.side is not None: + oprot.writeFieldBegin('side', TType.I32, 1) + oprot.writeI32(self.side) + oprot.writeFieldEnd() + if self.unum is not None: + oprot.writeFieldBegin('unum', TType.I32, 2) + oprot.writeI32(self.unum) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AttentionToOf(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AttentionToOf') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddText(object): + """ + Attributes: + - level + - message + + """ + + + def __init__(self, level=None, message=None,): + self.level = level + self.message = message + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + self.message = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddText') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.message is not None: + oprot.writeFieldBegin('message', TType.STRING, 2) + oprot.writeString(self.message.encode('utf-8') if sys.version_info[0] == 2 else self.message) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddPoint(object): + """ + Attributes: + - level + - point + - color + + """ + + + def __init__(self, level=None, point=None, color=None,): + self.level = level + self.point = point + self.color = color + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.point = RpcVector2D() + self.point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddPoint') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.point is not None: + oprot.writeFieldBegin('point', TType.STRUCT, 2) + self.point.write(oprot) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 3) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddLine(object): + """ + Attributes: + - level + - start_point + - end_point + - color + + """ + + + def __init__(self, level=None, start_point=None, end_point=None, color=None,): + self.level = level + self.start_point = start_point + self.end_point = end_point + self.color = color + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.start_point = RpcVector2D() + self.start_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.end_point = RpcVector2D() + self.end_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddLine') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.start_point is not None: + oprot.writeFieldBegin('start_point', TType.STRUCT, 2) + self.start_point.write(oprot) + oprot.writeFieldEnd() + if self.end_point is not None: + oprot.writeFieldBegin('end_point', TType.STRUCT, 3) + self.end_point.write(oprot) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 4) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddArc(object): + """ + Attributes: + - level + - center + - radius + - start_angle + - span_angel + - color + + """ + + + def __init__(self, level=None, center=None, radius=None, start_angle=None, span_angel=None, color=None,): + self.level = level + self.center = center + self.radius = radius + self.start_angle = start_angle + self.span_angel = span_angel + self.color = color + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.center = RpcVector2D() + self.center.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.radius = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.start_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.DOUBLE: + self.span_angel = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddArc') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.center is not None: + oprot.writeFieldBegin('center', TType.STRUCT, 2) + self.center.write(oprot) + oprot.writeFieldEnd() + if self.radius is not None: + oprot.writeFieldBegin('radius', TType.DOUBLE, 3) + oprot.writeDouble(self.radius) + oprot.writeFieldEnd() + if self.start_angle is not None: + oprot.writeFieldBegin('start_angle', TType.DOUBLE, 4) + oprot.writeDouble(self.start_angle) + oprot.writeFieldEnd() + if self.span_angel is not None: + oprot.writeFieldBegin('span_angel', TType.DOUBLE, 5) + oprot.writeDouble(self.span_angel) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 6) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddCircle(object): + """ + Attributes: + - level + - center + - radius + - color + - fill + + """ + + + def __init__(self, level=None, center=None, radius=None, color=None, fill=None,): + self.level = level + self.center = center + self.radius = radius + self.color = color + self.fill = fill + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.center = RpcVector2D() + self.center.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.radius = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.BOOL: + self.fill = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddCircle') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.center is not None: + oprot.writeFieldBegin('center', TType.STRUCT, 2) + self.center.write(oprot) + oprot.writeFieldEnd() + if self.radius is not None: + oprot.writeFieldBegin('radius', TType.DOUBLE, 3) + oprot.writeDouble(self.radius) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 4) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + if self.fill is not None: + oprot.writeFieldBegin('fill', TType.BOOL, 5) + oprot.writeBool(self.fill) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddTriangle(object): + """ + Attributes: + - level + - point1 + - point2 + - point3 + - color + - fill + + """ + + + def __init__(self, level=None, point1=None, point2=None, point3=None, color=None, fill=None,): + self.level = level + self.point1 = point1 + self.point2 = point2 + self.point3 = point3 + self.color = color + self.fill = fill + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.point1 = RpcVector2D() + self.point1.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.point2 = RpcVector2D() + self.point2.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.point3 = RpcVector2D() + self.point3.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.BOOL: + self.fill = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddTriangle') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.point1 is not None: + oprot.writeFieldBegin('point1', TType.STRUCT, 2) + self.point1.write(oprot) + oprot.writeFieldEnd() + if self.point2 is not None: + oprot.writeFieldBegin('point2', TType.STRUCT, 3) + self.point2.write(oprot) + oprot.writeFieldEnd() + if self.point3 is not None: + oprot.writeFieldBegin('point3', TType.STRUCT, 4) + self.point3.write(oprot) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 5) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + if self.fill is not None: + oprot.writeFieldBegin('fill', TType.BOOL, 6) + oprot.writeBool(self.fill) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddRectangle(object): + """ + Attributes: + - level + - left + - top + - length + - width + - color + - fill + + """ + + + def __init__(self, level=None, left=None, top=None, length=None, width=None, color=None, fill=None,): + self.level = level + self.left = left + self.top = top + self.length = length + self.width = width + self.color = color + self.fill = fill + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.left = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.top = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.DOUBLE: + self.width = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.BOOL: + self.fill = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddRectangle') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.left is not None: + oprot.writeFieldBegin('left', TType.DOUBLE, 2) + oprot.writeDouble(self.left) + oprot.writeFieldEnd() + if self.top is not None: + oprot.writeFieldBegin('top', TType.DOUBLE, 3) + oprot.writeDouble(self.top) + oprot.writeFieldEnd() + if self.length is not None: + oprot.writeFieldBegin('length', TType.DOUBLE, 4) + oprot.writeDouble(self.length) + oprot.writeFieldEnd() + if self.width is not None: + oprot.writeFieldBegin('width', TType.DOUBLE, 5) + oprot.writeDouble(self.width) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 6) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + if self.fill is not None: + oprot.writeFieldBegin('fill', TType.BOOL, 7) + oprot.writeBool(self.fill) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddSector(object): + """ + Attributes: + - level + - center + - min_radius + - max_radius + - start_angle + - span_angel + - color + - fill + + """ + + + def __init__(self, level=None, center=None, min_radius=None, max_radius=None, start_angle=None, span_angel=None, color=None, fill=None,): + self.level = level + self.center = center + self.min_radius = min_radius + self.max_radius = max_radius + self.start_angle = start_angle + self.span_angel = span_angel + self.color = color + self.fill = fill + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.center = RpcVector2D() + self.center.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.min_radius = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.max_radius = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.DOUBLE: + self.start_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.DOUBLE: + self.span_angel = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.BOOL: + self.fill = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddSector') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.center is not None: + oprot.writeFieldBegin('center', TType.STRUCT, 2) + self.center.write(oprot) + oprot.writeFieldEnd() + if self.min_radius is not None: + oprot.writeFieldBegin('min_radius', TType.DOUBLE, 3) + oprot.writeDouble(self.min_radius) + oprot.writeFieldEnd() + if self.max_radius is not None: + oprot.writeFieldBegin('max_radius', TType.DOUBLE, 4) + oprot.writeDouble(self.max_radius) + oprot.writeFieldEnd() + if self.start_angle is not None: + oprot.writeFieldBegin('start_angle', TType.DOUBLE, 5) + oprot.writeDouble(self.start_angle) + oprot.writeFieldEnd() + if self.span_angel is not None: + oprot.writeFieldBegin('span_angel', TType.DOUBLE, 6) + oprot.writeDouble(self.span_angel) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 7) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + if self.fill is not None: + oprot.writeFieldBegin('fill', TType.BOOL, 8) + oprot.writeBool(self.fill) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class AddMessage(object): + """ + Attributes: + - level + - position + - message + - color + + """ + + + def __init__(self, level=None, position=None, message=None, color=None,): + self.level = level + self.position = position + self.message = message + self.color = color + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.level = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRING: + self.message = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRING: + self.color = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('AddMessage') + if self.level is not None: + oprot.writeFieldBegin('level', TType.I32, 1) + oprot.writeI32(self.level) + oprot.writeFieldEnd() + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 2) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.message is not None: + oprot.writeFieldBegin('message', TType.STRING, 3) + oprot.writeString(self.message.encode('utf-8') if sys.version_info[0] == 2 else self.message) + oprot.writeFieldEnd() + if self.color is not None: + oprot.writeFieldBegin('color', TType.STRING, 4) + oprot.writeString(self.color.encode('utf-8') if sys.version_info[0] == 2 else self.color) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Log(object): + """ + Attributes: + - add_text + - add_point + - add_line + - add_arc + - add_circle + - add_triangle + - add_rectangle + - add_sector + - add_message + + """ + + + def __init__(self, add_text=None, add_point=None, add_line=None, add_arc=None, add_circle=None, add_triangle=None, add_rectangle=None, add_sector=None, add_message=None,): + self.add_text = add_text + self.add_point = add_point + self.add_line = add_line + self.add_arc = add_arc + self.add_circle = add_circle + self.add_triangle = add_triangle + self.add_rectangle = add_rectangle + self.add_sector = add_sector + self.add_message = add_message + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.add_text = AddText() + self.add_text.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.add_point = AddPoint() + self.add_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.add_line = AddLine() + self.add_line.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.add_arc = AddArc() + self.add_arc.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.add_circle = AddCircle() + self.add_circle.read(iprot) + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRUCT: + self.add_triangle = AddTriangle() + self.add_triangle.read(iprot) + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRUCT: + self.add_rectangle = AddRectangle() + self.add_rectangle.read(iprot) + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.STRUCT: + self.add_sector = AddSector() + self.add_sector.read(iprot) + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.STRUCT: + self.add_message = AddMessage() + self.add_message.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Log') + if self.add_text is not None: + oprot.writeFieldBegin('add_text', TType.STRUCT, 1) + self.add_text.write(oprot) + oprot.writeFieldEnd() + if self.add_point is not None: + oprot.writeFieldBegin('add_point', TType.STRUCT, 2) + self.add_point.write(oprot) + oprot.writeFieldEnd() + if self.add_line is not None: + oprot.writeFieldBegin('add_line', TType.STRUCT, 3) + self.add_line.write(oprot) + oprot.writeFieldEnd() + if self.add_arc is not None: + oprot.writeFieldBegin('add_arc', TType.STRUCT, 4) + self.add_arc.write(oprot) + oprot.writeFieldEnd() + if self.add_circle is not None: + oprot.writeFieldBegin('add_circle', TType.STRUCT, 5) + self.add_circle.write(oprot) + oprot.writeFieldEnd() + if self.add_triangle is not None: + oprot.writeFieldBegin('add_triangle', TType.STRUCT, 6) + self.add_triangle.write(oprot) + oprot.writeFieldEnd() + if self.add_rectangle is not None: + oprot.writeFieldBegin('add_rectangle', TType.STRUCT, 7) + self.add_rectangle.write(oprot) + oprot.writeFieldEnd() + if self.add_sector is not None: + oprot.writeFieldBegin('add_sector', TType.STRUCT, 8) + self.add_sector.write(oprot) + oprot.writeFieldEnd() + if self.add_message is not None: + oprot.writeFieldBegin('add_message', TType.STRUCT, 9) + self.add_message.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DebugClient(object): + """ + Attributes: + - message + + """ + + + def __init__(self, message=None,): + self.message = message + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRING: + self.message = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DebugClient') + if self.message is not None: + oprot.writeFieldBegin('message', TType.STRING, 1) + oprot.writeString(self.message.encode('utf-8') if sys.version_info[0] == 2 else self.message) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_GoToPoint(object): + """ + Attributes: + - target_point + - distance_threshold + - max_dash_power + + """ + + + def __init__(self, target_point=None, distance_threshold=None, max_dash_power=None,): + self.target_point = target_point + self.distance_threshold = distance_threshold + self.max_dash_power = max_dash_power + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.distance_threshold = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.max_dash_power = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_GoToPoint') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.distance_threshold is not None: + oprot.writeFieldBegin('distance_threshold', TType.DOUBLE, 2) + oprot.writeDouble(self.distance_threshold) + oprot.writeFieldEnd() + if self.max_dash_power is not None: + oprot.writeFieldBegin('max_dash_power', TType.DOUBLE, 3) + oprot.writeDouble(self.max_dash_power) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_SmartKick(object): + """ + Attributes: + - target_point + - first_speed + - first_speed_threshold + - max_steps + + """ + + + def __init__(self, target_point=None, first_speed=None, first_speed_threshold=None, max_steps=None,): + self.target_point = target_point + self.first_speed = first_speed + self.first_speed_threshold = first_speed_threshold + self.max_steps = max_steps + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.first_speed = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.first_speed_threshold = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + self.max_steps = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_SmartKick') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.first_speed is not None: + oprot.writeFieldBegin('first_speed', TType.DOUBLE, 2) + oprot.writeDouble(self.first_speed) + oprot.writeFieldEnd() + if self.first_speed_threshold is not None: + oprot.writeFieldBegin('first_speed_threshold', TType.DOUBLE, 3) + oprot.writeDouble(self.first_speed_threshold) + oprot.writeFieldEnd() + if self.max_steps is not None: + oprot.writeFieldBegin('max_steps', TType.I32, 4) + oprot.writeI32(self.max_steps) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_BeforeKickOff(object): + """ + Attributes: + - point + + """ + + + def __init__(self, point=None,): + self.point = point + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.point = RpcVector2D() + self.point.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_BeforeKickOff') + if self.point is not None: + oprot.writeFieldBegin('point', TType.STRUCT, 1) + self.point.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_BodyNeckToBall(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_BodyNeckToBall') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_BodyNeckToPoint(object): + """ + Attributes: + - point + + """ + + + def __init__(self, point=None,): + self.point = point + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.point = RpcVector2D() + self.point.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_BodyNeckToPoint') + if self.point is not None: + oprot.writeFieldBegin('point', TType.STRUCT, 1) + self.point.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_Emergency(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_Emergency') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_GoToPointLookBall(object): + """ + Attributes: + - target_point + - distance_threshold + - max_dash_power + + """ + + + def __init__(self, target_point=None, distance_threshold=None, max_dash_power=None,): + self.target_point = target_point + self.distance_threshold = distance_threshold + self.max_dash_power = max_dash_power + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.distance_threshold = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.max_dash_power = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_GoToPointLookBall') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.distance_threshold is not None: + oprot.writeFieldBegin('distance_threshold', TType.DOUBLE, 2) + oprot.writeDouble(self.distance_threshold) + oprot.writeFieldEnd() + if self.max_dash_power is not None: + oprot.writeFieldBegin('max_dash_power', TType.DOUBLE, 3) + oprot.writeDouble(self.max_dash_power) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_NeckBodyToBall(object): + """ + Attributes: + - angle_buf + + """ + + + def __init__(self, angle_buf=None,): + self.angle_buf = angle_buf + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.angle_buf = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_NeckBodyToBall') + if self.angle_buf is not None: + oprot.writeFieldBegin('angle_buf', TType.DOUBLE, 1) + oprot.writeDouble(self.angle_buf) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_NeckBodyToPoint(object): + """ + Attributes: + - point + - angle_buf + + """ + + + def __init__(self, point=None, angle_buf=None,): + self.point = point + self.angle_buf = angle_buf + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.point = RpcVector2D() + self.point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.angle_buf = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_NeckBodyToPoint') + if self.point is not None: + oprot.writeFieldBegin('point', TType.STRUCT, 1) + self.point.write(oprot) + oprot.writeFieldEnd() + if self.angle_buf is not None: + oprot.writeFieldBegin('angle_buf', TType.DOUBLE, 2) + oprot.writeDouble(self.angle_buf) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Bhv_ScanField(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Bhv_ScanField') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_AdvanceBall(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_AdvanceBall') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_ClearBall(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_ClearBall') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_Dribble(object): + """ + Attributes: + - target_point + - distance_threshold + - dash_power + - dash_count + - dodge + + """ + + + def __init__(self, target_point=None, distance_threshold=None, dash_power=None, dash_count=None, dodge=None,): + self.target_point = target_point + self.distance_threshold = distance_threshold + self.dash_power = dash_power + self.dash_count = dash_count + self.dodge = dodge + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.distance_threshold = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.dash_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + self.dash_count = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.BOOL: + self.dodge = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_Dribble') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.distance_threshold is not None: + oprot.writeFieldBegin('distance_threshold', TType.DOUBLE, 2) + oprot.writeDouble(self.distance_threshold) + oprot.writeFieldEnd() + if self.dash_power is not None: + oprot.writeFieldBegin('dash_power', TType.DOUBLE, 3) + oprot.writeDouble(self.dash_power) + oprot.writeFieldEnd() + if self.dash_count is not None: + oprot.writeFieldBegin('dash_count', TType.I32, 4) + oprot.writeI32(self.dash_count) + oprot.writeFieldEnd() + if self.dodge is not None: + oprot.writeFieldBegin('dodge', TType.BOOL, 5) + oprot.writeBool(self.dodge) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_GoToPointDodge(object): + """ + Attributes: + - target_point + - dash_power + + """ + + + def __init__(self, target_point=None, dash_power=None,): + self.target_point = target_point + self.dash_power = dash_power + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.dash_power = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_GoToPointDodge') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.dash_power is not None: + oprot.writeFieldBegin('dash_power', TType.DOUBLE, 2) + oprot.writeDouble(self.dash_power) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_HoldBall(object): + """ + Attributes: + - do_turn + - turn_target_point + - kick_target_point + + """ + + + def __init__(self, do_turn=None, turn_target_point=None, kick_target_point=None,): + self.do_turn = do_turn + self.turn_target_point = turn_target_point + self.kick_target_point = kick_target_point + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.BOOL: + self.do_turn = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.turn_target_point = RpcVector2D() + self.turn_target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.kick_target_point = RpcVector2D() + self.kick_target_point.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_HoldBall') + if self.do_turn is not None: + oprot.writeFieldBegin('do_turn', TType.BOOL, 1) + oprot.writeBool(self.do_turn) + oprot.writeFieldEnd() + if self.turn_target_point is not None: + oprot.writeFieldBegin('turn_target_point', TType.STRUCT, 2) + self.turn_target_point.write(oprot) + oprot.writeFieldEnd() + if self.kick_target_point is not None: + oprot.writeFieldBegin('kick_target_point', TType.STRUCT, 3) + self.kick_target_point.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_Intercept(object): + """ + Attributes: + - save_recovery + - face_point + + """ + + + def __init__(self, save_recovery=None, face_point=None,): + self.save_recovery = save_recovery + self.face_point = face_point + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.BOOL: + self.save_recovery = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.face_point = RpcVector2D() + self.face_point.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_Intercept') + if self.save_recovery is not None: + oprot.writeFieldBegin('save_recovery', TType.BOOL, 1) + oprot.writeBool(self.save_recovery) + oprot.writeFieldEnd() + if self.face_point is not None: + oprot.writeFieldBegin('face_point', TType.STRUCT, 2) + self.face_point.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_KickOneStep(object): + """ + Attributes: + - target_point + - first_speed + - force_mode + + """ + + + def __init__(self, target_point=None, first_speed=None, force_mode=None,): + self.target_point = target_point + self.first_speed = first_speed + self.force_mode = force_mode + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.first_speed = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.BOOL: + self.force_mode = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_KickOneStep') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.first_speed is not None: + oprot.writeFieldBegin('first_speed', TType.DOUBLE, 2) + oprot.writeDouble(self.first_speed) + oprot.writeFieldEnd() + if self.force_mode is not None: + oprot.writeFieldBegin('force_mode', TType.BOOL, 3) + oprot.writeBool(self.force_mode) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_StopBall(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_StopBall') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_StopDash(object): + """ + Attributes: + - save_recovery + + """ + + + def __init__(self, save_recovery=None,): + self.save_recovery = save_recovery + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.BOOL: + self.save_recovery = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_StopDash') + if self.save_recovery is not None: + oprot.writeFieldBegin('save_recovery', TType.BOOL, 1) + oprot.writeBool(self.save_recovery) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_TackleToPoint(object): + """ + Attributes: + - target_point + - min_probability + - min_speed + + """ + + + def __init__(self, target_point=None, min_probability=None, min_speed=None,): + self.target_point = target_point + self.min_probability = min_probability + self.min_speed = min_speed + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.min_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.min_speed = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_TackleToPoint') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.min_probability is not None: + oprot.writeFieldBegin('min_probability', TType.DOUBLE, 2) + oprot.writeDouble(self.min_probability) + oprot.writeFieldEnd() + if self.min_speed is not None: + oprot.writeFieldBegin('min_speed', TType.DOUBLE, 3) + oprot.writeDouble(self.min_speed) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_TurnToAngle(object): + """ + Attributes: + - angle + + """ + + + def __init__(self, angle=None,): + self.angle = angle + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.angle = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_TurnToAngle') + if self.angle is not None: + oprot.writeFieldBegin('angle', TType.DOUBLE, 1) + oprot.writeDouble(self.angle) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_TurnToBall(object): + """ + Attributes: + - cycle + + """ + + + def __init__(self, cycle=None,): + self.cycle = cycle + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.cycle = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_TurnToBall') + if self.cycle is not None: + oprot.writeFieldBegin('cycle', TType.I32, 1) + oprot.writeI32(self.cycle) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Body_TurnToPoint(object): + """ + Attributes: + - target_point + - cycle + + """ + + + def __init__(self, target_point=None, cycle=None,): + self.target_point = target_point + self.cycle = cycle + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.cycle = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Body_TurnToPoint') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + if self.cycle is not None: + oprot.writeFieldBegin('cycle', TType.I32, 2) + oprot.writeI32(self.cycle) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Focus_MoveToPoint(object): + """ + Attributes: + - target_point + + """ + + + def __init__(self, target_point=None,): + self.target_point = target_point + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Focus_MoveToPoint') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Focus_Reset(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Focus_Reset') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_ScanField(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_ScanField') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_ScanPlayers(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_ScanPlayers') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToBallAndPlayer(object): + """ + Attributes: + - side + - uniform_number + - count_threshold + + """ + + + def __init__(self, side=None, uniform_number=None, count_threshold=None,): + self.side = side + self.uniform_number = uniform_number + self.count_threshold = count_threshold + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.side = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.count_threshold = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToBallAndPlayer') + if self.side is not None: + oprot.writeFieldBegin('side', TType.I32, 1) + oprot.writeI32(self.side) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 2) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.count_threshold is not None: + oprot.writeFieldBegin('count_threshold', TType.I32, 3) + oprot.writeI32(self.count_threshold) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToBallOrScan(object): + """ + Attributes: + - count_threshold + + """ + + + def __init__(self, count_threshold=None,): + self.count_threshold = count_threshold + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.count_threshold = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToBallOrScan') + if self.count_threshold is not None: + oprot.writeFieldBegin('count_threshold', TType.I32, 1) + oprot.writeI32(self.count_threshold) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToBall(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToBall') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToGoalieOrScan(object): + """ + Attributes: + - count_threshold + + """ + + + def __init__(self, count_threshold=None,): + self.count_threshold = count_threshold + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.count_threshold = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToGoalieOrScan') + if self.count_threshold is not None: + oprot.writeFieldBegin('count_threshold', TType.I32, 1) + oprot.writeI32(self.count_threshold) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToLowConfTeammate(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToLowConfTeammate') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToPlayerOrScan(object): + """ + Attributes: + - side + - uniform_number + - count_threshold + + """ + + + def __init__(self, side=None, uniform_number=None, count_threshold=None,): + self.side = side + self.uniform_number = uniform_number + self.count_threshold = count_threshold + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.side = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.count_threshold = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToPlayerOrScan') + if self.side is not None: + oprot.writeFieldBegin('side', TType.I32, 1) + oprot.writeI32(self.side) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 2) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.count_threshold is not None: + oprot.writeFieldBegin('count_threshold', TType.I32, 3) + oprot.writeI32(self.count_threshold) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToPoint(object): + """ + Attributes: + - target_point + + """ + + + def __init__(self, target_point=None,): + self.target_point = target_point + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.target_point = RpcVector2D() + self.target_point.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToPoint') + if self.target_point is not None: + oprot.writeFieldBegin('target_point', TType.STRUCT, 1) + self.target_point.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Neck_TurnToRelative(object): + """ + Attributes: + - angle + + """ + + + def __init__(self, angle=None,): + self.angle = angle + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.DOUBLE: + self.angle = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Neck_TurnToRelative') + if self.angle is not None: + oprot.writeFieldBegin('angle', TType.DOUBLE, 1) + oprot.writeDouble(self.angle) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class View_ChangeWidth(object): + """ + Attributes: + - view_width + + """ + + + def __init__(self, view_width=None,): + self.view_width = view_width + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.view_width = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('View_ChangeWidth') + if self.view_width is not None: + oprot.writeFieldBegin('view_width', TType.I32, 1) + oprot.writeI32(self.view_width) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class View_Normal(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('View_Normal') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class View_Synch(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('View_Synch') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class View_Wide(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('View_Wide') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosGoalie(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosGoalie') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosGoalieMove(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosGoalieMove') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosGoalieKick(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosGoalieKick') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosShoot(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosShoot') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosChainAction(object): + """ + Attributes: + - direct_pass + - lead_pass + - through_pass + - short_dribble + - long_dribble + - cross + - simple_pass + - simple_dribble + - simple_shoot + + """ + + + def __init__(self, direct_pass=None, lead_pass=None, through_pass=None, short_dribble=None, long_dribble=None, cross=None, simple_pass=None, simple_dribble=None, simple_shoot=None,): + self.direct_pass = direct_pass + self.lead_pass = lead_pass + self.through_pass = through_pass + self.short_dribble = short_dribble + self.long_dribble = long_dribble + self.cross = cross + self.simple_pass = simple_pass + self.simple_dribble = simple_dribble + self.simple_shoot = simple_shoot + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.BOOL: + self.direct_pass = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.BOOL: + self.lead_pass = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.BOOL: + self.through_pass = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.BOOL: + self.short_dribble = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.BOOL: + self.long_dribble = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.BOOL: + self.cross = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.BOOL: + self.simple_pass = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.BOOL: + self.simple_dribble = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.BOOL: + self.simple_shoot = iprot.readBool() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosChainAction') + if self.direct_pass is not None: + oprot.writeFieldBegin('direct_pass', TType.BOOL, 1) + oprot.writeBool(self.direct_pass) + oprot.writeFieldEnd() + if self.lead_pass is not None: + oprot.writeFieldBegin('lead_pass', TType.BOOL, 2) + oprot.writeBool(self.lead_pass) + oprot.writeFieldEnd() + if self.through_pass is not None: + oprot.writeFieldBegin('through_pass', TType.BOOL, 3) + oprot.writeBool(self.through_pass) + oprot.writeFieldEnd() + if self.short_dribble is not None: + oprot.writeFieldBegin('short_dribble', TType.BOOL, 4) + oprot.writeBool(self.short_dribble) + oprot.writeFieldEnd() + if self.long_dribble is not None: + oprot.writeFieldBegin('long_dribble', TType.BOOL, 5) + oprot.writeBool(self.long_dribble) + oprot.writeFieldEnd() + if self.cross is not None: + oprot.writeFieldBegin('cross', TType.BOOL, 6) + oprot.writeBool(self.cross) + oprot.writeFieldEnd() + if self.simple_pass is not None: + oprot.writeFieldBegin('simple_pass', TType.BOOL, 7) + oprot.writeBool(self.simple_pass) + oprot.writeFieldEnd() + if self.simple_dribble is not None: + oprot.writeFieldBegin('simple_dribble', TType.BOOL, 8) + oprot.writeBool(self.simple_dribble) + oprot.writeFieldEnd() + if self.simple_shoot is not None: + oprot.writeFieldBegin('simple_shoot', TType.BOOL, 9) + oprot.writeBool(self.simple_shoot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosBasicOffensive(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosBasicOffensive') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosBasicMove(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosBasicMove') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosSetPlay(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosSetPlay') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosPenalty(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosPenalty') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class HeliosCommunicaion(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('HeliosCommunicaion') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PlayerAction(object): + """ + Attributes: + - dash + - turn + - kick + - tackle + - catch_action + - 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 + + """ + + + def __init__(self, dash=None, turn=None, kick=None, tackle=None, catch_action=None, move=None, turn_neck=None, change_view=None, say=None, point_to=None, point_to_of=None, attention_to=None, attention_to_of=None, log=None, debug_client=None, body_go_to_point=None, body_smart_kick=None, bhv_before_kick_off=None, bhv_body_neck_to_ball=None, bhv_body_neck_to_point=None, bhv_emergency=None, bhv_go_to_point_look_ball=None, bhv_neck_body_to_ball=None, bhv_neck_body_to_point=None, bhv_scan_field=None, body_advance_ball=None, body_clear_ball=None, body_dribble=None, body_go_to_point_dodge=None, body_hold_ball=None, body_intercept=None, body_kick_one_step=None, body_stop_ball=None, body_stop_dash=None, body_tackle_to_point=None, body_turn_to_angle=None, body_turn_to_ball=None, body_turn_to_point=None, focus_move_to_point=None, focus_reset=None, neck_scan_field=None, neck_scan_players=None, neck_turn_to_ball_and_player=None, neck_turn_to_ball_or_scan=None, neck_turn_to_ball=None, neck_turn_to_goalie_or_scan=None, neck_turn_to_low_conf_teammate=None, neck_turn_to_player_or_scan=None, neck_turn_to_point=None, neck_turn_to_relative=None, view_change_width=None, view_normal=None, view_synch=None, view_wide=None, helios_goalie=None, helios_goalie_move=None, helios_goalie_kick=None, helios_shoot=None, helios_chain_action=None, helios_basic_offensive=None, helios_basic_move=None, helios_set_play=None, helios_penalty=None, helios_communication=None,): + self.dash = dash + self.turn = turn + self.kick = kick + self.tackle = tackle + self.catch_action = catch_action + self.move = move + self.turn_neck = turn_neck + self.change_view = change_view + self.say = say + self.point_to = point_to + self.point_to_of = point_to_of + self.attention_to = attention_to + self.attention_to_of = attention_to_of + self.log = log + self.debug_client = debug_client + self.body_go_to_point = body_go_to_point + self.body_smart_kick = body_smart_kick + self.bhv_before_kick_off = bhv_before_kick_off + self.bhv_body_neck_to_ball = bhv_body_neck_to_ball + self.bhv_body_neck_to_point = bhv_body_neck_to_point + self.bhv_emergency = bhv_emergency + self.bhv_go_to_point_look_ball = bhv_go_to_point_look_ball + self.bhv_neck_body_to_ball = bhv_neck_body_to_ball + self.bhv_neck_body_to_point = bhv_neck_body_to_point + self.bhv_scan_field = bhv_scan_field + self.body_advance_ball = body_advance_ball + self.body_clear_ball = body_clear_ball + self.body_dribble = body_dribble + self.body_go_to_point_dodge = body_go_to_point_dodge + self.body_hold_ball = body_hold_ball + self.body_intercept = body_intercept + self.body_kick_one_step = body_kick_one_step + self.body_stop_ball = body_stop_ball + self.body_stop_dash = body_stop_dash + self.body_tackle_to_point = body_tackle_to_point + self.body_turn_to_angle = body_turn_to_angle + self.body_turn_to_ball = body_turn_to_ball + self.body_turn_to_point = body_turn_to_point + self.focus_move_to_point = focus_move_to_point + self.focus_reset = focus_reset + self.neck_scan_field = neck_scan_field + self.neck_scan_players = neck_scan_players + self.neck_turn_to_ball_and_player = neck_turn_to_ball_and_player + self.neck_turn_to_ball_or_scan = neck_turn_to_ball_or_scan + self.neck_turn_to_ball = neck_turn_to_ball + self.neck_turn_to_goalie_or_scan = neck_turn_to_goalie_or_scan + self.neck_turn_to_low_conf_teammate = neck_turn_to_low_conf_teammate + self.neck_turn_to_player_or_scan = neck_turn_to_player_or_scan + self.neck_turn_to_point = neck_turn_to_point + self.neck_turn_to_relative = neck_turn_to_relative + self.view_change_width = view_change_width + self.view_normal = view_normal + self.view_synch = view_synch + self.view_wide = view_wide + self.helios_goalie = helios_goalie + self.helios_goalie_move = helios_goalie_move + self.helios_goalie_kick = helios_goalie_kick + self.helios_shoot = helios_shoot + self.helios_chain_action = helios_chain_action + self.helios_basic_offensive = helios_basic_offensive + self.helios_basic_move = helios_basic_move + self.helios_set_play = helios_set_play + self.helios_penalty = helios_penalty + self.helios_communication = helios_communication + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.dash = Dash() + self.dash.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.turn = Turn() + self.turn.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.kick = Kick() + self.kick.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.tackle = Tackle() + self.tackle.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.catch_action = Catch() + self.catch_action.read(iprot) + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRUCT: + self.move = Move() + self.move.read(iprot) + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.STRUCT: + self.turn_neck = TurnNeck() + self.turn_neck.read(iprot) + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.STRUCT: + self.change_view = ChangeView() + self.change_view.read(iprot) + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.STRUCT: + self.say = Say() + self.say.read(iprot) + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.STRUCT: + self.point_to = PointTo() + self.point_to.read(iprot) + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.STRUCT: + self.point_to_of = PointToOf() + self.point_to_of.read(iprot) + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.STRUCT: + self.attention_to = AttentionTo() + self.attention_to.read(iprot) + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.STRUCT: + self.attention_to_of = AttentionToOf() + self.attention_to_of.read(iprot) + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.STRUCT: + self.log = Log() + self.log.read(iprot) + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.STRUCT: + self.debug_client = DebugClient() + self.debug_client.read(iprot) + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.STRUCT: + self.body_go_to_point = Body_GoToPoint() + self.body_go_to_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.STRUCT: + self.body_smart_kick = Body_SmartKick() + self.body_smart_kick.read(iprot) + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.STRUCT: + self.bhv_before_kick_off = Bhv_BeforeKickOff() + self.bhv_before_kick_off.read(iprot) + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.STRUCT: + self.bhv_body_neck_to_ball = Bhv_BodyNeckToBall() + self.bhv_body_neck_to_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.STRUCT: + self.bhv_body_neck_to_point = Bhv_BodyNeckToPoint() + self.bhv_body_neck_to_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.STRUCT: + self.bhv_emergency = Bhv_Emergency() + self.bhv_emergency.read(iprot) + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.STRUCT: + self.bhv_go_to_point_look_ball = Bhv_GoToPointLookBall() + self.bhv_go_to_point_look_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 23: + if ftype == TType.STRUCT: + self.bhv_neck_body_to_ball = Bhv_NeckBodyToBall() + self.bhv_neck_body_to_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 24: + if ftype == TType.STRUCT: + self.bhv_neck_body_to_point = Bhv_NeckBodyToPoint() + self.bhv_neck_body_to_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 25: + if ftype == TType.STRUCT: + self.bhv_scan_field = Bhv_ScanField() + self.bhv_scan_field.read(iprot) + else: + iprot.skip(ftype) + elif fid == 26: + if ftype == TType.STRUCT: + self.body_advance_ball = Body_AdvanceBall() + self.body_advance_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 27: + if ftype == TType.STRUCT: + self.body_clear_ball = Body_ClearBall() + self.body_clear_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 28: + if ftype == TType.STRUCT: + self.body_dribble = Body_Dribble() + self.body_dribble.read(iprot) + else: + iprot.skip(ftype) + elif fid == 29: + if ftype == TType.STRUCT: + self.body_go_to_point_dodge = Body_GoToPointDodge() + self.body_go_to_point_dodge.read(iprot) + else: + iprot.skip(ftype) + elif fid == 30: + if ftype == TType.STRUCT: + self.body_hold_ball = Body_HoldBall() + self.body_hold_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 31: + if ftype == TType.STRUCT: + self.body_intercept = Body_Intercept() + self.body_intercept.read(iprot) + else: + iprot.skip(ftype) + elif fid == 32: + if ftype == TType.STRUCT: + self.body_kick_one_step = Body_KickOneStep() + self.body_kick_one_step.read(iprot) + else: + iprot.skip(ftype) + elif fid == 33: + if ftype == TType.STRUCT: + self.body_stop_ball = Body_StopBall() + self.body_stop_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 34: + if ftype == TType.STRUCT: + self.body_stop_dash = Body_StopDash() + self.body_stop_dash.read(iprot) + else: + iprot.skip(ftype) + elif fid == 35: + if ftype == TType.STRUCT: + self.body_tackle_to_point = Body_TackleToPoint() + self.body_tackle_to_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 36: + if ftype == TType.STRUCT: + self.body_turn_to_angle = Body_TurnToAngle() + self.body_turn_to_angle.read(iprot) + else: + iprot.skip(ftype) + elif fid == 37: + if ftype == TType.STRUCT: + self.body_turn_to_ball = Body_TurnToBall() + self.body_turn_to_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 38: + if ftype == TType.STRUCT: + self.body_turn_to_point = Body_TurnToPoint() + self.body_turn_to_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 39: + if ftype == TType.STRUCT: + self.focus_move_to_point = Focus_MoveToPoint() + self.focus_move_to_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 40: + if ftype == TType.STRUCT: + self.focus_reset = Focus_Reset() + self.focus_reset.read(iprot) + else: + iprot.skip(ftype) + elif fid == 41: + if ftype == TType.STRUCT: + self.neck_scan_field = Neck_ScanField() + self.neck_scan_field.read(iprot) + else: + iprot.skip(ftype) + elif fid == 42: + if ftype == TType.STRUCT: + self.neck_scan_players = Neck_ScanPlayers() + self.neck_scan_players.read(iprot) + else: + iprot.skip(ftype) + elif fid == 43: + if ftype == TType.STRUCT: + self.neck_turn_to_ball_and_player = Neck_TurnToBallAndPlayer() + self.neck_turn_to_ball_and_player.read(iprot) + else: + iprot.skip(ftype) + elif fid == 44: + if ftype == TType.STRUCT: + self.neck_turn_to_ball_or_scan = Neck_TurnToBallOrScan() + self.neck_turn_to_ball_or_scan.read(iprot) + else: + iprot.skip(ftype) + elif fid == 45: + if ftype == TType.STRUCT: + self.neck_turn_to_ball = Neck_TurnToBall() + self.neck_turn_to_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 46: + if ftype == TType.STRUCT: + self.neck_turn_to_goalie_or_scan = Neck_TurnToGoalieOrScan() + self.neck_turn_to_goalie_or_scan.read(iprot) + else: + iprot.skip(ftype) + elif fid == 47: + if ftype == TType.STRUCT: + self.neck_turn_to_low_conf_teammate = Neck_TurnToLowConfTeammate() + self.neck_turn_to_low_conf_teammate.read(iprot) + else: + iprot.skip(ftype) + elif fid == 48: + if ftype == TType.STRUCT: + self.neck_turn_to_player_or_scan = Neck_TurnToPlayerOrScan() + self.neck_turn_to_player_or_scan.read(iprot) + else: + iprot.skip(ftype) + elif fid == 49: + if ftype == TType.STRUCT: + self.neck_turn_to_point = Neck_TurnToPoint() + self.neck_turn_to_point.read(iprot) + else: + iprot.skip(ftype) + elif fid == 50: + if ftype == TType.STRUCT: + self.neck_turn_to_relative = Neck_TurnToRelative() + self.neck_turn_to_relative.read(iprot) + else: + iprot.skip(ftype) + elif fid == 51: + if ftype == TType.STRUCT: + self.view_change_width = View_ChangeWidth() + self.view_change_width.read(iprot) + else: + iprot.skip(ftype) + elif fid == 52: + if ftype == TType.STRUCT: + self.view_normal = View_Normal() + self.view_normal.read(iprot) + else: + iprot.skip(ftype) + elif fid == 53: + if ftype == TType.STRUCT: + self.view_synch = View_Synch() + self.view_synch.read(iprot) + else: + iprot.skip(ftype) + elif fid == 54: + if ftype == TType.STRUCT: + self.view_wide = View_Wide() + self.view_wide.read(iprot) + else: + iprot.skip(ftype) + elif fid == 55: + if ftype == TType.STRUCT: + self.helios_goalie = HeliosGoalie() + self.helios_goalie.read(iprot) + else: + iprot.skip(ftype) + elif fid == 56: + if ftype == TType.STRUCT: + self.helios_goalie_move = HeliosGoalieMove() + self.helios_goalie_move.read(iprot) + else: + iprot.skip(ftype) + elif fid == 57: + if ftype == TType.STRUCT: + self.helios_goalie_kick = HeliosGoalieKick() + self.helios_goalie_kick.read(iprot) + else: + iprot.skip(ftype) + elif fid == 58: + if ftype == TType.STRUCT: + self.helios_shoot = HeliosShoot() + self.helios_shoot.read(iprot) + else: + iprot.skip(ftype) + elif fid == 59: + if ftype == TType.STRUCT: + self.helios_chain_action = HeliosChainAction() + self.helios_chain_action.read(iprot) + else: + iprot.skip(ftype) + elif fid == 60: + if ftype == TType.STRUCT: + self.helios_basic_offensive = HeliosBasicOffensive() + self.helios_basic_offensive.read(iprot) + else: + iprot.skip(ftype) + elif fid == 61: + if ftype == TType.STRUCT: + self.helios_basic_move = HeliosBasicMove() + self.helios_basic_move.read(iprot) + else: + iprot.skip(ftype) + elif fid == 62: + if ftype == TType.STRUCT: + self.helios_set_play = HeliosSetPlay() + self.helios_set_play.read(iprot) + else: + iprot.skip(ftype) + elif fid == 63: + if ftype == TType.STRUCT: + self.helios_penalty = HeliosPenalty() + self.helios_penalty.read(iprot) + else: + iprot.skip(ftype) + elif fid == 64: + if ftype == TType.STRUCT: + self.helios_communication = HeliosCommunicaion() + self.helios_communication.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PlayerAction') + if self.dash is not None: + oprot.writeFieldBegin('dash', TType.STRUCT, 1) + self.dash.write(oprot) + oprot.writeFieldEnd() + if self.turn is not None: + oprot.writeFieldBegin('turn', TType.STRUCT, 2) + self.turn.write(oprot) + oprot.writeFieldEnd() + if self.kick is not None: + oprot.writeFieldBegin('kick', TType.STRUCT, 3) + self.kick.write(oprot) + oprot.writeFieldEnd() + if self.tackle is not None: + oprot.writeFieldBegin('tackle', TType.STRUCT, 4) + self.tackle.write(oprot) + oprot.writeFieldEnd() + if self.catch_action is not None: + oprot.writeFieldBegin('catch_action', TType.STRUCT, 5) + self.catch_action.write(oprot) + oprot.writeFieldEnd() + if self.move is not None: + oprot.writeFieldBegin('move', TType.STRUCT, 6) + self.move.write(oprot) + oprot.writeFieldEnd() + if self.turn_neck is not None: + oprot.writeFieldBegin('turn_neck', TType.STRUCT, 7) + self.turn_neck.write(oprot) + oprot.writeFieldEnd() + if self.change_view is not None: + oprot.writeFieldBegin('change_view', TType.STRUCT, 8) + self.change_view.write(oprot) + oprot.writeFieldEnd() + if self.say is not None: + oprot.writeFieldBegin('say', TType.STRUCT, 9) + self.say.write(oprot) + oprot.writeFieldEnd() + if self.point_to is not None: + oprot.writeFieldBegin('point_to', TType.STRUCT, 10) + self.point_to.write(oprot) + oprot.writeFieldEnd() + if self.point_to_of is not None: + oprot.writeFieldBegin('point_to_of', TType.STRUCT, 11) + self.point_to_of.write(oprot) + oprot.writeFieldEnd() + if self.attention_to is not None: + oprot.writeFieldBegin('attention_to', TType.STRUCT, 12) + self.attention_to.write(oprot) + oprot.writeFieldEnd() + if self.attention_to_of is not None: + oprot.writeFieldBegin('attention_to_of', TType.STRUCT, 13) + self.attention_to_of.write(oprot) + oprot.writeFieldEnd() + if self.log is not None: + oprot.writeFieldBegin('log', TType.STRUCT, 14) + self.log.write(oprot) + oprot.writeFieldEnd() + if self.debug_client is not None: + oprot.writeFieldBegin('debug_client', TType.STRUCT, 15) + self.debug_client.write(oprot) + oprot.writeFieldEnd() + if self.body_go_to_point is not None: + oprot.writeFieldBegin('body_go_to_point', TType.STRUCT, 16) + self.body_go_to_point.write(oprot) + oprot.writeFieldEnd() + if self.body_smart_kick is not None: + oprot.writeFieldBegin('body_smart_kick', TType.STRUCT, 17) + self.body_smart_kick.write(oprot) + oprot.writeFieldEnd() + if self.bhv_before_kick_off is not None: + oprot.writeFieldBegin('bhv_before_kick_off', TType.STRUCT, 18) + self.bhv_before_kick_off.write(oprot) + oprot.writeFieldEnd() + if self.bhv_body_neck_to_ball is not None: + oprot.writeFieldBegin('bhv_body_neck_to_ball', TType.STRUCT, 19) + self.bhv_body_neck_to_ball.write(oprot) + oprot.writeFieldEnd() + if self.bhv_body_neck_to_point is not None: + oprot.writeFieldBegin('bhv_body_neck_to_point', TType.STRUCT, 20) + self.bhv_body_neck_to_point.write(oprot) + oprot.writeFieldEnd() + if self.bhv_emergency is not None: + oprot.writeFieldBegin('bhv_emergency', TType.STRUCT, 21) + self.bhv_emergency.write(oprot) + oprot.writeFieldEnd() + if self.bhv_go_to_point_look_ball is not None: + oprot.writeFieldBegin('bhv_go_to_point_look_ball', TType.STRUCT, 22) + self.bhv_go_to_point_look_ball.write(oprot) + oprot.writeFieldEnd() + if self.bhv_neck_body_to_ball is not None: + oprot.writeFieldBegin('bhv_neck_body_to_ball', TType.STRUCT, 23) + self.bhv_neck_body_to_ball.write(oprot) + oprot.writeFieldEnd() + if self.bhv_neck_body_to_point is not None: + oprot.writeFieldBegin('bhv_neck_body_to_point', TType.STRUCT, 24) + self.bhv_neck_body_to_point.write(oprot) + oprot.writeFieldEnd() + if self.bhv_scan_field is not None: + oprot.writeFieldBegin('bhv_scan_field', TType.STRUCT, 25) + self.bhv_scan_field.write(oprot) + oprot.writeFieldEnd() + if self.body_advance_ball is not None: + oprot.writeFieldBegin('body_advance_ball', TType.STRUCT, 26) + self.body_advance_ball.write(oprot) + oprot.writeFieldEnd() + if self.body_clear_ball is not None: + oprot.writeFieldBegin('body_clear_ball', TType.STRUCT, 27) + self.body_clear_ball.write(oprot) + oprot.writeFieldEnd() + if self.body_dribble is not None: + oprot.writeFieldBegin('body_dribble', TType.STRUCT, 28) + self.body_dribble.write(oprot) + oprot.writeFieldEnd() + if self.body_go_to_point_dodge is not None: + oprot.writeFieldBegin('body_go_to_point_dodge', TType.STRUCT, 29) + self.body_go_to_point_dodge.write(oprot) + oprot.writeFieldEnd() + if self.body_hold_ball is not None: + oprot.writeFieldBegin('body_hold_ball', TType.STRUCT, 30) + self.body_hold_ball.write(oprot) + oprot.writeFieldEnd() + if self.body_intercept is not None: + oprot.writeFieldBegin('body_intercept', TType.STRUCT, 31) + self.body_intercept.write(oprot) + oprot.writeFieldEnd() + if self.body_kick_one_step is not None: + oprot.writeFieldBegin('body_kick_one_step', TType.STRUCT, 32) + self.body_kick_one_step.write(oprot) + oprot.writeFieldEnd() + if self.body_stop_ball is not None: + oprot.writeFieldBegin('body_stop_ball', TType.STRUCT, 33) + self.body_stop_ball.write(oprot) + oprot.writeFieldEnd() + if self.body_stop_dash is not None: + oprot.writeFieldBegin('body_stop_dash', TType.STRUCT, 34) + self.body_stop_dash.write(oprot) + oprot.writeFieldEnd() + if self.body_tackle_to_point is not None: + oprot.writeFieldBegin('body_tackle_to_point', TType.STRUCT, 35) + self.body_tackle_to_point.write(oprot) + oprot.writeFieldEnd() + if self.body_turn_to_angle is not None: + oprot.writeFieldBegin('body_turn_to_angle', TType.STRUCT, 36) + self.body_turn_to_angle.write(oprot) + oprot.writeFieldEnd() + if self.body_turn_to_ball is not None: + oprot.writeFieldBegin('body_turn_to_ball', TType.STRUCT, 37) + self.body_turn_to_ball.write(oprot) + oprot.writeFieldEnd() + if self.body_turn_to_point is not None: + oprot.writeFieldBegin('body_turn_to_point', TType.STRUCT, 38) + self.body_turn_to_point.write(oprot) + oprot.writeFieldEnd() + if self.focus_move_to_point is not None: + oprot.writeFieldBegin('focus_move_to_point', TType.STRUCT, 39) + self.focus_move_to_point.write(oprot) + oprot.writeFieldEnd() + if self.focus_reset is not None: + oprot.writeFieldBegin('focus_reset', TType.STRUCT, 40) + self.focus_reset.write(oprot) + oprot.writeFieldEnd() + if self.neck_scan_field is not None: + oprot.writeFieldBegin('neck_scan_field', TType.STRUCT, 41) + self.neck_scan_field.write(oprot) + oprot.writeFieldEnd() + if self.neck_scan_players is not None: + oprot.writeFieldBegin('neck_scan_players', TType.STRUCT, 42) + self.neck_scan_players.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_ball_and_player is not None: + oprot.writeFieldBegin('neck_turn_to_ball_and_player', TType.STRUCT, 43) + self.neck_turn_to_ball_and_player.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_ball_or_scan is not None: + oprot.writeFieldBegin('neck_turn_to_ball_or_scan', TType.STRUCT, 44) + self.neck_turn_to_ball_or_scan.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_ball is not None: + oprot.writeFieldBegin('neck_turn_to_ball', TType.STRUCT, 45) + self.neck_turn_to_ball.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_goalie_or_scan is not None: + oprot.writeFieldBegin('neck_turn_to_goalie_or_scan', TType.STRUCT, 46) + self.neck_turn_to_goalie_or_scan.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_low_conf_teammate is not None: + oprot.writeFieldBegin('neck_turn_to_low_conf_teammate', TType.STRUCT, 47) + self.neck_turn_to_low_conf_teammate.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_player_or_scan is not None: + oprot.writeFieldBegin('neck_turn_to_player_or_scan', TType.STRUCT, 48) + self.neck_turn_to_player_or_scan.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_point is not None: + oprot.writeFieldBegin('neck_turn_to_point', TType.STRUCT, 49) + self.neck_turn_to_point.write(oprot) + oprot.writeFieldEnd() + if self.neck_turn_to_relative is not None: + oprot.writeFieldBegin('neck_turn_to_relative', TType.STRUCT, 50) + self.neck_turn_to_relative.write(oprot) + oprot.writeFieldEnd() + if self.view_change_width is not None: + oprot.writeFieldBegin('view_change_width', TType.STRUCT, 51) + self.view_change_width.write(oprot) + oprot.writeFieldEnd() + if self.view_normal is not None: + oprot.writeFieldBegin('view_normal', TType.STRUCT, 52) + self.view_normal.write(oprot) + oprot.writeFieldEnd() + if self.view_synch is not None: + oprot.writeFieldBegin('view_synch', TType.STRUCT, 53) + self.view_synch.write(oprot) + oprot.writeFieldEnd() + if self.view_wide is not None: + oprot.writeFieldBegin('view_wide', TType.STRUCT, 54) + self.view_wide.write(oprot) + oprot.writeFieldEnd() + if self.helios_goalie is not None: + oprot.writeFieldBegin('helios_goalie', TType.STRUCT, 55) + self.helios_goalie.write(oprot) + oprot.writeFieldEnd() + if self.helios_goalie_move is not None: + oprot.writeFieldBegin('helios_goalie_move', TType.STRUCT, 56) + self.helios_goalie_move.write(oprot) + oprot.writeFieldEnd() + if self.helios_goalie_kick is not None: + oprot.writeFieldBegin('helios_goalie_kick', TType.STRUCT, 57) + self.helios_goalie_kick.write(oprot) + oprot.writeFieldEnd() + if self.helios_shoot is not None: + oprot.writeFieldBegin('helios_shoot', TType.STRUCT, 58) + self.helios_shoot.write(oprot) + oprot.writeFieldEnd() + if self.helios_chain_action is not None: + oprot.writeFieldBegin('helios_chain_action', TType.STRUCT, 59) + self.helios_chain_action.write(oprot) + oprot.writeFieldEnd() + if self.helios_basic_offensive is not None: + oprot.writeFieldBegin('helios_basic_offensive', TType.STRUCT, 60) + self.helios_basic_offensive.write(oprot) + oprot.writeFieldEnd() + if self.helios_basic_move is not None: + oprot.writeFieldBegin('helios_basic_move', TType.STRUCT, 61) + self.helios_basic_move.write(oprot) + oprot.writeFieldEnd() + if self.helios_set_play is not None: + oprot.writeFieldBegin('helios_set_play', TType.STRUCT, 62) + self.helios_set_play.write(oprot) + oprot.writeFieldEnd() + if self.helios_penalty is not None: + oprot.writeFieldBegin('helios_penalty', TType.STRUCT, 63) + self.helios_penalty.write(oprot) + oprot.writeFieldEnd() + if self.helios_communication is not None: + oprot.writeFieldBegin('helios_communication', TType.STRUCT, 64) + self.helios_communication.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PlayerActions(object): + """ + Attributes: + - actions + + """ + + + def __init__(self, actions=None,): + self.actions = actions + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.LIST: + self.actions = [] + (_etype58, _size55) = iprot.readListBegin() + for _i59 in range(_size55): + _elem60 = PlayerAction() + _elem60.read(iprot) + self.actions.append(_elem60) + iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PlayerActions') + if self.actions is not None: + oprot.writeFieldBegin('actions', TType.LIST, 1) + oprot.writeListBegin(TType.STRUCT, len(self.actions)) + for iter61 in self.actions: + iter61.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class ChangePlayerType(object): + """ + Attributes: + - uniform_number + - type + + """ + + + def __init__(self, uniform_number=None, type=None,): + self.uniform_number = uniform_number + self.type = type + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.type = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('ChangePlayerType') + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 1) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.type is not None: + oprot.writeFieldBegin('type', TType.I32, 2) + oprot.writeI32(self.type) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoHeliosSubstitute(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoHeliosSubstitute') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoHeliosSayPlayerTypes(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoHeliosSayPlayerTypes') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class CoachAction(object): + """ + Attributes: + - change_player_types + - do_helios_substitute + - do_helios_say_player_types + + """ + + + def __init__(self, change_player_types=None, do_helios_substitute=None, do_helios_say_player_types=None,): + self.change_player_types = change_player_types + self.do_helios_substitute = do_helios_substitute + self.do_helios_say_player_types = do_helios_say_player_types + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.change_player_types = ChangePlayerType() + self.change_player_types.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.do_helios_substitute = DoHeliosSubstitute() + self.do_helios_substitute.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.do_helios_say_player_types = DoHeliosSayPlayerTypes() + self.do_helios_say_player_types.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('CoachAction') + if self.change_player_types is not None: + oprot.writeFieldBegin('change_player_types', TType.STRUCT, 1) + self.change_player_types.write(oprot) + oprot.writeFieldEnd() + if self.do_helios_substitute is not None: + oprot.writeFieldBegin('do_helios_substitute', TType.STRUCT, 2) + self.do_helios_substitute.write(oprot) + oprot.writeFieldEnd() + if self.do_helios_say_player_types is not None: + oprot.writeFieldBegin('do_helios_say_player_types', TType.STRUCT, 3) + self.do_helios_say_player_types.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class CoachActions(object): + """ + Attributes: + - actions + + """ + + + def __init__(self, actions=None,): + self.actions = actions + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.LIST: + self.actions = [] + (_etype65, _size62) = iprot.readListBegin() + for _i66 in range(_size62): + _elem67 = CoachAction() + _elem67.read(iprot) + self.actions.append(_elem67) + iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('CoachActions') + if self.actions is not None: + oprot.writeFieldBegin('actions', TType.LIST, 1) + oprot.writeListBegin(TType.STRUCT, len(self.actions)) + for iter68 in self.actions: + iter68.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoKickOff(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoKickOff') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoMoveBall(object): + """ + Attributes: + - position + - velocity + + """ + + + def __init__(self, position=None, velocity=None,): + self.position = position + self.velocity = velocity + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.velocity = RpcVector2D() + self.velocity.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoMoveBall') + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 1) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.velocity is not None: + oprot.writeFieldBegin('velocity', TType.STRUCT, 2) + self.velocity.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoMovePlayer(object): + """ + Attributes: + - our_side + - uniform_number + - position + - body_direction + + """ + + + def __init__(self, our_side=None, uniform_number=None, position=None, body_direction=None,): + self.our_side = our_side + self.uniform_number = uniform_number + self.position = position + self.body_direction = body_direction + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.BOOL: + self.our_side = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.position = RpcVector2D() + self.position.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.body_direction = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoMovePlayer') + if self.our_side is not None: + oprot.writeFieldBegin('our_side', TType.BOOL, 1) + oprot.writeBool(self.our_side) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 2) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.position is not None: + oprot.writeFieldBegin('position', TType.STRUCT, 3) + self.position.write(oprot) + oprot.writeFieldEnd() + if self.body_direction is not None: + oprot.writeFieldBegin('body_direction', TType.DOUBLE, 4) + oprot.writeDouble(self.body_direction) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoRecover(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoRecover') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoChangeMode(object): + """ + Attributes: + - game_mode_type + - side + + """ + + + def __init__(self, game_mode_type=None, side=None,): + self.game_mode_type = game_mode_type + self.side = side + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.game_mode_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.side = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoChangeMode') + if self.game_mode_type is not None: + oprot.writeFieldBegin('game_mode_type', TType.I32, 1) + oprot.writeI32(self.game_mode_type) + oprot.writeFieldEnd() + if self.side is not None: + oprot.writeFieldBegin('side', TType.I32, 2) + oprot.writeI32(self.side) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class DoChangePlayerType(object): + """ + Attributes: + - our_side + - uniform_number + - type + + """ + + + def __init__(self, our_side=None, uniform_number=None, type=None,): + self.our_side = our_side + self.uniform_number = uniform_number + self.type = type + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.BOOL: + self.our_side = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.type = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('DoChangePlayerType') + if self.our_side is not None: + oprot.writeFieldBegin('our_side', TType.BOOL, 1) + oprot.writeBool(self.our_side) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 2) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + if self.type is not None: + oprot.writeFieldBegin('type', TType.I32, 3) + oprot.writeI32(self.type) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class TrainerAction(object): + """ + Attributes: + - do_kick_off + - do_move_ball + - do_move_player + - do_recover + - do_change_mode + - do_change_player_type + + """ + + + def __init__(self, do_kick_off=None, do_move_ball=None, do_move_player=None, do_recover=None, do_change_mode=None, do_change_player_type=None,): + self.do_kick_off = do_kick_off + self.do_move_ball = do_move_ball + self.do_move_player = do_move_player + self.do_recover = do_recover + self.do_change_mode = do_change_mode + self.do_change_player_type = do_change_player_type + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.STRUCT: + self.do_kick_off = DoKickOff() + self.do_kick_off.read(iprot) + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRUCT: + self.do_move_ball = DoMoveBall() + self.do_move_ball.read(iprot) + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.STRUCT: + self.do_move_player = DoMovePlayer() + self.do_move_player.read(iprot) + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.STRUCT: + self.do_recover = DoRecover() + self.do_recover.read(iprot) + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.STRUCT: + self.do_change_mode = DoChangeMode() + self.do_change_mode.read(iprot) + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.STRUCT: + self.do_change_player_type = DoChangePlayerType() + self.do_change_player_type.read(iprot) + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('TrainerAction') + if self.do_kick_off is not None: + oprot.writeFieldBegin('do_kick_off', TType.STRUCT, 1) + self.do_kick_off.write(oprot) + oprot.writeFieldEnd() + if self.do_move_ball is not None: + oprot.writeFieldBegin('do_move_ball', TType.STRUCT, 2) + self.do_move_ball.write(oprot) + oprot.writeFieldEnd() + if self.do_move_player is not None: + oprot.writeFieldBegin('do_move_player', TType.STRUCT, 3) + self.do_move_player.write(oprot) + oprot.writeFieldEnd() + if self.do_recover is not None: + oprot.writeFieldBegin('do_recover', TType.STRUCT, 4) + self.do_recover.write(oprot) + oprot.writeFieldEnd() + if self.do_change_mode is not None: + oprot.writeFieldBegin('do_change_mode', TType.STRUCT, 5) + self.do_change_mode.write(oprot) + oprot.writeFieldEnd() + if self.do_change_player_type is not None: + oprot.writeFieldBegin('do_change_player_type', TType.STRUCT, 6) + self.do_change_player_type.write(oprot) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class TrainerActions(object): + """ + Attributes: + - actions + + """ + + + def __init__(self, actions=None,): + self.actions = actions + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.LIST: + self.actions = [] + (_etype72, _size69) = iprot.readListBegin() + for _i73 in range(_size69): + _elem74 = TrainerAction() + _elem74.read(iprot) + self.actions.append(_elem74) + iprot.readListEnd() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('TrainerActions') + if self.actions is not None: + oprot.writeFieldBegin('actions', TType.LIST, 1) + oprot.writeListBegin(TType.STRUCT, len(self.actions)) + for iter75 in self.actions: + iter75.write(oprot) + oprot.writeListEnd() + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class ServerParam(object): + """ + Attributes: + - agent_type + - 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 + + """ + + + def __init__(self, agent_type=None, inertia_moment=None, player_size=None, player_decay=None, player_rand=None, player_weight=None, player_speed_max=None, player_accel_max=None, stamina_max=None, stamina_inc_max=None, recover_init=None, recover_dec_thr=None, recover_min=None, recover_dec=None, effort_init=None, effort_dec_thr=None, effort_min=None, effort_dec=None, effort_inc_thr=None, effort_inc=None, kick_rand=None, team_actuator_noise=None, player_rand_factor_l=None, player_rand_factor_r=None, kick_rand_factor_l=None, kick_rand_factor_r=None, ball_size=None, ball_decay=None, ball_rand=None, ball_weight=None, ball_speed_max=None, ball_accel_max=None, dash_power_rate=None, kick_power_rate=None, kickable_margin=None, control_radius=None, control_radius_width=None, max_power=None, min_power=None, max_moment=None, min_moment=None, max_neck_moment=None, min_neck_moment=None, max_neck_angle=None, min_neck_angle=None, visible_angle=None, visible_distance=None, wind_dir=None, wind_force=None, wind_angle=None, wind_rand=None, kickable_area=None, catch_area_l=None, catch_area_w=None, catch_probability=None, goalie_max_moves=None, corner_kick_margin=None, offside_active_area_size=None, wind_none=None, use_wind_random=None, coach_say_count_max=None, coach_say_msg_size=None, clang_win_size=None, clang_define_win=None, clang_meta_win=None, clang_advice_win=None, clang_info_win=None, clang_mess_delay=None, clang_mess_per_cycle=None, half_time=None, simulator_step=None, send_step=None, recv_step=None, sense_body_step=None, lcm_step=None, player_say_msg_size=None, player_hear_max=None, player_hear_inc=None, player_hear_decay=None, catch_ban_cycle=None, slow_down_factor=None, use_offside=None, kickoff_offside=None, offside_kick_margin=None, audio_cut_dist=None, dist_quantize_step=None, landmark_dist_quantize_step=None, dir_quantize_step=None, dist_quantize_step_l=None, dist_quantize_step_r=None, landmark_dist_quantize_step_l=None, landmark_dist_quantize_step_r=None, dir_quantize_step_l=None, dir_quantize_step_r=None, coach_mode=None, coach_with_referee_mode=None, use_old_coach_hear=None, slowness_on_top_for_left_team=None, slowness_on_top_for_right_team=None, start_goal_l=None, start_goal_r=None, fullstate_l=None, fullstate_r=None, drop_ball_time=None, synch_mode=None, synch_offset=None, synch_micro_sleep=None, point_to_ban=None, point_to_duration=None, player_port=None, trainer_port=None, online_coach_port=None, verbose_mode=None, coach_send_vi_step=None, replay_file=None, landmark_file=None, send_comms=None, text_logging=None, game_logging=None, game_log_version=None, text_log_dir=None, game_log_dir=None, text_log_fixed_name=None, game_log_fixed_name=None, use_text_log_fixed=None, use_game_log_fixed=None, use_text_log_dated=None, use_game_log_dated=None, log_date_format=None, log_times=None, record_message=None, text_log_compression=None, game_log_compression=None, use_profile=None, tackle_dist=None, tackle_back_dist=None, tackle_width=None, tackle_exponent=None, tackle_cycles=None, tackle_power_rate=None, freeform_wait_period=None, freeform_send_period=None, free_kick_faults=None, back_passes=None, proper_goal_kicks=None, stopped_ball_vel=None, max_goal_kicks=None, clang_del_win=None, clang_rule_win=None, auto_mode=None, kick_off_wait=None, connect_wait=None, game_over_wait=None, team_l_start=None, team_r_start=None, keepaway_mode=None, keepaway_length=None, keepaway_width=None, keepaway_logging=None, keepaway_log_dir=None, keepaway_log_fixed_name=None, keepaway_log_fixed=None, keepaway_log_dated=None, keepaway_start=None, nr_normal_halfs=None, nr_extra_halfs=None, penalty_shoot_outs=None, pen_before_setup_wait=None, pen_setup_wait=None, pen_ready_wait=None, pen_taken_wait=None, pen_nr_kicks=None, pen_max_extra_kicks=None, pen_dist_x=None, pen_random_winner=None, pen_allow_mult_kicks=None, pen_max_goalie_dist_x=None, pen_coach_moves_players=None, module_dir=None, ball_stuck_area=None, coach_msg_file=None, max_tackle_power=None, max_back_tackle_power=None, player_speed_max_min=None, extra_stamina=None, synch_see_offset=None, extra_half_time=None, stamina_capacity=None, max_dash_angle=None, min_dash_angle=None, dash_angle_step=None, side_dash_rate=None, back_dash_rate=None, max_dash_power=None, min_dash_power=None, tackle_rand_factor=None, foul_detect_probability=None, foul_exponent=None, foul_cycles=None, golden_goal=None, red_card_probability=None, illegal_defense_duration=None, illegal_defense_number=None, illegal_defense_dist_x=None, illegal_defense_width=None, fixed_teamname_l=None, fixed_teamname_r=None, max_catch_angle=None, min_catch_angle=None, random_seed=None, long_kick_power_factor=None, long_kick_delay=None, max_monitors=None, catchable_area=None, real_speed_max=None, pitch_half_length=None, pitch_half_width=None, our_penalty_area_line_x=None, their_penalty_area_line_x=None, penalty_area_half_width=None, penalty_area_length=None, goal_width=None,): + self.agent_type = agent_type + self.inertia_moment = inertia_moment + self.player_size = player_size + self.player_decay = player_decay + self.player_rand = player_rand + self.player_weight = player_weight + self.player_speed_max = player_speed_max + self.player_accel_max = player_accel_max + self.stamina_max = stamina_max + self.stamina_inc_max = stamina_inc_max + self.recover_init = recover_init + self.recover_dec_thr = recover_dec_thr + self.recover_min = recover_min + self.recover_dec = recover_dec + self.effort_init = effort_init + self.effort_dec_thr = effort_dec_thr + self.effort_min = effort_min + self.effort_dec = effort_dec + self.effort_inc_thr = effort_inc_thr + self.effort_inc = effort_inc + self.kick_rand = kick_rand + self.team_actuator_noise = team_actuator_noise + self.player_rand_factor_l = player_rand_factor_l + self.player_rand_factor_r = player_rand_factor_r + self.kick_rand_factor_l = kick_rand_factor_l + self.kick_rand_factor_r = kick_rand_factor_r + self.ball_size = ball_size + self.ball_decay = ball_decay + self.ball_rand = ball_rand + self.ball_weight = ball_weight + self.ball_speed_max = ball_speed_max + self.ball_accel_max = ball_accel_max + self.dash_power_rate = dash_power_rate + self.kick_power_rate = kick_power_rate + self.kickable_margin = kickable_margin + self.control_radius = control_radius + self.control_radius_width = control_radius_width + self.max_power = max_power + self.min_power = min_power + self.max_moment = max_moment + self.min_moment = min_moment + self.max_neck_moment = max_neck_moment + self.min_neck_moment = min_neck_moment + self.max_neck_angle = max_neck_angle + self.min_neck_angle = min_neck_angle + self.visible_angle = visible_angle + self.visible_distance = visible_distance + self.wind_dir = wind_dir + self.wind_force = wind_force + self.wind_angle = wind_angle + self.wind_rand = wind_rand + self.kickable_area = kickable_area + self.catch_area_l = catch_area_l + self.catch_area_w = catch_area_w + self.catch_probability = catch_probability + self.goalie_max_moves = goalie_max_moves + self.corner_kick_margin = corner_kick_margin + self.offside_active_area_size = offside_active_area_size + self.wind_none = wind_none + self.use_wind_random = use_wind_random + self.coach_say_count_max = coach_say_count_max + self.coach_say_msg_size = coach_say_msg_size + self.clang_win_size = clang_win_size + self.clang_define_win = clang_define_win + self.clang_meta_win = clang_meta_win + self.clang_advice_win = clang_advice_win + self.clang_info_win = clang_info_win + self.clang_mess_delay = clang_mess_delay + self.clang_mess_per_cycle = clang_mess_per_cycle + self.half_time = half_time + self.simulator_step = simulator_step + self.send_step = send_step + self.recv_step = recv_step + self.sense_body_step = sense_body_step + self.lcm_step = lcm_step + self.player_say_msg_size = player_say_msg_size + self.player_hear_max = player_hear_max + self.player_hear_inc = player_hear_inc + self.player_hear_decay = player_hear_decay + self.catch_ban_cycle = catch_ban_cycle + self.slow_down_factor = slow_down_factor + self.use_offside = use_offside + self.kickoff_offside = kickoff_offside + self.offside_kick_margin = offside_kick_margin + self.audio_cut_dist = audio_cut_dist + self.dist_quantize_step = dist_quantize_step + self.landmark_dist_quantize_step = landmark_dist_quantize_step + self.dir_quantize_step = dir_quantize_step + self.dist_quantize_step_l = dist_quantize_step_l + self.dist_quantize_step_r = dist_quantize_step_r + self.landmark_dist_quantize_step_l = landmark_dist_quantize_step_l + self.landmark_dist_quantize_step_r = landmark_dist_quantize_step_r + self.dir_quantize_step_l = dir_quantize_step_l + self.dir_quantize_step_r = dir_quantize_step_r + self.coach_mode = coach_mode + self.coach_with_referee_mode = coach_with_referee_mode + self.use_old_coach_hear = use_old_coach_hear + self.slowness_on_top_for_left_team = slowness_on_top_for_left_team + self.slowness_on_top_for_right_team = slowness_on_top_for_right_team + self.start_goal_l = start_goal_l + self.start_goal_r = start_goal_r + self.fullstate_l = fullstate_l + self.fullstate_r = fullstate_r + self.drop_ball_time = drop_ball_time + self.synch_mode = synch_mode + self.synch_offset = synch_offset + self.synch_micro_sleep = synch_micro_sleep + self.point_to_ban = point_to_ban + self.point_to_duration = point_to_duration + self.player_port = player_port + self.trainer_port = trainer_port + self.online_coach_port = online_coach_port + self.verbose_mode = verbose_mode + self.coach_send_vi_step = coach_send_vi_step + self.replay_file = replay_file + self.landmark_file = landmark_file + self.send_comms = send_comms + self.text_logging = text_logging + self.game_logging = game_logging + self.game_log_version = game_log_version + self.text_log_dir = text_log_dir + self.game_log_dir = game_log_dir + self.text_log_fixed_name = text_log_fixed_name + self.game_log_fixed_name = game_log_fixed_name + self.use_text_log_fixed = use_text_log_fixed + self.use_game_log_fixed = use_game_log_fixed + self.use_text_log_dated = use_text_log_dated + self.use_game_log_dated = use_game_log_dated + self.log_date_format = log_date_format + self.log_times = log_times + self.record_message = record_message + self.text_log_compression = text_log_compression + self.game_log_compression = game_log_compression + self.use_profile = use_profile + self.tackle_dist = tackle_dist + self.tackle_back_dist = tackle_back_dist + self.tackle_width = tackle_width + self.tackle_exponent = tackle_exponent + self.tackle_cycles = tackle_cycles + self.tackle_power_rate = tackle_power_rate + self.freeform_wait_period = freeform_wait_period + self.freeform_send_period = freeform_send_period + self.free_kick_faults = free_kick_faults + self.back_passes = back_passes + self.proper_goal_kicks = proper_goal_kicks + self.stopped_ball_vel = stopped_ball_vel + self.max_goal_kicks = max_goal_kicks + self.clang_del_win = clang_del_win + self.clang_rule_win = clang_rule_win + self.auto_mode = auto_mode + self.kick_off_wait = kick_off_wait + self.connect_wait = connect_wait + self.game_over_wait = game_over_wait + self.team_l_start = team_l_start + self.team_r_start = team_r_start + self.keepaway_mode = keepaway_mode + self.keepaway_length = keepaway_length + self.keepaway_width = keepaway_width + self.keepaway_logging = keepaway_logging + self.keepaway_log_dir = keepaway_log_dir + self.keepaway_log_fixed_name = keepaway_log_fixed_name + self.keepaway_log_fixed = keepaway_log_fixed + self.keepaway_log_dated = keepaway_log_dated + self.keepaway_start = keepaway_start + self.nr_normal_halfs = nr_normal_halfs + self.nr_extra_halfs = nr_extra_halfs + self.penalty_shoot_outs = penalty_shoot_outs + self.pen_before_setup_wait = pen_before_setup_wait + self.pen_setup_wait = pen_setup_wait + self.pen_ready_wait = pen_ready_wait + self.pen_taken_wait = pen_taken_wait + self.pen_nr_kicks = pen_nr_kicks + self.pen_max_extra_kicks = pen_max_extra_kicks + self.pen_dist_x = pen_dist_x + self.pen_random_winner = pen_random_winner + self.pen_allow_mult_kicks = pen_allow_mult_kicks + self.pen_max_goalie_dist_x = pen_max_goalie_dist_x + self.pen_coach_moves_players = pen_coach_moves_players + self.module_dir = module_dir + self.ball_stuck_area = ball_stuck_area + self.coach_msg_file = coach_msg_file + self.max_tackle_power = max_tackle_power + self.max_back_tackle_power = max_back_tackle_power + self.player_speed_max_min = player_speed_max_min + self.extra_stamina = extra_stamina + self.synch_see_offset = synch_see_offset + self.extra_half_time = extra_half_time + self.stamina_capacity = stamina_capacity + self.max_dash_angle = max_dash_angle + self.min_dash_angle = min_dash_angle + self.dash_angle_step = dash_angle_step + self.side_dash_rate = side_dash_rate + self.back_dash_rate = back_dash_rate + self.max_dash_power = max_dash_power + self.min_dash_power = min_dash_power + self.tackle_rand_factor = tackle_rand_factor + self.foul_detect_probability = foul_detect_probability + self.foul_exponent = foul_exponent + self.foul_cycles = foul_cycles + self.golden_goal = golden_goal + self.red_card_probability = red_card_probability + self.illegal_defense_duration = illegal_defense_duration + self.illegal_defense_number = illegal_defense_number + self.illegal_defense_dist_x = illegal_defense_dist_x + self.illegal_defense_width = illegal_defense_width + self.fixed_teamname_l = fixed_teamname_l + self.fixed_teamname_r = fixed_teamname_r + self.max_catch_angle = max_catch_angle + self.min_catch_angle = min_catch_angle + self.random_seed = random_seed + self.long_kick_power_factor = long_kick_power_factor + self.long_kick_delay = long_kick_delay + self.max_monitors = max_monitors + self.catchable_area = catchable_area + self.real_speed_max = real_speed_max + self.pitch_half_length = pitch_half_length + self.pitch_half_width = pitch_half_width + self.our_penalty_area_line_x = our_penalty_area_line_x + self.their_penalty_area_line_x = their_penalty_area_line_x + self.penalty_area_half_width = penalty_area_half_width + self.penalty_area_length = penalty_area_length + self.goal_width = goal_width + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.agent_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.DOUBLE: + self.inertia_moment = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.player_size = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.player_decay = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.DOUBLE: + self.player_rand = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.DOUBLE: + self.player_weight = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.DOUBLE: + self.player_speed_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.DOUBLE: + self.player_accel_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.DOUBLE: + self.stamina_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.DOUBLE: + self.stamina_inc_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.DOUBLE: + self.recover_init = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.DOUBLE: + self.recover_dec_thr = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.DOUBLE: + self.recover_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.DOUBLE: + self.recover_dec = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.DOUBLE: + self.effort_init = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.DOUBLE: + self.effort_dec_thr = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.DOUBLE: + self.effort_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.DOUBLE: + self.effort_dec = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.DOUBLE: + self.effort_inc_thr = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.DOUBLE: + self.effort_inc = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.DOUBLE: + self.kick_rand = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.BOOL: + self.team_actuator_noise = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 23: + if ftype == TType.DOUBLE: + self.player_rand_factor_l = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 24: + if ftype == TType.DOUBLE: + self.player_rand_factor_r = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 25: + if ftype == TType.DOUBLE: + self.kick_rand_factor_l = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 26: + if ftype == TType.DOUBLE: + self.kick_rand_factor_r = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 27: + if ftype == TType.DOUBLE: + self.ball_size = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 28: + if ftype == TType.DOUBLE: + self.ball_decay = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 29: + if ftype == TType.DOUBLE: + self.ball_rand = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 30: + if ftype == TType.DOUBLE: + self.ball_weight = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 31: + if ftype == TType.DOUBLE: + self.ball_speed_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 32: + if ftype == TType.DOUBLE: + self.ball_accel_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 33: + if ftype == TType.DOUBLE: + self.dash_power_rate = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 34: + if ftype == TType.DOUBLE: + self.kick_power_rate = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 35: + if ftype == TType.DOUBLE: + self.kickable_margin = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 36: + if ftype == TType.DOUBLE: + self.control_radius = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 37: + if ftype == TType.DOUBLE: + self.control_radius_width = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 38: + if ftype == TType.DOUBLE: + self.max_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 39: + if ftype == TType.DOUBLE: + self.min_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 40: + if ftype == TType.DOUBLE: + self.max_moment = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 41: + if ftype == TType.DOUBLE: + self.min_moment = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 42: + if ftype == TType.DOUBLE: + self.max_neck_moment = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 43: + if ftype == TType.DOUBLE: + self.min_neck_moment = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 44: + if ftype == TType.DOUBLE: + self.max_neck_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 45: + if ftype == TType.DOUBLE: + self.min_neck_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 46: + if ftype == TType.DOUBLE: + self.visible_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 47: + if ftype == TType.DOUBLE: + self.visible_distance = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 48: + if ftype == TType.DOUBLE: + self.wind_dir = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 49: + if ftype == TType.DOUBLE: + self.wind_force = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 50: + if ftype == TType.DOUBLE: + self.wind_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 51: + if ftype == TType.DOUBLE: + self.wind_rand = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 52: + if ftype == TType.DOUBLE: + self.kickable_area = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 53: + if ftype == TType.DOUBLE: + self.catch_area_l = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 54: + if ftype == TType.DOUBLE: + self.catch_area_w = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 55: + if ftype == TType.DOUBLE: + self.catch_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 56: + if ftype == TType.I32: + self.goalie_max_moves = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 57: + if ftype == TType.DOUBLE: + self.corner_kick_margin = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 58: + if ftype == TType.DOUBLE: + self.offside_active_area_size = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 59: + if ftype == TType.BOOL: + self.wind_none = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 60: + if ftype == TType.BOOL: + self.use_wind_random = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 61: + if ftype == TType.I32: + self.coach_say_count_max = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 62: + if ftype == TType.I32: + self.coach_say_msg_size = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 63: + if ftype == TType.I32: + self.clang_win_size = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 64: + if ftype == TType.I32: + self.clang_define_win = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 65: + if ftype == TType.I32: + self.clang_meta_win = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 66: + if ftype == TType.I32: + self.clang_advice_win = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 67: + if ftype == TType.I32: + self.clang_info_win = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 68: + if ftype == TType.I32: + self.clang_mess_delay = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 69: + if ftype == TType.I32: + self.clang_mess_per_cycle = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 70: + if ftype == TType.I32: + self.half_time = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 71: + if ftype == TType.I32: + self.simulator_step = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 72: + if ftype == TType.I32: + self.send_step = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 73: + if ftype == TType.I32: + self.recv_step = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 74: + if ftype == TType.I32: + self.sense_body_step = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 75: + if ftype == TType.I32: + self.lcm_step = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 76: + if ftype == TType.I32: + self.player_say_msg_size = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 77: + if ftype == TType.I32: + self.player_hear_max = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 78: + if ftype == TType.I32: + self.player_hear_inc = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 79: + if ftype == TType.I32: + self.player_hear_decay = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 80: + if ftype == TType.I32: + self.catch_ban_cycle = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 81: + if ftype == TType.I32: + self.slow_down_factor = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 82: + if ftype == TType.BOOL: + self.use_offside = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 83: + if ftype == TType.BOOL: + self.kickoff_offside = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 84: + if ftype == TType.DOUBLE: + self.offside_kick_margin = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 85: + if ftype == TType.DOUBLE: + self.audio_cut_dist = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 86: + if ftype == TType.DOUBLE: + self.dist_quantize_step = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 87: + if ftype == TType.DOUBLE: + self.landmark_dist_quantize_step = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 88: + if ftype == TType.DOUBLE: + self.dir_quantize_step = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 89: + if ftype == TType.DOUBLE: + self.dist_quantize_step_l = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 90: + if ftype == TType.DOUBLE: + self.dist_quantize_step_r = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 91: + if ftype == TType.DOUBLE: + self.landmark_dist_quantize_step_l = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 92: + if ftype == TType.DOUBLE: + self.landmark_dist_quantize_step_r = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 93: + if ftype == TType.DOUBLE: + self.dir_quantize_step_l = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 94: + if ftype == TType.DOUBLE: + self.dir_quantize_step_r = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 95: + if ftype == TType.BOOL: + self.coach_mode = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 96: + if ftype == TType.BOOL: + self.coach_with_referee_mode = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 97: + if ftype == TType.BOOL: + self.use_old_coach_hear = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 98: + if ftype == TType.DOUBLE: + self.slowness_on_top_for_left_team = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 99: + if ftype == TType.DOUBLE: + self.slowness_on_top_for_right_team = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 100: + if ftype == TType.I32: + self.start_goal_l = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 101: + if ftype == TType.I32: + self.start_goal_r = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 102: + if ftype == TType.BOOL: + self.fullstate_l = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 103: + if ftype == TType.BOOL: + self.fullstate_r = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 104: + if ftype == TType.I32: + self.drop_ball_time = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 105: + if ftype == TType.BOOL: + self.synch_mode = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 106: + if ftype == TType.I32: + self.synch_offset = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 107: + if ftype == TType.I32: + self.synch_micro_sleep = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 108: + if ftype == TType.I32: + self.point_to_ban = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 109: + if ftype == TType.I32: + self.point_to_duration = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 110: + if ftype == TType.I32: + self.player_port = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 111: + if ftype == TType.I32: + self.trainer_port = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 112: + if ftype == TType.I32: + self.online_coach_port = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 113: + if ftype == TType.BOOL: + self.verbose_mode = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 114: + if ftype == TType.I32: + self.coach_send_vi_step = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 115: + if ftype == TType.STRING: + self.replay_file = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 116: + if ftype == TType.STRING: + self.landmark_file = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 117: + if ftype == TType.BOOL: + self.send_comms = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 118: + if ftype == TType.BOOL: + self.text_logging = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 119: + if ftype == TType.BOOL: + self.game_logging = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 120: + if ftype == TType.I32: + self.game_log_version = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 121: + if ftype == TType.STRING: + self.text_log_dir = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 122: + if ftype == TType.STRING: + self.game_log_dir = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 123: + if ftype == TType.STRING: + self.text_log_fixed_name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 124: + if ftype == TType.STRING: + self.game_log_fixed_name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 125: + if ftype == TType.BOOL: + self.use_text_log_fixed = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 126: + if ftype == TType.BOOL: + self.use_game_log_fixed = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 127: + if ftype == TType.BOOL: + self.use_text_log_dated = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 128: + if ftype == TType.BOOL: + self.use_game_log_dated = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 129: + if ftype == TType.STRING: + self.log_date_format = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 130: + if ftype == TType.BOOL: + self.log_times = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 131: + if ftype == TType.BOOL: + self.record_message = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 132: + if ftype == TType.I32: + self.text_log_compression = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 133: + if ftype == TType.I32: + self.game_log_compression = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 134: + if ftype == TType.BOOL: + self.use_profile = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 135: + if ftype == TType.DOUBLE: + self.tackle_dist = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 136: + if ftype == TType.DOUBLE: + self.tackle_back_dist = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 137: + if ftype == TType.DOUBLE: + self.tackle_width = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 138: + if ftype == TType.DOUBLE: + self.tackle_exponent = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 139: + if ftype == TType.I32: + self.tackle_cycles = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 140: + if ftype == TType.DOUBLE: + self.tackle_power_rate = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 141: + if ftype == TType.I32: + self.freeform_wait_period = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 142: + if ftype == TType.I32: + self.freeform_send_period = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 143: + if ftype == TType.BOOL: + self.free_kick_faults = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 144: + if ftype == TType.BOOL: + self.back_passes = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 145: + if ftype == TType.BOOL: + self.proper_goal_kicks = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 146: + if ftype == TType.DOUBLE: + self.stopped_ball_vel = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 147: + if ftype == TType.I32: + self.max_goal_kicks = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 148: + if ftype == TType.I32: + self.clang_del_win = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 149: + if ftype == TType.I32: + self.clang_rule_win = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 150: + if ftype == TType.BOOL: + self.auto_mode = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 151: + if ftype == TType.I32: + self.kick_off_wait = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 152: + if ftype == TType.I32: + self.connect_wait = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 153: + if ftype == TType.I32: + self.game_over_wait = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 154: + if ftype == TType.STRING: + self.team_l_start = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 155: + if ftype == TType.STRING: + self.team_r_start = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 156: + if ftype == TType.BOOL: + self.keepaway_mode = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 157: + if ftype == TType.DOUBLE: + self.keepaway_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 158: + if ftype == TType.DOUBLE: + self.keepaway_width = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 159: + if ftype == TType.BOOL: + self.keepaway_logging = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 160: + if ftype == TType.STRING: + self.keepaway_log_dir = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 161: + if ftype == TType.STRING: + self.keepaway_log_fixed_name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 162: + if ftype == TType.BOOL: + self.keepaway_log_fixed = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 163: + if ftype == TType.BOOL: + self.keepaway_log_dated = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 164: + if ftype == TType.I32: + self.keepaway_start = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 165: + if ftype == TType.I32: + self.nr_normal_halfs = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 166: + if ftype == TType.I32: + self.nr_extra_halfs = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 167: + if ftype == TType.BOOL: + self.penalty_shoot_outs = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 168: + if ftype == TType.I32: + self.pen_before_setup_wait = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 169: + if ftype == TType.I32: + self.pen_setup_wait = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 170: + if ftype == TType.I32: + self.pen_ready_wait = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 171: + if ftype == TType.I32: + self.pen_taken_wait = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 172: + if ftype == TType.I32: + self.pen_nr_kicks = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 173: + if ftype == TType.I32: + self.pen_max_extra_kicks = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 174: + if ftype == TType.DOUBLE: + self.pen_dist_x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 175: + if ftype == TType.BOOL: + self.pen_random_winner = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 176: + if ftype == TType.BOOL: + self.pen_allow_mult_kicks = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 177: + if ftype == TType.DOUBLE: + self.pen_max_goalie_dist_x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 178: + if ftype == TType.BOOL: + self.pen_coach_moves_players = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 179: + if ftype == TType.STRING: + self.module_dir = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 180: + if ftype == TType.DOUBLE: + self.ball_stuck_area = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 181: + if ftype == TType.STRING: + self.coach_msg_file = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 182: + if ftype == TType.DOUBLE: + self.max_tackle_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 183: + if ftype == TType.DOUBLE: + self.max_back_tackle_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 184: + if ftype == TType.DOUBLE: + self.player_speed_max_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 185: + if ftype == TType.DOUBLE: + self.extra_stamina = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 186: + if ftype == TType.I32: + self.synch_see_offset = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 187: + if ftype == TType.I32: + self.extra_half_time = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 188: + if ftype == TType.DOUBLE: + self.stamina_capacity = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 189: + if ftype == TType.DOUBLE: + self.max_dash_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 190: + if ftype == TType.DOUBLE: + self.min_dash_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 191: + if ftype == TType.DOUBLE: + self.dash_angle_step = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 192: + if ftype == TType.DOUBLE: + self.side_dash_rate = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 193: + if ftype == TType.DOUBLE: + self.back_dash_rate = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 194: + if ftype == TType.DOUBLE: + self.max_dash_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 195: + if ftype == TType.DOUBLE: + self.min_dash_power = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 196: + if ftype == TType.DOUBLE: + self.tackle_rand_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 197: + if ftype == TType.DOUBLE: + self.foul_detect_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 198: + if ftype == TType.DOUBLE: + self.foul_exponent = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 199: + if ftype == TType.I32: + self.foul_cycles = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 200: + if ftype == TType.BOOL: + self.golden_goal = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 201: + if ftype == TType.DOUBLE: + self.red_card_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 202: + if ftype == TType.I32: + self.illegal_defense_duration = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 203: + if ftype == TType.I32: + self.illegal_defense_number = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 204: + if ftype == TType.DOUBLE: + self.illegal_defense_dist_x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 205: + if ftype == TType.DOUBLE: + self.illegal_defense_width = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 206: + if ftype == TType.STRING: + self.fixed_teamname_l = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 207: + if ftype == TType.STRING: + self.fixed_teamname_r = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 208: + if ftype == TType.DOUBLE: + self.max_catch_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 209: + if ftype == TType.DOUBLE: + self.min_catch_angle = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 210: + if ftype == TType.I32: + self.random_seed = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 211: + if ftype == TType.DOUBLE: + self.long_kick_power_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 212: + if ftype == TType.I32: + self.long_kick_delay = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 213: + if ftype == TType.I32: + self.max_monitors = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 214: + if ftype == TType.DOUBLE: + self.catchable_area = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 215: + if ftype == TType.DOUBLE: + self.real_speed_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 216: + if ftype == TType.DOUBLE: + self.pitch_half_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 217: + if ftype == TType.DOUBLE: + self.pitch_half_width = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 218: + if ftype == TType.DOUBLE: + self.our_penalty_area_line_x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 219: + if ftype == TType.DOUBLE: + self.their_penalty_area_line_x = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 220: + if ftype == TType.DOUBLE: + self.penalty_area_half_width = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 221: + if ftype == TType.DOUBLE: + self.penalty_area_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 222: + if ftype == TType.DOUBLE: + self.goal_width = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('ServerParam') + if self.agent_type is not None: + oprot.writeFieldBegin('agent_type', TType.I32, 1) + oprot.writeI32(self.agent_type) + oprot.writeFieldEnd() + if self.inertia_moment is not None: + oprot.writeFieldBegin('inertia_moment', TType.DOUBLE, 2) + oprot.writeDouble(self.inertia_moment) + oprot.writeFieldEnd() + if self.player_size is not None: + oprot.writeFieldBegin('player_size', TType.DOUBLE, 3) + oprot.writeDouble(self.player_size) + oprot.writeFieldEnd() + if self.player_decay is not None: + oprot.writeFieldBegin('player_decay', TType.DOUBLE, 4) + oprot.writeDouble(self.player_decay) + oprot.writeFieldEnd() + if self.player_rand is not None: + oprot.writeFieldBegin('player_rand', TType.DOUBLE, 5) + oprot.writeDouble(self.player_rand) + oprot.writeFieldEnd() + if self.player_weight is not None: + oprot.writeFieldBegin('player_weight', TType.DOUBLE, 6) + oprot.writeDouble(self.player_weight) + oprot.writeFieldEnd() + if self.player_speed_max is not None: + oprot.writeFieldBegin('player_speed_max', TType.DOUBLE, 7) + oprot.writeDouble(self.player_speed_max) + oprot.writeFieldEnd() + if self.player_accel_max is not None: + oprot.writeFieldBegin('player_accel_max', TType.DOUBLE, 8) + oprot.writeDouble(self.player_accel_max) + oprot.writeFieldEnd() + if self.stamina_max is not None: + oprot.writeFieldBegin('stamina_max', TType.DOUBLE, 9) + oprot.writeDouble(self.stamina_max) + oprot.writeFieldEnd() + if self.stamina_inc_max is not None: + oprot.writeFieldBegin('stamina_inc_max', TType.DOUBLE, 10) + oprot.writeDouble(self.stamina_inc_max) + oprot.writeFieldEnd() + if self.recover_init is not None: + oprot.writeFieldBegin('recover_init', TType.DOUBLE, 11) + oprot.writeDouble(self.recover_init) + oprot.writeFieldEnd() + if self.recover_dec_thr is not None: + oprot.writeFieldBegin('recover_dec_thr', TType.DOUBLE, 12) + oprot.writeDouble(self.recover_dec_thr) + oprot.writeFieldEnd() + if self.recover_min is not None: + oprot.writeFieldBegin('recover_min', TType.DOUBLE, 13) + oprot.writeDouble(self.recover_min) + oprot.writeFieldEnd() + if self.recover_dec is not None: + oprot.writeFieldBegin('recover_dec', TType.DOUBLE, 14) + oprot.writeDouble(self.recover_dec) + oprot.writeFieldEnd() + if self.effort_init is not None: + oprot.writeFieldBegin('effort_init', TType.DOUBLE, 15) + oprot.writeDouble(self.effort_init) + oprot.writeFieldEnd() + if self.effort_dec_thr is not None: + oprot.writeFieldBegin('effort_dec_thr', TType.DOUBLE, 16) + oprot.writeDouble(self.effort_dec_thr) + oprot.writeFieldEnd() + if self.effort_min is not None: + oprot.writeFieldBegin('effort_min', TType.DOUBLE, 17) + oprot.writeDouble(self.effort_min) + oprot.writeFieldEnd() + if self.effort_dec is not None: + oprot.writeFieldBegin('effort_dec', TType.DOUBLE, 18) + oprot.writeDouble(self.effort_dec) + oprot.writeFieldEnd() + if self.effort_inc_thr is not None: + oprot.writeFieldBegin('effort_inc_thr', TType.DOUBLE, 19) + oprot.writeDouble(self.effort_inc_thr) + oprot.writeFieldEnd() + if self.effort_inc is not None: + oprot.writeFieldBegin('effort_inc', TType.DOUBLE, 20) + oprot.writeDouble(self.effort_inc) + oprot.writeFieldEnd() + if self.kick_rand is not None: + oprot.writeFieldBegin('kick_rand', TType.DOUBLE, 21) + oprot.writeDouble(self.kick_rand) + oprot.writeFieldEnd() + if self.team_actuator_noise is not None: + oprot.writeFieldBegin('team_actuator_noise', TType.BOOL, 22) + oprot.writeBool(self.team_actuator_noise) + oprot.writeFieldEnd() + if self.player_rand_factor_l is not None: + oprot.writeFieldBegin('player_rand_factor_l', TType.DOUBLE, 23) + oprot.writeDouble(self.player_rand_factor_l) + oprot.writeFieldEnd() + if self.player_rand_factor_r is not None: + oprot.writeFieldBegin('player_rand_factor_r', TType.DOUBLE, 24) + oprot.writeDouble(self.player_rand_factor_r) + oprot.writeFieldEnd() + if self.kick_rand_factor_l is not None: + oprot.writeFieldBegin('kick_rand_factor_l', TType.DOUBLE, 25) + oprot.writeDouble(self.kick_rand_factor_l) + oprot.writeFieldEnd() + if self.kick_rand_factor_r is not None: + oprot.writeFieldBegin('kick_rand_factor_r', TType.DOUBLE, 26) + oprot.writeDouble(self.kick_rand_factor_r) + oprot.writeFieldEnd() + if self.ball_size is not None: + oprot.writeFieldBegin('ball_size', TType.DOUBLE, 27) + oprot.writeDouble(self.ball_size) + oprot.writeFieldEnd() + if self.ball_decay is not None: + oprot.writeFieldBegin('ball_decay', TType.DOUBLE, 28) + oprot.writeDouble(self.ball_decay) + oprot.writeFieldEnd() + if self.ball_rand is not None: + oprot.writeFieldBegin('ball_rand', TType.DOUBLE, 29) + oprot.writeDouble(self.ball_rand) + oprot.writeFieldEnd() + if self.ball_weight is not None: + oprot.writeFieldBegin('ball_weight', TType.DOUBLE, 30) + oprot.writeDouble(self.ball_weight) + oprot.writeFieldEnd() + if self.ball_speed_max is not None: + oprot.writeFieldBegin('ball_speed_max', TType.DOUBLE, 31) + oprot.writeDouble(self.ball_speed_max) + oprot.writeFieldEnd() + if self.ball_accel_max is not None: + oprot.writeFieldBegin('ball_accel_max', TType.DOUBLE, 32) + oprot.writeDouble(self.ball_accel_max) + oprot.writeFieldEnd() + if self.dash_power_rate is not None: + oprot.writeFieldBegin('dash_power_rate', TType.DOUBLE, 33) + oprot.writeDouble(self.dash_power_rate) + oprot.writeFieldEnd() + if self.kick_power_rate is not None: + oprot.writeFieldBegin('kick_power_rate', TType.DOUBLE, 34) + oprot.writeDouble(self.kick_power_rate) + oprot.writeFieldEnd() + if self.kickable_margin is not None: + oprot.writeFieldBegin('kickable_margin', TType.DOUBLE, 35) + oprot.writeDouble(self.kickable_margin) + oprot.writeFieldEnd() + if self.control_radius is not None: + oprot.writeFieldBegin('control_radius', TType.DOUBLE, 36) + oprot.writeDouble(self.control_radius) + oprot.writeFieldEnd() + if self.control_radius_width is not None: + oprot.writeFieldBegin('control_radius_width', TType.DOUBLE, 37) + oprot.writeDouble(self.control_radius_width) + oprot.writeFieldEnd() + if self.max_power is not None: + oprot.writeFieldBegin('max_power', TType.DOUBLE, 38) + oprot.writeDouble(self.max_power) + oprot.writeFieldEnd() + if self.min_power is not None: + oprot.writeFieldBegin('min_power', TType.DOUBLE, 39) + oprot.writeDouble(self.min_power) + oprot.writeFieldEnd() + if self.max_moment is not None: + oprot.writeFieldBegin('max_moment', TType.DOUBLE, 40) + oprot.writeDouble(self.max_moment) + oprot.writeFieldEnd() + if self.min_moment is not None: + oprot.writeFieldBegin('min_moment', TType.DOUBLE, 41) + oprot.writeDouble(self.min_moment) + oprot.writeFieldEnd() + if self.max_neck_moment is not None: + oprot.writeFieldBegin('max_neck_moment', TType.DOUBLE, 42) + oprot.writeDouble(self.max_neck_moment) + oprot.writeFieldEnd() + if self.min_neck_moment is not None: + oprot.writeFieldBegin('min_neck_moment', TType.DOUBLE, 43) + oprot.writeDouble(self.min_neck_moment) + oprot.writeFieldEnd() + if self.max_neck_angle is not None: + oprot.writeFieldBegin('max_neck_angle', TType.DOUBLE, 44) + oprot.writeDouble(self.max_neck_angle) + oprot.writeFieldEnd() + if self.min_neck_angle is not None: + oprot.writeFieldBegin('min_neck_angle', TType.DOUBLE, 45) + oprot.writeDouble(self.min_neck_angle) + oprot.writeFieldEnd() + if self.visible_angle is not None: + oprot.writeFieldBegin('visible_angle', TType.DOUBLE, 46) + oprot.writeDouble(self.visible_angle) + oprot.writeFieldEnd() + if self.visible_distance is not None: + oprot.writeFieldBegin('visible_distance', TType.DOUBLE, 47) + oprot.writeDouble(self.visible_distance) + oprot.writeFieldEnd() + if self.wind_dir is not None: + oprot.writeFieldBegin('wind_dir', TType.DOUBLE, 48) + oprot.writeDouble(self.wind_dir) + oprot.writeFieldEnd() + if self.wind_force is not None: + oprot.writeFieldBegin('wind_force', TType.DOUBLE, 49) + oprot.writeDouble(self.wind_force) + oprot.writeFieldEnd() + if self.wind_angle is not None: + oprot.writeFieldBegin('wind_angle', TType.DOUBLE, 50) + oprot.writeDouble(self.wind_angle) + oprot.writeFieldEnd() + if self.wind_rand is not None: + oprot.writeFieldBegin('wind_rand', TType.DOUBLE, 51) + oprot.writeDouble(self.wind_rand) + oprot.writeFieldEnd() + if self.kickable_area is not None: + oprot.writeFieldBegin('kickable_area', TType.DOUBLE, 52) + oprot.writeDouble(self.kickable_area) + oprot.writeFieldEnd() + if self.catch_area_l is not None: + oprot.writeFieldBegin('catch_area_l', TType.DOUBLE, 53) + oprot.writeDouble(self.catch_area_l) + oprot.writeFieldEnd() + if self.catch_area_w is not None: + oprot.writeFieldBegin('catch_area_w', TType.DOUBLE, 54) + oprot.writeDouble(self.catch_area_w) + oprot.writeFieldEnd() + if self.catch_probability is not None: + oprot.writeFieldBegin('catch_probability', TType.DOUBLE, 55) + oprot.writeDouble(self.catch_probability) + oprot.writeFieldEnd() + if self.goalie_max_moves is not None: + oprot.writeFieldBegin('goalie_max_moves', TType.I32, 56) + oprot.writeI32(self.goalie_max_moves) + oprot.writeFieldEnd() + if self.corner_kick_margin is not None: + oprot.writeFieldBegin('corner_kick_margin', TType.DOUBLE, 57) + oprot.writeDouble(self.corner_kick_margin) + oprot.writeFieldEnd() + if self.offside_active_area_size is not None: + oprot.writeFieldBegin('offside_active_area_size', TType.DOUBLE, 58) + oprot.writeDouble(self.offside_active_area_size) + oprot.writeFieldEnd() + if self.wind_none is not None: + oprot.writeFieldBegin('wind_none', TType.BOOL, 59) + oprot.writeBool(self.wind_none) + oprot.writeFieldEnd() + if self.use_wind_random is not None: + oprot.writeFieldBegin('use_wind_random', TType.BOOL, 60) + oprot.writeBool(self.use_wind_random) + oprot.writeFieldEnd() + if self.coach_say_count_max is not None: + oprot.writeFieldBegin('coach_say_count_max', TType.I32, 61) + oprot.writeI32(self.coach_say_count_max) + oprot.writeFieldEnd() + if self.coach_say_msg_size is not None: + oprot.writeFieldBegin('coach_say_msg_size', TType.I32, 62) + oprot.writeI32(self.coach_say_msg_size) + oprot.writeFieldEnd() + if self.clang_win_size is not None: + oprot.writeFieldBegin('clang_win_size', TType.I32, 63) + oprot.writeI32(self.clang_win_size) + oprot.writeFieldEnd() + if self.clang_define_win is not None: + oprot.writeFieldBegin('clang_define_win', TType.I32, 64) + oprot.writeI32(self.clang_define_win) + oprot.writeFieldEnd() + if self.clang_meta_win is not None: + oprot.writeFieldBegin('clang_meta_win', TType.I32, 65) + oprot.writeI32(self.clang_meta_win) + oprot.writeFieldEnd() + if self.clang_advice_win is not None: + oprot.writeFieldBegin('clang_advice_win', TType.I32, 66) + oprot.writeI32(self.clang_advice_win) + oprot.writeFieldEnd() + if self.clang_info_win is not None: + oprot.writeFieldBegin('clang_info_win', TType.I32, 67) + oprot.writeI32(self.clang_info_win) + oprot.writeFieldEnd() + if self.clang_mess_delay is not None: + oprot.writeFieldBegin('clang_mess_delay', TType.I32, 68) + oprot.writeI32(self.clang_mess_delay) + oprot.writeFieldEnd() + if self.clang_mess_per_cycle is not None: + oprot.writeFieldBegin('clang_mess_per_cycle', TType.I32, 69) + oprot.writeI32(self.clang_mess_per_cycle) + oprot.writeFieldEnd() + if self.half_time is not None: + oprot.writeFieldBegin('half_time', TType.I32, 70) + oprot.writeI32(self.half_time) + oprot.writeFieldEnd() + if self.simulator_step is not None: + oprot.writeFieldBegin('simulator_step', TType.I32, 71) + oprot.writeI32(self.simulator_step) + oprot.writeFieldEnd() + if self.send_step is not None: + oprot.writeFieldBegin('send_step', TType.I32, 72) + oprot.writeI32(self.send_step) + oprot.writeFieldEnd() + if self.recv_step is not None: + oprot.writeFieldBegin('recv_step', TType.I32, 73) + oprot.writeI32(self.recv_step) + oprot.writeFieldEnd() + if self.sense_body_step is not None: + oprot.writeFieldBegin('sense_body_step', TType.I32, 74) + oprot.writeI32(self.sense_body_step) + oprot.writeFieldEnd() + if self.lcm_step is not None: + oprot.writeFieldBegin('lcm_step', TType.I32, 75) + oprot.writeI32(self.lcm_step) + oprot.writeFieldEnd() + if self.player_say_msg_size is not None: + oprot.writeFieldBegin('player_say_msg_size', TType.I32, 76) + oprot.writeI32(self.player_say_msg_size) + oprot.writeFieldEnd() + if self.player_hear_max is not None: + oprot.writeFieldBegin('player_hear_max', TType.I32, 77) + oprot.writeI32(self.player_hear_max) + oprot.writeFieldEnd() + if self.player_hear_inc is not None: + oprot.writeFieldBegin('player_hear_inc', TType.I32, 78) + oprot.writeI32(self.player_hear_inc) + oprot.writeFieldEnd() + if self.player_hear_decay is not None: + oprot.writeFieldBegin('player_hear_decay', TType.I32, 79) + oprot.writeI32(self.player_hear_decay) + oprot.writeFieldEnd() + if self.catch_ban_cycle is not None: + oprot.writeFieldBegin('catch_ban_cycle', TType.I32, 80) + oprot.writeI32(self.catch_ban_cycle) + oprot.writeFieldEnd() + if self.slow_down_factor is not None: + oprot.writeFieldBegin('slow_down_factor', TType.I32, 81) + oprot.writeI32(self.slow_down_factor) + oprot.writeFieldEnd() + if self.use_offside is not None: + oprot.writeFieldBegin('use_offside', TType.BOOL, 82) + oprot.writeBool(self.use_offside) + oprot.writeFieldEnd() + if self.kickoff_offside is not None: + oprot.writeFieldBegin('kickoff_offside', TType.BOOL, 83) + oprot.writeBool(self.kickoff_offside) + oprot.writeFieldEnd() + if self.offside_kick_margin is not None: + oprot.writeFieldBegin('offside_kick_margin', TType.DOUBLE, 84) + oprot.writeDouble(self.offside_kick_margin) + oprot.writeFieldEnd() + if self.audio_cut_dist is not None: + oprot.writeFieldBegin('audio_cut_dist', TType.DOUBLE, 85) + oprot.writeDouble(self.audio_cut_dist) + oprot.writeFieldEnd() + if self.dist_quantize_step is not None: + oprot.writeFieldBegin('dist_quantize_step', TType.DOUBLE, 86) + oprot.writeDouble(self.dist_quantize_step) + oprot.writeFieldEnd() + if self.landmark_dist_quantize_step is not None: + oprot.writeFieldBegin('landmark_dist_quantize_step', TType.DOUBLE, 87) + oprot.writeDouble(self.landmark_dist_quantize_step) + oprot.writeFieldEnd() + if self.dir_quantize_step is not None: + oprot.writeFieldBegin('dir_quantize_step', TType.DOUBLE, 88) + oprot.writeDouble(self.dir_quantize_step) + oprot.writeFieldEnd() + if self.dist_quantize_step_l is not None: + oprot.writeFieldBegin('dist_quantize_step_l', TType.DOUBLE, 89) + oprot.writeDouble(self.dist_quantize_step_l) + oprot.writeFieldEnd() + if self.dist_quantize_step_r is not None: + oprot.writeFieldBegin('dist_quantize_step_r', TType.DOUBLE, 90) + oprot.writeDouble(self.dist_quantize_step_r) + oprot.writeFieldEnd() + if self.landmark_dist_quantize_step_l is not None: + oprot.writeFieldBegin('landmark_dist_quantize_step_l', TType.DOUBLE, 91) + oprot.writeDouble(self.landmark_dist_quantize_step_l) + oprot.writeFieldEnd() + if self.landmark_dist_quantize_step_r is not None: + oprot.writeFieldBegin('landmark_dist_quantize_step_r', TType.DOUBLE, 92) + oprot.writeDouble(self.landmark_dist_quantize_step_r) + oprot.writeFieldEnd() + if self.dir_quantize_step_l is not None: + oprot.writeFieldBegin('dir_quantize_step_l', TType.DOUBLE, 93) + oprot.writeDouble(self.dir_quantize_step_l) + oprot.writeFieldEnd() + if self.dir_quantize_step_r is not None: + oprot.writeFieldBegin('dir_quantize_step_r', TType.DOUBLE, 94) + oprot.writeDouble(self.dir_quantize_step_r) + oprot.writeFieldEnd() + if self.coach_mode is not None: + oprot.writeFieldBegin('coach_mode', TType.BOOL, 95) + oprot.writeBool(self.coach_mode) + oprot.writeFieldEnd() + if self.coach_with_referee_mode is not None: + oprot.writeFieldBegin('coach_with_referee_mode', TType.BOOL, 96) + oprot.writeBool(self.coach_with_referee_mode) + oprot.writeFieldEnd() + if self.use_old_coach_hear is not None: + oprot.writeFieldBegin('use_old_coach_hear', TType.BOOL, 97) + oprot.writeBool(self.use_old_coach_hear) + oprot.writeFieldEnd() + if self.slowness_on_top_for_left_team is not None: + oprot.writeFieldBegin('slowness_on_top_for_left_team', TType.DOUBLE, 98) + oprot.writeDouble(self.slowness_on_top_for_left_team) + oprot.writeFieldEnd() + if self.slowness_on_top_for_right_team is not None: + oprot.writeFieldBegin('slowness_on_top_for_right_team', TType.DOUBLE, 99) + oprot.writeDouble(self.slowness_on_top_for_right_team) + oprot.writeFieldEnd() + if self.start_goal_l is not None: + oprot.writeFieldBegin('start_goal_l', TType.I32, 100) + oprot.writeI32(self.start_goal_l) + oprot.writeFieldEnd() + if self.start_goal_r is not None: + oprot.writeFieldBegin('start_goal_r', TType.I32, 101) + oprot.writeI32(self.start_goal_r) + oprot.writeFieldEnd() + if self.fullstate_l is not None: + oprot.writeFieldBegin('fullstate_l', TType.BOOL, 102) + oprot.writeBool(self.fullstate_l) + oprot.writeFieldEnd() + if self.fullstate_r is not None: + oprot.writeFieldBegin('fullstate_r', TType.BOOL, 103) + oprot.writeBool(self.fullstate_r) + oprot.writeFieldEnd() + if self.drop_ball_time is not None: + oprot.writeFieldBegin('drop_ball_time', TType.I32, 104) + oprot.writeI32(self.drop_ball_time) + oprot.writeFieldEnd() + if self.synch_mode is not None: + oprot.writeFieldBegin('synch_mode', TType.BOOL, 105) + oprot.writeBool(self.synch_mode) + oprot.writeFieldEnd() + if self.synch_offset is not None: + oprot.writeFieldBegin('synch_offset', TType.I32, 106) + oprot.writeI32(self.synch_offset) + oprot.writeFieldEnd() + if self.synch_micro_sleep is not None: + oprot.writeFieldBegin('synch_micro_sleep', TType.I32, 107) + oprot.writeI32(self.synch_micro_sleep) + oprot.writeFieldEnd() + if self.point_to_ban is not None: + oprot.writeFieldBegin('point_to_ban', TType.I32, 108) + oprot.writeI32(self.point_to_ban) + oprot.writeFieldEnd() + if self.point_to_duration is not None: + oprot.writeFieldBegin('point_to_duration', TType.I32, 109) + oprot.writeI32(self.point_to_duration) + oprot.writeFieldEnd() + if self.player_port is not None: + oprot.writeFieldBegin('player_port', TType.I32, 110) + oprot.writeI32(self.player_port) + oprot.writeFieldEnd() + if self.trainer_port is not None: + oprot.writeFieldBegin('trainer_port', TType.I32, 111) + oprot.writeI32(self.trainer_port) + oprot.writeFieldEnd() + if self.online_coach_port is not None: + oprot.writeFieldBegin('online_coach_port', TType.I32, 112) + oprot.writeI32(self.online_coach_port) + oprot.writeFieldEnd() + if self.verbose_mode is not None: + oprot.writeFieldBegin('verbose_mode', TType.BOOL, 113) + oprot.writeBool(self.verbose_mode) + oprot.writeFieldEnd() + if self.coach_send_vi_step is not None: + oprot.writeFieldBegin('coach_send_vi_step', TType.I32, 114) + oprot.writeI32(self.coach_send_vi_step) + oprot.writeFieldEnd() + if self.replay_file is not None: + oprot.writeFieldBegin('replay_file', TType.STRING, 115) + oprot.writeString(self.replay_file.encode('utf-8') if sys.version_info[0] == 2 else self.replay_file) + oprot.writeFieldEnd() + if self.landmark_file is not None: + oprot.writeFieldBegin('landmark_file', TType.STRING, 116) + oprot.writeString(self.landmark_file.encode('utf-8') if sys.version_info[0] == 2 else self.landmark_file) + oprot.writeFieldEnd() + if self.send_comms is not None: + oprot.writeFieldBegin('send_comms', TType.BOOL, 117) + oprot.writeBool(self.send_comms) + oprot.writeFieldEnd() + if self.text_logging is not None: + oprot.writeFieldBegin('text_logging', TType.BOOL, 118) + oprot.writeBool(self.text_logging) + oprot.writeFieldEnd() + if self.game_logging is not None: + oprot.writeFieldBegin('game_logging', TType.BOOL, 119) + oprot.writeBool(self.game_logging) + oprot.writeFieldEnd() + if self.game_log_version is not None: + oprot.writeFieldBegin('game_log_version', TType.I32, 120) + oprot.writeI32(self.game_log_version) + oprot.writeFieldEnd() + if self.text_log_dir is not None: + oprot.writeFieldBegin('text_log_dir', TType.STRING, 121) + oprot.writeString(self.text_log_dir.encode('utf-8') if sys.version_info[0] == 2 else self.text_log_dir) + oprot.writeFieldEnd() + if self.game_log_dir is not None: + oprot.writeFieldBegin('game_log_dir', TType.STRING, 122) + oprot.writeString(self.game_log_dir.encode('utf-8') if sys.version_info[0] == 2 else self.game_log_dir) + oprot.writeFieldEnd() + if self.text_log_fixed_name is not None: + oprot.writeFieldBegin('text_log_fixed_name', TType.STRING, 123) + oprot.writeString(self.text_log_fixed_name.encode('utf-8') if sys.version_info[0] == 2 else self.text_log_fixed_name) + oprot.writeFieldEnd() + if self.game_log_fixed_name is not None: + oprot.writeFieldBegin('game_log_fixed_name', TType.STRING, 124) + oprot.writeString(self.game_log_fixed_name.encode('utf-8') if sys.version_info[0] == 2 else self.game_log_fixed_name) + oprot.writeFieldEnd() + if self.use_text_log_fixed is not None: + oprot.writeFieldBegin('use_text_log_fixed', TType.BOOL, 125) + oprot.writeBool(self.use_text_log_fixed) + oprot.writeFieldEnd() + if self.use_game_log_fixed is not None: + oprot.writeFieldBegin('use_game_log_fixed', TType.BOOL, 126) + oprot.writeBool(self.use_game_log_fixed) + oprot.writeFieldEnd() + if self.use_text_log_dated is not None: + oprot.writeFieldBegin('use_text_log_dated', TType.BOOL, 127) + oprot.writeBool(self.use_text_log_dated) + oprot.writeFieldEnd() + if self.use_game_log_dated is not None: + oprot.writeFieldBegin('use_game_log_dated', TType.BOOL, 128) + oprot.writeBool(self.use_game_log_dated) + oprot.writeFieldEnd() + if self.log_date_format is not None: + oprot.writeFieldBegin('log_date_format', TType.STRING, 129) + oprot.writeString(self.log_date_format.encode('utf-8') if sys.version_info[0] == 2 else self.log_date_format) + oprot.writeFieldEnd() + if self.log_times is not None: + oprot.writeFieldBegin('log_times', TType.BOOL, 130) + oprot.writeBool(self.log_times) + oprot.writeFieldEnd() + if self.record_message is not None: + oprot.writeFieldBegin('record_message', TType.BOOL, 131) + oprot.writeBool(self.record_message) + oprot.writeFieldEnd() + if self.text_log_compression is not None: + oprot.writeFieldBegin('text_log_compression', TType.I32, 132) + oprot.writeI32(self.text_log_compression) + oprot.writeFieldEnd() + if self.game_log_compression is not None: + oprot.writeFieldBegin('game_log_compression', TType.I32, 133) + oprot.writeI32(self.game_log_compression) + oprot.writeFieldEnd() + if self.use_profile is not None: + oprot.writeFieldBegin('use_profile', TType.BOOL, 134) + oprot.writeBool(self.use_profile) + oprot.writeFieldEnd() + if self.tackle_dist is not None: + oprot.writeFieldBegin('tackle_dist', TType.DOUBLE, 135) + oprot.writeDouble(self.tackle_dist) + oprot.writeFieldEnd() + if self.tackle_back_dist is not None: + oprot.writeFieldBegin('tackle_back_dist', TType.DOUBLE, 136) + oprot.writeDouble(self.tackle_back_dist) + oprot.writeFieldEnd() + if self.tackle_width is not None: + oprot.writeFieldBegin('tackle_width', TType.DOUBLE, 137) + oprot.writeDouble(self.tackle_width) + oprot.writeFieldEnd() + if self.tackle_exponent is not None: + oprot.writeFieldBegin('tackle_exponent', TType.DOUBLE, 138) + oprot.writeDouble(self.tackle_exponent) + oprot.writeFieldEnd() + if self.tackle_cycles is not None: + oprot.writeFieldBegin('tackle_cycles', TType.I32, 139) + oprot.writeI32(self.tackle_cycles) + oprot.writeFieldEnd() + if self.tackle_power_rate is not None: + oprot.writeFieldBegin('tackle_power_rate', TType.DOUBLE, 140) + oprot.writeDouble(self.tackle_power_rate) + oprot.writeFieldEnd() + if self.freeform_wait_period is not None: + oprot.writeFieldBegin('freeform_wait_period', TType.I32, 141) + oprot.writeI32(self.freeform_wait_period) + oprot.writeFieldEnd() + if self.freeform_send_period is not None: + oprot.writeFieldBegin('freeform_send_period', TType.I32, 142) + oprot.writeI32(self.freeform_send_period) + oprot.writeFieldEnd() + if self.free_kick_faults is not None: + oprot.writeFieldBegin('free_kick_faults', TType.BOOL, 143) + oprot.writeBool(self.free_kick_faults) + oprot.writeFieldEnd() + if self.back_passes is not None: + oprot.writeFieldBegin('back_passes', TType.BOOL, 144) + oprot.writeBool(self.back_passes) + oprot.writeFieldEnd() + if self.proper_goal_kicks is not None: + oprot.writeFieldBegin('proper_goal_kicks', TType.BOOL, 145) + oprot.writeBool(self.proper_goal_kicks) + oprot.writeFieldEnd() + if self.stopped_ball_vel is not None: + oprot.writeFieldBegin('stopped_ball_vel', TType.DOUBLE, 146) + oprot.writeDouble(self.stopped_ball_vel) + oprot.writeFieldEnd() + if self.max_goal_kicks is not None: + oprot.writeFieldBegin('max_goal_kicks', TType.I32, 147) + oprot.writeI32(self.max_goal_kicks) + oprot.writeFieldEnd() + if self.clang_del_win is not None: + oprot.writeFieldBegin('clang_del_win', TType.I32, 148) + oprot.writeI32(self.clang_del_win) + oprot.writeFieldEnd() + if self.clang_rule_win is not None: + oprot.writeFieldBegin('clang_rule_win', TType.I32, 149) + oprot.writeI32(self.clang_rule_win) + oprot.writeFieldEnd() + if self.auto_mode is not None: + oprot.writeFieldBegin('auto_mode', TType.BOOL, 150) + oprot.writeBool(self.auto_mode) + oprot.writeFieldEnd() + if self.kick_off_wait is not None: + oprot.writeFieldBegin('kick_off_wait', TType.I32, 151) + oprot.writeI32(self.kick_off_wait) + oprot.writeFieldEnd() + if self.connect_wait is not None: + oprot.writeFieldBegin('connect_wait', TType.I32, 152) + oprot.writeI32(self.connect_wait) + oprot.writeFieldEnd() + if self.game_over_wait is not None: + oprot.writeFieldBegin('game_over_wait', TType.I32, 153) + oprot.writeI32(self.game_over_wait) + oprot.writeFieldEnd() + if self.team_l_start is not None: + oprot.writeFieldBegin('team_l_start', TType.STRING, 154) + oprot.writeString(self.team_l_start.encode('utf-8') if sys.version_info[0] == 2 else self.team_l_start) + oprot.writeFieldEnd() + if self.team_r_start is not None: + oprot.writeFieldBegin('team_r_start', TType.STRING, 155) + oprot.writeString(self.team_r_start.encode('utf-8') if sys.version_info[0] == 2 else self.team_r_start) + oprot.writeFieldEnd() + if self.keepaway_mode is not None: + oprot.writeFieldBegin('keepaway_mode', TType.BOOL, 156) + oprot.writeBool(self.keepaway_mode) + oprot.writeFieldEnd() + if self.keepaway_length is not None: + oprot.writeFieldBegin('keepaway_length', TType.DOUBLE, 157) + oprot.writeDouble(self.keepaway_length) + oprot.writeFieldEnd() + if self.keepaway_width is not None: + oprot.writeFieldBegin('keepaway_width', TType.DOUBLE, 158) + oprot.writeDouble(self.keepaway_width) + oprot.writeFieldEnd() + if self.keepaway_logging is not None: + oprot.writeFieldBegin('keepaway_logging', TType.BOOL, 159) + oprot.writeBool(self.keepaway_logging) + oprot.writeFieldEnd() + if self.keepaway_log_dir is not None: + oprot.writeFieldBegin('keepaway_log_dir', TType.STRING, 160) + oprot.writeString(self.keepaway_log_dir.encode('utf-8') if sys.version_info[0] == 2 else self.keepaway_log_dir) + oprot.writeFieldEnd() + if self.keepaway_log_fixed_name is not None: + oprot.writeFieldBegin('keepaway_log_fixed_name', TType.STRING, 161) + oprot.writeString(self.keepaway_log_fixed_name.encode('utf-8') if sys.version_info[0] == 2 else self.keepaway_log_fixed_name) + oprot.writeFieldEnd() + if self.keepaway_log_fixed is not None: + oprot.writeFieldBegin('keepaway_log_fixed', TType.BOOL, 162) + oprot.writeBool(self.keepaway_log_fixed) + oprot.writeFieldEnd() + if self.keepaway_log_dated is not None: + oprot.writeFieldBegin('keepaway_log_dated', TType.BOOL, 163) + oprot.writeBool(self.keepaway_log_dated) + oprot.writeFieldEnd() + if self.keepaway_start is not None: + oprot.writeFieldBegin('keepaway_start', TType.I32, 164) + oprot.writeI32(self.keepaway_start) + oprot.writeFieldEnd() + if self.nr_normal_halfs is not None: + oprot.writeFieldBegin('nr_normal_halfs', TType.I32, 165) + oprot.writeI32(self.nr_normal_halfs) + oprot.writeFieldEnd() + if self.nr_extra_halfs is not None: + oprot.writeFieldBegin('nr_extra_halfs', TType.I32, 166) + oprot.writeI32(self.nr_extra_halfs) + oprot.writeFieldEnd() + if self.penalty_shoot_outs is not None: + oprot.writeFieldBegin('penalty_shoot_outs', TType.BOOL, 167) + oprot.writeBool(self.penalty_shoot_outs) + oprot.writeFieldEnd() + if self.pen_before_setup_wait is not None: + oprot.writeFieldBegin('pen_before_setup_wait', TType.I32, 168) + oprot.writeI32(self.pen_before_setup_wait) + oprot.writeFieldEnd() + if self.pen_setup_wait is not None: + oprot.writeFieldBegin('pen_setup_wait', TType.I32, 169) + oprot.writeI32(self.pen_setup_wait) + oprot.writeFieldEnd() + if self.pen_ready_wait is not None: + oprot.writeFieldBegin('pen_ready_wait', TType.I32, 170) + oprot.writeI32(self.pen_ready_wait) + oprot.writeFieldEnd() + if self.pen_taken_wait is not None: + oprot.writeFieldBegin('pen_taken_wait', TType.I32, 171) + oprot.writeI32(self.pen_taken_wait) + oprot.writeFieldEnd() + if self.pen_nr_kicks is not None: + oprot.writeFieldBegin('pen_nr_kicks', TType.I32, 172) + oprot.writeI32(self.pen_nr_kicks) + oprot.writeFieldEnd() + if self.pen_max_extra_kicks is not None: + oprot.writeFieldBegin('pen_max_extra_kicks', TType.I32, 173) + oprot.writeI32(self.pen_max_extra_kicks) + oprot.writeFieldEnd() + if self.pen_dist_x is not None: + oprot.writeFieldBegin('pen_dist_x', TType.DOUBLE, 174) + oprot.writeDouble(self.pen_dist_x) + oprot.writeFieldEnd() + if self.pen_random_winner is not None: + oprot.writeFieldBegin('pen_random_winner', TType.BOOL, 175) + oprot.writeBool(self.pen_random_winner) + oprot.writeFieldEnd() + if self.pen_allow_mult_kicks is not None: + oprot.writeFieldBegin('pen_allow_mult_kicks', TType.BOOL, 176) + oprot.writeBool(self.pen_allow_mult_kicks) + oprot.writeFieldEnd() + if self.pen_max_goalie_dist_x is not None: + oprot.writeFieldBegin('pen_max_goalie_dist_x', TType.DOUBLE, 177) + oprot.writeDouble(self.pen_max_goalie_dist_x) + oprot.writeFieldEnd() + if self.pen_coach_moves_players is not None: + oprot.writeFieldBegin('pen_coach_moves_players', TType.BOOL, 178) + oprot.writeBool(self.pen_coach_moves_players) + oprot.writeFieldEnd() + if self.module_dir is not None: + oprot.writeFieldBegin('module_dir', TType.STRING, 179) + oprot.writeString(self.module_dir.encode('utf-8') if sys.version_info[0] == 2 else self.module_dir) + oprot.writeFieldEnd() + if self.ball_stuck_area is not None: + oprot.writeFieldBegin('ball_stuck_area', TType.DOUBLE, 180) + oprot.writeDouble(self.ball_stuck_area) + oprot.writeFieldEnd() + if self.coach_msg_file is not None: + oprot.writeFieldBegin('coach_msg_file', TType.STRING, 181) + oprot.writeString(self.coach_msg_file.encode('utf-8') if sys.version_info[0] == 2 else self.coach_msg_file) + oprot.writeFieldEnd() + if self.max_tackle_power is not None: + oprot.writeFieldBegin('max_tackle_power', TType.DOUBLE, 182) + oprot.writeDouble(self.max_tackle_power) + oprot.writeFieldEnd() + if self.max_back_tackle_power is not None: + oprot.writeFieldBegin('max_back_tackle_power', TType.DOUBLE, 183) + oprot.writeDouble(self.max_back_tackle_power) + oprot.writeFieldEnd() + if self.player_speed_max_min is not None: + oprot.writeFieldBegin('player_speed_max_min', TType.DOUBLE, 184) + oprot.writeDouble(self.player_speed_max_min) + oprot.writeFieldEnd() + if self.extra_stamina is not None: + oprot.writeFieldBegin('extra_stamina', TType.DOUBLE, 185) + oprot.writeDouble(self.extra_stamina) + oprot.writeFieldEnd() + if self.synch_see_offset is not None: + oprot.writeFieldBegin('synch_see_offset', TType.I32, 186) + oprot.writeI32(self.synch_see_offset) + oprot.writeFieldEnd() + if self.extra_half_time is not None: + oprot.writeFieldBegin('extra_half_time', TType.I32, 187) + oprot.writeI32(self.extra_half_time) + oprot.writeFieldEnd() + if self.stamina_capacity is not None: + oprot.writeFieldBegin('stamina_capacity', TType.DOUBLE, 188) + oprot.writeDouble(self.stamina_capacity) + oprot.writeFieldEnd() + if self.max_dash_angle is not None: + oprot.writeFieldBegin('max_dash_angle', TType.DOUBLE, 189) + oprot.writeDouble(self.max_dash_angle) + oprot.writeFieldEnd() + if self.min_dash_angle is not None: + oprot.writeFieldBegin('min_dash_angle', TType.DOUBLE, 190) + oprot.writeDouble(self.min_dash_angle) + oprot.writeFieldEnd() + if self.dash_angle_step is not None: + oprot.writeFieldBegin('dash_angle_step', TType.DOUBLE, 191) + oprot.writeDouble(self.dash_angle_step) + oprot.writeFieldEnd() + if self.side_dash_rate is not None: + oprot.writeFieldBegin('side_dash_rate', TType.DOUBLE, 192) + oprot.writeDouble(self.side_dash_rate) + oprot.writeFieldEnd() + if self.back_dash_rate is not None: + oprot.writeFieldBegin('back_dash_rate', TType.DOUBLE, 193) + oprot.writeDouble(self.back_dash_rate) + oprot.writeFieldEnd() + if self.max_dash_power is not None: + oprot.writeFieldBegin('max_dash_power', TType.DOUBLE, 194) + oprot.writeDouble(self.max_dash_power) + oprot.writeFieldEnd() + if self.min_dash_power is not None: + oprot.writeFieldBegin('min_dash_power', TType.DOUBLE, 195) + oprot.writeDouble(self.min_dash_power) + oprot.writeFieldEnd() + if self.tackle_rand_factor is not None: + oprot.writeFieldBegin('tackle_rand_factor', TType.DOUBLE, 196) + oprot.writeDouble(self.tackle_rand_factor) + oprot.writeFieldEnd() + if self.foul_detect_probability is not None: + oprot.writeFieldBegin('foul_detect_probability', TType.DOUBLE, 197) + oprot.writeDouble(self.foul_detect_probability) + oprot.writeFieldEnd() + if self.foul_exponent is not None: + oprot.writeFieldBegin('foul_exponent', TType.DOUBLE, 198) + oprot.writeDouble(self.foul_exponent) + oprot.writeFieldEnd() + if self.foul_cycles is not None: + oprot.writeFieldBegin('foul_cycles', TType.I32, 199) + oprot.writeI32(self.foul_cycles) + oprot.writeFieldEnd() + if self.golden_goal is not None: + oprot.writeFieldBegin('golden_goal', TType.BOOL, 200) + oprot.writeBool(self.golden_goal) + oprot.writeFieldEnd() + if self.red_card_probability is not None: + oprot.writeFieldBegin('red_card_probability', TType.DOUBLE, 201) + oprot.writeDouble(self.red_card_probability) + oprot.writeFieldEnd() + if self.illegal_defense_duration is not None: + oprot.writeFieldBegin('illegal_defense_duration', TType.I32, 202) + oprot.writeI32(self.illegal_defense_duration) + oprot.writeFieldEnd() + if self.illegal_defense_number is not None: + oprot.writeFieldBegin('illegal_defense_number', TType.I32, 203) + oprot.writeI32(self.illegal_defense_number) + oprot.writeFieldEnd() + if self.illegal_defense_dist_x is not None: + oprot.writeFieldBegin('illegal_defense_dist_x', TType.DOUBLE, 204) + oprot.writeDouble(self.illegal_defense_dist_x) + oprot.writeFieldEnd() + if self.illegal_defense_width is not None: + oprot.writeFieldBegin('illegal_defense_width', TType.DOUBLE, 205) + oprot.writeDouble(self.illegal_defense_width) + oprot.writeFieldEnd() + if self.fixed_teamname_l is not None: + oprot.writeFieldBegin('fixed_teamname_l', TType.STRING, 206) + oprot.writeString(self.fixed_teamname_l.encode('utf-8') if sys.version_info[0] == 2 else self.fixed_teamname_l) + oprot.writeFieldEnd() + if self.fixed_teamname_r is not None: + oprot.writeFieldBegin('fixed_teamname_r', TType.STRING, 207) + oprot.writeString(self.fixed_teamname_r.encode('utf-8') if sys.version_info[0] == 2 else self.fixed_teamname_r) + oprot.writeFieldEnd() + if self.max_catch_angle is not None: + oprot.writeFieldBegin('max_catch_angle', TType.DOUBLE, 208) + oprot.writeDouble(self.max_catch_angle) + oprot.writeFieldEnd() + if self.min_catch_angle is not None: + oprot.writeFieldBegin('min_catch_angle', TType.DOUBLE, 209) + oprot.writeDouble(self.min_catch_angle) + oprot.writeFieldEnd() + if self.random_seed is not None: + oprot.writeFieldBegin('random_seed', TType.I32, 210) + oprot.writeI32(self.random_seed) + oprot.writeFieldEnd() + if self.long_kick_power_factor is not None: + oprot.writeFieldBegin('long_kick_power_factor', TType.DOUBLE, 211) + oprot.writeDouble(self.long_kick_power_factor) + oprot.writeFieldEnd() + if self.long_kick_delay is not None: + oprot.writeFieldBegin('long_kick_delay', TType.I32, 212) + oprot.writeI32(self.long_kick_delay) + oprot.writeFieldEnd() + if self.max_monitors is not None: + oprot.writeFieldBegin('max_monitors', TType.I32, 213) + oprot.writeI32(self.max_monitors) + oprot.writeFieldEnd() + if self.catchable_area is not None: + oprot.writeFieldBegin('catchable_area', TType.DOUBLE, 214) + oprot.writeDouble(self.catchable_area) + oprot.writeFieldEnd() + if self.real_speed_max is not None: + oprot.writeFieldBegin('real_speed_max', TType.DOUBLE, 215) + oprot.writeDouble(self.real_speed_max) + oprot.writeFieldEnd() + if self.pitch_half_length is not None: + oprot.writeFieldBegin('pitch_half_length', TType.DOUBLE, 216) + oprot.writeDouble(self.pitch_half_length) + oprot.writeFieldEnd() + if self.pitch_half_width is not None: + oprot.writeFieldBegin('pitch_half_width', TType.DOUBLE, 217) + oprot.writeDouble(self.pitch_half_width) + oprot.writeFieldEnd() + if self.our_penalty_area_line_x is not None: + oprot.writeFieldBegin('our_penalty_area_line_x', TType.DOUBLE, 218) + oprot.writeDouble(self.our_penalty_area_line_x) + oprot.writeFieldEnd() + if self.their_penalty_area_line_x is not None: + oprot.writeFieldBegin('their_penalty_area_line_x', TType.DOUBLE, 219) + oprot.writeDouble(self.their_penalty_area_line_x) + oprot.writeFieldEnd() + if self.penalty_area_half_width is not None: + oprot.writeFieldBegin('penalty_area_half_width', TType.DOUBLE, 220) + oprot.writeDouble(self.penalty_area_half_width) + oprot.writeFieldEnd() + if self.penalty_area_length is not None: + oprot.writeFieldBegin('penalty_area_length', TType.DOUBLE, 221) + oprot.writeDouble(self.penalty_area_length) + oprot.writeFieldEnd() + if self.goal_width is not None: + oprot.writeFieldBegin('goal_width', TType.DOUBLE, 222) + oprot.writeDouble(self.goal_width) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PlayerParam(object): + """ + Attributes: + - agent_type + - 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 + + """ + + + def __init__(self, agent_type=None, player_types=None, subs_max=None, pt_max=None, allow_mult_default_type=None, player_speed_max_delta_min=None, player_speed_max_delta_max=None, stamina_inc_max_delta_factor=None, player_decay_delta_min=None, player_decay_delta_max=None, inertia_moment_delta_factor=None, dash_power_rate_delta_min=None, dash_power_rate_delta_max=None, player_size_delta_factor=None, kickable_margin_delta_min=None, kickable_margin_delta_max=None, kick_rand_delta_factor=None, extra_stamina_delta_min=None, extra_stamina_delta_max=None, effort_max_delta_factor=None, effort_min_delta_factor=None, random_seed=None, new_dash_power_rate_delta_min=None, new_dash_power_rate_delta_max=None, new_stamina_inc_max_delta_factor=None, kick_power_rate_delta_min=None, kick_power_rate_delta_max=None, foul_detect_probability_delta_factor=None, catchable_area_l_stretch_min=None, catchable_area_l_stretch_max=None,): + self.agent_type = agent_type + self.player_types = player_types + self.subs_max = subs_max + self.pt_max = pt_max + self.allow_mult_default_type = allow_mult_default_type + self.player_speed_max_delta_min = player_speed_max_delta_min + self.player_speed_max_delta_max = player_speed_max_delta_max + self.stamina_inc_max_delta_factor = stamina_inc_max_delta_factor + self.player_decay_delta_min = player_decay_delta_min + self.player_decay_delta_max = player_decay_delta_max + self.inertia_moment_delta_factor = inertia_moment_delta_factor + self.dash_power_rate_delta_min = dash_power_rate_delta_min + self.dash_power_rate_delta_max = dash_power_rate_delta_max + self.player_size_delta_factor = player_size_delta_factor + self.kickable_margin_delta_min = kickable_margin_delta_min + self.kickable_margin_delta_max = kickable_margin_delta_max + self.kick_rand_delta_factor = kick_rand_delta_factor + self.extra_stamina_delta_min = extra_stamina_delta_min + self.extra_stamina_delta_max = extra_stamina_delta_max + self.effort_max_delta_factor = effort_max_delta_factor + self.effort_min_delta_factor = effort_min_delta_factor + self.random_seed = random_seed + self.new_dash_power_rate_delta_min = new_dash_power_rate_delta_min + self.new_dash_power_rate_delta_max = new_dash_power_rate_delta_max + self.new_stamina_inc_max_delta_factor = new_stamina_inc_max_delta_factor + self.kick_power_rate_delta_min = kick_power_rate_delta_min + self.kick_power_rate_delta_max = kick_power_rate_delta_max + self.foul_detect_probability_delta_factor = foul_detect_probability_delta_factor + self.catchable_area_l_stretch_min = catchable_area_l_stretch_min + self.catchable_area_l_stretch_max = catchable_area_l_stretch_max + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.agent_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.player_types = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.subs_max = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.I32: + self.pt_max = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.BOOL: + self.allow_mult_default_type = iprot.readBool() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.DOUBLE: + self.player_speed_max_delta_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.DOUBLE: + self.player_speed_max_delta_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.DOUBLE: + self.stamina_inc_max_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.DOUBLE: + self.player_decay_delta_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.DOUBLE: + self.player_decay_delta_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.DOUBLE: + self.inertia_moment_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.DOUBLE: + self.dash_power_rate_delta_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.DOUBLE: + self.dash_power_rate_delta_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.DOUBLE: + self.player_size_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.DOUBLE: + self.kickable_margin_delta_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.DOUBLE: + self.kickable_margin_delta_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.DOUBLE: + self.kick_rand_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.DOUBLE: + self.extra_stamina_delta_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.DOUBLE: + self.extra_stamina_delta_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.DOUBLE: + self.effort_max_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.DOUBLE: + self.effort_min_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.I32: + self.random_seed = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 23: + if ftype == TType.DOUBLE: + self.new_dash_power_rate_delta_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 24: + if ftype == TType.DOUBLE: + self.new_dash_power_rate_delta_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 25: + if ftype == TType.DOUBLE: + self.new_stamina_inc_max_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 26: + if ftype == TType.DOUBLE: + self.kick_power_rate_delta_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 27: + if ftype == TType.DOUBLE: + self.kick_power_rate_delta_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 28: + if ftype == TType.DOUBLE: + self.foul_detect_probability_delta_factor = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 29: + if ftype == TType.DOUBLE: + self.catchable_area_l_stretch_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 30: + if ftype == TType.DOUBLE: + self.catchable_area_l_stretch_max = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PlayerParam') + if self.agent_type is not None: + oprot.writeFieldBegin('agent_type', TType.I32, 1) + oprot.writeI32(self.agent_type) + oprot.writeFieldEnd() + if self.player_types is not None: + oprot.writeFieldBegin('player_types', TType.I32, 2) + oprot.writeI32(self.player_types) + oprot.writeFieldEnd() + if self.subs_max is not None: + oprot.writeFieldBegin('subs_max', TType.I32, 3) + oprot.writeI32(self.subs_max) + oprot.writeFieldEnd() + if self.pt_max is not None: + oprot.writeFieldBegin('pt_max', TType.I32, 4) + oprot.writeI32(self.pt_max) + oprot.writeFieldEnd() + if self.allow_mult_default_type is not None: + oprot.writeFieldBegin('allow_mult_default_type', TType.BOOL, 5) + oprot.writeBool(self.allow_mult_default_type) + oprot.writeFieldEnd() + if self.player_speed_max_delta_min is not None: + oprot.writeFieldBegin('player_speed_max_delta_min', TType.DOUBLE, 6) + oprot.writeDouble(self.player_speed_max_delta_min) + oprot.writeFieldEnd() + if self.player_speed_max_delta_max is not None: + oprot.writeFieldBegin('player_speed_max_delta_max', TType.DOUBLE, 7) + oprot.writeDouble(self.player_speed_max_delta_max) + oprot.writeFieldEnd() + if self.stamina_inc_max_delta_factor is not None: + oprot.writeFieldBegin('stamina_inc_max_delta_factor', TType.DOUBLE, 8) + oprot.writeDouble(self.stamina_inc_max_delta_factor) + oprot.writeFieldEnd() + if self.player_decay_delta_min is not None: + oprot.writeFieldBegin('player_decay_delta_min', TType.DOUBLE, 9) + oprot.writeDouble(self.player_decay_delta_min) + oprot.writeFieldEnd() + if self.player_decay_delta_max is not None: + oprot.writeFieldBegin('player_decay_delta_max', TType.DOUBLE, 10) + oprot.writeDouble(self.player_decay_delta_max) + oprot.writeFieldEnd() + if self.inertia_moment_delta_factor is not None: + oprot.writeFieldBegin('inertia_moment_delta_factor', TType.DOUBLE, 11) + oprot.writeDouble(self.inertia_moment_delta_factor) + oprot.writeFieldEnd() + if self.dash_power_rate_delta_min is not None: + oprot.writeFieldBegin('dash_power_rate_delta_min', TType.DOUBLE, 12) + oprot.writeDouble(self.dash_power_rate_delta_min) + oprot.writeFieldEnd() + if self.dash_power_rate_delta_max is not None: + oprot.writeFieldBegin('dash_power_rate_delta_max', TType.DOUBLE, 13) + oprot.writeDouble(self.dash_power_rate_delta_max) + oprot.writeFieldEnd() + if self.player_size_delta_factor is not None: + oprot.writeFieldBegin('player_size_delta_factor', TType.DOUBLE, 14) + oprot.writeDouble(self.player_size_delta_factor) + oprot.writeFieldEnd() + if self.kickable_margin_delta_min is not None: + oprot.writeFieldBegin('kickable_margin_delta_min', TType.DOUBLE, 15) + oprot.writeDouble(self.kickable_margin_delta_min) + oprot.writeFieldEnd() + if self.kickable_margin_delta_max is not None: + oprot.writeFieldBegin('kickable_margin_delta_max', TType.DOUBLE, 16) + oprot.writeDouble(self.kickable_margin_delta_max) + oprot.writeFieldEnd() + if self.kick_rand_delta_factor is not None: + oprot.writeFieldBegin('kick_rand_delta_factor', TType.DOUBLE, 17) + oprot.writeDouble(self.kick_rand_delta_factor) + oprot.writeFieldEnd() + if self.extra_stamina_delta_min is not None: + oprot.writeFieldBegin('extra_stamina_delta_min', TType.DOUBLE, 18) + oprot.writeDouble(self.extra_stamina_delta_min) + oprot.writeFieldEnd() + if self.extra_stamina_delta_max is not None: + oprot.writeFieldBegin('extra_stamina_delta_max', TType.DOUBLE, 19) + oprot.writeDouble(self.extra_stamina_delta_max) + oprot.writeFieldEnd() + if self.effort_max_delta_factor is not None: + oprot.writeFieldBegin('effort_max_delta_factor', TType.DOUBLE, 20) + oprot.writeDouble(self.effort_max_delta_factor) + oprot.writeFieldEnd() + if self.effort_min_delta_factor is not None: + oprot.writeFieldBegin('effort_min_delta_factor', TType.DOUBLE, 21) + oprot.writeDouble(self.effort_min_delta_factor) + oprot.writeFieldEnd() + if self.random_seed is not None: + oprot.writeFieldBegin('random_seed', TType.I32, 22) + oprot.writeI32(self.random_seed) + oprot.writeFieldEnd() + if self.new_dash_power_rate_delta_min is not None: + oprot.writeFieldBegin('new_dash_power_rate_delta_min', TType.DOUBLE, 23) + oprot.writeDouble(self.new_dash_power_rate_delta_min) + oprot.writeFieldEnd() + if self.new_dash_power_rate_delta_max is not None: + oprot.writeFieldBegin('new_dash_power_rate_delta_max', TType.DOUBLE, 24) + oprot.writeDouble(self.new_dash_power_rate_delta_max) + oprot.writeFieldEnd() + if self.new_stamina_inc_max_delta_factor is not None: + oprot.writeFieldBegin('new_stamina_inc_max_delta_factor', TType.DOUBLE, 25) + oprot.writeDouble(self.new_stamina_inc_max_delta_factor) + oprot.writeFieldEnd() + if self.kick_power_rate_delta_min is not None: + oprot.writeFieldBegin('kick_power_rate_delta_min', TType.DOUBLE, 26) + oprot.writeDouble(self.kick_power_rate_delta_min) + oprot.writeFieldEnd() + if self.kick_power_rate_delta_max is not None: + oprot.writeFieldBegin('kick_power_rate_delta_max', TType.DOUBLE, 27) + oprot.writeDouble(self.kick_power_rate_delta_max) + oprot.writeFieldEnd() + if self.foul_detect_probability_delta_factor is not None: + oprot.writeFieldBegin('foul_detect_probability_delta_factor', TType.DOUBLE, 28) + oprot.writeDouble(self.foul_detect_probability_delta_factor) + oprot.writeFieldEnd() + if self.catchable_area_l_stretch_min is not None: + oprot.writeFieldBegin('catchable_area_l_stretch_min', TType.DOUBLE, 29) + oprot.writeDouble(self.catchable_area_l_stretch_min) + oprot.writeFieldEnd() + if self.catchable_area_l_stretch_max is not None: + oprot.writeFieldBegin('catchable_area_l_stretch_max', TType.DOUBLE, 30) + oprot.writeDouble(self.catchable_area_l_stretch_max) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class PlayerType(object): + """ + Attributes: + - agent_type + - id + - stamina_inc_max + - player_decay + - inertia_moment + - dash_power_rate + - player_size + - kickable_margin + - kick_rand + - extra_stamina + - effort_max + - effort_min + - kick_power_rate + - foul_detect_probability + - catchable_area_l_stretch + - unum_far_length + - unum_too_far_length + - team_far_length + - team_too_far_length + - player_max_observation_length + - ball_vel_far_length + - ball_vel_too_far_length + - ball_max_observation_length + - flag_chg_far_length + - flag_chg_too_far_length + - flag_max_observation_length + - kickable_area + - reliable_catchable_dist + - max_catchable_dist + - real_speed_max + - player_speed_max2 + - real_speed_max2 + - cycles_to_reach_max_speed + - player_speed_max + + """ + + + def __init__(self, agent_type=None, id=None, stamina_inc_max=None, player_decay=None, inertia_moment=None, dash_power_rate=None, player_size=None, kickable_margin=None, kick_rand=None, extra_stamina=None, effort_max=None, effort_min=None, kick_power_rate=None, foul_detect_probability=None, catchable_area_l_stretch=None, unum_far_length=None, unum_too_far_length=None, team_far_length=None, team_too_far_length=None, player_max_observation_length=None, ball_vel_far_length=None, ball_vel_too_far_length=None, ball_max_observation_length=None, flag_chg_far_length=None, flag_chg_too_far_length=None, flag_max_observation_length=None, kickable_area=None, reliable_catchable_dist=None, max_catchable_dist=None, real_speed_max=None, player_speed_max2=None, real_speed_max2=None, cycles_to_reach_max_speed=None, player_speed_max=None,): + self.agent_type = agent_type + self.id = id + self.stamina_inc_max = stamina_inc_max + self.player_decay = player_decay + self.inertia_moment = inertia_moment + self.dash_power_rate = dash_power_rate + self.player_size = player_size + self.kickable_margin = kickable_margin + self.kick_rand = kick_rand + self.extra_stamina = extra_stamina + self.effort_max = effort_max + self.effort_min = effort_min + self.kick_power_rate = kick_power_rate + self.foul_detect_probability = foul_detect_probability + self.catchable_area_l_stretch = catchable_area_l_stretch + self.unum_far_length = unum_far_length + self.unum_too_far_length = unum_too_far_length + self.team_far_length = team_far_length + self.team_too_far_length = team_too_far_length + self.player_max_observation_length = player_max_observation_length + self.ball_vel_far_length = ball_vel_far_length + self.ball_vel_too_far_length = ball_vel_too_far_length + self.ball_max_observation_length = ball_max_observation_length + self.flag_chg_far_length = flag_chg_far_length + self.flag_chg_too_far_length = flag_chg_too_far_length + self.flag_max_observation_length = flag_max_observation_length + self.kickable_area = kickable_area + self.reliable_catchable_dist = reliable_catchable_dist + self.max_catchable_dist = max_catchable_dist + self.real_speed_max = real_speed_max + self.player_speed_max2 = player_speed_max2 + self.real_speed_max2 = real_speed_max2 + self.cycles_to_reach_max_speed = cycles_to_reach_max_speed + self.player_speed_max = player_speed_max + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.agent_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.I32: + self.id = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.DOUBLE: + self.stamina_inc_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 4: + if ftype == TType.DOUBLE: + self.player_decay = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 5: + if ftype == TType.DOUBLE: + self.inertia_moment = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 6: + if ftype == TType.DOUBLE: + self.dash_power_rate = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 7: + if ftype == TType.DOUBLE: + self.player_size = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 8: + if ftype == TType.DOUBLE: + self.kickable_margin = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 9: + if ftype == TType.DOUBLE: + self.kick_rand = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 10: + if ftype == TType.DOUBLE: + self.extra_stamina = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 11: + if ftype == TType.DOUBLE: + self.effort_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 12: + if ftype == TType.DOUBLE: + self.effort_min = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 13: + if ftype == TType.DOUBLE: + self.kick_power_rate = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 14: + if ftype == TType.DOUBLE: + self.foul_detect_probability = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 15: + if ftype == TType.DOUBLE: + self.catchable_area_l_stretch = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 16: + if ftype == TType.DOUBLE: + self.unum_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 17: + if ftype == TType.DOUBLE: + self.unum_too_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 18: + if ftype == TType.DOUBLE: + self.team_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 19: + if ftype == TType.DOUBLE: + self.team_too_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 20: + if ftype == TType.DOUBLE: + self.player_max_observation_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 21: + if ftype == TType.DOUBLE: + self.ball_vel_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 22: + if ftype == TType.DOUBLE: + self.ball_vel_too_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 23: + if ftype == TType.DOUBLE: + self.ball_max_observation_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 24: + if ftype == TType.DOUBLE: + self.flag_chg_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 25: + if ftype == TType.DOUBLE: + self.flag_chg_too_far_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 26: + if ftype == TType.DOUBLE: + self.flag_max_observation_length = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 27: + if ftype == TType.DOUBLE: + self.kickable_area = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 28: + if ftype == TType.DOUBLE: + self.reliable_catchable_dist = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 29: + if ftype == TType.DOUBLE: + self.max_catchable_dist = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 30: + if ftype == TType.DOUBLE: + self.real_speed_max = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 31: + if ftype == TType.DOUBLE: + self.player_speed_max2 = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 32: + if ftype == TType.DOUBLE: + self.real_speed_max2 = iprot.readDouble() + else: + iprot.skip(ftype) + elif fid == 33: + if ftype == TType.I32: + self.cycles_to_reach_max_speed = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 34: + if ftype == TType.DOUBLE: + self.player_speed_max = iprot.readDouble() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('PlayerType') + if self.agent_type is not None: + oprot.writeFieldBegin('agent_type', TType.I32, 1) + oprot.writeI32(self.agent_type) + oprot.writeFieldEnd() + if self.id is not None: + oprot.writeFieldBegin('id', TType.I32, 2) + oprot.writeI32(self.id) + oprot.writeFieldEnd() + if self.stamina_inc_max is not None: + oprot.writeFieldBegin('stamina_inc_max', TType.DOUBLE, 3) + oprot.writeDouble(self.stamina_inc_max) + oprot.writeFieldEnd() + if self.player_decay is not None: + oprot.writeFieldBegin('player_decay', TType.DOUBLE, 4) + oprot.writeDouble(self.player_decay) + oprot.writeFieldEnd() + if self.inertia_moment is not None: + oprot.writeFieldBegin('inertia_moment', TType.DOUBLE, 5) + oprot.writeDouble(self.inertia_moment) + oprot.writeFieldEnd() + if self.dash_power_rate is not None: + oprot.writeFieldBegin('dash_power_rate', TType.DOUBLE, 6) + oprot.writeDouble(self.dash_power_rate) + oprot.writeFieldEnd() + if self.player_size is not None: + oprot.writeFieldBegin('player_size', TType.DOUBLE, 7) + oprot.writeDouble(self.player_size) + oprot.writeFieldEnd() + if self.kickable_margin is not None: + oprot.writeFieldBegin('kickable_margin', TType.DOUBLE, 8) + oprot.writeDouble(self.kickable_margin) + oprot.writeFieldEnd() + if self.kick_rand is not None: + oprot.writeFieldBegin('kick_rand', TType.DOUBLE, 9) + oprot.writeDouble(self.kick_rand) + oprot.writeFieldEnd() + if self.extra_stamina is not None: + oprot.writeFieldBegin('extra_stamina', TType.DOUBLE, 10) + oprot.writeDouble(self.extra_stamina) + oprot.writeFieldEnd() + if self.effort_max is not None: + oprot.writeFieldBegin('effort_max', TType.DOUBLE, 11) + oprot.writeDouble(self.effort_max) + oprot.writeFieldEnd() + if self.effort_min is not None: + oprot.writeFieldBegin('effort_min', TType.DOUBLE, 12) + oprot.writeDouble(self.effort_min) + oprot.writeFieldEnd() + if self.kick_power_rate is not None: + oprot.writeFieldBegin('kick_power_rate', TType.DOUBLE, 13) + oprot.writeDouble(self.kick_power_rate) + oprot.writeFieldEnd() + if self.foul_detect_probability is not None: + oprot.writeFieldBegin('foul_detect_probability', TType.DOUBLE, 14) + oprot.writeDouble(self.foul_detect_probability) + oprot.writeFieldEnd() + if self.catchable_area_l_stretch is not None: + oprot.writeFieldBegin('catchable_area_l_stretch', TType.DOUBLE, 15) + oprot.writeDouble(self.catchable_area_l_stretch) + oprot.writeFieldEnd() + if self.unum_far_length is not None: + oprot.writeFieldBegin('unum_far_length', TType.DOUBLE, 16) + oprot.writeDouble(self.unum_far_length) + oprot.writeFieldEnd() + if self.unum_too_far_length is not None: + oprot.writeFieldBegin('unum_too_far_length', TType.DOUBLE, 17) + oprot.writeDouble(self.unum_too_far_length) + oprot.writeFieldEnd() + if self.team_far_length is not None: + oprot.writeFieldBegin('team_far_length', TType.DOUBLE, 18) + oprot.writeDouble(self.team_far_length) + oprot.writeFieldEnd() + if self.team_too_far_length is not None: + oprot.writeFieldBegin('team_too_far_length', TType.DOUBLE, 19) + oprot.writeDouble(self.team_too_far_length) + oprot.writeFieldEnd() + if self.player_max_observation_length is not None: + oprot.writeFieldBegin('player_max_observation_length', TType.DOUBLE, 20) + oprot.writeDouble(self.player_max_observation_length) + oprot.writeFieldEnd() + if self.ball_vel_far_length is not None: + oprot.writeFieldBegin('ball_vel_far_length', TType.DOUBLE, 21) + oprot.writeDouble(self.ball_vel_far_length) + oprot.writeFieldEnd() + if self.ball_vel_too_far_length is not None: + oprot.writeFieldBegin('ball_vel_too_far_length', TType.DOUBLE, 22) + oprot.writeDouble(self.ball_vel_too_far_length) + oprot.writeFieldEnd() + if self.ball_max_observation_length is not None: + oprot.writeFieldBegin('ball_max_observation_length', TType.DOUBLE, 23) + oprot.writeDouble(self.ball_max_observation_length) + oprot.writeFieldEnd() + if self.flag_chg_far_length is not None: + oprot.writeFieldBegin('flag_chg_far_length', TType.DOUBLE, 24) + oprot.writeDouble(self.flag_chg_far_length) + oprot.writeFieldEnd() + if self.flag_chg_too_far_length is not None: + oprot.writeFieldBegin('flag_chg_too_far_length', TType.DOUBLE, 25) + oprot.writeDouble(self.flag_chg_too_far_length) + oprot.writeFieldEnd() + if self.flag_max_observation_length is not None: + oprot.writeFieldBegin('flag_max_observation_length', TType.DOUBLE, 26) + oprot.writeDouble(self.flag_max_observation_length) + oprot.writeFieldEnd() + if self.kickable_area is not None: + oprot.writeFieldBegin('kickable_area', TType.DOUBLE, 27) + oprot.writeDouble(self.kickable_area) + oprot.writeFieldEnd() + if self.reliable_catchable_dist is not None: + oprot.writeFieldBegin('reliable_catchable_dist', TType.DOUBLE, 28) + oprot.writeDouble(self.reliable_catchable_dist) + oprot.writeFieldEnd() + if self.max_catchable_dist is not None: + oprot.writeFieldBegin('max_catchable_dist', TType.DOUBLE, 29) + oprot.writeDouble(self.max_catchable_dist) + oprot.writeFieldEnd() + if self.real_speed_max is not None: + oprot.writeFieldBegin('real_speed_max', TType.DOUBLE, 30) + oprot.writeDouble(self.real_speed_max) + oprot.writeFieldEnd() + if self.player_speed_max2 is not None: + oprot.writeFieldBegin('player_speed_max2', TType.DOUBLE, 31) + oprot.writeDouble(self.player_speed_max2) + oprot.writeFieldEnd() + if self.real_speed_max2 is not None: + oprot.writeFieldBegin('real_speed_max2', TType.DOUBLE, 32) + oprot.writeDouble(self.real_speed_max2) + oprot.writeFieldEnd() + if self.cycles_to_reach_max_speed is not None: + oprot.writeFieldBegin('cycles_to_reach_max_speed', TType.I32, 33) + oprot.writeI32(self.cycles_to_reach_max_speed) + oprot.writeFieldEnd() + if self.player_speed_max is not None: + oprot.writeFieldBegin('player_speed_max', TType.DOUBLE, 34) + oprot.writeDouble(self.player_speed_max) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class Empty(object): + + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('Empty') + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class RegisterRequest(object): + """ + Attributes: + - agent_type + - team_name + - uniform_number + + """ + + + def __init__(self, agent_type=None, team_name=None, uniform_number=None,): + self.agent_type = agent_type + self.team_name = team_name + self.uniform_number = uniform_number + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.agent_type = iprot.readI32() + else: + iprot.skip(ftype) + elif fid == 2: + if ftype == TType.STRING: + self.team_name = iprot.readString().decode('utf-8', errors='replace') if sys.version_info[0] == 2 else iprot.readString() + else: + iprot.skip(ftype) + elif fid == 3: + if ftype == TType.I32: + self.uniform_number = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('RegisterRequest') + if self.agent_type is not None: + oprot.writeFieldBegin('agent_type', TType.I32, 1) + oprot.writeI32(self.agent_type) + oprot.writeFieldEnd() + if self.team_name is not None: + oprot.writeFieldBegin('team_name', TType.STRING, 2) + oprot.writeString(self.team_name.encode('utf-8') if sys.version_info[0] == 2 else self.team_name) + oprot.writeFieldEnd() + if self.uniform_number is not None: + oprot.writeFieldBegin('uniform_number', TType.I32, 3) + oprot.writeI32(self.uniform_number) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) + + +class RegisterResponse(object): + """ + Attributes: + - client_id + + """ + + + def __init__(self, client_id=None,): + self.client_id = client_id + + def read(self, iprot): + if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: + iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) + return + iprot.readStructBegin() + while True: + (fname, ftype, fid) = iprot.readFieldBegin() + if ftype == TType.STOP: + break + if fid == 1: + if ftype == TType.I32: + self.client_id = iprot.readI32() + else: + iprot.skip(ftype) + else: + iprot.skip(ftype) + iprot.readFieldEnd() + iprot.readStructEnd() + + def write(self, oprot): + if oprot._fast_encode is not None and self.thrift_spec is not None: + oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) + return + oprot.writeStructBegin('RegisterResponse') + if self.client_id is not None: + oprot.writeFieldBegin('client_id', TType.I32, 1) + oprot.writeI32(self.client_id) + oprot.writeFieldEnd() + oprot.writeFieldStop() + oprot.writeStructEnd() + + def validate(self): + return + + def __repr__(self): + L = ['%s=%r' % (key, value) + for key, value in self.__dict__.items()] + return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ + + def __ne__(self, other): + return not (self == other) +all_structs.append(RpcVector2D) +RpcVector2D.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'x', None, None, ), # 1 + (2, TType.DOUBLE, 'y', None, None, ), # 2 + (3, TType.DOUBLE, 'dist', None, None, ), # 3 + (4, TType.DOUBLE, 'angle', None, None, ), # 4 +) +all_structs.append(Ball) +Ball.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 1 + (2, TType.STRUCT, 'relative_position', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'seen_position', [RpcVector2D, None], None, ), # 3 + (4, TType.STRUCT, 'heard_position', [RpcVector2D, None], None, ), # 4 + (5, TType.STRUCT, 'velocity', [RpcVector2D, None], None, ), # 5 + (6, TType.STRUCT, 'seen_velocity', [RpcVector2D, None], None, ), # 6 + (7, TType.STRUCT, 'heard_velocity', [RpcVector2D, None], None, ), # 7 + (8, TType.I32, 'pos_count', None, None, ), # 8 + (9, TType.I32, 'seen_pos_count', None, None, ), # 9 + (10, TType.I32, 'heard_pos_count', None, None, ), # 10 + (11, TType.I32, 'vel_count', None, None, ), # 11 + (12, TType.I32, 'seen_vel_count', None, None, ), # 12 + (13, TType.I32, 'heard_vel_count', None, None, ), # 13 + (14, TType.I32, 'lost_count', None, None, ), # 14 + (15, TType.I32, 'ghost_count', None, None, ), # 15 + (16, TType.DOUBLE, 'dist_from_self', None, None, ), # 16 + (17, TType.DOUBLE, 'angle_from_self', None, None, ), # 17 +) +all_structs.append(Player) +Player.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 1 + (2, TType.STRUCT, 'seen_position', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'heard_position', [RpcVector2D, None], None, ), # 3 + (4, TType.STRUCT, 'velocity', [RpcVector2D, None], None, ), # 4 + (5, TType.STRUCT, 'seen_velocity', [RpcVector2D, None], None, ), # 5 + (6, TType.I32, 'pos_count', None, None, ), # 6 + (7, TType.I32, 'seen_pos_count', None, None, ), # 7 + (8, TType.I32, 'heard_pos_count', None, None, ), # 8 + (9, TType.I32, 'vel_count', None, None, ), # 9 + (10, TType.I32, 'seen_vel_count', None, None, ), # 10 + (11, TType.I32, 'ghost_count', None, None, ), # 11 + (12, TType.DOUBLE, 'dist_from_self', None, None, ), # 12 + (13, TType.DOUBLE, 'angle_from_self', None, None, ), # 13 + (14, TType.I32, 'id', None, None, ), # 14 + (15, TType.I32, 'side', None, None, ), # 15 + (16, TType.I32, 'uniform_number', None, None, ), # 16 + (17, TType.I32, 'uniform_number_count', None, None, ), # 17 + (18, TType.BOOL, 'is_goalie', None, None, ), # 18 + (19, TType.DOUBLE, 'body_direction', None, None, ), # 19 + (20, TType.I32, 'body_direction_count', None, None, ), # 20 + (21, TType.DOUBLE, 'face_direction', None, None, ), # 21 + (22, TType.I32, 'face_direction_count', None, None, ), # 22 + (23, TType.DOUBLE, 'point_to_direction', None, None, ), # 23 + (24, TType.I32, 'point_to_direction_count', None, None, ), # 24 + (25, TType.BOOL, 'is_kicking', None, None, ), # 25 + (26, TType.DOUBLE, 'dist_from_ball', None, None, ), # 26 + (27, TType.DOUBLE, 'angle_from_ball', None, None, ), # 27 + (28, TType.I32, 'ball_reach_steps', None, None, ), # 28 + (29, TType.BOOL, 'is_tackling', None, None, ), # 29 + (30, TType.I32, 'type_id', None, None, ), # 30 +) +all_structs.append(Self) +Self.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 1 + (2, TType.STRUCT, 'seen_position', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'heard_position', [RpcVector2D, None], None, ), # 3 + (4, TType.STRUCT, 'velocity', [RpcVector2D, None], None, ), # 4 + (5, TType.STRUCT, 'seen_velocity', [RpcVector2D, None], None, ), # 5 + (6, TType.I32, 'pos_count', None, None, ), # 6 + (7, TType.I32, 'seen_pos_count', None, None, ), # 7 + (8, TType.I32, 'heard_pos_count', None, None, ), # 8 + (9, TType.I32, 'vel_count', None, None, ), # 9 + (10, TType.I32, 'seen_vel_count', None, None, ), # 10 + (11, TType.I32, 'ghost_count', None, None, ), # 11 + (12, TType.I32, 'id', None, None, ), # 12 + (13, TType.I32, 'side', None, None, ), # 13 + (14, TType.I32, 'uniform_number', None, None, ), # 14 + (15, TType.I32, 'uniform_number_count', None, None, ), # 15 + (16, TType.BOOL, 'is_goalie', None, None, ), # 16 + (17, TType.DOUBLE, 'body_direction', None, None, ), # 17 + (18, TType.I32, 'body_direction_count', None, None, ), # 18 + (19, TType.DOUBLE, 'face_direction', None, None, ), # 19 + (20, TType.I32, 'face_direction_count', None, None, ), # 20 + (21, TType.DOUBLE, 'point_to_direction', None, None, ), # 21 + (22, TType.I32, 'point_to_direction_count', None, None, ), # 22 + (23, TType.BOOL, 'is_kicking', None, None, ), # 23 + (24, TType.DOUBLE, 'dist_from_ball', None, None, ), # 24 + (25, TType.DOUBLE, 'angle_from_ball', None, None, ), # 25 + (26, TType.I32, 'ball_reach_steps', None, None, ), # 26 + (27, TType.BOOL, 'is_tackling', None, None, ), # 27 + (28, TType.DOUBLE, 'relative_neck_direction', None, None, ), # 28 + (29, TType.DOUBLE, 'stamina', None, None, ), # 29 + (30, TType.BOOL, 'is_kickable', None, None, ), # 30 + (31, TType.DOUBLE, 'catch_probability', None, None, ), # 31 + (32, TType.DOUBLE, 'tackle_probability', None, None, ), # 32 + (33, TType.DOUBLE, 'foul_probability', None, None, ), # 33 + (34, TType.I32, 'view_width', None, None, ), # 34 + (35, TType.I32, 'type_id', None, None, ), # 35 + (36, TType.DOUBLE, 'kick_rate', None, None, ), # 36 +) +all_structs.append(InterceptInfo) +InterceptInfo.thrift_spec = ( + None, # 0 + (1, TType.I32, 'action_type', None, None, ), # 1 + (2, TType.I32, 'turn_steps', None, None, ), # 2 + (3, TType.DOUBLE, 'turn_angle', None, None, ), # 3 + (4, TType.I32, 'dash_steps', None, None, ), # 4 + (5, TType.DOUBLE, 'dash_power', None, None, ), # 5 + (6, TType.DOUBLE, 'dash_dir', None, None, ), # 6 + (7, TType.STRUCT, 'final_self_position', [RpcVector2D, None], None, ), # 7 + (8, TType.DOUBLE, 'final_ball_dist', None, None, ), # 8 + (9, TType.DOUBLE, 'final_stamina', None, None, ), # 9 + (10, TType.DOUBLE, 'value', None, None, ), # 10 +) +all_structs.append(InterceptTable) +InterceptTable.thrift_spec = ( + None, # 0 + (1, TType.I32, 'self_reach_steps', None, None, ), # 1 + (2, TType.I32, 'first_teammate_reach_steps', None, None, ), # 2 + (3, TType.I32, 'second_teammate_reach_steps', None, None, ), # 3 + (4, TType.I32, 'first_opponent_reach_steps', None, None, ), # 4 + (5, TType.I32, 'second_opponent_reach_steps', None, None, ), # 5 + (6, TType.I32, 'first_teammate_id', None, None, ), # 6 + (7, TType.I32, 'second_teammate_id', None, None, ), # 7 + (8, TType.I32, 'first_opponent_id', None, None, ), # 8 + (9, TType.I32, 'second_opponent_id', None, None, ), # 9 + (10, TType.LIST, 'self_intercept_info', (TType.STRUCT, [InterceptInfo, None], False), None, ), # 10 +) +all_structs.append(WorldModel) +WorldModel.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'intercept_table', [InterceptTable, None], None, ), # 1 + (2, TType.STRING, 'our_team_name', 'UTF8', None, ), # 2 + (3, TType.STRING, 'their_team_name', 'UTF8', None, ), # 3 + (4, TType.I32, 'our_side', None, None, ), # 4 + (5, TType.I32, 'last_set_play_start_time', None, None, ), # 5 + (6, TType.STRUCT, 'myself', [Self, None], None, ), # 6 + (7, TType.STRUCT, 'ball', [Ball, None], None, ), # 7 + (8, TType.LIST, 'teammates', (TType.STRUCT, [Player, None], False), None, ), # 8 + (9, TType.LIST, 'opponents', (TType.STRUCT, [Player, None], False), None, ), # 9 + (10, TType.LIST, 'unknowns', (TType.STRUCT, [Player, None], False), None, ), # 10 + (11, TType.MAP, 'our_players_dict', (TType.I32, None, TType.STRUCT, [Player, None], False), None, ), # 11 + (12, TType.MAP, 'their_players_dict', (TType.I32, None, TType.STRUCT, [Player, None], False), None, ), # 12 + (13, TType.I32, 'our_goalie_uniform_number', None, None, ), # 13 + (14, TType.I32, 'their_goalie_uniform_number', None, None, ), # 14 + (15, TType.DOUBLE, 'offside_line_x', None, None, ), # 15 + (16, TType.I32, 'offside_line_x_count', None, None, ), # 16 + (17, TType.I32, 'kickable_teammate_id', None, None, ), # 17 + (18, TType.I32, 'kickable_opponent_id', None, None, ), # 18 + (19, TType.I32, 'last_kick_side', None, None, ), # 19 + (20, TType.I32, 'last_kicker_uniform_number', None, None, ), # 20 + (21, TType.I32, 'cycle', None, None, ), # 21 + (22, TType.I32, 'game_mode_type', None, None, ), # 22 + (23, TType.I32, 'left_team_score', None, None, ), # 23 + (24, TType.I32, 'right_team_score', None, None, ), # 24 + (25, TType.BOOL, 'is_our_set_play', None, None, ), # 25 + (26, TType.BOOL, 'is_their_set_play', None, None, ), # 26 + (27, TType.I32, 'stoped_cycle', None, None, ), # 27 + (28, TType.I32, 'our_team_score', None, None, ), # 28 + (29, TType.I32, 'their_team_score', None, None, ), # 29 + (30, TType.BOOL, 'is_penalty_kick_mode', None, None, ), # 30 + (31, TType.MAP, 'helios_home_positions', (TType.I32, None, TType.STRUCT, [RpcVector2D, None], False), None, ), # 31 +) +all_structs.append(State) +State.thrift_spec = ( + None, # 0 + (1, TType.I32, 'agent_type', None, None, ), # 1 + (2, TType.STRUCT, 'world_model', [WorldModel, None], None, ), # 2 + (3, TType.STRUCT, 'full_world_model', [WorldModel, None], None, ), # 3 +) +all_structs.append(InitMessage) +InitMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'agent_type', None, None, ), # 1 + (2, TType.BOOL, 'debug_mode', None, None, ), # 2 +) +all_structs.append(Dash) +Dash.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'power', None, None, ), # 1 + (2, TType.DOUBLE, 'relative_direction', None, None, ), # 2 +) +all_structs.append(Turn) +Turn.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'relative_direction', None, None, ), # 1 +) +all_structs.append(Kick) +Kick.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'power', None, None, ), # 1 + (2, TType.DOUBLE, 'relative_direction', None, None, ), # 2 +) +all_structs.append(Tackle) +Tackle.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'power_or_dir', None, None, ), # 1 + (2, TType.BOOL, 'foul', None, None, ), # 2 +) +all_structs.append(Catch) +Catch.thrift_spec = ( +) +all_structs.append(Move) +Move.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'x', None, None, ), # 1 + (2, TType.DOUBLE, 'y', None, None, ), # 2 +) +all_structs.append(TurnNeck) +TurnNeck.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'moment', None, None, ), # 1 +) +all_structs.append(ChangeView) +ChangeView.thrift_spec = ( + None, # 0 + (1, TType.I32, 'view_width', None, None, ), # 1 +) +all_structs.append(BallMessage) +BallMessage.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'ball_position', [RpcVector2D, None], None, ), # 1 + (2, TType.STRUCT, 'ball_velocity', [RpcVector2D, None], None, ), # 2 +) +all_structs.append(PassMessage) +PassMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'receiver_uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'receiver_point', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'ball_position', [RpcVector2D, None], None, ), # 3 + (4, TType.STRUCT, 'ball_velocity', [RpcVector2D, None], None, ), # 4 +) +all_structs.append(InterceptMessage) +InterceptMessage.thrift_spec = ( + None, # 0 + (1, TType.BOOL, 'our', None, None, ), # 1 + (2, TType.I32, 'uniform_number', None, None, ), # 2 + (3, TType.I32, 'cycle', None, None, ), # 3 +) +all_structs.append(GoalieMessage) +GoalieMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'goalie_uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'goalie_position', [RpcVector2D, None], None, ), # 2 + (3, TType.DOUBLE, 'goalie_body_direction', None, None, ), # 3 +) +all_structs.append(GoalieAndPlayerMessage) +GoalieAndPlayerMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'goalie_uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'goalie_position', [RpcVector2D, None], None, ), # 2 + (3, TType.DOUBLE, 'goalie_body_direction', None, None, ), # 3 + (4, TType.I32, 'player_uniform_number', None, None, ), # 4 + (5, TType.STRUCT, 'player_position', [RpcVector2D, None], None, ), # 5 +) +all_structs.append(OffsideLineMessage) +OffsideLineMessage.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'offside_line_x', None, None, ), # 1 +) +all_structs.append(DefenseLineMessage) +DefenseLineMessage.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'defense_line_x', None, None, ), # 1 +) +all_structs.append(WaitRequestMessage) +WaitRequestMessage.thrift_spec = ( +) +all_structs.append(SetplayMessage) +SetplayMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'wait_step', None, None, ), # 1 +) +all_structs.append(PassRequestMessage) +PassRequestMessage.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 +) +all_structs.append(StaminaMessage) +StaminaMessage.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'stamina', None, None, ), # 1 +) +all_structs.append(RecoveryMessage) +RecoveryMessage.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'recovery', None, None, ), # 1 +) +all_structs.append(StaminaCapacityMessage) +StaminaCapacityMessage.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'stamina_capacity', None, None, ), # 1 +) +all_structs.append(DribbleMessage) +DribbleMessage.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.I32, 'queue_count', None, None, ), # 2 +) +all_structs.append(BallGoalieMessage) +BallGoalieMessage.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'ball_position', [RpcVector2D, None], None, ), # 1 + (2, TType.STRUCT, 'ball_velocity', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'goalie_position', [RpcVector2D, None], None, ), # 3 + (4, TType.DOUBLE, 'goalie_body_direction', None, None, ), # 4 +) +all_structs.append(OnePlayerMessage) +OnePlayerMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 2 +) +all_structs.append(TwoPlayerMessage) +TwoPlayerMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'first_uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'first_position', [RpcVector2D, None], None, ), # 2 + (3, TType.I32, 'second_uniform_number', None, None, ), # 3 + (4, TType.STRUCT, 'second_position', [RpcVector2D, None], None, ), # 4 +) +all_structs.append(ThreePlayerMessage) +ThreePlayerMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'first_uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'first_position', [RpcVector2D, None], None, ), # 2 + (3, TType.I32, 'second_uniform_number', None, None, ), # 3 + (4, TType.STRUCT, 'second_position', [RpcVector2D, None], None, ), # 4 + (5, TType.I32, 'third_uniform_number', None, None, ), # 5 + (6, TType.STRUCT, 'third_position', [RpcVector2D, None], None, ), # 6 +) +all_structs.append(SelfMessage) +SelfMessage.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'self_position', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'self_body_direction', None, None, ), # 2 + (3, TType.DOUBLE, 'self_stamina', None, None, ), # 3 +) +all_structs.append(TeammateMessage) +TeammateMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 2 + (3, TType.DOUBLE, 'body_direction', None, None, ), # 3 +) +all_structs.append(OpponentMessage) +OpponentMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'uniform_number', None, None, ), # 1 + (2, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 2 + (3, TType.DOUBLE, 'body_direction', None, None, ), # 3 +) +all_structs.append(BallPlayerMessage) +BallPlayerMessage.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'ball_position', [RpcVector2D, None], None, ), # 1 + (2, TType.STRUCT, 'ball_velocity', [RpcVector2D, None], None, ), # 2 + (3, TType.I32, 'uniform_number', None, None, ), # 3 + (4, TType.STRUCT, 'player_position', [RpcVector2D, None], None, ), # 4 + (5, TType.DOUBLE, 'body_direction', None, None, ), # 5 +) +all_structs.append(Say) +Say.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'ball_message', [BallMessage, None], None, ), # 1 + (2, TType.STRUCT, 'pass_message', [PassMessage, None], None, ), # 2 + (3, TType.STRUCT, 'intercept_message', [InterceptMessage, None], None, ), # 3 + (4, TType.STRUCT, 'goalie_message', [GoalieMessage, None], None, ), # 4 + (5, TType.STRUCT, 'goalie_and_player_message', [GoalieAndPlayerMessage, None], None, ), # 5 + (6, TType.STRUCT, 'offside_line_message', [OffsideLineMessage, None], None, ), # 6 + (7, TType.STRUCT, 'defense_line_message', [DefenseLineMessage, None], None, ), # 7 + (8, TType.STRUCT, 'wait_request_message', [WaitRequestMessage, None], None, ), # 8 + (9, TType.STRUCT, 'setplay_message', [SetplayMessage, None], None, ), # 9 + (10, TType.STRUCT, 'pass_request_message', [PassRequestMessage, None], None, ), # 10 + (11, TType.STRUCT, 'stamina_message', [StaminaMessage, None], None, ), # 11 + (12, TType.STRUCT, 'recovery_message', [RecoveryMessage, None], None, ), # 12 + (13, TType.STRUCT, 'stamina_capacity_message', [StaminaCapacityMessage, None], None, ), # 13 + (14, TType.STRUCT, 'dribble_message', [DribbleMessage, None], None, ), # 14 + (15, TType.STRUCT, 'ball_goalie_message', [BallGoalieMessage, None], None, ), # 15 + (16, TType.STRUCT, 'one_player_message', [OnePlayerMessage, None], None, ), # 16 + (17, TType.STRUCT, 'two_player_message', [TwoPlayerMessage, None], None, ), # 17 + (18, TType.STRUCT, 'three_player_message', [ThreePlayerMessage, None], None, ), # 18 + (19, TType.STRUCT, 'self_message', [SelfMessage, None], None, ), # 19 + (20, TType.STRUCT, 'teammate_message', [TeammateMessage, None], None, ), # 20 + (21, TType.STRUCT, 'opponent_message', [OpponentMessage, None], None, ), # 21 + (22, TType.STRUCT, 'ball_player_message', [BallPlayerMessage, None], None, ), # 22 +) +all_structs.append(PointTo) +PointTo.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'x', None, None, ), # 1 + (2, TType.DOUBLE, 'y', None, None, ), # 2 +) +all_structs.append(PointToOf) +PointToOf.thrift_spec = ( +) +all_structs.append(AttentionTo) +AttentionTo.thrift_spec = ( + None, # 0 + (1, TType.I32, 'side', None, None, ), # 1 + (2, TType.I32, 'unum', None, None, ), # 2 +) +all_structs.append(AttentionToOf) +AttentionToOf.thrift_spec = ( +) +all_structs.append(AddText) +AddText.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRING, 'message', 'UTF8', None, ), # 2 +) +all_structs.append(AddPoint) +AddPoint.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRUCT, 'point', [RpcVector2D, None], None, ), # 2 + (3, TType.STRING, 'color', 'UTF8', None, ), # 3 +) +all_structs.append(AddLine) +AddLine.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRUCT, 'start_point', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'end_point', [RpcVector2D, None], None, ), # 3 + (4, TType.STRING, 'color', 'UTF8', None, ), # 4 +) +all_structs.append(AddArc) +AddArc.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRUCT, 'center', [RpcVector2D, None], None, ), # 2 + (3, TType.DOUBLE, 'radius', None, None, ), # 3 + (4, TType.DOUBLE, 'start_angle', None, None, ), # 4 + (5, TType.DOUBLE, 'span_angel', None, None, ), # 5 + (6, TType.STRING, 'color', 'UTF8', None, ), # 6 +) +all_structs.append(AddCircle) +AddCircle.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRUCT, 'center', [RpcVector2D, None], None, ), # 2 + (3, TType.DOUBLE, 'radius', None, None, ), # 3 + (4, TType.STRING, 'color', 'UTF8', None, ), # 4 + (5, TType.BOOL, 'fill', None, None, ), # 5 +) +all_structs.append(AddTriangle) +AddTriangle.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRUCT, 'point1', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'point2', [RpcVector2D, None], None, ), # 3 + (4, TType.STRUCT, 'point3', [RpcVector2D, None], None, ), # 4 + (5, TType.STRING, 'color', 'UTF8', None, ), # 5 + (6, TType.BOOL, 'fill', None, None, ), # 6 +) +all_structs.append(AddRectangle) +AddRectangle.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.DOUBLE, 'left', None, None, ), # 2 + (3, TType.DOUBLE, 'top', None, None, ), # 3 + (4, TType.DOUBLE, 'length', None, None, ), # 4 + (5, TType.DOUBLE, 'width', None, None, ), # 5 + (6, TType.STRING, 'color', 'UTF8', None, ), # 6 + (7, TType.BOOL, 'fill', None, None, ), # 7 +) +all_structs.append(AddSector) +AddSector.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRUCT, 'center', [RpcVector2D, None], None, ), # 2 + (3, TType.DOUBLE, 'min_radius', None, None, ), # 3 + (4, TType.DOUBLE, 'max_radius', None, None, ), # 4 + (5, TType.DOUBLE, 'start_angle', None, None, ), # 5 + (6, TType.DOUBLE, 'span_angel', None, None, ), # 6 + (7, TType.STRING, 'color', 'UTF8', None, ), # 7 + (8, TType.BOOL, 'fill', None, None, ), # 8 +) +all_structs.append(AddMessage) +AddMessage.thrift_spec = ( + None, # 0 + (1, TType.I32, 'level', None, None, ), # 1 + (2, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 2 + (3, TType.STRING, 'message', 'UTF8', None, ), # 3 + (4, TType.STRING, 'color', 'UTF8', None, ), # 4 +) +all_structs.append(Log) +Log.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'add_text', [AddText, None], None, ), # 1 + (2, TType.STRUCT, 'add_point', [AddPoint, None], None, ), # 2 + (3, TType.STRUCT, 'add_line', [AddLine, None], None, ), # 3 + (4, TType.STRUCT, 'add_arc', [AddArc, None], None, ), # 4 + (5, TType.STRUCT, 'add_circle', [AddCircle, None], None, ), # 5 + (6, TType.STRUCT, 'add_triangle', [AddTriangle, None], None, ), # 6 + (7, TType.STRUCT, 'add_rectangle', [AddRectangle, None], None, ), # 7 + (8, TType.STRUCT, 'add_sector', [AddSector, None], None, ), # 8 + (9, TType.STRUCT, 'add_message', [AddMessage, None], None, ), # 9 +) +all_structs.append(DebugClient) +DebugClient.thrift_spec = ( + None, # 0 + (1, TType.STRING, 'message', 'UTF8', None, ), # 1 +) +all_structs.append(Body_GoToPoint) +Body_GoToPoint.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'distance_threshold', None, None, ), # 2 + (3, TType.DOUBLE, 'max_dash_power', None, None, ), # 3 +) +all_structs.append(Body_SmartKick) +Body_SmartKick.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'first_speed', None, None, ), # 2 + (3, TType.DOUBLE, 'first_speed_threshold', None, None, ), # 3 + (4, TType.I32, 'max_steps', None, None, ), # 4 +) +all_structs.append(Bhv_BeforeKickOff) +Bhv_BeforeKickOff.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'point', [RpcVector2D, None], None, ), # 1 +) +all_structs.append(Bhv_BodyNeckToBall) +Bhv_BodyNeckToBall.thrift_spec = ( +) +all_structs.append(Bhv_BodyNeckToPoint) +Bhv_BodyNeckToPoint.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'point', [RpcVector2D, None], None, ), # 1 +) +all_structs.append(Bhv_Emergency) +Bhv_Emergency.thrift_spec = ( +) +all_structs.append(Bhv_GoToPointLookBall) +Bhv_GoToPointLookBall.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'distance_threshold', None, None, ), # 2 + (3, TType.DOUBLE, 'max_dash_power', None, None, ), # 3 +) +all_structs.append(Bhv_NeckBodyToBall) +Bhv_NeckBodyToBall.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'angle_buf', None, None, ), # 1 +) +all_structs.append(Bhv_NeckBodyToPoint) +Bhv_NeckBodyToPoint.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'angle_buf', None, None, ), # 2 +) +all_structs.append(Bhv_ScanField) +Bhv_ScanField.thrift_spec = ( +) +all_structs.append(Body_AdvanceBall) +Body_AdvanceBall.thrift_spec = ( +) +all_structs.append(Body_ClearBall) +Body_ClearBall.thrift_spec = ( +) +all_structs.append(Body_Dribble) +Body_Dribble.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'distance_threshold', None, None, ), # 2 + (3, TType.DOUBLE, 'dash_power', None, None, ), # 3 + (4, TType.I32, 'dash_count', None, None, ), # 4 + (5, TType.BOOL, 'dodge', None, None, ), # 5 +) +all_structs.append(Body_GoToPointDodge) +Body_GoToPointDodge.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'dash_power', None, None, ), # 2 +) +all_structs.append(Body_HoldBall) +Body_HoldBall.thrift_spec = ( + None, # 0 + (1, TType.BOOL, 'do_turn', None, None, ), # 1 + (2, TType.STRUCT, 'turn_target_point', [RpcVector2D, None], None, ), # 2 + (3, TType.STRUCT, 'kick_target_point', [RpcVector2D, None], None, ), # 3 +) +all_structs.append(Body_Intercept) +Body_Intercept.thrift_spec = ( + None, # 0 + (1, TType.BOOL, 'save_recovery', None, None, ), # 1 + (2, TType.STRUCT, 'face_point', [RpcVector2D, None], None, ), # 2 +) +all_structs.append(Body_KickOneStep) +Body_KickOneStep.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'first_speed', None, None, ), # 2 + (3, TType.BOOL, 'force_mode', None, None, ), # 3 +) +all_structs.append(Body_StopBall) +Body_StopBall.thrift_spec = ( +) +all_structs.append(Body_StopDash) +Body_StopDash.thrift_spec = ( + None, # 0 + (1, TType.BOOL, 'save_recovery', None, None, ), # 1 +) +all_structs.append(Body_TackleToPoint) +Body_TackleToPoint.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.DOUBLE, 'min_probability', None, None, ), # 2 + (3, TType.DOUBLE, 'min_speed', None, None, ), # 3 +) +all_structs.append(Body_TurnToAngle) +Body_TurnToAngle.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'angle', None, None, ), # 1 +) +all_structs.append(Body_TurnToBall) +Body_TurnToBall.thrift_spec = ( + None, # 0 + (1, TType.I32, 'cycle', None, None, ), # 1 +) +all_structs.append(Body_TurnToPoint) +Body_TurnToPoint.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 + (2, TType.I32, 'cycle', None, None, ), # 2 +) +all_structs.append(Focus_MoveToPoint) +Focus_MoveToPoint.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 +) +all_structs.append(Focus_Reset) +Focus_Reset.thrift_spec = ( +) +all_structs.append(Neck_ScanField) +Neck_ScanField.thrift_spec = ( +) +all_structs.append(Neck_ScanPlayers) +Neck_ScanPlayers.thrift_spec = ( +) +all_structs.append(Neck_TurnToBallAndPlayer) +Neck_TurnToBallAndPlayer.thrift_spec = ( + None, # 0 + (1, TType.I32, 'side', None, None, ), # 1 + (2, TType.I32, 'uniform_number', None, None, ), # 2 + (3, TType.I32, 'count_threshold', None, None, ), # 3 +) +all_structs.append(Neck_TurnToBallOrScan) +Neck_TurnToBallOrScan.thrift_spec = ( + None, # 0 + (1, TType.I32, 'count_threshold', None, None, ), # 1 +) +all_structs.append(Neck_TurnToBall) +Neck_TurnToBall.thrift_spec = ( +) +all_structs.append(Neck_TurnToGoalieOrScan) +Neck_TurnToGoalieOrScan.thrift_spec = ( + None, # 0 + (1, TType.I32, 'count_threshold', None, None, ), # 1 +) +all_structs.append(Neck_TurnToLowConfTeammate) +Neck_TurnToLowConfTeammate.thrift_spec = ( +) +all_structs.append(Neck_TurnToPlayerOrScan) +Neck_TurnToPlayerOrScan.thrift_spec = ( + None, # 0 + (1, TType.I32, 'side', None, None, ), # 1 + (2, TType.I32, 'uniform_number', None, None, ), # 2 + (3, TType.I32, 'count_threshold', None, None, ), # 3 +) +all_structs.append(Neck_TurnToPoint) +Neck_TurnToPoint.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'target_point', [RpcVector2D, None], None, ), # 1 +) +all_structs.append(Neck_TurnToRelative) +Neck_TurnToRelative.thrift_spec = ( + None, # 0 + (1, TType.DOUBLE, 'angle', None, None, ), # 1 +) +all_structs.append(View_ChangeWidth) +View_ChangeWidth.thrift_spec = ( + None, # 0 + (1, TType.I32, 'view_width', None, None, ), # 1 +) +all_structs.append(View_Normal) +View_Normal.thrift_spec = ( +) +all_structs.append(View_Synch) +View_Synch.thrift_spec = ( +) +all_structs.append(View_Wide) +View_Wide.thrift_spec = ( +) +all_structs.append(HeliosGoalie) +HeliosGoalie.thrift_spec = ( +) +all_structs.append(HeliosGoalieMove) +HeliosGoalieMove.thrift_spec = ( +) +all_structs.append(HeliosGoalieKick) +HeliosGoalieKick.thrift_spec = ( +) +all_structs.append(HeliosShoot) +HeliosShoot.thrift_spec = ( +) +all_structs.append(HeliosChainAction) +HeliosChainAction.thrift_spec = ( + None, # 0 + (1, TType.BOOL, 'direct_pass', None, None, ), # 1 + (2, TType.BOOL, 'lead_pass', None, None, ), # 2 + (3, TType.BOOL, 'through_pass', None, None, ), # 3 + (4, TType.BOOL, 'short_dribble', None, None, ), # 4 + (5, TType.BOOL, 'long_dribble', None, None, ), # 5 + (6, TType.BOOL, 'cross', None, None, ), # 6 + (7, TType.BOOL, 'simple_pass', None, None, ), # 7 + (8, TType.BOOL, 'simple_dribble', None, None, ), # 8 + (9, TType.BOOL, 'simple_shoot', None, None, ), # 9 +) +all_structs.append(HeliosBasicOffensive) +HeliosBasicOffensive.thrift_spec = ( +) +all_structs.append(HeliosBasicMove) +HeliosBasicMove.thrift_spec = ( +) +all_structs.append(HeliosSetPlay) +HeliosSetPlay.thrift_spec = ( +) +all_structs.append(HeliosPenalty) +HeliosPenalty.thrift_spec = ( +) +all_structs.append(HeliosCommunicaion) +HeliosCommunicaion.thrift_spec = ( +) +all_structs.append(PlayerAction) +PlayerAction.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'dash', [Dash, None], None, ), # 1 + (2, TType.STRUCT, 'turn', [Turn, None], None, ), # 2 + (3, TType.STRUCT, 'kick', [Kick, None], None, ), # 3 + (4, TType.STRUCT, 'tackle', [Tackle, None], None, ), # 4 + (5, TType.STRUCT, 'catch_action', [Catch, None], None, ), # 5 + (6, TType.STRUCT, 'move', [Move, None], None, ), # 6 + (7, TType.STRUCT, 'turn_neck', [TurnNeck, None], None, ), # 7 + (8, TType.STRUCT, 'change_view', [ChangeView, None], None, ), # 8 + (9, TType.STRUCT, 'say', [Say, None], None, ), # 9 + (10, TType.STRUCT, 'point_to', [PointTo, None], None, ), # 10 + (11, TType.STRUCT, 'point_to_of', [PointToOf, None], None, ), # 11 + (12, TType.STRUCT, 'attention_to', [AttentionTo, None], None, ), # 12 + (13, TType.STRUCT, 'attention_to_of', [AttentionToOf, None], None, ), # 13 + (14, TType.STRUCT, 'log', [Log, None], None, ), # 14 + (15, TType.STRUCT, 'debug_client', [DebugClient, None], None, ), # 15 + (16, TType.STRUCT, 'body_go_to_point', [Body_GoToPoint, None], None, ), # 16 + (17, TType.STRUCT, 'body_smart_kick', [Body_SmartKick, None], None, ), # 17 + (18, TType.STRUCT, 'bhv_before_kick_off', [Bhv_BeforeKickOff, None], None, ), # 18 + (19, TType.STRUCT, 'bhv_body_neck_to_ball', [Bhv_BodyNeckToBall, None], None, ), # 19 + (20, TType.STRUCT, 'bhv_body_neck_to_point', [Bhv_BodyNeckToPoint, None], None, ), # 20 + (21, TType.STRUCT, 'bhv_emergency', [Bhv_Emergency, None], None, ), # 21 + (22, TType.STRUCT, 'bhv_go_to_point_look_ball', [Bhv_GoToPointLookBall, None], None, ), # 22 + (23, TType.STRUCT, 'bhv_neck_body_to_ball', [Bhv_NeckBodyToBall, None], None, ), # 23 + (24, TType.STRUCT, 'bhv_neck_body_to_point', [Bhv_NeckBodyToPoint, None], None, ), # 24 + (25, TType.STRUCT, 'bhv_scan_field', [Bhv_ScanField, None], None, ), # 25 + (26, TType.STRUCT, 'body_advance_ball', [Body_AdvanceBall, None], None, ), # 26 + (27, TType.STRUCT, 'body_clear_ball', [Body_ClearBall, None], None, ), # 27 + (28, TType.STRUCT, 'body_dribble', [Body_Dribble, None], None, ), # 28 + (29, TType.STRUCT, 'body_go_to_point_dodge', [Body_GoToPointDodge, None], None, ), # 29 + (30, TType.STRUCT, 'body_hold_ball', [Body_HoldBall, None], None, ), # 30 + (31, TType.STRUCT, 'body_intercept', [Body_Intercept, None], None, ), # 31 + (32, TType.STRUCT, 'body_kick_one_step', [Body_KickOneStep, None], None, ), # 32 + (33, TType.STRUCT, 'body_stop_ball', [Body_StopBall, None], None, ), # 33 + (34, TType.STRUCT, 'body_stop_dash', [Body_StopDash, None], None, ), # 34 + (35, TType.STRUCT, 'body_tackle_to_point', [Body_TackleToPoint, None], None, ), # 35 + (36, TType.STRUCT, 'body_turn_to_angle', [Body_TurnToAngle, None], None, ), # 36 + (37, TType.STRUCT, 'body_turn_to_ball', [Body_TurnToBall, None], None, ), # 37 + (38, TType.STRUCT, 'body_turn_to_point', [Body_TurnToPoint, None], None, ), # 38 + (39, TType.STRUCT, 'focus_move_to_point', [Focus_MoveToPoint, None], None, ), # 39 + (40, TType.STRUCT, 'focus_reset', [Focus_Reset, None], None, ), # 40 + (41, TType.STRUCT, 'neck_scan_field', [Neck_ScanField, None], None, ), # 41 + (42, TType.STRUCT, 'neck_scan_players', [Neck_ScanPlayers, None], None, ), # 42 + (43, TType.STRUCT, 'neck_turn_to_ball_and_player', [Neck_TurnToBallAndPlayer, None], None, ), # 43 + (44, TType.STRUCT, 'neck_turn_to_ball_or_scan', [Neck_TurnToBallOrScan, None], None, ), # 44 + (45, TType.STRUCT, 'neck_turn_to_ball', [Neck_TurnToBall, None], None, ), # 45 + (46, TType.STRUCT, 'neck_turn_to_goalie_or_scan', [Neck_TurnToGoalieOrScan, None], None, ), # 46 + (47, TType.STRUCT, 'neck_turn_to_low_conf_teammate', [Neck_TurnToLowConfTeammate, None], None, ), # 47 + (48, TType.STRUCT, 'neck_turn_to_player_or_scan', [Neck_TurnToPlayerOrScan, None], None, ), # 48 + (49, TType.STRUCT, 'neck_turn_to_point', [Neck_TurnToPoint, None], None, ), # 49 + (50, TType.STRUCT, 'neck_turn_to_relative', [Neck_TurnToRelative, None], None, ), # 50 + (51, TType.STRUCT, 'view_change_width', [View_ChangeWidth, None], None, ), # 51 + (52, TType.STRUCT, 'view_normal', [View_Normal, None], None, ), # 52 + (53, TType.STRUCT, 'view_synch', [View_Synch, None], None, ), # 53 + (54, TType.STRUCT, 'view_wide', [View_Wide, None], None, ), # 54 + (55, TType.STRUCT, 'helios_goalie', [HeliosGoalie, None], None, ), # 55 + (56, TType.STRUCT, 'helios_goalie_move', [HeliosGoalieMove, None], None, ), # 56 + (57, TType.STRUCT, 'helios_goalie_kick', [HeliosGoalieKick, None], None, ), # 57 + (58, TType.STRUCT, 'helios_shoot', [HeliosShoot, None], None, ), # 58 + (59, TType.STRUCT, 'helios_chain_action', [HeliosChainAction, None], None, ), # 59 + (60, TType.STRUCT, 'helios_basic_offensive', [HeliosBasicOffensive, None], None, ), # 60 + (61, TType.STRUCT, 'helios_basic_move', [HeliosBasicMove, None], None, ), # 61 + (62, TType.STRUCT, 'helios_set_play', [HeliosSetPlay, None], None, ), # 62 + (63, TType.STRUCT, 'helios_penalty', [HeliosPenalty, None], None, ), # 63 + (64, TType.STRUCT, 'helios_communication', [HeliosCommunicaion, None], None, ), # 64 +) +all_structs.append(PlayerActions) +PlayerActions.thrift_spec = ( + None, # 0 + (1, TType.LIST, 'actions', (TType.STRUCT, [PlayerAction, None], False), None, ), # 1 +) +all_structs.append(ChangePlayerType) +ChangePlayerType.thrift_spec = ( + None, # 0 + (1, TType.I32, 'uniform_number', None, None, ), # 1 + (2, TType.I32, 'type', None, None, ), # 2 +) +all_structs.append(DoHeliosSubstitute) +DoHeliosSubstitute.thrift_spec = ( +) +all_structs.append(DoHeliosSayPlayerTypes) +DoHeliosSayPlayerTypes.thrift_spec = ( +) +all_structs.append(CoachAction) +CoachAction.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'change_player_types', [ChangePlayerType, None], None, ), # 1 + (2, TType.STRUCT, 'do_helios_substitute', [DoHeliosSubstitute, None], None, ), # 2 + (3, TType.STRUCT, 'do_helios_say_player_types', [DoHeliosSayPlayerTypes, None], None, ), # 3 +) +all_structs.append(CoachActions) +CoachActions.thrift_spec = ( + None, # 0 + (1, TType.LIST, 'actions', (TType.STRUCT, [CoachAction, None], False), None, ), # 1 +) +all_structs.append(DoKickOff) +DoKickOff.thrift_spec = ( +) +all_structs.append(DoMoveBall) +DoMoveBall.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 1 + (2, TType.STRUCT, 'velocity', [RpcVector2D, None], None, ), # 2 +) +all_structs.append(DoMovePlayer) +DoMovePlayer.thrift_spec = ( + None, # 0 + (1, TType.BOOL, 'our_side', None, None, ), # 1 + (2, TType.I32, 'uniform_number', None, None, ), # 2 + (3, TType.STRUCT, 'position', [RpcVector2D, None], None, ), # 3 + (4, TType.DOUBLE, 'body_direction', None, None, ), # 4 +) +all_structs.append(DoRecover) +DoRecover.thrift_spec = ( +) +all_structs.append(DoChangeMode) +DoChangeMode.thrift_spec = ( + None, # 0 + (1, TType.I32, 'game_mode_type', None, None, ), # 1 + (2, TType.I32, 'side', None, None, ), # 2 +) +all_structs.append(DoChangePlayerType) +DoChangePlayerType.thrift_spec = ( + None, # 0 + (1, TType.BOOL, 'our_side', None, None, ), # 1 + (2, TType.I32, 'uniform_number', None, None, ), # 2 + (3, TType.I32, 'type', None, None, ), # 3 +) +all_structs.append(TrainerAction) +TrainerAction.thrift_spec = ( + None, # 0 + (1, TType.STRUCT, 'do_kick_off', [DoKickOff, None], None, ), # 1 + (2, TType.STRUCT, 'do_move_ball', [DoMoveBall, None], None, ), # 2 + (3, TType.STRUCT, 'do_move_player', [DoMovePlayer, None], None, ), # 3 + (4, TType.STRUCT, 'do_recover', [DoRecover, None], None, ), # 4 + (5, TType.STRUCT, 'do_change_mode', [DoChangeMode, None], None, ), # 5 + (6, TType.STRUCT, 'do_change_player_type', [DoChangePlayerType, None], None, ), # 6 +) +all_structs.append(TrainerActions) +TrainerActions.thrift_spec = ( + None, # 0 + (1, TType.LIST, 'actions', (TType.STRUCT, [TrainerAction, None], False), None, ), # 1 +) +all_structs.append(ServerParam) +ServerParam.thrift_spec = ( + None, # 0 + (1, TType.I32, 'agent_type', None, None, ), # 1 + (2, TType.DOUBLE, 'inertia_moment', None, None, ), # 2 + (3, TType.DOUBLE, 'player_size', None, None, ), # 3 + (4, TType.DOUBLE, 'player_decay', None, None, ), # 4 + (5, TType.DOUBLE, 'player_rand', None, None, ), # 5 + (6, TType.DOUBLE, 'player_weight', None, None, ), # 6 + (7, TType.DOUBLE, 'player_speed_max', None, None, ), # 7 + (8, TType.DOUBLE, 'player_accel_max', None, None, ), # 8 + (9, TType.DOUBLE, 'stamina_max', None, None, ), # 9 + (10, TType.DOUBLE, 'stamina_inc_max', None, None, ), # 10 + (11, TType.DOUBLE, 'recover_init', None, None, ), # 11 + (12, TType.DOUBLE, 'recover_dec_thr', None, None, ), # 12 + (13, TType.DOUBLE, 'recover_min', None, None, ), # 13 + (14, TType.DOUBLE, 'recover_dec', None, None, ), # 14 + (15, TType.DOUBLE, 'effort_init', None, None, ), # 15 + (16, TType.DOUBLE, 'effort_dec_thr', None, None, ), # 16 + (17, TType.DOUBLE, 'effort_min', None, None, ), # 17 + (18, TType.DOUBLE, 'effort_dec', None, None, ), # 18 + (19, TType.DOUBLE, 'effort_inc_thr', None, None, ), # 19 + (20, TType.DOUBLE, 'effort_inc', None, None, ), # 20 + (21, TType.DOUBLE, 'kick_rand', None, None, ), # 21 + (22, TType.BOOL, 'team_actuator_noise', None, None, ), # 22 + (23, TType.DOUBLE, 'player_rand_factor_l', None, None, ), # 23 + (24, TType.DOUBLE, 'player_rand_factor_r', None, None, ), # 24 + (25, TType.DOUBLE, 'kick_rand_factor_l', None, None, ), # 25 + (26, TType.DOUBLE, 'kick_rand_factor_r', None, None, ), # 26 + (27, TType.DOUBLE, 'ball_size', None, None, ), # 27 + (28, TType.DOUBLE, 'ball_decay', None, None, ), # 28 + (29, TType.DOUBLE, 'ball_rand', None, None, ), # 29 + (30, TType.DOUBLE, 'ball_weight', None, None, ), # 30 + (31, TType.DOUBLE, 'ball_speed_max', None, None, ), # 31 + (32, TType.DOUBLE, 'ball_accel_max', None, None, ), # 32 + (33, TType.DOUBLE, 'dash_power_rate', None, None, ), # 33 + (34, TType.DOUBLE, 'kick_power_rate', None, None, ), # 34 + (35, TType.DOUBLE, 'kickable_margin', None, None, ), # 35 + (36, TType.DOUBLE, 'control_radius', None, None, ), # 36 + (37, TType.DOUBLE, 'control_radius_width', None, None, ), # 37 + (38, TType.DOUBLE, 'max_power', None, None, ), # 38 + (39, TType.DOUBLE, 'min_power', None, None, ), # 39 + (40, TType.DOUBLE, 'max_moment', None, None, ), # 40 + (41, TType.DOUBLE, 'min_moment', None, None, ), # 41 + (42, TType.DOUBLE, 'max_neck_moment', None, None, ), # 42 + (43, TType.DOUBLE, 'min_neck_moment', None, None, ), # 43 + (44, TType.DOUBLE, 'max_neck_angle', None, None, ), # 44 + (45, TType.DOUBLE, 'min_neck_angle', None, None, ), # 45 + (46, TType.DOUBLE, 'visible_angle', None, None, ), # 46 + (47, TType.DOUBLE, 'visible_distance', None, None, ), # 47 + (48, TType.DOUBLE, 'wind_dir', None, None, ), # 48 + (49, TType.DOUBLE, 'wind_force', None, None, ), # 49 + (50, TType.DOUBLE, 'wind_angle', None, None, ), # 50 + (51, TType.DOUBLE, 'wind_rand', None, None, ), # 51 + (52, TType.DOUBLE, 'kickable_area', None, None, ), # 52 + (53, TType.DOUBLE, 'catch_area_l', None, None, ), # 53 + (54, TType.DOUBLE, 'catch_area_w', None, None, ), # 54 + (55, TType.DOUBLE, 'catch_probability', None, None, ), # 55 + (56, TType.I32, 'goalie_max_moves', None, None, ), # 56 + (57, TType.DOUBLE, 'corner_kick_margin', None, None, ), # 57 + (58, TType.DOUBLE, 'offside_active_area_size', None, None, ), # 58 + (59, TType.BOOL, 'wind_none', None, None, ), # 59 + (60, TType.BOOL, 'use_wind_random', None, None, ), # 60 + (61, TType.I32, 'coach_say_count_max', None, None, ), # 61 + (62, TType.I32, 'coach_say_msg_size', None, None, ), # 62 + (63, TType.I32, 'clang_win_size', None, None, ), # 63 + (64, TType.I32, 'clang_define_win', None, None, ), # 64 + (65, TType.I32, 'clang_meta_win', None, None, ), # 65 + (66, TType.I32, 'clang_advice_win', None, None, ), # 66 + (67, TType.I32, 'clang_info_win', None, None, ), # 67 + (68, TType.I32, 'clang_mess_delay', None, None, ), # 68 + (69, TType.I32, 'clang_mess_per_cycle', None, None, ), # 69 + (70, TType.I32, 'half_time', None, None, ), # 70 + (71, TType.I32, 'simulator_step', None, None, ), # 71 + (72, TType.I32, 'send_step', None, None, ), # 72 + (73, TType.I32, 'recv_step', None, None, ), # 73 + (74, TType.I32, 'sense_body_step', None, None, ), # 74 + (75, TType.I32, 'lcm_step', None, None, ), # 75 + (76, TType.I32, 'player_say_msg_size', None, None, ), # 76 + (77, TType.I32, 'player_hear_max', None, None, ), # 77 + (78, TType.I32, 'player_hear_inc', None, None, ), # 78 + (79, TType.I32, 'player_hear_decay', None, None, ), # 79 + (80, TType.I32, 'catch_ban_cycle', None, None, ), # 80 + (81, TType.I32, 'slow_down_factor', None, None, ), # 81 + (82, TType.BOOL, 'use_offside', None, None, ), # 82 + (83, TType.BOOL, 'kickoff_offside', None, None, ), # 83 + (84, TType.DOUBLE, 'offside_kick_margin', None, None, ), # 84 + (85, TType.DOUBLE, 'audio_cut_dist', None, None, ), # 85 + (86, TType.DOUBLE, 'dist_quantize_step', None, None, ), # 86 + (87, TType.DOUBLE, 'landmark_dist_quantize_step', None, None, ), # 87 + (88, TType.DOUBLE, 'dir_quantize_step', None, None, ), # 88 + (89, TType.DOUBLE, 'dist_quantize_step_l', None, None, ), # 89 + (90, TType.DOUBLE, 'dist_quantize_step_r', None, None, ), # 90 + (91, TType.DOUBLE, 'landmark_dist_quantize_step_l', None, None, ), # 91 + (92, TType.DOUBLE, 'landmark_dist_quantize_step_r', None, None, ), # 92 + (93, TType.DOUBLE, 'dir_quantize_step_l', None, None, ), # 93 + (94, TType.DOUBLE, 'dir_quantize_step_r', None, None, ), # 94 + (95, TType.BOOL, 'coach_mode', None, None, ), # 95 + (96, TType.BOOL, 'coach_with_referee_mode', None, None, ), # 96 + (97, TType.BOOL, 'use_old_coach_hear', None, None, ), # 97 + (98, TType.DOUBLE, 'slowness_on_top_for_left_team', None, None, ), # 98 + (99, TType.DOUBLE, 'slowness_on_top_for_right_team', None, None, ), # 99 + (100, TType.I32, 'start_goal_l', None, None, ), # 100 + (101, TType.I32, 'start_goal_r', None, None, ), # 101 + (102, TType.BOOL, 'fullstate_l', None, None, ), # 102 + (103, TType.BOOL, 'fullstate_r', None, None, ), # 103 + (104, TType.I32, 'drop_ball_time', None, None, ), # 104 + (105, TType.BOOL, 'synch_mode', None, None, ), # 105 + (106, TType.I32, 'synch_offset', None, None, ), # 106 + (107, TType.I32, 'synch_micro_sleep', None, None, ), # 107 + (108, TType.I32, 'point_to_ban', None, None, ), # 108 + (109, TType.I32, 'point_to_duration', None, None, ), # 109 + (110, TType.I32, 'player_port', None, None, ), # 110 + (111, TType.I32, 'trainer_port', None, None, ), # 111 + (112, TType.I32, 'online_coach_port', None, None, ), # 112 + (113, TType.BOOL, 'verbose_mode', None, None, ), # 113 + (114, TType.I32, 'coach_send_vi_step', None, None, ), # 114 + (115, TType.STRING, 'replay_file', 'UTF8', None, ), # 115 + (116, TType.STRING, 'landmark_file', 'UTF8', None, ), # 116 + (117, TType.BOOL, 'send_comms', None, None, ), # 117 + (118, TType.BOOL, 'text_logging', None, None, ), # 118 + (119, TType.BOOL, 'game_logging', None, None, ), # 119 + (120, TType.I32, 'game_log_version', None, None, ), # 120 + (121, TType.STRING, 'text_log_dir', 'UTF8', None, ), # 121 + (122, TType.STRING, 'game_log_dir', 'UTF8', None, ), # 122 + (123, TType.STRING, 'text_log_fixed_name', 'UTF8', None, ), # 123 + (124, TType.STRING, 'game_log_fixed_name', 'UTF8', None, ), # 124 + (125, TType.BOOL, 'use_text_log_fixed', None, None, ), # 125 + (126, TType.BOOL, 'use_game_log_fixed', None, None, ), # 126 + (127, TType.BOOL, 'use_text_log_dated', None, None, ), # 127 + (128, TType.BOOL, 'use_game_log_dated', None, None, ), # 128 + (129, TType.STRING, 'log_date_format', 'UTF8', None, ), # 129 + (130, TType.BOOL, 'log_times', None, None, ), # 130 + (131, TType.BOOL, 'record_message', None, None, ), # 131 + (132, TType.I32, 'text_log_compression', None, None, ), # 132 + (133, TType.I32, 'game_log_compression', None, None, ), # 133 + (134, TType.BOOL, 'use_profile', None, None, ), # 134 + (135, TType.DOUBLE, 'tackle_dist', None, None, ), # 135 + (136, TType.DOUBLE, 'tackle_back_dist', None, None, ), # 136 + (137, TType.DOUBLE, 'tackle_width', None, None, ), # 137 + (138, TType.DOUBLE, 'tackle_exponent', None, None, ), # 138 + (139, TType.I32, 'tackle_cycles', None, None, ), # 139 + (140, TType.DOUBLE, 'tackle_power_rate', None, None, ), # 140 + (141, TType.I32, 'freeform_wait_period', None, None, ), # 141 + (142, TType.I32, 'freeform_send_period', None, None, ), # 142 + (143, TType.BOOL, 'free_kick_faults', None, None, ), # 143 + (144, TType.BOOL, 'back_passes', None, None, ), # 144 + (145, TType.BOOL, 'proper_goal_kicks', None, None, ), # 145 + (146, TType.DOUBLE, 'stopped_ball_vel', None, None, ), # 146 + (147, TType.I32, 'max_goal_kicks', None, None, ), # 147 + (148, TType.I32, 'clang_del_win', None, None, ), # 148 + (149, TType.I32, 'clang_rule_win', None, None, ), # 149 + (150, TType.BOOL, 'auto_mode', None, None, ), # 150 + (151, TType.I32, 'kick_off_wait', None, None, ), # 151 + (152, TType.I32, 'connect_wait', None, None, ), # 152 + (153, TType.I32, 'game_over_wait', None, None, ), # 153 + (154, TType.STRING, 'team_l_start', 'UTF8', None, ), # 154 + (155, TType.STRING, 'team_r_start', 'UTF8', None, ), # 155 + (156, TType.BOOL, 'keepaway_mode', None, None, ), # 156 + (157, TType.DOUBLE, 'keepaway_length', None, None, ), # 157 + (158, TType.DOUBLE, 'keepaway_width', None, None, ), # 158 + (159, TType.BOOL, 'keepaway_logging', None, None, ), # 159 + (160, TType.STRING, 'keepaway_log_dir', 'UTF8', None, ), # 160 + (161, TType.STRING, 'keepaway_log_fixed_name', 'UTF8', None, ), # 161 + (162, TType.BOOL, 'keepaway_log_fixed', None, None, ), # 162 + (163, TType.BOOL, 'keepaway_log_dated', None, None, ), # 163 + (164, TType.I32, 'keepaway_start', None, None, ), # 164 + (165, TType.I32, 'nr_normal_halfs', None, None, ), # 165 + (166, TType.I32, 'nr_extra_halfs', None, None, ), # 166 + (167, TType.BOOL, 'penalty_shoot_outs', None, None, ), # 167 + (168, TType.I32, 'pen_before_setup_wait', None, None, ), # 168 + (169, TType.I32, 'pen_setup_wait', None, None, ), # 169 + (170, TType.I32, 'pen_ready_wait', None, None, ), # 170 + (171, TType.I32, 'pen_taken_wait', None, None, ), # 171 + (172, TType.I32, 'pen_nr_kicks', None, None, ), # 172 + (173, TType.I32, 'pen_max_extra_kicks', None, None, ), # 173 + (174, TType.DOUBLE, 'pen_dist_x', None, None, ), # 174 + (175, TType.BOOL, 'pen_random_winner', None, None, ), # 175 + (176, TType.BOOL, 'pen_allow_mult_kicks', None, None, ), # 176 + (177, TType.DOUBLE, 'pen_max_goalie_dist_x', None, None, ), # 177 + (178, TType.BOOL, 'pen_coach_moves_players', None, None, ), # 178 + (179, TType.STRING, 'module_dir', 'UTF8', None, ), # 179 + (180, TType.DOUBLE, 'ball_stuck_area', None, None, ), # 180 + (181, TType.STRING, 'coach_msg_file', 'UTF8', None, ), # 181 + (182, TType.DOUBLE, 'max_tackle_power', None, None, ), # 182 + (183, TType.DOUBLE, 'max_back_tackle_power', None, None, ), # 183 + (184, TType.DOUBLE, 'player_speed_max_min', None, None, ), # 184 + (185, TType.DOUBLE, 'extra_stamina', None, None, ), # 185 + (186, TType.I32, 'synch_see_offset', None, None, ), # 186 + (187, TType.I32, 'extra_half_time', None, None, ), # 187 + (188, TType.DOUBLE, 'stamina_capacity', None, None, ), # 188 + (189, TType.DOUBLE, 'max_dash_angle', None, None, ), # 189 + (190, TType.DOUBLE, 'min_dash_angle', None, None, ), # 190 + (191, TType.DOUBLE, 'dash_angle_step', None, None, ), # 191 + (192, TType.DOUBLE, 'side_dash_rate', None, None, ), # 192 + (193, TType.DOUBLE, 'back_dash_rate', None, None, ), # 193 + (194, TType.DOUBLE, 'max_dash_power', None, None, ), # 194 + (195, TType.DOUBLE, 'min_dash_power', None, None, ), # 195 + (196, TType.DOUBLE, 'tackle_rand_factor', None, None, ), # 196 + (197, TType.DOUBLE, 'foul_detect_probability', None, None, ), # 197 + (198, TType.DOUBLE, 'foul_exponent', None, None, ), # 198 + (199, TType.I32, 'foul_cycles', None, None, ), # 199 + (200, TType.BOOL, 'golden_goal', None, None, ), # 200 + (201, TType.DOUBLE, 'red_card_probability', None, None, ), # 201 + (202, TType.I32, 'illegal_defense_duration', None, None, ), # 202 + (203, TType.I32, 'illegal_defense_number', None, None, ), # 203 + (204, TType.DOUBLE, 'illegal_defense_dist_x', None, None, ), # 204 + (205, TType.DOUBLE, 'illegal_defense_width', None, None, ), # 205 + (206, TType.STRING, 'fixed_teamname_l', 'UTF8', None, ), # 206 + (207, TType.STRING, 'fixed_teamname_r', 'UTF8', None, ), # 207 + (208, TType.DOUBLE, 'max_catch_angle', None, None, ), # 208 + (209, TType.DOUBLE, 'min_catch_angle', None, None, ), # 209 + (210, TType.I32, 'random_seed', None, None, ), # 210 + (211, TType.DOUBLE, 'long_kick_power_factor', None, None, ), # 211 + (212, TType.I32, 'long_kick_delay', None, None, ), # 212 + (213, TType.I32, 'max_monitors', None, None, ), # 213 + (214, TType.DOUBLE, 'catchable_area', None, None, ), # 214 + (215, TType.DOUBLE, 'real_speed_max', None, None, ), # 215 + (216, TType.DOUBLE, 'pitch_half_length', None, None, ), # 216 + (217, TType.DOUBLE, 'pitch_half_width', None, None, ), # 217 + (218, TType.DOUBLE, 'our_penalty_area_line_x', None, None, ), # 218 + (219, TType.DOUBLE, 'their_penalty_area_line_x', None, None, ), # 219 + (220, TType.DOUBLE, 'penalty_area_half_width', None, None, ), # 220 + (221, TType.DOUBLE, 'penalty_area_length', None, None, ), # 221 + (222, TType.DOUBLE, 'goal_width', None, None, ), # 222 +) +all_structs.append(PlayerParam) +PlayerParam.thrift_spec = ( + None, # 0 + (1, TType.I32, 'agent_type', None, None, ), # 1 + (2, TType.I32, 'player_types', None, None, ), # 2 + (3, TType.I32, 'subs_max', None, None, ), # 3 + (4, TType.I32, 'pt_max', None, None, ), # 4 + (5, TType.BOOL, 'allow_mult_default_type', None, None, ), # 5 + (6, TType.DOUBLE, 'player_speed_max_delta_min', None, None, ), # 6 + (7, TType.DOUBLE, 'player_speed_max_delta_max', None, None, ), # 7 + (8, TType.DOUBLE, 'stamina_inc_max_delta_factor', None, None, ), # 8 + (9, TType.DOUBLE, 'player_decay_delta_min', None, None, ), # 9 + (10, TType.DOUBLE, 'player_decay_delta_max', None, None, ), # 10 + (11, TType.DOUBLE, 'inertia_moment_delta_factor', None, None, ), # 11 + (12, TType.DOUBLE, 'dash_power_rate_delta_min', None, None, ), # 12 + (13, TType.DOUBLE, 'dash_power_rate_delta_max', None, None, ), # 13 + (14, TType.DOUBLE, 'player_size_delta_factor', None, None, ), # 14 + (15, TType.DOUBLE, 'kickable_margin_delta_min', None, None, ), # 15 + (16, TType.DOUBLE, 'kickable_margin_delta_max', None, None, ), # 16 + (17, TType.DOUBLE, 'kick_rand_delta_factor', None, None, ), # 17 + (18, TType.DOUBLE, 'extra_stamina_delta_min', None, None, ), # 18 + (19, TType.DOUBLE, 'extra_stamina_delta_max', None, None, ), # 19 + (20, TType.DOUBLE, 'effort_max_delta_factor', None, None, ), # 20 + (21, TType.DOUBLE, 'effort_min_delta_factor', None, None, ), # 21 + (22, TType.I32, 'random_seed', None, None, ), # 22 + (23, TType.DOUBLE, 'new_dash_power_rate_delta_min', None, None, ), # 23 + (24, TType.DOUBLE, 'new_dash_power_rate_delta_max', None, None, ), # 24 + (25, TType.DOUBLE, 'new_stamina_inc_max_delta_factor', None, None, ), # 25 + (26, TType.DOUBLE, 'kick_power_rate_delta_min', None, None, ), # 26 + (27, TType.DOUBLE, 'kick_power_rate_delta_max', None, None, ), # 27 + (28, TType.DOUBLE, 'foul_detect_probability_delta_factor', None, None, ), # 28 + (29, TType.DOUBLE, 'catchable_area_l_stretch_min', None, None, ), # 29 + (30, TType.DOUBLE, 'catchable_area_l_stretch_max', None, None, ), # 30 +) +all_structs.append(PlayerType) +PlayerType.thrift_spec = ( + None, # 0 + (1, TType.I32, 'agent_type', None, None, ), # 1 + (2, TType.I32, 'id', None, None, ), # 2 + (3, TType.DOUBLE, 'stamina_inc_max', None, None, ), # 3 + (4, TType.DOUBLE, 'player_decay', None, None, ), # 4 + (5, TType.DOUBLE, 'inertia_moment', None, None, ), # 5 + (6, TType.DOUBLE, 'dash_power_rate', None, None, ), # 6 + (7, TType.DOUBLE, 'player_size', None, None, ), # 7 + (8, TType.DOUBLE, 'kickable_margin', None, None, ), # 8 + (9, TType.DOUBLE, 'kick_rand', None, None, ), # 9 + (10, TType.DOUBLE, 'extra_stamina', None, None, ), # 10 + (11, TType.DOUBLE, 'effort_max', None, None, ), # 11 + (12, TType.DOUBLE, 'effort_min', None, None, ), # 12 + (13, TType.DOUBLE, 'kick_power_rate', None, None, ), # 13 + (14, TType.DOUBLE, 'foul_detect_probability', None, None, ), # 14 + (15, TType.DOUBLE, 'catchable_area_l_stretch', None, None, ), # 15 + (16, TType.DOUBLE, 'unum_far_length', None, None, ), # 16 + (17, TType.DOUBLE, 'unum_too_far_length', None, None, ), # 17 + (18, TType.DOUBLE, 'team_far_length', None, None, ), # 18 + (19, TType.DOUBLE, 'team_too_far_length', None, None, ), # 19 + (20, TType.DOUBLE, 'player_max_observation_length', None, None, ), # 20 + (21, TType.DOUBLE, 'ball_vel_far_length', None, None, ), # 21 + (22, TType.DOUBLE, 'ball_vel_too_far_length', None, None, ), # 22 + (23, TType.DOUBLE, 'ball_max_observation_length', None, None, ), # 23 + (24, TType.DOUBLE, 'flag_chg_far_length', None, None, ), # 24 + (25, TType.DOUBLE, 'flag_chg_too_far_length', None, None, ), # 25 + (26, TType.DOUBLE, 'flag_max_observation_length', None, None, ), # 26 + (27, TType.DOUBLE, 'kickable_area', None, None, ), # 27 + (28, TType.DOUBLE, 'reliable_catchable_dist', None, None, ), # 28 + (29, TType.DOUBLE, 'max_catchable_dist', None, None, ), # 29 + (30, TType.DOUBLE, 'real_speed_max', None, None, ), # 30 + (31, TType.DOUBLE, 'player_speed_max2', None, None, ), # 31 + (32, TType.DOUBLE, 'real_speed_max2', None, None, ), # 32 + (33, TType.I32, 'cycles_to_reach_max_speed', None, None, ), # 33 + (34, TType.DOUBLE, 'player_speed_max', None, None, ), # 34 +) +all_structs.append(Empty) +Empty.thrift_spec = ( +) +all_structs.append(RegisterRequest) +RegisterRequest.thrift_spec = ( + None, # 0 + (1, TType.I32, 'agent_type', None, None, ), # 1 + (2, TType.STRING, 'team_name', 'UTF8', None, ), # 2 + (3, TType.I32, 'uniform_number', None, None, ), # 3 +) +all_structs.append(RegisterResponse) +RegisterResponse.thrift_spec = ( + None, # 0 + (1, TType.I32, 'client_id', None, None, ), # 1 +) +fix_spec(all_structs) +del all_structs diff --git a/soccer/ttypes.pyi b/soccer/ttypes.pyi new file mode 100644 index 0000000..0476686 --- /dev/null +++ b/soccer/ttypes.pyi @@ -0,0 +1,1344 @@ +import sys +from typing import List, Dict, Tuple, Union, Any, Optional +from enum import Enum, auto + +class ViewWidth(Enum): + NARROW = auto() + NORMAL = auto() + WIDE = auto() + +class AgentType(Enum): + PlayerT = auto() + CoachT = auto() + TrainerT = auto() + +class RpcVector2D(object): + def __init__(self, x: float = None, y: float = None, dist: float = None, angle: float = None): + pass + x: float + y: float + dist: float + angle: float + +class Ball(object): + def __init__(self, position: RpcVector2D = None, relative_position: RpcVector2D = None, seen_position: RpcVector2D = None, heard_position: RpcVector2D = None, velocity: RpcVector2D = None, seen_velocity: RpcVector2D = None, heard_velocity: RpcVector2D = None, pos_count: int = None, seen_pos_count: int = None, heard_pos_count: int = None, vel_count: int = None, seen_vel_count: int = None, heard_vel_count: int = None, lost_count: int = None, ghost_count: int = None, dist_from_self: float = None, angle_from_self: float = None): + pass + position: RpcVector2D + relative_position: RpcVector2D + seen_position: RpcVector2D + heard_position: RpcVector2D + velocity: RpcVector2D + seen_velocity: RpcVector2D + heard_velocity: RpcVector2D + pos_count: int + seen_pos_count: int + heard_pos_count: int + vel_count: int + seen_vel_count: int + heard_vel_count: int + lost_count: int + ghost_count: int + dist_from_self: float + angle_from_self: float + +class Side(Enum): + UNKNOWN = auto() + LEFT = auto() + RIGHT = auto() + +class LoggerLevel(Enum): + NoneLevel = auto() + SYSTEM = auto() + SENSOR = auto() + WORLD = auto() + ACTION = auto() + INTERCEPT = auto() + KICK = auto() + HOLD = auto() + DRIBBLE = auto() + PASS = auto() + CROSS = auto() + SHOOT = auto() + CLEAR = auto() + BLOCK = auto() + MARK = auto() + POSITIONING = auto() + ROLE = auto() + TEAM = auto() + COMMUNICATION = auto() + ANALYZER = auto() + ACTION_CHAIN = auto() + PLAN = auto() + +class Player(object): + def __init__(self, position: RpcVector2D = None, seen_position: RpcVector2D = None, heard_position: RpcVector2D = None, velocity: RpcVector2D = None, seen_velocity: RpcVector2D = None, pos_count: int = None, seen_pos_count: int = None, heard_pos_count: int = None, vel_count: int = None, seen_vel_count: int = None, ghost_count: int = None, dist_from_self: float = None, angle_from_self: float = None, id: int = None, side: Side = None, uniform_number: int = None, uniform_number_count: int = None, is_goalie: bool = None, body_direction: float = None, body_direction_count: int = None, face_direction: float = None, face_direction_count: int = None, point_to_direction: float = None, point_to_direction_count: int = None, is_kicking: bool = None, dist_from_ball: float = None, angle_from_ball: float = None, ball_reach_steps: int = None, is_tackling: bool = None, type_id: int = None): + pass + position: RpcVector2D + seen_position: RpcVector2D + heard_position: RpcVector2D + velocity: RpcVector2D + seen_velocity: RpcVector2D + pos_count: int + seen_pos_count: int + heard_pos_count: int + vel_count: int + seen_vel_count: int + ghost_count: int + dist_from_self: float + angle_from_self: float + id: int + side: Side + uniform_number: int + uniform_number_count: int + is_goalie: bool + body_direction: float + body_direction_count: int + face_direction: float + face_direction_count: int + point_to_direction: float + point_to_direction_count: int + is_kicking: bool + dist_from_ball: float + angle_from_ball: float + ball_reach_steps: int + is_tackling: bool + type_id: int + +class Self(object): + def __init__(self, position: RpcVector2D = None, seen_position: RpcVector2D = None, heard_position: RpcVector2D = None, velocity: RpcVector2D = None, seen_velocity: RpcVector2D = None, pos_count: int = None, seen_pos_count: int = None, heard_pos_count: int = None, vel_count: int = None, seen_vel_count: int = None, ghost_count: int = None, id: int = None, side: Side = None, uniform_number: int = None, uniform_number_count: int = None, is_goalie: bool = None, body_direction: float = None, body_direction_count: int = None, face_direction: float = None, face_direction_count: int = None, point_to_direction: float = None, point_to_direction_count: int = None, is_kicking: bool = None, dist_from_ball: float = None, angle_from_ball: float = None, ball_reach_steps: int = None, is_tackling: bool = None, relative_neck_direction: float = None, stamina: float = None, is_kickable: bool = None, catch_probability: float = None, tackle_probability: float = None, foul_probability: float = None, view_width: ViewWidth = None, type_id: int = None, kick_rate: float = None): + pass + position: RpcVector2D + seen_position: RpcVector2D + heard_position: RpcVector2D + velocity: RpcVector2D + seen_velocity: RpcVector2D + pos_count: int + seen_pos_count: int + heard_pos_count: int + vel_count: int + seen_vel_count: int + ghost_count: int + id: int + side: Side + uniform_number: int + uniform_number_count: int + is_goalie: bool + body_direction: float + body_direction_count: int + face_direction: float + face_direction_count: int + point_to_direction: float + point_to_direction_count: int + is_kicking: bool + dist_from_ball: float + angle_from_ball: float + ball_reach_steps: int + is_tackling: bool + relative_neck_direction: float + stamina: float + is_kickable: bool + catch_probability: float + tackle_probability: float + foul_probability: float + view_width: ViewWidth + type_id: int + kick_rate: float + +class InterceptActionType(Enum): + UNKNOWN_Intercept_Action_Type = auto() + OMNI_DASH = auto() + TURN_FORWARD_DASH = auto() + TURN_BACKWARD_DASH = auto() + +class InterceptInfo(object): + def __init__(self, action_type: InterceptActionType = None, turn_steps: int = None, turn_angle: float = None, dash_steps: int = None, dash_power: float = None, dash_dir: float = None, final_self_position: RpcVector2D = None, final_ball_dist: float = None, final_stamina: float = None, value: float = None): + pass + action_type: InterceptActionType + turn_steps: int + turn_angle: float + dash_steps: int + dash_power: float + dash_dir: float + final_self_position: RpcVector2D + final_ball_dist: float + final_stamina: float + value: float + +class InterceptTable(object): + def __init__(self, self_reach_steps: int = None, first_teammate_reach_steps: int = None, second_teammate_reach_steps: int = None, first_opponent_reach_steps: int = None, second_opponent_reach_steps: int = None, first_teammate_id: int = None, second_teammate_id: int = None, first_opponent_id: int = None, second_opponent_id: int = None, self_intercept_info: List[InterceptInfo] = None): + pass + 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: List[InterceptInfo] + +class GameModeType(Enum): + BeforeKickOff = auto() + TimeOver = auto() + PlayOn = auto() + KickOff_ = auto() + KickIn_ = auto() + FreeKick_ = auto() + CornerKick_ = auto() + GoalKick_ = auto() + AfterGoal_ = auto() + OffSide_ = auto() + PenaltyKick_ = auto() + FirstHalfOver = auto() + Pause = auto() + Human = auto() + FoulCharge_ = auto() + FoulPush_ = auto() + FoulMultipleAttacker_ = auto() + FoulBallOut_ = auto() + BackPass_ = auto() + FreeKickFault_ = auto() + CatchFault_ = auto() + IndFreeKick_ = auto() + PenaltySetup_ = auto() + PenaltyReady_ = auto() + PenaltyTaken_ = auto() + PenaltyMiss_ = auto() + PenaltyScore_ = auto() + IllegalDefense_ = auto() + PenaltyOnfield_ = auto() + PenaltyFoul_ = auto() + GoalieCatch_ = auto() + ExtendHalf = auto() + MODE_MAX = auto() + +class WorldModel(object): + def __init__(self, intercept_table: InterceptTable = None, our_team_name: str = None, their_team_name: str = None, our_side: Side = None, last_set_play_start_time: int = None, myself: Self = None, ball: Ball = None, teammates: List[Player] = None, opponents: List[Player] = None, unknowns: List[Player] = None, our_players_dict: Dict[int, Player] = None, their_players_dict: Dict[int, Player] = None, our_goalie_uniform_number: int = None, their_goalie_uniform_number: int = None, offside_line_x: float = None, offside_line_x_count: int = None, kickable_teammate_id: int = None, kickable_opponent_id: int = None, last_kick_side: Side = None, last_kicker_uniform_number: int = None, cycle: int = None, game_mode_type: GameModeType = None, left_team_score: int = None, right_team_score: int = None, is_our_set_play: bool = None, is_their_set_play: bool = None, stoped_cycle: int = None, our_team_score: int = None, their_team_score: int = None, is_penalty_kick_mode: bool = None, helios_home_positions: Dict[int, RpcVector2D] = None): + pass + intercept_table: InterceptTable + our_team_name: str + their_team_name: str + our_side: Side + last_set_play_start_time: int + myself: Self + ball: Ball + teammates: List[Player] + opponents: List[Player] + unknowns: List[Player] + our_players_dict: Dict[int, Player] + their_players_dict: Dict[int, Player] + our_goalie_uniform_number: int + their_goalie_uniform_number: int + offside_line_x: float + offside_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: Dict[int, RpcVector2D] + +class State(object): + def __init__(self, agent_type: AgentType = None, world_model: WorldModel = None, full_world_model: WorldModel = None): + pass + agent_type: AgentType + world_model: WorldModel + full_world_model: WorldModel + +class InitMessage(object): + def __init__(self, agent_type: AgentType = None, debug_mode: bool = None): + pass + agent_type: AgentType + debug_mode: bool + +class Dash(object): + def __init__(self, power: float = None, relative_direction: float = None): + pass + power: float + relative_direction: float + +class Turn(object): + def __init__(self, relative_direction: float = None): + pass + relative_direction: float + +class Kick(object): + def __init__(self, power: float = None, relative_direction: float = None): + pass + power: float + relative_direction: float + +class Tackle(object): + def __init__(self, power_or_dir: float = None, foul: bool = None): + pass + power_or_dir: float + foul: bool + +class Catch(object): + def __init__(self, ): + pass + pass + +class Move(object): + def __init__(self, x: float = None, y: float = None): + pass + x: float + y: float + +class TurnNeck(object): + def __init__(self, moment: float = None): + pass + moment: float + +class ChangeView(object): + def __init__(self, view_width: ViewWidth = None): + pass + view_width: ViewWidth + +class BallMessage(object): + def __init__(self, ball_position: RpcVector2D = None, ball_velocity: RpcVector2D = None): + pass + ball_position: RpcVector2D + ball_velocity: RpcVector2D + +class PassMessage(object): + def __init__(self, receiver_uniform_number: int = None, receiver_point: RpcVector2D = None, ball_position: RpcVector2D = None, ball_velocity: RpcVector2D = None): + pass + receiver_uniform_number: int + receiver_point: RpcVector2D + ball_position: RpcVector2D + ball_velocity: RpcVector2D + +class InterceptMessage(object): + def __init__(self, our: bool = None, uniform_number: int = None, cycle: int = None): + pass + our: bool + uniform_number: int + cycle: int + +class GoalieMessage(object): + def __init__(self, goalie_uniform_number: int = None, goalie_position: RpcVector2D = None, goalie_body_direction: float = None): + pass + goalie_uniform_number: int + goalie_position: RpcVector2D + goalie_body_direction: float + +class GoalieAndPlayerMessage(object): + def __init__(self, goalie_uniform_number: int = None, goalie_position: RpcVector2D = None, goalie_body_direction: float = None, player_uniform_number: int = None, player_position: RpcVector2D = None): + pass + goalie_uniform_number: int + goalie_position: RpcVector2D + goalie_body_direction: float + player_uniform_number: int + player_position: RpcVector2D + +class OffsideLineMessage(object): + def __init__(self, offside_line_x: float = None): + pass + offside_line_x: float + +class DefenseLineMessage(object): + def __init__(self, defense_line_x: float = None): + pass + defense_line_x: float + +class WaitRequestMessage(object): + def __init__(self, ): + pass + pass + +class SetplayMessage(object): + def __init__(self, wait_step: int = None): + pass + wait_step: int + +class PassRequestMessage(object): + def __init__(self, target_point: RpcVector2D = None): + pass + target_point: RpcVector2D + +class StaminaMessage(object): + def __init__(self, stamina: float = None): + pass + stamina: float + +class RecoveryMessage(object): + def __init__(self, recovery: float = None): + pass + recovery: float + +class StaminaCapacityMessage(object): + def __init__(self, stamina_capacity: float = None): + pass + stamina_capacity: float + +class DribbleMessage(object): + def __init__(self, target_point: RpcVector2D = None, queue_count: int = None): + pass + target_point: RpcVector2D + queue_count: int + +class BallGoalieMessage(object): + def __init__(self, ball_position: RpcVector2D = None, ball_velocity: RpcVector2D = None, goalie_position: RpcVector2D = None, goalie_body_direction: float = None): + pass + ball_position: RpcVector2D + ball_velocity: RpcVector2D + goalie_position: RpcVector2D + goalie_body_direction: float + +class OnePlayerMessage(object): + def __init__(self, uniform_number: int = None, position: RpcVector2D = None): + pass + uniform_number: int + position: RpcVector2D + +class TwoPlayerMessage(object): + def __init__(self, first_uniform_number: int = None, first_position: RpcVector2D = None, second_uniform_number: int = None, second_position: RpcVector2D = None): + pass + first_uniform_number: int + first_position: RpcVector2D + second_uniform_number: int + second_position: RpcVector2D + +class ThreePlayerMessage(object): + def __init__(self, first_uniform_number: int = None, first_position: RpcVector2D = None, second_uniform_number: int = None, second_position: RpcVector2D = None, third_uniform_number: int = None, third_position: RpcVector2D = None): + pass + first_uniform_number: int + first_position: RpcVector2D + second_uniform_number: int + second_position: RpcVector2D + third_uniform_number: int + third_position: RpcVector2D + +class SelfMessage(object): + def __init__(self, self_position: RpcVector2D = None, self_body_direction: float = None, self_stamina: float = None): + pass + self_position: RpcVector2D + self_body_direction: float + self_stamina: float + +class TeammateMessage(object): + def __init__(self, uniform_number: int = None, position: RpcVector2D = None, body_direction: float = None): + pass + uniform_number: int + position: RpcVector2D + body_direction: float + +class OpponentMessage(object): + def __init__(self, uniform_number: int = None, position: RpcVector2D = None, body_direction: float = None): + pass + uniform_number: int + position: RpcVector2D + body_direction: float + +class BallPlayerMessage(object): + def __init__(self, ball_position: RpcVector2D = None, ball_velocity: RpcVector2D = None, uniform_number: int = None, player_position: RpcVector2D = None, body_direction: float = None): + pass + ball_position: RpcVector2D + ball_velocity: RpcVector2D + uniform_number: int + player_position: RpcVector2D + body_direction: float + +class Say(object): + def __init__(self, ball_message: BallMessage = None, pass_message: PassMessage = None, intercept_message: InterceptMessage = None, goalie_message: GoalieMessage = None, goalie_and_player_message: GoalieAndPlayerMessage = None, offside_line_message: OffsideLineMessage = None, defense_line_message: DefenseLineMessage = None, wait_request_message: WaitRequestMessage = None, setplay_message: SetplayMessage = None, pass_request_message: PassRequestMessage = None, stamina_message: StaminaMessage = None, recovery_message: RecoveryMessage = None, stamina_capacity_message: StaminaCapacityMessage = None, dribble_message: DribbleMessage = None, ball_goalie_message: BallGoalieMessage = None, one_player_message: OnePlayerMessage = None, two_player_message: TwoPlayerMessage = None, three_player_message: ThreePlayerMessage = None, self_message: SelfMessage = None, teammate_message: TeammateMessage = None, opponent_message: OpponentMessage = None, ball_player_message: BallPlayerMessage = None): + pass + 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 + +class PointTo(object): + def __init__(self, x: float = None, y: float = None): + pass + x: float + y: float + +class PointToOf(object): + def __init__(self, ): + pass + pass + +class AttentionTo(object): + def __init__(self, side: Side = None, unum: int = None): + pass + side: Side + unum: int + +class AttentionToOf(object): + def __init__(self, ): + pass + pass + +class AddText(object): + def __init__(self, level: LoggerLevel = None, message: str = None): + pass + level: LoggerLevel + message: str + +class AddPoint(object): + def __init__(self, level: LoggerLevel = None, point: RpcVector2D = None, color: str = None): + pass + level: LoggerLevel + point: RpcVector2D + color: str + +class AddLine(object): + def __init__(self, level: LoggerLevel = None, start_point: RpcVector2D = None, end_point: RpcVector2D = None, color: str = None): + pass + level: LoggerLevel + start_point: RpcVector2D + end_point: RpcVector2D + color: str + +class AddArc(object): + def __init__(self, level: LoggerLevel = None, center: RpcVector2D = None, radius: float = None, start_angle: float = None, span_angel: float = None, color: str = None): + pass + level: LoggerLevel + center: RpcVector2D + radius: float + start_angle: float + span_angel: float + color: str + +class AddCircle(object): + def __init__(self, level: LoggerLevel = None, center: RpcVector2D = None, radius: float = None, color: str = None, fill: bool = None): + pass + level: LoggerLevel + center: RpcVector2D + radius: float + color: str + fill: bool + +class AddTriangle(object): + def __init__(self, level: LoggerLevel = None, point1: RpcVector2D = None, point2: RpcVector2D = None, point3: RpcVector2D = None, color: str = None, fill: bool = None): + pass + level: LoggerLevel + point1: RpcVector2D + point2: RpcVector2D + point3: RpcVector2D + color: str + fill: bool + +class AddRectangle(object): + def __init__(self, level: LoggerLevel = None, left: float = None, top: float = None, length: float = None, width: float = None, color: str = None, fill: bool = None): + pass + level: LoggerLevel + left: float + top: float + length: float + width: float + color: str + fill: bool + +class AddSector(object): + def __init__(self, level: LoggerLevel = None, center: RpcVector2D = None, min_radius: float = None, max_radius: float = None, start_angle: float = None, span_angel: float = None, color: str = None, fill: bool = None): + pass + level: LoggerLevel + center: RpcVector2D + min_radius: float + max_radius: float + start_angle: float + span_angel: float + color: str + fill: bool + +class AddMessage(object): + def __init__(self, level: LoggerLevel = None, position: RpcVector2D = None, message: str = None, color: str = None): + pass + level: LoggerLevel + position: RpcVector2D + message: str + color: str + +class Log(object): + def __init__(self, add_text: AddText = None, add_point: AddPoint = None, add_line: AddLine = None, add_arc: AddArc = None, add_circle: AddCircle = None, add_triangle: AddTriangle = None, add_rectangle: AddRectangle = None, add_sector: AddSector = None, add_message: AddMessage = None): + pass + 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 + +class DebugClient(object): + def __init__(self, message: str = None): + pass + message: str + +class Body_GoToPoint(object): + def __init__(self, target_point: RpcVector2D = None, distance_threshold: float = None, max_dash_power: float = None): + pass + target_point: RpcVector2D + distance_threshold: float + max_dash_power: float + +class Body_SmartKick(object): + def __init__(self, target_point: RpcVector2D = None, first_speed: float = None, first_speed_threshold: float = None, max_steps: int = None): + pass + target_point: RpcVector2D + first_speed: float + first_speed_threshold: float + max_steps: int + +class Bhv_BeforeKickOff(object): + def __init__(self, point: RpcVector2D = None): + pass + point: RpcVector2D + +class Bhv_BodyNeckToBall(object): + def __init__(self, ): + pass + pass + +class Bhv_BodyNeckToPoint(object): + def __init__(self, point: RpcVector2D = None): + pass + point: RpcVector2D + +class Bhv_Emergency(object): + def __init__(self, ): + pass + pass + +class Bhv_GoToPointLookBall(object): + def __init__(self, target_point: RpcVector2D = None, distance_threshold: float = None, max_dash_power: float = None): + pass + target_point: RpcVector2D + distance_threshold: float + max_dash_power: float + +class Bhv_NeckBodyToBall(object): + def __init__(self, angle_buf: float = None): + pass + angle_buf: float + +class Bhv_NeckBodyToPoint(object): + def __init__(self, point: RpcVector2D = None, angle_buf: float = None): + pass + point: RpcVector2D + angle_buf: float + +class Bhv_ScanField(object): + def __init__(self, ): + pass + pass + +class Body_AdvanceBall(object): + def __init__(self, ): + pass + pass + +class Body_ClearBall(object): + def __init__(self, ): + pass + pass + +class Body_Dribble(object): + def __init__(self, target_point: RpcVector2D = None, distance_threshold: float = None, dash_power: float = None, dash_count: int = None, dodge: bool = None): + pass + target_point: RpcVector2D + distance_threshold: float + dash_power: float + dash_count: int + dodge: bool + +class Body_GoToPointDodge(object): + def __init__(self, target_point: RpcVector2D = None, dash_power: float = None): + pass + target_point: RpcVector2D + dash_power: float + +class Body_HoldBall(object): + def __init__(self, do_turn: bool = None, turn_target_point: RpcVector2D = None, kick_target_point: RpcVector2D = None): + pass + do_turn: bool + turn_target_point: RpcVector2D + kick_target_point: RpcVector2D + +class Body_Intercept(object): + def __init__(self, save_recovery: bool = None, face_point: RpcVector2D = None): + pass + save_recovery: bool + face_point: RpcVector2D + +class Body_KickOneStep(object): + def __init__(self, target_point: RpcVector2D = None, first_speed: float = None, force_mode: bool = None): + pass + target_point: RpcVector2D + first_speed: float + force_mode: bool + +class Body_StopBall(object): + def __init__(self, ): + pass + pass + +class Body_StopDash(object): + def __init__(self, save_recovery: bool = None): + pass + save_recovery: bool + +class Body_TackleToPoint(object): + def __init__(self, target_point: RpcVector2D = None, min_probability: float = None, min_speed: float = None): + pass + target_point: RpcVector2D + min_probability: float + min_speed: float + +class Body_TurnToAngle(object): + def __init__(self, angle: float = None): + pass + angle: float + +class Body_TurnToBall(object): + def __init__(self, cycle: int = None): + pass + cycle: int + +class Body_TurnToPoint(object): + def __init__(self, target_point: RpcVector2D = None, cycle: int = None): + pass + target_point: RpcVector2D + cycle: int + +class Focus_MoveToPoint(object): + def __init__(self, target_point: RpcVector2D = None): + pass + target_point: RpcVector2D + +class Focus_Reset(object): + def __init__(self, ): + pass + pass + +class Neck_ScanField(object): + def __init__(self, ): + pass + pass + +class Neck_ScanPlayers(object): + def __init__(self, ): + pass + pass + +class Neck_TurnToBallAndPlayer(object): + def __init__(self, side: Side = None, uniform_number: int = None, count_threshold: int = None): + pass + side: Side + uniform_number: int + count_threshold: int + +class Neck_TurnToBallOrScan(object): + def __init__(self, count_threshold: int = None): + pass + count_threshold: int + +class Neck_TurnToBall(object): + def __init__(self, ): + pass + pass + +class Neck_TurnToGoalieOrScan(object): + def __init__(self, count_threshold: int = None): + pass + count_threshold: int + +class Neck_TurnToLowConfTeammate(object): + def __init__(self, ): + pass + pass + +class Neck_TurnToPlayerOrScan(object): + def __init__(self, side: Side = None, uniform_number: int = None, count_threshold: int = None): + pass + side: Side + uniform_number: int + count_threshold: int + +class Neck_TurnToPoint(object): + def __init__(self, target_point: RpcVector2D = None): + pass + target_point: RpcVector2D + +class Neck_TurnToRelative(object): + def __init__(self, angle: float = None): + pass + angle: float + +class View_ChangeWidth(object): + def __init__(self, view_width: ViewWidth = None): + pass + view_width: ViewWidth + +class View_Normal(object): + def __init__(self, ): + pass + pass + +class View_Synch(object): + def __init__(self, ): + pass + pass + +class View_Wide(object): + def __init__(self, ): + pass + pass + +class HeliosGoalie(object): + def __init__(self, ): + pass + pass + +class HeliosGoalieMove(object): + def __init__(self, ): + pass + pass + +class HeliosGoalieKick(object): + def __init__(self, ): + pass + pass + +class HeliosShoot(object): + def __init__(self, ): + pass + pass + +class HeliosChainAction(object): + def __init__(self, direct_pass: bool = None, lead_pass: bool = None, through_pass: bool = None, short_dribble: bool = None, long_dribble: bool = None, cross: bool = None, simple_pass: bool = None, simple_dribble: bool = None, simple_shoot: bool = None): + pass + 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 + +class HeliosBasicOffensive(object): + def __init__(self, ): + pass + pass + +class HeliosBasicMove(object): + def __init__(self, ): + pass + pass + +class HeliosSetPlay(object): + def __init__(self, ): + pass + pass + +class HeliosPenalty(object): + def __init__(self, ): + pass + pass + +class HeliosCommunicaion(object): + def __init__(self, ): + pass + pass + +class PlayerAction(object): + def __init__(self, dash: Dash = None, turn: Turn = None, kick: Kick = None, tackle: Tackle = None, catch_action: Catch = None, move: Move = None, turn_neck: TurnNeck = None, change_view: ChangeView = None, say: Say = None, point_to: PointTo = None, point_to_of: PointToOf = None, attention_to: AttentionTo = None, attention_to_of: AttentionToOf = None, log: Log = None, debug_client: DebugClient = None, body_go_to_point: Body_GoToPoint = None, body_smart_kick: Body_SmartKick = None, bhv_before_kick_off: Bhv_BeforeKickOff = None, bhv_body_neck_to_ball: Bhv_BodyNeckToBall = None, bhv_body_neck_to_point: Bhv_BodyNeckToPoint = None, bhv_emergency: Bhv_Emergency = None, bhv_go_to_point_look_ball: Bhv_GoToPointLookBall = None, bhv_neck_body_to_ball: Bhv_NeckBodyToBall = None, bhv_neck_body_to_point: Bhv_NeckBodyToPoint = None, bhv_scan_field: Bhv_ScanField = None, body_advance_ball: Body_AdvanceBall = None, body_clear_ball: Body_ClearBall = None, body_dribble: Body_Dribble = None, body_go_to_point_dodge: Body_GoToPointDodge = None, body_hold_ball: Body_HoldBall = None, body_intercept: Body_Intercept = None, body_kick_one_step: Body_KickOneStep = None, body_stop_ball: Body_StopBall = None, body_stop_dash: Body_StopDash = None, body_tackle_to_point: Body_TackleToPoint = None, body_turn_to_angle: Body_TurnToAngle = None, body_turn_to_ball: Body_TurnToBall = None, body_turn_to_point: Body_TurnToPoint = None, focus_move_to_point: Focus_MoveToPoint = None, focus_reset: Focus_Reset = None, neck_scan_field: Neck_ScanField = None, neck_scan_players: Neck_ScanPlayers = None, neck_turn_to_ball_and_player: Neck_TurnToBallAndPlayer = None, neck_turn_to_ball_or_scan: Neck_TurnToBallOrScan = None, neck_turn_to_ball: Neck_TurnToBall = None, neck_turn_to_goalie_or_scan: Neck_TurnToGoalieOrScan = None, neck_turn_to_low_conf_teammate: Neck_TurnToLowConfTeammate = None, neck_turn_to_player_or_scan: Neck_TurnToPlayerOrScan = None, neck_turn_to_point: Neck_TurnToPoint = None, neck_turn_to_relative: Neck_TurnToRelative = None, view_change_width: View_ChangeWidth = None, view_normal: View_Normal = None, view_synch: View_Synch = None, view_wide: View_Wide = None, helios_goalie: HeliosGoalie = None, helios_goalie_move: HeliosGoalieMove = None, helios_goalie_kick: HeliosGoalieKick = None, helios_shoot: HeliosShoot = None, helios_chain_action: HeliosChainAction = None, helios_basic_offensive: HeliosBasicOffensive = None, helios_basic_move: HeliosBasicMove = None, helios_set_play: HeliosSetPlay = None, helios_penalty: HeliosPenalty = None, helios_communication: HeliosCommunicaion = None): + pass + dash: Dash + turn: Turn + kick: Kick + tackle: Tackle + catch_action: 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 + +class PlayerActions(object): + def __init__(self, actions: List[PlayerAction] = None): + pass + actions: List[PlayerAction] + +class ChangePlayerType(object): + def __init__(self, uniform_number: int = None, type: int = None): + pass + uniform_number: int + type: int + +class DoHeliosSubstitute(object): + def __init__(self, ): + pass + pass + +class DoHeliosSayPlayerTypes(object): + def __init__(self, ): + pass + pass + +class CoachAction(object): + def __init__(self, change_player_types: ChangePlayerType = None, do_helios_substitute: DoHeliosSubstitute = None, do_helios_say_player_types: DoHeliosSayPlayerTypes = None): + pass + change_player_types: ChangePlayerType + do_helios_substitute: DoHeliosSubstitute + do_helios_say_player_types: DoHeliosSayPlayerTypes + +class CoachActions(object): + def __init__(self, actions: List[CoachAction] = None): + pass + actions: List[CoachAction] + +class DoKickOff(object): + def __init__(self, ): + pass + pass + +class DoMoveBall(object): + def __init__(self, position: RpcVector2D = None, velocity: RpcVector2D = None): + pass + position: RpcVector2D + velocity: RpcVector2D + +class DoMovePlayer(object): + def __init__(self, our_side: bool = None, uniform_number: int = None, position: RpcVector2D = None, body_direction: float = None): + pass + our_side: bool + uniform_number: int + position: RpcVector2D + body_direction: float + +class DoRecover(object): + def __init__(self, ): + pass + pass + +class DoChangeMode(object): + def __init__(self, game_mode_type: GameModeType = None, side: Side = None): + pass + game_mode_type: GameModeType + side: Side + +class DoChangePlayerType(object): + def __init__(self, our_side: bool = None, uniform_number: int = None, type: int = None): + pass + our_side: bool + uniform_number: int + type: int + +class TrainerAction(object): + def __init__(self, do_kick_off: DoKickOff = None, do_move_ball: DoMoveBall = None, do_move_player: DoMovePlayer = None, do_recover: DoRecover = None, do_change_mode: DoChangeMode = None, do_change_player_type: DoChangePlayerType = None): + pass + do_kick_off: DoKickOff + do_move_ball: DoMoveBall + do_move_player: DoMovePlayer + do_recover: DoRecover + do_change_mode: DoChangeMode + do_change_player_type: DoChangePlayerType + +class TrainerActions(object): + def __init__(self, actions: List[TrainerAction] = None): + pass + actions: List[TrainerAction] + +class ServerParam(object): + def __init__(self, agent_type: AgentType = None, inertia_moment: float = None, player_size: float = None, player_decay: float = None, player_rand: float = None, player_weight: float = None, player_speed_max: float = None, player_accel_max: float = None, stamina_max: float = None, stamina_inc_max: float = None, recover_init: float = None, recover_dec_thr: float = None, recover_min: float = None, recover_dec: float = None, effort_init: float = None, effort_dec_thr: float = None, effort_min: float = None, effort_dec: float = None, effort_inc_thr: float = None, effort_inc: float = None, kick_rand: float = None, team_actuator_noise: bool = None, player_rand_factor_l: float = None, player_rand_factor_r: float = None, kick_rand_factor_l: float = None, kick_rand_factor_r: float = None, ball_size: float = None, ball_decay: float = None, ball_rand: float = None, ball_weight: float = None, ball_speed_max: float = None, ball_accel_max: float = None, dash_power_rate: float = None, kick_power_rate: float = None, kickable_margin: float = None, control_radius: float = None, control_radius_width: float = None, max_power: float = None, min_power: float = None, max_moment: float = None, min_moment: float = None, max_neck_moment: float = None, min_neck_moment: float = None, max_neck_angle: float = None, min_neck_angle: float = None, visible_angle: float = None, visible_distance: float = None, wind_dir: float = None, wind_force: float = None, wind_angle: float = None, wind_rand: float = None, kickable_area: float = None, catch_area_l: float = None, catch_area_w: float = None, catch_probability: float = None, goalie_max_moves: int = None, corner_kick_margin: float = None, offside_active_area_size: float = None, wind_none: bool = None, use_wind_random: bool = None, coach_say_count_max: int = None, coach_say_msg_size: int = None, clang_win_size: int = None, clang_define_win: int = None, clang_meta_win: int = None, clang_advice_win: int = None, clang_info_win: int = None, clang_mess_delay: int = None, clang_mess_per_cycle: int = None, half_time: int = None, simulator_step: int = None, send_step: int = None, recv_step: int = None, sense_body_step: int = None, lcm_step: int = None, player_say_msg_size: int = None, player_hear_max: int = None, player_hear_inc: int = None, player_hear_decay: int = None, catch_ban_cycle: int = None, slow_down_factor: int = None, use_offside: bool = None, kickoff_offside: bool = None, offside_kick_margin: float = None, audio_cut_dist: float = None, dist_quantize_step: float = None, landmark_dist_quantize_step: float = None, dir_quantize_step: float = None, dist_quantize_step_l: float = None, dist_quantize_step_r: float = None, landmark_dist_quantize_step_l: float = None, landmark_dist_quantize_step_r: float = None, dir_quantize_step_l: float = None, dir_quantize_step_r: float = None, coach_mode: bool = None, coach_with_referee_mode: bool = None, use_old_coach_hear: bool = None, slowness_on_top_for_left_team: float = None, slowness_on_top_for_right_team: float = None, start_goal_l: int = None, start_goal_r: int = None, fullstate_l: bool = None, fullstate_r: bool = None, drop_ball_time: int = None, synch_mode: bool = None, synch_offset: int = None, synch_micro_sleep: int = None, point_to_ban: int = None, point_to_duration: int = None, player_port: int = None, trainer_port: int = None, online_coach_port: int = None, verbose_mode: bool = None, coach_send_vi_step: int = None, replay_file: str = None, landmark_file: str = None, send_comms: bool = None, text_logging: bool = None, game_logging: bool = None, game_log_version: int = None, text_log_dir: str = None, game_log_dir: str = None, text_log_fixed_name: str = None, game_log_fixed_name: str = None, use_text_log_fixed: bool = None, use_game_log_fixed: bool = None, use_text_log_dated: bool = None, use_game_log_dated: bool = None, log_date_format: str = None, log_times: bool = None, record_message: bool = None, text_log_compression: int = None, game_log_compression: int = None, use_profile: bool = None, tackle_dist: float = None, tackle_back_dist: float = None, tackle_width: float = None, tackle_exponent: float = None, tackle_cycles: int = None, tackle_power_rate: float = None, freeform_wait_period: int = None, freeform_send_period: int = None, free_kick_faults: bool = None, back_passes: bool = None, proper_goal_kicks: bool = None, stopped_ball_vel: float = None, max_goal_kicks: int = None, clang_del_win: int = None, clang_rule_win: int = None, auto_mode: bool = None, kick_off_wait: int = None, connect_wait: int = None, game_over_wait: int = None, team_l_start: str = None, team_r_start: str = None, keepaway_mode: bool = None, keepaway_length: float = None, keepaway_width: float = None, keepaway_logging: bool = None, keepaway_log_dir: str = None, keepaway_log_fixed_name: str = None, keepaway_log_fixed: bool = None, keepaway_log_dated: bool = None, keepaway_start: int = None, nr_normal_halfs: int = None, nr_extra_halfs: int = None, penalty_shoot_outs: bool = None, pen_before_setup_wait: int = None, pen_setup_wait: int = None, pen_ready_wait: int = None, pen_taken_wait: int = None, pen_nr_kicks: int = None, pen_max_extra_kicks: int = None, pen_dist_x: float = None, pen_random_winner: bool = None, pen_allow_mult_kicks: bool = None, pen_max_goalie_dist_x: float = None, pen_coach_moves_players: bool = None, module_dir: str = None, ball_stuck_area: float = None, coach_msg_file: str = None, max_tackle_power: float = None, max_back_tackle_power: float = None, player_speed_max_min: float = None, extra_stamina: float = None, synch_see_offset: int = None, extra_half_time: int = None, stamina_capacity: float = None, max_dash_angle: float = None, min_dash_angle: float = None, dash_angle_step: float = None, side_dash_rate: float = None, back_dash_rate: float = None, max_dash_power: float = None, min_dash_power: float = None, tackle_rand_factor: float = None, foul_detect_probability: float = None, foul_exponent: float = None, foul_cycles: int = None, golden_goal: bool = None, red_card_probability: float = None, illegal_defense_duration: int = None, illegal_defense_number: int = None, illegal_defense_dist_x: float = None, illegal_defense_width: float = None, fixed_teamname_l: str = None, fixed_teamname_r: str = None, max_catch_angle: float = None, min_catch_angle: float = None, random_seed: int = None, long_kick_power_factor: float = None, long_kick_delay: int = None, max_monitors: int = None, catchable_area: float = None, real_speed_max: float = None, pitch_half_length: float = None, pitch_half_width: float = None, our_penalty_area_line_x: float = None, their_penalty_area_line_x: float = None, penalty_area_half_width: float = None, penalty_area_length: float = None, goal_width: float = None): + pass + agent_type: AgentType + inertia_moment: float + player_size: float + player_decay: float + player_rand: float + player_weight: float + player_speed_max: float + player_accel_max: float + stamina_max: float + stamina_inc_max: float + recover_init: float + recover_dec_thr: float + recover_min: float + recover_dec: float + effort_init: float + effort_dec_thr: float + effort_min: float + effort_dec: float + effort_inc_thr: float + effort_inc: float + kick_rand: float + team_actuator_noise: bool + player_rand_factor_l: float + player_rand_factor_r: float + kick_rand_factor_l: float + kick_rand_factor_r: float + ball_size: float + ball_decay: float + ball_rand: float + ball_weight: float + ball_speed_max: float + ball_accel_max: float + dash_power_rate: float + kick_power_rate: float + kickable_margin: float + control_radius: float + control_radius_width: float + max_power: float + min_power: float + max_moment: float + min_moment: float + max_neck_moment: float + min_neck_moment: float + max_neck_angle: float + min_neck_angle: float + visible_angle: float + visible_distance: float + wind_dir: float + wind_force: float + wind_angle: float + wind_rand: float + kickable_area: float + catch_area_l: float + catch_area_w: float + catch_probability: float + goalie_max_moves: int + corner_kick_margin: float + offside_active_area_size: float + wind_none: bool + use_wind_random: bool + coach_say_count_max: int + coach_say_msg_size: int + clang_win_size: int + clang_define_win: int + clang_meta_win: int + clang_advice_win: int + clang_info_win: int + clang_mess_delay: int + clang_mess_per_cycle: int + half_time: int + simulator_step: int + send_step: int + recv_step: int + sense_body_step: int + lcm_step: int + player_say_msg_size: int + player_hear_max: int + player_hear_inc: int + player_hear_decay: int + catch_ban_cycle: int + slow_down_factor: int + use_offside: bool + kickoff_offside: bool + offside_kick_margin: float + audio_cut_dist: float + dist_quantize_step: float + landmark_dist_quantize_step: float + dir_quantize_step: float + dist_quantize_step_l: float + dist_quantize_step_r: float + landmark_dist_quantize_step_l: float + landmark_dist_quantize_step_r: float + dir_quantize_step_l: float + dir_quantize_step_r: float + coach_mode: bool + coach_with_referee_mode: bool + use_old_coach_hear: bool + slowness_on_top_for_left_team: float + slowness_on_top_for_right_team: float + start_goal_l: int + start_goal_r: int + fullstate_l: bool + fullstate_r: bool + drop_ball_time: int + synch_mode: bool + synch_offset: int + synch_micro_sleep: int + point_to_ban: int + point_to_duration: int + player_port: int + trainer_port: int + online_coach_port: int + verbose_mode: bool + coach_send_vi_step: int + replay_file: str + landmark_file: str + send_comms: bool + text_logging: bool + game_logging: bool + game_log_version: int + text_log_dir: str + game_log_dir: str + text_log_fixed_name: str + game_log_fixed_name: str + use_text_log_fixed: bool + use_game_log_fixed: bool + use_text_log_dated: bool + use_game_log_dated: bool + log_date_format: str + log_times: bool + record_message: bool + text_log_compression: int + game_log_compression: int + use_profile: bool + tackle_dist: float + tackle_back_dist: float + tackle_width: float + tackle_exponent: float + tackle_cycles: int + tackle_power_rate: float + freeform_wait_period: int + freeform_send_period: int + free_kick_faults: bool + back_passes: bool + proper_goal_kicks: bool + stopped_ball_vel: float + max_goal_kicks: int + clang_del_win: int + clang_rule_win: int + auto_mode: bool + kick_off_wait: int + connect_wait: int + game_over_wait: int + team_l_start: str + team_r_start: str + keepaway_mode: bool + keepaway_length: float + keepaway_width: float + keepaway_logging: bool + keepaway_log_dir: str + keepaway_log_fixed_name: str + keepaway_log_fixed: bool + keepaway_log_dated: bool + keepaway_start: int + nr_normal_halfs: int + nr_extra_halfs: int + penalty_shoot_outs: bool + pen_before_setup_wait: int + pen_setup_wait: int + pen_ready_wait: int + pen_taken_wait: int + pen_nr_kicks: int + pen_max_extra_kicks: int + pen_dist_x: float + pen_random_winner: bool + pen_allow_mult_kicks: bool + pen_max_goalie_dist_x: float + pen_coach_moves_players: bool + module_dir: str + ball_stuck_area: float + coach_msg_file: str + max_tackle_power: float + max_back_tackle_power: float + player_speed_max_min: float + extra_stamina: float + synch_see_offset: int + extra_half_time: int + stamina_capacity: float + max_dash_angle: float + min_dash_angle: float + dash_angle_step: float + side_dash_rate: float + back_dash_rate: float + max_dash_power: float + min_dash_power: float + tackle_rand_factor: float + foul_detect_probability: float + foul_exponent: float + foul_cycles: int + golden_goal: bool + red_card_probability: float + illegal_defense_duration: int + illegal_defense_number: int + illegal_defense_dist_x: float + illegal_defense_width: float + fixed_teamname_l: str + fixed_teamname_r: str + max_catch_angle: float + min_catch_angle: float + random_seed: int + long_kick_power_factor: float + long_kick_delay: int + max_monitors: int + catchable_area: float + real_speed_max: float + pitch_half_length: float + pitch_half_width: float + our_penalty_area_line_x: float + their_penalty_area_line_x: float + penalty_area_half_width: float + penalty_area_length: float + goal_width: float + +class PlayerParam(object): + def __init__(self, agent_type: AgentType = None, player_types: int = None, subs_max: int = None, pt_max: int = None, allow_mult_default_type: bool = None, player_speed_max_delta_min: float = None, player_speed_max_delta_max: float = None, stamina_inc_max_delta_factor: float = None, player_decay_delta_min: float = None, player_decay_delta_max: float = None, inertia_moment_delta_factor: float = None, dash_power_rate_delta_min: float = None, dash_power_rate_delta_max: float = None, player_size_delta_factor: float = None, kickable_margin_delta_min: float = None, kickable_margin_delta_max: float = None, kick_rand_delta_factor: float = None, extra_stamina_delta_min: float = None, extra_stamina_delta_max: float = None, effort_max_delta_factor: float = None, effort_min_delta_factor: float = None, random_seed: int = None, new_dash_power_rate_delta_min: float = None, new_dash_power_rate_delta_max: float = None, new_stamina_inc_max_delta_factor: float = None, kick_power_rate_delta_min: float = None, kick_power_rate_delta_max: float = None, foul_detect_probability_delta_factor: float = None, catchable_area_l_stretch_min: float = None, catchable_area_l_stretch_max: float = None): + pass + agent_type: AgentType + 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 + +class PlayerType(object): + def __init__(self, agent_type: AgentType = None, id: int = None, stamina_inc_max: float = None, player_decay: float = None, inertia_moment: float = None, dash_power_rate: float = None, player_size: float = None, kickable_margin: float = None, kick_rand: float = None, extra_stamina: float = None, effort_max: float = None, effort_min: float = None, kick_power_rate: float = None, foul_detect_probability: float = None, catchable_area_l_stretch: float = None, unum_far_length: float = None, unum_too_far_length: float = None, team_far_length: float = None, team_too_far_length: float = None, player_max_observation_length: float = None, ball_vel_far_length: float = None, ball_vel_too_far_length: float = None, ball_max_observation_length: float = None, flag_chg_far_length: float = None, flag_chg_too_far_length: float = None, flag_max_observation_length: float = None, kickable_area: float = None, reliable_catchable_dist: float = None, max_catchable_dist: float = None, real_speed_max: float = None, player_speed_max2: float = None, real_speed_max2: float = None, cycles_to_reach_max_speed: int = None, player_speed_max: float = None): + pass + agent_type: AgentType + id: int + stamina_inc_max: float + player_decay: float + inertia_moment: float + dash_power_rate: float + player_size: float + kickable_margin: float + kick_rand: float + extra_stamina: float + effort_max: float + effort_min: float + kick_power_rate: float + foul_detect_probability: float + catchable_area_l_stretch: float + unum_far_length: float + unum_too_far_length: float + team_far_length: float + team_too_far_length: float + player_max_observation_length: float + ball_vel_far_length: float + ball_vel_too_far_length: float + ball_max_observation_length: float + flag_chg_far_length: float + flag_chg_too_far_length: float + flag_max_observation_length: float + kickable_area: float + reliable_catchable_dist: float + max_catchable_dist: float + real_speed_max: float + player_speed_max2: float + real_speed_max2: float + cycles_to_reach_max_speed: int + player_speed_max: float + +class Empty(object): + def __init__(self, ): + pass + pass + +class RegisterRequest(object): + def __init__(self, agent_type: AgentType = None, team_name: str = None, uniform_number: int = None): + pass + agent_type: AgentType + team_name: str + uniform_number: int + +class RegisterResponse(object): + def __init__(self, client_id: int = None): + pass + client_id: int diff --git a/src/BHV_Block.py b/src/BHV_Block.py index 6478945..1743af2 100644 --- a/src/BHV_Block.py +++ b/src/BHV_Block.py @@ -1,20 +1,19 @@ -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 - +from soccer.ttypes import LoggerLevel, PlayerAction, Body_GoToPoint, Neck_TurnToBall, DebugClient, GameModeType, RpcVector2D 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}") + agent.add_log_text(LoggerLevel.BLOCK, "start blocking") + if agent.wm.game_mode_type != GameModeType.PlayOn: + agent.add_log_text(LoggerLevel.BLOCK, f"is not play on {agent.wm.game_mode_type} {GameModeType.PlayOn}") return False teammate_reach_steps = agent.wm.intercept_table.first_teammate_reach_steps @@ -22,7 +21,7 @@ def execute(self, agent: IAgent): 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} " + agent.add_log_text(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) @@ -35,14 +34,14 @@ def execute(self, agent: IAgent): block_cycle = 1000 block_pos = Vector2D(0, 0) for unum in range(2, 12): - agent.add_log_text(pb2.LoggerLevel.BLOCK, f">> tm: {unum}") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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) @@ -59,11 +58,11 @@ def execute(self, agent: IAgent): 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}"))) + agent.add_log_text(LoggerLevel.BLOCK, f"### block cycle: {block_cycle}") + agent.add_log_text(LoggerLevel.BLOCK, f"### best blocker: {blocker}") + if blocker == agent.wm.myself.uniform_number: + agent.add_action(PlayerAction(body_go_to_point=Body_GoToPoint(target_point=RpcVector2D(x=block_pos.x(), y=block_pos.y()), distance_threshold=0.5, max_dash_power=100))) + agent.add_action(PlayerAction(neck_turn_to_ball=Neck_TurnToBall())) + agent.add_action(PlayerAction(debug_client=DebugClient(message=f"blocker: {blocker}"))) return True return False diff --git a/src/DM_NoBall.py b/src/DM_NoBall.py index 0240437..3c122e6 100644 --- a/src/DM_NoBall.py +++ b/src/DM_NoBall.py @@ -1,38 +1,37 @@ -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 - +from soccer.ttypes import LoggerLevel, PlayerAction, Body_Intercept, Neck_TurnToBall, Body_GoToPoint, DebugClient, RpcVector2D, HeliosBasicMove 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 + # 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(PlayerAction(body_intercept=Body_Intercept(save_recovery=False, + # face_point=RpcVector2D( x=agent.wm.ball.position.x, + # y=agent.wm.ball.position.y)))) + # agent.add_action(PlayerAction(neck_turn_to_ball=Neck_TurnToBall())) + # return + # + # pos = agent.get_strategy().getPosition(agent.wm.myself.uniform_number) + # agent.add_log_text(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(PlayerAction(body_go_to_point=Body_GoToPoint(target_point=RpcVector2D(x=pos.x(), y=pos.y()), + # distance_threshold=1, + # max_dash_power=100))) + # agent.add_action(PlayerAction(neck_turn_to_ball=Neck_TurnToBall())) + # agent.add_action(PlayerAction(debug_client=DebugClient(message=f"go to : {pos.x()}, {pos.y()}"))) + agent.add_action(PlayerAction(helios_basic_move=HeliosBasicMove())) \ No newline at end of file diff --git a/src/DM_PlayOn.py b/src/DM_PlayOn.py index 617c326..0d82ef5 100644 --- a/src/DM_PlayOn.py +++ b/src/DM_PlayOn.py @@ -1,4 +1,3 @@ -import service_pb2 as pb2 from src.IDecisionMaker import IDecisionMaker from src.IAgent import IAgent from src.DM_WithBall import WithBallDecisionMaker @@ -12,7 +11,7 @@ def __init__(self): pass def make_decision(self, agent: IAgent): - if agent.wm.self.is_kickable: + if agent.wm.myself.is_kickable: self.withBallDecisionMaker.make_decision(agent) else: self.noBallDecisionMaker.make_decision(agent) \ No newline at end of file diff --git a/src/DM_SetPlay.py b/src/DM_SetPlay.py index ac9bc03..cb30024 100644 --- a/src/DM_SetPlay.py +++ b/src/DM_SetPlay.py @@ -1,11 +1,11 @@ -import service_pb2 as pb2 from src.IDecisionMaker import IDecisionMaker from src.IAgent import IAgent +from soccer.ttypes import PlayerAction, Turn, WorldModel 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 + def make_decision(self, agent: IAgent, wm: WorldModel): + agent.add_action(PlayerAction(turn=Turn(relative_direction=30.0))) \ No newline at end of file diff --git a/src/DM_WithBall.py b/src/DM_WithBall.py index b4876d7..ffb43dc 100644 --- a/src/DM_WithBall.py +++ b/src/DM_WithBall.py @@ -1,6 +1,5 @@ # from pyparsing import col from src.GEN_Dribble import GeneratorDribble -import service_pb2 as pb2 from src.IDecisionMaker import IDecisionMaker from src.IAgent import IAgent from pyrusgeom.soccer_math import * @@ -8,6 +7,7 @@ from src.GEN_Pass import GeneratorPass from src.IBallAction import BallAction import time +from soccer.ttypes import LoggerLevel, PlayerAction, Body_HoldBall, Neck_ScanField, Body_SmartKick, RpcVector2D, HeliosChainAction class WithBallDecisionMaker(IDecisionMaker): def __init__(self): @@ -18,43 +18,52 @@ def __init__(self): sum_time = 0 count = 0 def make_decision(self, agent: IAgent): - start_time = time.time() - candidate_actions: list[BallAction] = [] - candidate_actions = self.pass_generator.generate(agent, 0) - candidate_actions += self.dribble_generator.generator(agent) - - if len(candidate_actions) == 0: - agent.add_action(pb2.PlayerAction(body_hold_ball=pb2.Body_HoldBall())) - agent.add_action(pb2.PlayerAction(neck_scan_field=pb2.Neck_ScanField())) - 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())) - agent.add_action(pb2.PlayerAction(neck_scan_field=pb2.Neck_ScanField())) - 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))) - agent.add_action(pb2.PlayerAction(neck_scan_field=pb2.Neck_ScanField())) \ No newline at end of file + # start_time = time.time() + # candidate_actions: list[BallAction] = [] + # candidate_actions = self.pass_generator.generate(agent, 0) + # candidate_actions += self.dribble_generator.generator(agent) + # + # if len(candidate_actions) == 0: + # agent.add_action(PlayerAction(body_hold_ball=Body_HoldBall())) + # agent.add_action(PlayerAction(neck_scan_field=Neck_ScanField())) + # return + # + # if agent.debug_mode: + # agent.add_log_text(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(PlayerAction(body_hold_ball=Body_HoldBall())) + # agent.add_action(PlayerAction(neck_scan_field=Neck_ScanField())) + # return + # + # agent.add_action(PlayerAction(body_smart_kick=Body_SmartKick( + # target_point=RpcVector2D(x=best_action.targetBallPos.x(), y=best_action.targetBallPos.y()), + # first_speed=best_action.firstVelocity.r(), + # first_speed_threshold=0.0, + # max_steps=3))) + # agent.add_action(PlayerAction(neck_scan_field=Neck_ScanField())) + agent.add_action(PlayerAction(helios_chain_action=HeliosChainAction(direct_pass=True, + lead_pass=True, + through_pass=True, + short_dribble=True, + long_dribble=True, + cross=True, + simple_pass=False, + simple_dribble=False, + simple_shoot=True))) diff --git a/src/DecisionMaker.py b/src/DecisionMaker.py index 4a2f1cb..3b2b93a 100644 --- a/src/DecisionMaker.py +++ b/src/DecisionMaker.py @@ -1,4 +1,4 @@ -import service_pb2 as pb2 +from soccer.ttypes import HeliosGoalie, HeliosPenalty, HeliosSetPlay, GameModeType, PlayerAction from src.IDecisionMaker import IDecisionMaker from src.DM_PlayOn import PlayOnDecisionMaker from src.DM_SetPlay import SetPlayDecisionMaker @@ -11,12 +11,12 @@ def __init__(self): self.setPlayDecisionMaker = SetPlayDecisionMaker() def make_decision(self, agent: IAgent): - if agent.wm.self.is_goalie: - agent.add_action(pb2.PlayerAction(helios_goalie=pb2.HeliosGoalie())) + if agent.wm.myself.is_goalie: + agent.add_action(PlayerAction(helios_goalie=HeliosGoalie())) else: - if agent.wm.game_mode_type == pb2.GameModeType.PlayOn: + if agent.wm.game_mode_type == GameModeType.PlayOn: self.playOnDecisionMaker.make_decision(agent) elif agent.wm.is_penalty_kick_mode: - agent.add_action(pb2.PlayerAction(helios_penalty=pb2.HeliosPenalty())) + agent.add_action(PlayerAction(helios_penalty=HeliosPenalty())) else: - agent.add_action(pb2.PlayerAction(helios_set_play=pb2.HeliosSetPlay())) \ No newline at end of file + agent.add_action(PlayerAction(helios_set_play=HeliosSetPlay())) \ No newline at end of file diff --git a/src/FormationStrategy.py b/src/FormationStrategy.py index 7be69f5..2e697ac 100644 --- a/src/FormationStrategy.py +++ b/src/FormationStrategy.py @@ -1,8 +1,8 @@ -import service_pb2 as pb2 from src.IPositionStrategy import IPositionStrategy from src.delaunay_triangulation import * from enum import Enum from pyrusgeom.soccer_math import * +from soccer.ttypes import WorldModel class Situation(Enum): OurSetPlay_Situation = 0, @@ -25,7 +25,7 @@ def __init__(self): self.current_situation = Situation.Offense_Situation self.current_formation = self.offense_formation - def update(self, wm: pb2.WorldModel): + def update(self, wm: 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 @@ -39,7 +39,7 @@ def update(self, wm: pb2.WorldModel): thr = 0 if ball_pos.x() > 0: thr += 1 - if wm.self.uniform_number > 6: + if wm.myself.uniform_number > 6: thr += 1 if min(tm_min, self_min) < opp_min + thr: self.current_situation = Situation.Offense_Situation diff --git a/src/GEN_Dribble.py b/src/GEN_Dribble.py index bb945a1..6841315 100644 --- a/src/GEN_Dribble.py +++ b/src/GEN_Dribble.py @@ -5,7 +5,7 @@ from src.IBallActionGenerator import BallActionGenerator from src.Tools import Tools -from service_pb2 import WorldModel +from soccer.ttypes import WorldModel debug_dribble = False max_dribble_time = 0 @@ -40,19 +40,19 @@ def generate_simple_dribble(self, agent: IAgent): angle_step = 360.0 / angle_div sp = agent.serverParams - ptype = agent.get_type(wm.self.type_id) + ptype = agent.get_type(wm.myself.type_id) - my_first_speed = Tools.vector2d_message_to_vector2d(wm.self.velocity).r() + my_first_speed = Tools.vector2d_message_to_vector2d(wm.myself.velocity).r() for a in range(angle_div): - dash_angle = AngleDeg(wm.self.body_direction + (angle_step * a)) + dash_angle = AngleDeg(wm.myself.body_direction + (angle_step * a)) - if wm.self.position.x < 16.0 and dash_angle.abs() > 100.0: + if wm.myself.position.x < 16.0 and dash_angle.abs() > 100.0: # if debug_dribble: # log.sw_log().dribble().add_text( '#dash angle:{} cancel is not safe1'.format(dash_angle)) continue - if wm.self.position.x < -36.0 and abs(wm.self.position.y) < 20.0 and dash_angle.abs() > 45.0: + if wm.myself.position.x < -36.0 and abs(wm.myself.position.y) < 20.0 and dash_angle.abs() > 45.0: # if debug_dribble: # log.sw_log().dribble().add_text( '#dash angle:{} cancel is not safe2'.format(dash_angle)) continue @@ -92,7 +92,7 @@ def simulate_kick_turns_dashes(self, agent: IAgent, dash_angle, n_turn): # if debug_dribble: # log.sw_log().dribble().add_text( '##self_cache:{}'.format(self_cache)) sp = agent.serverParams - ptype = agent.get_type(wm.self.type_id) + ptype = agent.get_type(wm.myself.type_id) # trap_rel = Vector2D.polar2vector(ptype.playerSize() + ptype.kickableMargin() * 0.2 + SP.ball_size(), dash_angle) trap_rel = Vector2D.polar2vector(ptype.player_size + ptype.kickable_margin * 0.2 + 0, dash_angle) @@ -117,7 +117,7 @@ def simulate_kick_turns_dashes(self, agent: IAgent, dash_angle, n_turn): term = (1.0 - pow(sp.ball_decay, 1 + n_turn + n_dash ) ) / (1.0 - sp.ball_decay) first_vel: Vector2D = (ball_trap_pos - ball_pos) / term kick_accel: Vector2D = first_vel - ball_vel - kick_power = kick_accel.r() / wm.self.kick_rate + kick_power = kick_accel.r() / wm.myself.kick_rate if kick_power > sp.max_power or kick_accel.r2() > pow(sp.ball_accel_max, 2) or first_vel.r2() > pow( sp.ball_speed_max, 2): @@ -140,7 +140,7 @@ def simulate_kick_turns_dashes(self, agent: IAgent, dash_angle, n_turn): candidate.actionType = ActionType.DRIBBLE candidate.initBallPos = Tools.vector2d_message_to_vector2d(wm.ball.position) candidate.targetBallPos = ball_trap_pos - candidate.targetUnum = wm.self.uniform_number + candidate.targetUnum = wm.myself.uniform_number candidate.firstVelocity = first_vel candidate.index = self.index candidate.dribble_steps = n_turn + n_dash + 1 @@ -163,14 +163,14 @@ def simulate_kick_turns_dashes(self, agent: IAgent, dash_angle, n_turn): def create_self_cache(self, agent: IAgent, dash_angle, n_turn, n_dash, self_cache): wm = agent.wm sp = agent.serverParams - ptype = agent.get_type(wm.self.type_id) + ptype = agent.get_type(wm.myself.type_id) self_cache.clear() - # stamina_model = wm.self().stamina_model() + # stamina_model = wm.myself().stamina_model() - my_pos = Tools.vector2d_message_to_vector2d(wm.self.position) - my_vel = Tools.vector2d_message_to_vector2d(wm.self.velocity) + my_pos = Tools.vector2d_message_to_vector2d(wm.myself.position) + my_vel = Tools.vector2d_message_to_vector2d(wm.myself.velocity) my_pos += my_vel my_vel *= ptype.player_decay diff --git a/src/GEN_Pass.py b/src/GEN_Pass.py index bf7193f..3f5f0f9 100644 --- a/src/GEN_Pass.py +++ b/src/GEN_Pass.py @@ -1,17 +1,17 @@ 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 - +from src import IBallAction +from soccer.ttypes import LoggerLevel, Player, TeammateMessage, GameModeType, ServerParam class GeneratorPass(BallActionGenerator): def __init__(self): super().__init__() - self.receivers: pb2.TeammateMessage = [] + self.receivers: TeammateMessage = [] self.index = 0 def generate(self, agent: IAgent, init_index: int = 0): @@ -22,64 +22,64 @@ def generate(self, agent: IAgent, init_index: int = 0): self.update_receiver(agent) self.generate_pass(agent) if agent.debug_mode: - self.log_debug(agent, pb2.LoggerLevel.PASS) + self.log_debug(agent, LoggerLevel.PASS) return self.candidateActions def update_receiver(self, agent: IAgent): if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, "update_receiver") + agent.add_log_text(LoggerLevel.PASS, "update_receiver") for tm in agent.wm.teammates: - if tm.uniform_number == agent.wm.self.uniform_number: + if tm.uniform_number == agent.wm.myself.uniform_number: if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f"-- {tm.uniform_number} is me") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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): + def generate_direct_pass(self, agent: IAgent, tm: Player): direct_pass = PassAction() direct_pass.actionType = ActionType.DIRECT_PASS - direct_pass.initUnum = agent.wm.self.uniform_number + direct_pass.initUnum = agent.wm.myself.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): + def generate_lead_pass(self, agent: IAgent, tm: 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) @@ -96,7 +96,7 @@ def generate_lead_pass(self, agent: IAgent, tm: pb2.Player): 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.initUnum = agent.wm.myself.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()) @@ -104,9 +104,9 @@ def generate_lead_pass(self, agent: IAgent, tm: pb2.Player): self.candidateActions.append(lead_pass) - def generate_lead_pass2(self, agent: IAgent, tm: pb2.Player): + def generate_lead_pass2(self, agent: IAgent, tm: Player): if agent.debug_mode: - agent.add_log_text(pb2.LoggerLevel.PASS, f">> generate_lead_pass to {tm.uniform_number}") + agent.add_log_text(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 @@ -123,7 +123,7 @@ def generate_lead_pass2(self, agent: IAgent, tm: pb2.Player): 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") + agent.add_log_text(LoggerLevel.PASS, f"## FAILED tm_pos is too far") return abgle_divs = 8 @@ -132,8 +132,8 @@ def generate_lead_pass2(self, agent: IAgent, tm: pb2.Player): 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 = agent.wm.myself.kick_rate * sp.max_power + if agent.wm.game_mode_type == GameModeType.PlayOn: max_ball_speed = sp.ball_speed_max min_ball_speed = agent.get_type(0).real_speed_max @@ -159,33 +159,33 @@ def generate_lead_pass2(self, agent: IAgent, tm: pb2.Player): 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") + agent.add_log_text(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") + agent.add_log_text(LoggerLevel.PASS, f"## FAILED receive_point is near our goal") continue - if agent.wm.game_mode_type == pb2.GameModeType.GoalKick_ \ + if agent.wm.game_mode_type == 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") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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 @@ -198,7 +198,7 @@ def generate_lead_pass2(self, agent: IAgent, tm: pb2.Player): 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}") + agent.add_log_text(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, @@ -206,7 +206,7 @@ def generate_lead_pass2(self, agent: IAgent, tm: pb2.Player): max_receive_ball_speed, ball_move_dist, ball_move_angle, "L") - def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector2D, + def create_pass(self, agent: IAgent, receiver: 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): @@ -216,19 +216,19 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector 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}") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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 @@ -236,17 +236,17 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector 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") + agent.add_log_text(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") + agent.add_log_text(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) + kick_count = Tools.predict_kick_count(agent, agent.wm.myself.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, @@ -262,11 +262,11 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector 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") + agent.add_log_text(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}") + agent.add_log_text(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() @@ -288,7 +288,7 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector if min_step + 3 <= step: break - def predict_receiver_reach_step(self, agent: IAgent, receiver: pb2.Player, pos: Vector2D, pass_type): + def predict_receiver_reach_step(self, agent: IAgent, receiver: 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) @@ -329,7 +329,7 @@ def predict_opponents_reach_step(self, agent: IAgent, first_ball_pos: Vector2D, 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}") + agent.add_log_text(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 diff --git a/src/IAgent.py b/src/IAgent.py index 788c4dc..d9a58de 100644 --- a/src/IAgent.py +++ b/src/IAgent.py @@ -1,27 +1,28 @@ from typing import Union from abc import ABC, abstractmethod -import service_pb2 as pb2 from src.IPositionStrategy import IPositionStrategy from typing import Union +from soccer.ttypes import PlayerAction, PlayerActions, CoachAction, TrainerAction, ServerParam, PlayerParam, PlayerType, Log, AddText, AddMessage, AddCircle, RpcVector2D, LoggerLevel +from soccer.ttypes import WorldModel 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.wm: Union[WorldModel, None] = None + self.actions: list[PlayerAction] = [] + self.serverParams: Union[ServerParam, None] = None + self.playerParams: Union[PlayerParam, None] = None + self.playerTypes: Union[PlayerType, dict[PlayerType]] = {} self.debug_mode: bool = False - def get_type(self, id: int) -> pb2.PlayerType: + def get_type(self, id: int) -> PlayerType: if id < 0: id = 0 return self.playerTypes[id] @abstractmethod - def get_actions(self, wm: pb2.WorldModel) -> pb2.PlayerActions: + def get_actions(self, wm: WorldModel) -> PlayerActions: pass # @abstractmethod @@ -44,41 +45,41 @@ def set_debug_mode(self, debug_mode: bool): # } # } - def add_log_text(self, level: pb2.LoggerLevel, message: str): + def add_log_text(self, level: LoggerLevel, message: str): if not self.debug_mode: return - self.add_action(pb2.PlayerAction( - log=pb2.Log( - add_text=pb2.AddText( + self.add_action(PlayerAction( + log=Log( + add_text=AddText( level=level, message=message ) ) )) - def add_log_message(self, level: pb2.LoggerLevel, message: str, x, y, color): + def add_log_message(self, level: LoggerLevel, message: str, x, y, color): if not self.debug_mode: return - self.add_action(pb2.PlayerAction( - log=pb2.Log( - add_message=pb2.AddMessage( + self.add_action(PlayerAction( + log=Log( + add_message=AddMessage( level=level, message=message, - position=pb2.Vector2D(x=x, y=y), + position=RpcVector2D(x=x, y=y), color=color, ) ) )) - def add_log_circle(self, level: pb2.LoggerLevel, center_x: float, center_y: float, radius: float, color: str, + def add_log_circle(self, level: 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( + self.add_action(PlayerAction( + log=Log( + add_circle=AddCircle( level=level, - center=pb2.Vector2D(x=center_x, y=center_y), + center=RpcVector2D(x=center_x, y=center_y), radius=radius, color=color, fill=fill @@ -86,5 +87,5 @@ def add_log_circle(self, level: pb2.LoggerLevel, center_x: float, center_y: floa ) )) - def add_action(self, actions: Union[pb2.PlayerAction, pb2.CoachAction, pb2.TrainerAction]): + def add_action(self, actions: Union[PlayerAction, CoachAction, TrainerAction]): self.actions.append(actions) diff --git a/src/IBallAction.py b/src/IBallAction.py index 16d71c5..1108ea0 100644 --- a/src/IBallAction.py +++ b/src/IBallAction.py @@ -4,9 +4,10 @@ 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 +from soccer.ttypes import HeliosGoalie, HeliosPenalty, HeliosSetPlay, GameModeType, PlayerAction +from soccer.ttypes import PlayerType, LoggerLevel, RpcVector2D, LoggerLevel, Player class ActionType(Enum): @@ -64,6 +65,12 @@ def check_possibility(self, agent: IAgent) -> None: ball_move_angle:AngleDeg = (ball_trap_pos - Tools.vector2d_message_to_vector2d(wm.ball.position)).th() for o in range(12): + if wm.their_players_dict is None: + continue + if wm.their_players_dict.keys() is None: + continue + if o not in wm.their_players_dict.keys(): + continue opp = wm.their_players_dict[o] if opp is None or opp.uniform_number == 0: # if debug_dribble: @@ -161,7 +168,7 @@ def check_possibility(self, agent: IAgent) -> None: 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) + player_type: 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) @@ -172,17 +179,17 @@ def check_direct_pass(self, agent: IAgent) -> None: 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") + agent.add_log_text(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") + agent.add_log_text(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 = agent.wm.myself.kick_rate * sp.max_power + if agent.wm.game_mode_type == GameModeType.PlayOn: max_ball_speed = sp.ball_speed_max # TODO SP.defaultRealSpeedMax() @@ -193,14 +200,14 @@ def check_direct_pass(self, agent: IAgent) -> None: 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") + agent.add_log_text(LoggerLevel.PASS, f"## FAILED ball_move_dist is out of range") return - if agent.wm.game_mode_type == pb2.GameModeType.GoalKick_ \ + if agent.wm.game_mode_type == 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") + agent.add_log_text(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 + ( @@ -214,7 +221,7 @@ def check_direct_pass(self, agent: IAgent) -> None: 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.position.x(), 2)}, {round(tm.position.y(), 2)}) -> ({round(receive_point.x(), 2)}, {round(receive_point.y(), 2)}) start_step: {start_step}, max_step: {max_step}") + agent.add_log_text(LoggerLevel.PASS, f">>>> DPass to {tm.uniform_number} ({round(tm.position.x(), 2)}, {round(tm.position.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, @@ -238,12 +245,12 @@ def check_lead_pass(self, agent: IAgent) -> None: 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") + agent.add_log_text(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 = agent.wm.myself.kick_rate * sp.max_power + if agent.wm.game_mode_type == GameModeType.PlayOn: max_ball_speed = sp.ball_speed_max min_ball_speed = agent.get_type(0).real_speed_max @@ -263,33 +270,33 @@ def check_lead_pass(self, agent: IAgent) -> None: 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") + agent.add_log_text(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") + agent.add_log_text(LoggerLevel.PASS, f"## FAILED receive_point is near our goal") return - if agent.wm.game_mode_type == pb2.GameModeType.GoalKick_ \ + if agent.wm.game_mode_type == 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") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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 @@ -302,7 +309,7 @@ def check_lead_pass(self, agent: IAgent) -> None: 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}") + agent.add_log_text(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, @@ -310,7 +317,7 @@ def check_lead_pass(self, agent: IAgent) -> None: max_receive_ball_speed, ball_move_dist, ball_move_angle, "L") - def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector2D, + def create_pass(self, agent: IAgent, receiver: 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): @@ -320,19 +327,19 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector 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}") + agent.add_log_text(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") + agent.add_log_text(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") + agent.add_log_text(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 @@ -340,17 +347,17 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector 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") + agent.add_log_text(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") + agent.add_log_text(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) + kick_count = Tools.predict_kick_count(agent, agent.wm.myself.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, @@ -366,11 +373,11 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector 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") + agent.add_log_text(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}") + agent.add_log_text(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 @@ -388,7 +395,7 @@ def create_pass(self, agent: IAgent, receiver: pb2.Player, receive_point: Vector if min_step + 3 <= step: break - def predict_receiver_reach_step(self, agent: IAgent, receiver: pb2.Player, pos: Vector2D, pass_type): + def predict_receiver_reach_step(self, agent: IAgent, receiver: 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) @@ -429,7 +436,7 @@ def predict_opponents_reach_step(self, agent: IAgent, first_ball_pos: Vector2D, 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}") + agent.add_log_text(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 diff --git a/src/IBallActionGenerator.py b/src/IBallActionGenerator.py index 8ad80c1..ee51230 100644 --- a/src/IBallActionGenerator.py +++ b/src/IBallActionGenerator.py @@ -1,14 +1,13 @@ from src.IBallAction import BallAction from src.IAgent import IAgent -import service_pb2 as pb2 - +from soccer.ttypes import LoggerLevel class BallActionGenerator: def __init__(self): self.candidateActions: list[BallAction] = [] self.debug_list = [] - def log_debug(self, agent: IAgent, log_level:pb2.LoggerLevel): + def log_debug(self, agent: IAgent, log_level: 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) diff --git a/src/IDecisionMaker.py b/src/IDecisionMaker.py index 12fe6d7..30af13f 100644 --- a/src/IDecisionMaker.py +++ b/src/IDecisionMaker.py @@ -1,5 +1,4 @@ from abc import ABC, abstractmethod -import service_pb2 as pb2 from src.IAgent import IAgent diff --git a/src/IPositionStrategy.py b/src/IPositionStrategy.py index d37f1e9..86cfd89 100644 --- a/src/IPositionStrategy.py +++ b/src/IPositionStrategy.py @@ -1,7 +1,7 @@ from abc import ABC, abstractmethod -import service_pb2 as pb2 from pyrusgeom.soccer_math import * from pyrusgeom.geom_2d import * +from soccer.ttypes import WorldModel class IPositionStrategy(ABC): @@ -10,6 +10,6 @@ def getPosition(self, uniform_number) -> Vector2D: pass @abstractmethod - def update(self, wm: pb2.WorldModel): + def update(self, wm: WorldModel): pass \ No newline at end of file diff --git a/src/SampleCoachAgent.py b/src/SampleCoachAgent.py index 7a39cd9..e452c1a 100644 --- a/src/SampleCoachAgent.py +++ b/src/SampleCoachAgent.py @@ -1,21 +1,26 @@ from abc import ABC from src.IAgent import IAgent -import service_pb2 as pb2 - +from soccer.ttypes import CoachActions, CoachAction, ChangePlayerType, DoHeliosSubstitute, PlayerParam, PlayerType, ServerParam, WorldModel 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.serverParams: ServerParam = None + self.playerParams: PlayerParam = None + self.playerTypes: dict[PlayerType] = {} + self.wm: WorldModel = None self.first_substitution = True - def get_actions(self, wm:pb2.WorldModel) -> pb2.CoachActions: + def get_actions(self, wm:WorldModel) -> list[CoachAction]: + print("SampleCoachAgent.get_actions", wm.cycle) self.wm = wm - - actions = pb2.CoachActions() + actions = [] + actions.append( + CoachAction( + do_helios_substitute=DoHeliosSubstitute() + ) + ) + return actions # if (wm.cycle == 0 # and self.first_substitution # and self.playerParams is not None @@ -24,27 +29,24 @@ def get_actions(self, wm:pb2.WorldModel) -> pb2.CoachActions: # self.first_substitution = False # for i in range(11): # actions.actions.append( - # pb2.CoachAction( - # change_player_types=pb2.ChangePlayerType( + # CoachAction( + # change_player_types=ChangePlayerType( # uniform_number=i+1, # type=i # ) # ) # ) - actions.actions.append( - pb2.CoachAction( - do_helios_substitute=pb2.DoHeliosSubstitute() - ) - ) - return actions + + # coach_actions.actions = actions + def set_params(self, params): - if isinstance(params, pb2.ServerParam): + if isinstance(params, ServerParam): self.serverParams = params - elif isinstance(params, pb2.PlayerParam): + elif isinstance(params, PlayerParam): self.playerParams = params - elif isinstance(params, pb2.PlayerType): + elif isinstance(params, 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 index 19322b0..d2f3857 100644 --- a/src/SamplePlayerAgent.py +++ b/src/SamplePlayerAgent.py @@ -1,5 +1,5 @@ from abc import ABC -import service_pb2 as pb2 +from soccer.ttypes import State, Empty, PlayerActions, CoachActions, TrainerActions, ServerParam, PlayerParam, PlayerType, InitMessage, WorldModel, PlayerAction from src.DecisionMaker import DecisionMaker from src.IAgent import IAgent from src.FormationStrategy import FormationStrategy @@ -10,29 +10,28 @@ 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 + self.serverParams: ServerParam = None + self.playerParams: PlayerParam = None + self.playerTypes: dict[PlayerType] = {} + self.wm: WorldModel = None - def get_actions(self, wm:pb2.WorldModel) -> pb2.PlayerActions: + def get_actions(self, wm:WorldModel) -> list[PlayerAction]: 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 + + return self.actions def get_strategy(self): return self.strategy def set_params(self, params): - if isinstance(params, pb2.ServerParam): + if isinstance(params, ServerParam): self.serverParams = params - elif isinstance(params, pb2.PlayerParam): + elif isinstance(params, PlayerParam): self.playerParams = params - elif isinstance(params, pb2.PlayerType): + elif isinstance(params, 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 index 5debe9e..491bd80 100644 --- a/src/SampleTrainerAgent.py +++ b/src/SampleTrainerAgent.py @@ -1,33 +1,32 @@ from abc import ABC from src.IAgent import IAgent -import service_pb2 as pb2 - +from soccer.ttypes import TrainerActions, TrainerAction, DoMoveBall, ServerParam, PlayerParam, PlayerType, WorldModel, RpcVector2D 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.serverParams: ServerParam = None + self.playerParams: PlayerParam = None + self.playerTypes: dict[PlayerType] = {} + self.wm: WorldModel = None self.first_substitution = True - def get_actions(self, wm:pb2.WorldModel) -> pb2.TrainerActions: + def get_actions(self, wm:WorldModel) -> TrainerActions: self.wm = wm - actions = pb2.TrainerActions() + actions = 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( + TrainerAction( + do_move_ball=DoMoveBall( + position=RpcVector2D( x=0, y=0 ), - velocity=pb2.Vector2D( + velocity=RpcVector2D( x=0, y=0 ), @@ -37,11 +36,11 @@ def get_actions(self, wm:pb2.WorldModel) -> pb2.TrainerActions: return actions def set_params(self, params): - if isinstance(params, pb2.ServerParam): + if isinstance(params, ServerParam): self.serverParams = params - elif isinstance(params, pb2.PlayerParam): + elif isinstance(params, PlayerParam): self.playerParams = params - elif isinstance(params, pb2.PlayerType): + elif isinstance(params, 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 index dee2211..bb2fcf6 100644 --- a/src/Tools.py +++ b/src/Tools.py @@ -1,13 +1,13 @@ -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 +from soccer.ttypes import PlayerType, GameModeType, Player, ServerParam class Tools: @staticmethod - def inertia_final_point(playerType: pb2.PlayerType, position: Vector2D, velocity: Vector2D) -> Vector2D: + def inertia_final_point(playerType: PlayerType, position: Vector2D, velocity: Vector2D) -> Vector2D: return smath.inertia_final_point(position, velocity, playerType.player_decay) @staticmethod @@ -20,11 +20,11 @@ def first_ball_speed(ball_move_dist: float, total_step: int, ball_decay: float): @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_]: + if agent.wm.game_mode_type not in [GameModeType.PlayOn, 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 kicker_uniform_number == agent.wm.myself.uniform_number and agent.wm.myself.is_kickable: + max_vel = Tools.calc_max_velocity(ball_move_angle, agent.wm.myself.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: @@ -37,7 +37,7 @@ def predict_kick_count(agent: IAgent, kicker_uniform_number, first_ball_speed, b def calc_max_velocity(target_angle: AngleDeg, krate, ball_vel: Vector2D, - sp: pb2.ServerParam): + sp: ServerParam): ball_speed_max2 = sp.ball_speed_max ** 2 max_accel = min(sp.max_power * krate, sp.ball_accel_max) @@ -99,11 +99,11 @@ def inertia_point(initial_pos: Vector2D, initial_vel: Vector2D, n_step: int, pla return smath.inertia_n_step_point(initial_pos, initial_vel, n_step, player_decay) @staticmethod - def vector2d_message_to_vector2d(v: pb2.Vector2D): + def vector2d_message_to_vector2d(v: Vector2D): return Vector2D(v.x, v.y) @staticmethod - def estimate_virtual_dash_distance(player: pb2.Player, real_speed_max: float): + def estimate_virtual_dash_distance(player: Player, real_speed_max: float): pos_count = min(10, player.pos_count, player.seen_pos_count) max_speed = real_speed_max * 0.8 @@ -131,7 +131,7 @@ def cycles_to_reach_distance(dash_dist, real_speed_max): # return cycle @staticmethod - def predict_player_turn_cycle(sp: pb2.ServerParam, ptype: pb2.PlayerType, player_body: AngleDeg, player_speed, target_dist, + def predict_player_turn_cycle(sp: ServerParam, ptype: 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() @@ -170,7 +170,7 @@ def get_nearest_teammate(agent: IAgent, position: Vector2D): return best_player @staticmethod - def predict_opponent_reach_step(agent: IAgent, opponent: pb2.Player, first_ball_pos: Vector2D, first_ball_vel: Vector2D, + def predict_opponent_reach_step(agent: IAgent, opponent: Player, first_ball_pos: Vector2D, first_ball_vel: Vector2D, ball_move_angle: AngleDeg, receive_point: Vector2D, max_cycle, description): sp = agent.serverParams @@ -180,7 +180,7 @@ def predict_opponent_reach_step(agent: IAgent, opponent: pb2.Player, first_ball_ 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) + ptype: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) diff --git a/src/_DecisionMaker.py b/src/_DecisionMaker.py index d3e184b..7977146 100644 --- a/src/_DecisionMaker.py +++ b/src/_DecisionMaker.py @@ -8,11 +8,11 @@ def __init__(self): pass def make_decision(self, agent: IAgent): - if agent.wm.self.is_goalie: + if agent.wm.myself.is_goalie: agent.add_action(pb2.PlayerAction(helios_goalie=pb2.HeliosGoalie())) else: if agent.wm.game_mode_type == pb2.GameModeType.PlayOn: - if agent.wm.self.is_kickable: + if agent.wm.myself.is_kickable: if agent.wm.ball.position.x < 30: agent.add_action(pb2.PlayerAction(helios_chain_action=pb2.HeliosChainAction(cross=False, direct_pass=True, diff --git a/type_generator.py b/type_generator.py new file mode 100644 index 0000000..aaa487d --- /dev/null +++ b/type_generator.py @@ -0,0 +1,171 @@ +import re +from typing import List + +thrift_file = "idl/soccer_service.thrift" # Replace with your actual Thrift file name +output_file = "soccer/ttypes.pyi" + +# Regex patterns to match Thrift definitions +enum_pattern = re.compile(r"enum\s+(\w+)\s*{?") +struct_pattern = re.compile(r"struct\s+(\w+)\s*{?") +field_pattern = re.compile(r"\s*(\d+):\s*(\w+)\s+(\w+)[,;]?") +enum_field_pattern = re.compile(r"\s*(\w+)\s*=\s*(\d+),?") +list_pattern = re.compile(r"\s*(\d+):\s*list<(\w+)>\s*(\w+)[,;]?") +# 11: map our_players_dict, +map_pattern = re.compile(r"\s*(\d+):\s*map<(\w+),\s*(\w+)>\s*(\w+)[,;]?") + +# Typing map from Thrift types to Python types +type_map = { + "i32": "int", + "i64": "int", + "double": "float", + "bool": "bool", + "string": "str", + "list": "List", + "map": "Dict", +} + + +def add_types(lines: List[str]) -> None: + global type_map + + for line in lines: + # Match enums + enum_match = enum_pattern.match(line) + if enum_match: + enum_name = enum_match.group(1) + type_map[enum_name] = enum_name + continue + + # Match structs + struct_match = struct_pattern.match(line) + if struct_match: + struct_name = struct_match.group(1) + type_map[struct_name] = struct_name + continue + +class Field: + def __init__(self, name: str, type: str, is_enum: bool = False): + self.name = name + self.type = type + self.is_enum = is_enum + + def __str__(self): + if self.is_enum: + return f" {self.name} = auto()" + return f" {self.name}: {self.type}" + +class Class: + def __init__(self, name: str, is_enum: bool = False): + self.name = name + self.is_enum = is_enum + self.fields = [] + + def add_field(self, field: Field): + self.fields.append(field) + + def __str__(self): + return f"class {self.name}:\n" + "\n".join(self.fields) + +def parse_thrift_file(old_lines: list[str]) -> List[str]: + """Parse the Thrift file and return lines for .pyi file""" + lines = [] + + current_struct = None + current_struct_has_fields = False + current_enum = None + classes = [] + + for line in old_lines: + # Match enums + enum_match = enum_pattern.match(line) + struct_match = struct_pattern.match(line) + field_match = field_pattern.match(line) + enum_field_match = enum_field_pattern.match(line) + list_match = list_pattern.match(line) + map_match = map_pattern.match(line) + + if enum_match: + enum_name = enum_match.group(1) + classes.append(Class(enum_name, is_enum=True)) + continue + + if struct_match: + struct_name = struct_match.group(1) + classes.append(Class(struct_name, is_enum=False)) + continue + + if field_match: + field_type = field_match.group(2) + field_name = field_match.group(3) + python_type = type_map.get(field_type, field_type) + classes[-1].add_field(Field(field_name, python_type)) + continue + + if enum_field_match: + field_name = enum_field_match.group(1) + classes[-1].add_field(Field(field_name, "", is_enum=True)) + continue + + if list_match: + field_name = list_match.group(3) + list_type = list_match.group(2) + classes[-1].add_field(Field(field_name, f"List[{list_type}]")) + continue + + if map_match: + field_name = map_match.group(4) + key_type = map_match.group(2) + key_type = type_map.get(key_type, key_type) + value_type = map_match.group(3) + classes[-1].add_field(Field(field_name, f"Dict[{key_type}, {value_type}]")) + continue + + for class_ in classes: + lines.append("") + if class_.is_enum: + lines.append(f"class {class_.name}(Enum):") + else: + lines.append(f"class {class_.name}(object):") + init_input_str = ", ".join([f"{field.name}: {field.type} = None" for field in class_.fields]) + lines.append(f" def __init__(self, {init_input_str}):") + lines.append(" pass") + + if len(class_.fields) == 0: + lines.append(" pass") + else: + for field in class_.fields: + lines.append(str(field)) + + return lines + + +def write_pyi_file(output_file: str, lines: List[str]) -> None: + """Write the generated lines to the output .pyi file""" + with open(output_file, "w") as file: + file.write("import sys\n") + file.write("from typing import List, Dict, Tuple, Union, Any, Optional\n") + file.write("from enum import Enum, auto\n") + for line in lines: + file.write(line + "\n") + + +def main(): + file_path = thrift_file + with open(file_path, "r") as file: + content = file.read() + lines = [] + # remove optional form all lines + for line in content.splitlines(): + new_line = line.replace("optional", "") + lines.append(new_line) + + add_types(lines) + print("Types added to type map") + print(type_map) + lines = parse_thrift_file(lines) + write_pyi_file(output_file, lines) + print(f"Type annotations written to {output_file}") + + +if __name__ == "__main__": + main() diff --git a/utils/GameHandler.py b/utils/GameHandler.py new file mode 100644 index 0000000..7e4a8d6 --- /dev/null +++ b/utils/GameHandler.py @@ -0,0 +1,81 @@ +from typing import Union +from soccer.ttypes import State, Empty, PlayerActions, CoachActions, TrainerActions +from soccer.ttypes import ServerParam, PlayerParam, PlayerType, InitMessage, RegisterRequest, RegisterResponse, AgentType +from src.SamplePlayerAgent import SamplePlayerAgent +from src.SampleCoachAgent import SampleCoachAgent +from src.SampleTrainerAgent import SampleTrainerAgent +from threading import Semaphore +from multiprocessing import Manager, Lock +import logging + +logging.basicConfig(level=logging.INFO) + +manager = Manager() +shared_lock = Lock() # Create a Lock for synchronization +shared_number_of_connections = manager.Value('i', 0) + + +class GameHandler: + def __init__(self): + self.agents: dict[int, Union[SamplePlayerAgent, SampleTrainerAgent, SampleCoachAgent]] = {} + self.running = Semaphore() + + def GetPlayerActions(self, register_response: RegisterResponse, state: State): + logging.debug(f"GetPlayerActions {state.world_model.cycle}") + actions = self.agents[register_response.client_id].get_actions(state.world_model) + res = PlayerActions(actions=actions) + return res + + def GetCoachActions(self, register_response: RegisterResponse, state): + logging.debug(f"GetCoachActions {state.world_model.cycle}") + actions = self.agents[register_response.client_id].get_actions(state.world_model) + return CoachActions(actions=actions) + + def GetTrainerActions(self, register_response: RegisterResponse, state): + logging.debug(f"GetTrainerActions {state.world_model.cycle}") + actions = self.agents[register_response.client_id].get_actions(state.world_model) + return TrainerActions(actions=actions) + + def SendServerParams(self, register_response: RegisterResponse, serverParam): + logging.debug(f"Server params received {serverParam}") + self.agents[register_response.client_id].set_params(serverParam) + res = Empty() + return res + + def SendPlayerParams(self, register_response: RegisterResponse, playerParam): + logging.debug(f"Player params received {playerParam}") + self.agents[register_response.client_id].set_params(playerParam) + res = Empty() + return res + + def SendPlayerType(self, register_response: RegisterResponse, playerType): + logging.debug(f"Player type received {playerType}") + self.agents[register_response.client_id].set_params(playerType) + res = Empty() + return res + + def SendInitMessage(self, register_response: RegisterResponse, initMessage): + logging.debug(f"Init message received {initMessage}") + self.agents[register_response.client_id].set_debug_mode(initMessage.debug_mode) + res = Empty() + return res + + def Register(self, register_request: RegisterRequest): + logging.debug("New connection") + with shared_lock: + shared_number_of_connections.value += 1 + logging.debug(f"Number of connections {shared_number_of_connections.value}") + if register_request.agent_type == AgentType.PlayerT: + self.agents[shared_number_of_connections.value] = SamplePlayerAgent() + elif register_request.agent_type == AgentType.CoachT: + self.agents[shared_number_of_connections.value] = SampleCoachAgent() + elif register_request.agent_type == AgentType.TrainerT: + self.agents[shared_number_of_connections.value] = SampleTrainerAgent() + res = RegisterResponse(client_id=shared_number_of_connections.value) + return res + + def SendByeCommand(self, register_response: RegisterResponse): + with shared_lock: + self.agents.pop(register_response.client_id) + res = Empty() + return res \ No newline at end of file diff --git a/utils/PFProcessServer.py b/utils/PFProcessServer.py new file mode 100644 index 0000000..bb8efdb --- /dev/null +++ b/utils/PFProcessServer.py @@ -0,0 +1,52 @@ +from thrift.protocol.THeaderProtocol import THeaderProtocolFactory +from thrift.server.TServer import TServer +from thrift.transport import TTransport +import multiprocessing + + +class PFProcessServer(TServer): + """Process-based server that spawns a new process per each connection.""" + + def __init__(self, *args): + TServer.__init__(self, *args) + # self.processorFactory = args[0] + + def serve(self): + self.serverTransport.listen() + while True: + try: + client = self.serverTransport.accept() + if not client: + continue + p = multiprocessing.Process(target=self.handle, args=(client,)) + p.start() + + except KeyboardInterrupt: + raise + + except Exception as x: + print(x) + + def handle(self, client): + # processor = self.processorFactory.getProcessor(client) + itrans = self.inputTransportFactory.getTransport(client) + iprot = self.inputProtocolFactory.getProtocol(itrans) + + if isinstance(self.inputProtocolFactory, THeaderProtocolFactory): + otrans = None + oprot = iprot + else: + otrans = self.outputTransportFactory.getTransport(client) + oprot = self.outputProtocolFactory.getProtocol(otrans) + + try: + while True: + self.processor.process(iprot, oprot) + except TTransport.TTransportException: + pass + except Exception as x: + print(x) + finally: + itrans.close() + if otrans: + otrans.close() \ No newline at end of file