Exemple #1
0
 def __init__(self, world, robot):
     if world.robot_in_possession:
         self.angle = utils.get_avoiding_angle_to_point(world, robot, world.robot_in_possession.vector)
         if not self.angle:
             self.angle = utils.attacker_get_rotation_to_point(robot.vector, world.robot_in_possession.vector)
     else:
         error("Attempting to block while no robot in possession")
         self.angle = 0
     super(TurnToBlockingAngle, self).__init__(world, robot)
Exemple #2
0
 def __init__(self, world, robot):
     position = robot.get_blocking_position(world)
     self.angle = utils.get_avoiding_angle_to_point(world, robot.vector, position)
     if not self.angle:
         self.angle = utils.attacker_get_rotation_to_point(robot.vector, position)
     super(TurnToFaceBlockingPosition, self).__init__(world, robot)
Exemple #3
0
 def __init__(self, world, robot):
     self.angle = utils.get_avoiding_angle_to_point(world, robot.vector, world.our_defender.vector)
     if not self.angle:
         self.angle = utils.attacker_get_rotation_to_point(robot.vector, world.our_defender.vector)
     super(TurnToDefenderToReceive, self).__init__(world, robot)
Exemple #4
0
 def __init__(self, world, robot):
     position = world.get_new_score_zone()
     self.angle = utils.get_avoiding_angle_to_point(world, robot.vector, position)
     if not self.angle:
         self.angle = utils.attacker_get_rotation_to_point(robot.vector, position)
     super(TurnToScoreZone, self).__init__(world, robot)
Exemple #5
0
 def __init__(self, world, robot):
     self.angle = utils.get_avoiding_angle_to_point(world, robot.vector, world.ball.vector)
     #self.angle = utils.attacker_get_rotation_to_point(robot.vector, world.ball.vector)
     if not self.angle:
         self.angle = utils.attacker_get_rotation_to_point(robot.vector, world.ball.vector)
     super(TurnToBall, self).__init__(world, robot)
Exemple #6
0
def is_robot_facing_position(world, r, pos):
    angle = utils.get_avoiding_angle_to_point(world, r.vector, pos)
    if not angle:
        return utils.attacker_get_rotation_to_point(r.vector, pos)
    return abs(angle) < ROTATION_THRESHOLD
Exemple #7
0
 def __init__(self, world, robot):
     self.angle = utils.attacker_get_rotation_to_point(robot.vector, world.their_goal.vector)
     super(TurnToGoal, self).__init__(world, robot)