def positionForKick(player): """ Get the ball in the sweet spot """ if transitions.shouldRedecideKick(player): return player.goLater('approachBall') ball = player.brain.ball positionForKick.kickPose = RelRobotLocation(ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) if player.firstFrame(): player.brain.tracker.lookStraightThenTrack() if player.kick == kicks.M_LEFT_SIDE or player.kick == kicks.M_RIGHT_SIDE: positionForKick.speed = Navigator.GRADUAL_SPEED else: positionForKick.speed = MIN_SPEED player.brain.nav.destinationWalkTo(positionForKick.kickPose, positionForKick.speed) elif player.brain.ball.vis.on: # don't update if we don't see the ball player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) player.ballBeforeKick = player.brain.ball if transitions.ballInPosition(player, positionForKick.kickPose): if player.motionKick: return player.goNow('executeMotionKick') else: player.brain.nav.stand() return player.goNow('executeKick') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if transitions.shouldRedecideKick(player): return player.goLater('approachBall') ball = player.brain.ball positionForKick.kickPose = RelRobotLocation( ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) if player.firstFrame(): player.brain.tracker.lookStraightThenTrack() if player.kick == kicks.M_LEFT_SIDE or player.kick == kicks.M_RIGHT_SIDE: positionForKick.speed = Navigator.GRADUAL_SPEED else: positionForKick.speed = MIN_SPEED player.brain.nav.destinationWalkTo(positionForKick.kickPose, positionForKick.speed) elif player.brain.ball.vis.on: # don't update if we don't see the ball player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) player.ballBeforeKick = player.brain.ball if transitions.ballInPosition(player, positionForKick.kickPose): if player.motionKick: return player.goNow('executeMotionKick') else: player.brain.nav.stand() return player.goNow('executeKick') return player.stay()
def positionForKick(player): """ Get to the ball. Uses chaseBall to walk to the ball when its far away, and positionForKick once we get close. This allows Player to monitor Navigator's progress as it positions. """ if player.penaltyKicking and player.brain.ball.loc.inOppGoalBox(): return player.goNow('penaltyBallInOppGoalbox') if player.firstFrame(): player.brain.tracker.trackBall() player.inKickingState = False if player.counter % 10 is 0: player.brain.kickDecider.decideKick() player.brain.nav.kickPosition(player.brain.kickDecider.getKick()) # most of the time going to chase will kick back to here, lets us reset if transitions.shouldFindBallKick(player): player.inKickingState = False return player.goLater('chase') #if transitions.shouldKick(player): if transitions.ballInPosition(player) and (player.brain.nav.isStopped() or player.brain.nav.isAtPosition()): if transitions.shouldOrbit(player): return player.goNow('lookAround') else: return player.goNow('kickBallExecute') return player.stay()
def positionForKick(player): """ Get to the ball. Uses chaseBall to walk to the ball when its far away, and positionForKick once we get close. This allows Player to monitor Navigator's progress as it positions. """ if player.firstFrame(): player.brain.tracker.trackBall() player.inKickingState = True if player.counter % 10 is 0: player.brain.kickDecider.decideKick() player.brain.nav.kickPosition(player.brain.kickDecider.getKick()) # most of the time going to chase will kick back to here, lets us reset if transitions.shouldFindBallKick(player): player.inKickingState = False return player.goLater('chase') #if transitions.shouldKick(player): if transitions.ballInPosition(player): if transitions.shouldOrbit(player): print "Don't have a kick, orbitting" return player.goNow('orbitBall') else: return player.goNow('kickBallExecute') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): player.inKickingState = False return player.goLater('chase') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForKick.kickPose = RelRobotLocation(ball.rel_x - kick_pos[0], ball.rel_y - kick_pos[1], 0) #only enque the new goTo destination once if player.firstFrame(): # Safer when coming from orbit in 1 frame. Still works otherwise, too. player.brain.tracker.lookStraightThenTrack() player.brain.nav.goTo(positionForKick.kickPose, Navigator.PRECISELY, Navigator.GRADUAL_SPEED, False, Navigator.ADAPTIVE) else: player.brain.nav.updateDest(positionForKick.kickPose) if transitions.shouldFindBallKick(player) and player.counter > 15: player.inKickingState = False return player.goLater('chase') if (transitions.ballInPosition(player, positionForKick.kickPose) or player.brain.nav.isAtPosition()): player.brain.nav.stand() return player.goNow('kickBallExecute') return player.stay()
def positionForPenaltyKick(player): """ We're getting ready for a penalty kick """ if player.firstFrame(): positionForPenaltyKick.position = True player.inKickingState = True positionForPenaltyKick.yes = False if player.brain.ball.rel_y > 0: player.kick = kicks.LEFT_STRAIGHT_KICK print "Kicking with left" else: player.kick = kicks.RIGHT_STRAIGHT_KICK print "Kicking with right" if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): player.inKickingState = False print "Going Back to Chase" return player.goLater('chase') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForPenaltyKick.kickPose = RelRobotLocation(ball.rel_x - kick_pos[0], ball.rel_y - kick_pos[1], 0) #So we stand and wait for two seconds before actually positioning if player.stateTime < 2: return player.stay() elif positionForPenaltyKick.position: player.ballBeforeApproach = player.brain.ball player.brain.tracker.lookStraightThenTrack() positionForPenaltyKick.position = True player.brain.nav.goTo(positionForPenaltyKick.kickPose, Navigator.PRECISELY, Navigator.CAREFUL_SPEED, False, Navigator.ADAPTIVE) positionForPenaltyKick.position = False else: player.brain.nav.updateDest(positionForPenaltyKick.kickPose) if (transitions.ballInPosition(player, positionForPenaltyKick.kickPose) or player.brain.nav.isAtPosition()): positionForPenaltyKick.yes = True #return player.stay() player.brain.nav.stand() return player.goNow('kickBallExecute') if positionForPenaltyKick.yes: print "ball relX: ", ball.rel_x print "ball relY: ", ball.rel_y return player.stay()
def positionForPenaltyKick(player): """ We're getting ready for a penalty kick """ if player.firstFrame(): positionForPenaltyKick.position = True player.inKickingState = True positionForPenaltyKick.yes = False if player.brain.ball.rel_y > 0: player.kick = kicks.LEFT_STRAIGHT_KICK print "Kicking with left" else: player.kick = kicks.RIGHT_STRAIGHT_KICK print "Kicking with right" if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): player.inKickingState = False print "Going Back to Chase" return player.goLater('chase') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForPenaltyKick.kickPose = RelRobotLocation( ball.rel_x - kick_pos[0], ball.rel_y - kick_pos[1], 0) #So we stand and wait for two seconds before actually positioning if player.stateTime < 2: return player.stay() elif positionForPenaltyKick.position: player.ballBeforeApproach = player.brain.ball player.brain.tracker.lookStraightThenTrack() positionForPenaltyKick.position = True player.brain.nav.goTo(positionForPenaltyKick.kickPose, Navigator.PRECISELY, Navigator.CAREFUL_SPEED, False, Navigator.ADAPTIVE) positionForPenaltyKick.position = False else: player.brain.nav.updateDest(positionForPenaltyKick.kickPose) if (transitions.ballInPosition(player, positionForPenaltyKick.kickPose) or player.brain.nav.isAtPosition()): positionForPenaltyKick.yes = True #return player.stay() player.brain.nav.stand() return player.goNow('kickBallExecute') if positionForPenaltyKick.yes: print "ball relX: ", ball.rel_x print "ball relY: ", ball.rel_y return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if transitions.shouldRedecideKick(player): return player.goLater('approachBall') ball = player.brain.ball positionForKick.kickPose = RelRobotLocation( ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) if player.firstFrame(): player.brain.tracker.lookStraightThenTrack() player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.MEDIUM_SPEED) positionForKick.slowDown = False elif player.brain.ball.vis.on: # don't update if we don't see the ball # slows down the walk when very close to the ball to stabalize motion kicking and to not walk over the ball if player.kick == kicks.M_LEFT_STRAIGHT or player.kick == kicks.M_RIGHT_STRAIGHT: if (not positionForKick.slowDown and player.brain.ball.distance < constants.SLOW_DOWN_TO_BALL_DIST): positionForKick.slowDown = True player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.GRADUAL_SPEED) elif (positionForKick.slowDown and player.brain.ball.distance >= constants.SLOW_DOWN_TO_BALL_DIST): positionForKick.slowDown = False player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.MEDIUM_SPEED) else: player.brain.nav.updateDestinationWalkDest( positionForKick.kickPose) else: player.brain.nav.updateDestinationWalkDest( positionForKick.kickPose) player.ballBeforeKick = player.brain.ball if transitions.ballInPosition(player, positionForKick.kickPose): if player.motionKick: return player.goNow('executeMotionKick') else: player.brain.nav.stand() return player.goNow('executeKick') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): player.inKickingState = False return player.goLater('chase') if not player.shouldKickOff or DRIBBLE_ON_KICKOFF: if dr_trans.shouldDribble(player): return player.goNow('decideDribble') if player.corner_dribble: return player.goNow('executeDribble') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForKick.kickPose = RelRobotLocation(ball.stat_rel_x - kick_pos[0], ball.stat_rel_y - kick_pos[1], 0) if player.firstFrame(): # Safer when coming from orbit in 1 frame. Still works otherwise, too. player.brain.tracker.lookStraightThenTrack() #only enque the new goTo destination once and update it afterwards player.brain.nav.goTo(positionForKick.kickPose, Navigator.PRECISELY, Navigator.SLOW_SPEED, False, Navigator.ADAPTIVE) else: player.brain.nav.updateDest(positionForKick.kickPose) if transitions.shouldFindBallKick(player): player.inKickingState = False return player.goLater('chase') if (transitions.ballInPosition(player, positionForKick.kickPose) or player.brain.nav.isAtPosition()): player.ballBeforeKick = player.brain.ball player.brain.nav.stand() return player.goNow('kickBallExecute') return player.stay()
def positionForKick(player): """ Get to the ball. Uses chaseBall to walk to the ball when its far away, and positionForKick once we get close. This allows Player to monitor Navigator's progress as it positions. """ if player.penaltyKicking and player.brain.ball.loc.inOppGoalBox(): return player.goNow('penaltyBallInOppGoalbox') ballLoc = player.brain.ball.loc kick_pos = player.kick.getPosition() positionForKick.kickPose = RelRobotLocation(ballLoc.relX - kick_pos[0] - 3, ballLoc.relY - kick_pos[1], 0) if player.firstFrame(): player.brain.tracker.trackBall() player.inKickingState = False #only enque the new goTo destination once if player.firstFrame(): player.brain.nav.goTo(positionForKick.kickPose, Navigator.CLOSE_ENOUGH, Navigator.CAREFUL_SPEED, Navigator.ADAPTIVE) else: player.brain.nav.updateDest(positionForKick.kickPose) # most of the time going to chase will kick back to here, lets us reset if transitions.shouldFindBallKick(player) and player.counter > 15: player.inKickingState = False return player.goNow('findBall') #if transitions.shouldKick(player): if transitions.ballInPosition(player, positionForKick.kickPose) or player.brain.nav.isAtPosition(): # if transitions.shouldOrbit(player): # return player.goNow('lookAround') # else: player.brain.nav.stand() return player.goLater('kickBallExecute') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if transitions.shouldRedecideKick(player): return player.goLater('approachBall') ball = player.brain.ball positionForKick.kickPose = RelRobotLocation(ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) if player.firstFrame(): player.brain.tracker.lookStraightThenTrack() player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.BRISK_SPEED) positionForKick.slowDown = False elif player.brain.ball.vis.on: # don't update if we don't see the ball # slows down the walk when very close to the ball to stabalize motion kicking and to not walk over the ball if player.motionKick: if (not positionForKick.slowDown and player.brain.ball.distance < constants.SLOW_DOWN_TO_BALL_DIST): positionForKick.slowDown = True player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.SLOW_SPEED) elif (positionForKick.slowDown and player.brain.ball.distance >= constants.SLOW_DOWN_TO_BALL_DIST): positionForKick.slowDown = False player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.BRISK_SPEED) else: player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) else: player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) player.ballBeforeKick = player.brain.ball if transitions.ballInPosition(player, positionForKick.kickPose): if player.motionKick: return player.goNow('executeMotionKick') else: player.brain.nav.stand() return player.goNow('executeKick') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): player.inKickingState = False return player.goLater('chase') if not player.shouldKickOff or DRIBBLE_ON_KICKOFF: if dr_trans.shouldDribble(player): return player.goNow('decideDribble') if player.corner_dribble: return player.goNow('executeDribble') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForKick.kickPose = RelRobotLocation(ball.rel_x - kick_pos[0], ball.rel_y - kick_pos[1], 0) if player.firstFrame(): player.brain.tracker.lookStraightThenTrack() player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.SLOW_SPEED, True) elif player.brain.ball.vis.on: # don't update if we don't see the ball player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) if transitions.shouldFindBall(player): player.inKickingState = False return player.goLater('chase') player.ballBeforeKick = player.brain.ball if transitions.ballInPosition(player, positionForKick.kickPose): if player.motionKick: return player.goNow('motionKickExecute') else: player.brain.nav.stand() return player.goNow('kickBallExecute') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): print "DEBUG_SUITE: In 'positionForKick', either shouldApproachBallAgain or shouldRedecideKick. Switching to 'chase'." player.inKickingState = False return player.goLater('chase') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForKick.kickPose = RelRobotLocation(ball.rel_x - kick_pos[0], ball.rel_y - kick_pos[1], 0) #only enque the new goTo destination once if player.firstFrame(): # Safer when coming from orbit in 1 frame. Still works otherwise, too. player.brain.tracker.lookStraightThenTrack() #TODO: try getting rid of ADAPTIVE here, if ball estimates are good, #we don't need to lower the speed/shuffle to the ball player.brain.nav.goTo(positionForKick.kickPose, Navigator.PRECISELY, Navigator.GRADUAL_SPEED, False, Navigator.ADAPTIVE) else: player.brain.nav.updateDest(positionForKick.kickPose) if transitions.shouldFindBallKick(player) and player.counter > 15: print "DEBUG_SUITE: In 'positionForKick', both shouldFindBallKick and counter >15. Switching to 'chase'." player.inKickingState = False return player.goLater('chase') if (transitions.ballInPosition(player, positionForKick.kickPose) or player.brain.nav.isAtPosition()): print "DEBUG_SUITE: In 'positionForKick', either ballInPosition or nav.isAtPosition. Switching to 'kickBallExecute'." player.brain.nav.stand() return player.goNow('kickBallExecute') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): player.inKickingState = False return player.goLater('chase') if not player.shouldKickOff or DRIBBLE_ON_KICKOFF: if dr_trans.shouldDribble(player): return player.goNow('decideDribble') if player.corner_dribble: return player.goNow('executeDribble') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForKick.kickPose = RelRobotLocation(ball.rel_x - kick_pos[0], ball.rel_y - kick_pos[1], 0) if player.firstFrame(): player.brain.tracker.lookStraightThenTrack() player.brain.nav.destinationWalkTo(positionForKick.kickPose, Navigator.SLOW_SPEED, True) elif player.brain.ball.vis.on: # don't update if we don't see the ball player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) if transitions.shouldFindBall(player): player.inKickingState = False return player.goLater('chase') player.ballBeforeKick = player.brain.ball if transitions.ballInPosition(player, positionForKick.kickPose): if player.motionKick: return player.goNow('motionKickExecute') else: player.brain.nav.stand() return player.goNow('kickBallExecute') return player.stay()
def positionForPenaltyKick(player): """ We're getting ready for a penalty kick """ ball = player.brain.ball positionForPenaltyKick.kickPose = RelRobotLocation( ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) if player.firstFrame(): positionForPenaltyKick.position = True player.brain.nav.destinationWalkTo(positionForPenaltyKick.kickPose, Navigator.GRADUAL_SPEED) else: #print "Updating our destination to be in the kickpose" player.brain.nav.updateDest(positionForPenaltyKick.kickPose) if transitions.ballInPosition(player, positionForPenaltyKick.kickPose): player.brain.nav.stand() return player.goNow('executeKick') return player.stay()
def positionForPenaltyKick(player): """ We're getting ready for a penalty kick """ ball = player.brain.ball positionForPenaltyKick.kickPose = RelRobotLocation(ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) if player.firstFrame(): positionForPenaltyKick.position = True player.brain.nav.destinationWalkTo(positionForPenaltyKick.kickPose, Navigator.GRADUAL_SPEED) else: #print "Updating our destination to be in the kickpose" player.brain.nav.updateDest(positionForPenaltyKick.kickPose) if transitions.ballInPosition(player, positionForPenaltyKick.kickPose): player.brain.nav.stand() return player.goNow('executeKick') return player.stay()
def positionForPenaltyKick(player): """ We're getting ready for a penalty kick """ ball = player.brain.ball positionForPenaltyKick.kickPose = RelRobotLocation(ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) if player.firstFrame(): positionForPenaltyKick.position = True player.brain.nav.destinationWalkTo(positionForPenaltyKick.kickPose, speeds.SPEED_THREE) else: #print "Updating our destination to be in the kickpose" player.brain.nav.updateDest(positionForPenaltyKick.kickPose) if transitions.ballInPosition(player, positionForPenaltyKick.kickPose) or player.counter > 100: player.brain.nav.stand() player.executeMove(player.kick.sweetMove) return player.goLater('afterPenaltyKick') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if (transitions.shouldApproachBallAgain(player) or transitions.shouldRedecideKick(player)): player.inKickingState = False return player.goLater('chase') ball = player.brain.ball kick_pos = player.kick.getPosition() positionForKick.kickPose = RelRobotLocation(ball.rel_x - kick_pos[0], ball.rel_y - kick_pos[1], 0) #only enque the new goTo destination once if player.firstFrame(): # Safer when coming from orbit in 1 frame. Still works otherwise, too. player.brain.tracker.lookStraightThenTrack() player.brain.nav.goTo(positionForKick.kickPose, Navigator.PRECISELY, Navigator.GRADUAL_SPEED, False, Navigator.ADAPTIVE) else: player.brain.nav.updateDest(positionForKick.kickPose) if transitions.shouldFindBallKick(player) and player.counter > 15: player.inKickingState = False return player.goLater('chase') if (transitions.ballInPosition(player, positionForKick.kickPose) or player.brain.nav.isAtPosition()): player.brain.nav.stand() return player.goNow('kickBallExecute') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if transitions.shouldRedecideKick(player): print("I think I should redecide my kick!!") return player.goLater('approachBall') ball = player.brain.ball positionForKick.kickPose = RelRobotLocation( ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) # print("") # print("Ball is: ", ball.rel_x, ball.rel_y) # print("Ball dist:", ball.distance) # print("My kick setup is: ", player.kick.setupX, player.kick.setupY) # print("Ball.rel_x:", ball.rel_x, "rel_y:", ball.rel_y) if player.firstFrame(): # print("IN position for kick, should kick off: ", player.shouldKickOff) player.brain.tracker.lookStraightThenTrack() # if player.kick == kicks.M_LEFT_SIDE or player.kick == kicks.M_RIGHT_SIDE: # positionForKick.speed = Navigator.GRADUAL_SPEED # else: positionForKick.speed = speeds.SPEED_TWO # print("In position for kick! Setting walk speed") # print("My location:", str(positionForKick.kickPose)) player.brain.nav.goTo(positionForKick.kickPose, Navigator.CLOSE_ENOUGH, speeds.SPEED_FIVE, True, fast=True, useLoc=False) # player.brain.nav.walkTo(positionForKick.kickPose, speeds.SPEED_THREE) # player.setWalk() # player.brain.nav.destinationWalkTo(positionForKick.kickPose, # positionForKick.speed) elif player.brain.ball.vis.on: # don't update if we don't see the ball # print "positionForKick -- we don't see it" player.brain.nav.updateDest(positionForKick.kickPose) # print("MY kickpose:", str(positionForKick.kickPose)) # player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) # print "positionForKick" # print "positionForKick" player.ballBeforeKick = player.brain.ball # print("Kickpose: ", str(positionForKick.kickPose)) if (transitions.ballInPosition(player, positionForKick.kickPose) or player.brain.nav.currentState is 'atPosition'): # print("The ball is in position! CHASEBALL") # print player.kick player.shouldKickOff = False return player.goLater('executeSweetKick') # if player.motionKick or True: # return player.goNow('executeMotionKick') # elif player.kick.bhKickType or True: # player.brain.nav.stand() # return player.goLater('executeBHKick') # else: # player.brain.nav.stand() # return player.goLater('executeSweetKick') return player.stay()
def positionForKick(player): """ Get the ball in the sweet spot """ if transitions.shouldRedecideKick(player): print("I think I should redecide my kick!!") return player.goLater('approachBall') ball = player.brain.ball positionForKick.kickPose = RelRobotLocation(ball.rel_x - player.kick.setupX, ball.rel_y - player.kick.setupY, 0) # print("") # print("Ball is: ", ball.rel_x, ball.rel_y) # print("Ball dist:", ball.distance) # print("My kick setup is: ", player.kick.setupX, player.kick.setupY) # print("Ball.rel_x:", ball.rel_x, "rel_y:", ball.rel_y) if player.firstFrame(): # print("IN position for kick, should kick off: ", player.shouldKickOff) player.brain.tracker.lookStraightThenTrack() # if player.kick == kicks.M_LEFT_SIDE or player.kick == kicks.M_RIGHT_SIDE: # positionForKick.speed = Navigator.GRADUAL_SPEED # else: positionForKick.speed = speeds.SPEED_TWO # print("In position for kick! Setting walk speed") # print("My location:", str(positionForKick.kickPose)) player.brain.nav.goTo(positionForKick.kickPose, Navigator.CLOSE_ENOUGH, speeds.SPEED_FIVE, True, fast = True, useLoc = False) # player.brain.nav.walkTo(positionForKick.kickPose, speeds.SPEED_THREE) # player.setWalk() # player.brain.nav.destinationWalkTo(positionForKick.kickPose, # positionForKick.speed) elif player.brain.ball.vis.on: # don't update if we don't see the ball # print "positionForKick -- we don't see it" player.brain.nav.updateDest(positionForKick.kickPose) # print("MY kickpose:", str(positionForKick.kickPose)) # player.brain.nav.updateDestinationWalkDest(positionForKick.kickPose) # print "positionForKick" # print "positionForKick" player.ballBeforeKick = player.brain.ball # print("Kickpose: ", str(positionForKick.kickPose)) if (transitions.ballInPosition(player, positionForKick.kickPose) or player.brain.nav.currentState is 'atPosition'): # print("The ball is in position! CHASEBALL") # print player.kick player.shouldKickOff = False return player.goLater('executeSweetKick') # if player.motionKick or True: # return player.goNow('executeMotionKick') # elif player.kick.bhKickType or True: # player.brain.nav.stand() # return player.goLater('executeBHKick') # else: # player.brain.nav.stand() # return player.goLater('executeSweetKick') return player.stay()