def adjust_angle(self, target_angle, ball_angle=None, ball_speed=None):
    ball = main.ball()
    if (ball_angle == None):
        ball_angle = ball.vel.angle()
    if (ball_speed == None):
        ball_speed = ball.vel.mag()
    angle_diff = (target_angle - ball_angle)
    rejection = (math.sin(angle_diff) * ball_speed)
    adjust = math.asin(min(1, max((- 1), (rejection / constants.Robot.MaxKickSpeed))))
    return (adjust + target_angle)
def adjust_angle(self, target_angle, ball_angle=None, ball_speed=None):
    ball = main.ball()
    if (ball_angle == None):
        ball_angle = ball.vel.angle()
    if (ball_speed == None):
        ball_speed = ball.vel.mag()
    angle_diff = (target_angle - ball_angle)
    rejection = (math.sin(angle_diff) * ball_speed)
    adjust = math.asin(min(1, max((- 1), (rejection / constants.Robot.MaxKickSpeed))))
    return (adjust + target_angle)