def getApproachHeadingFromFront(self): ball = self.brain.ball my = self.brain.my kickDest = KickingHelpers.getShotFarAimPoint(self) ballLoc = RobotLocation(ball.x, ball.y, NogginConstants.OPP_GOAL_HEADING) ballBearingToKickDest = ballLoc.getRelativeBearing(kickDest) if my.y > ball.y: destH = ballBearingToKickDest - 90 else : destH = ballBearingToKickDest + 90 return destH
def penaltyKickBall(player): ball = player.brain.ball if not player.penaltyMadeFirstKick: return player.goLater('penaltyKickShortDribble') #return player.goLater('kickBallStraightShort') if not player.penaltyMadeSecondKick: ballLoc = RobotLocation(ball.x, ball.y, NogginConstants.OPP_GOAL_HEADING) goalLoc = Location( NogginConstants.OPP_GOAL_MIDPOINT[0], NogginConstants.OPP_GOAL_MIDPOINT[1]) ballBearingToGoal = ballLoc.getRelativeBearing(goalLoc) player.angleToAlign = ballBearingToGoal - player.brain.my.h if player.angleToAlign < constants.ALIGN_FOR_KICK_MIN_ANGLE: player.bigKick = True return player.goLater('kickBallStraight') else : return player.goLater('alignOnBallStraightKick') return player.stay()
def getApproachHeadingFromBehind(self): ball = self.brain.ball aimPoint = KickingHelpers.getShotFarAimPoint(self) ballLoc = RobotLocation(ball.x, ball.y, NogginConstants.OPP_GOAL_HEADING) ballBearingToGoal = ballLoc.getRelativeBearing(aimPoint) return ballBearingToGoal