def playerFiveSearchBehavior(player): if player.firstFrame(): player.brain.tracker.trackBall() if playerFiveSearchBehavior.pointIndex == -1: playerFiveSearchBehavior.dest = min(playerFivePoints, key = lambda x:fabs(player.brain.loc.distTo(x))) playerFiveSearchBehavior.pointIndex = playerFivePoints.index(playerFiveSearchBehavior.dest) playerFiveSearchBehavior.pointsWalked = 0 else: playerFiveSearchBehavior.pointIndex += 1 playerFiveSearchBehavior.pointsWalked += 1 playerFiveSearchBehavior.dest = playerFivePoints[playerFiveSearchBehavior.pointIndex % len(playerFivePoints)] player.brain.nav.goTo(playerFiveSearchBehavior.dest, precision = nav.HOME, speed = speeds.SPEED_SEVEN, avoidObstacles = True, fast = True, pb = False) if shared.navAtPosition(player) and player.brain.loc.distTo(playerFiveSearchBehavior.dest) < 60: if playerFiveSearchBehavior.pointIndex % len(playerFivePoints) == 0: adjustHeading.desiredHeading = role.strikerRightHome.h return player.goNow("adjustHeading") elif playerFiveSearchBehavior.pointIndex % len(playerFivePoints) == 2: adjustHeading.desiredHeading = role.strikerLeftHome.h return player.goNow("adjustHeading") else: return player.goNow("spinAtWayPoint") player.brain.nav.updateDest(playerFiveSearchBehavior.dest)
def searchFieldByQuad(player): """ Search the field quadrant by quadrant. Choose first quadrant by loc heading. """ if player.firstFrame(): player.brain.tracker.trackBall() player.brain.tracker.repeatBasicPan() searchFieldByQuad.dest = min( points, key=lambda x: fabs(player.brain.loc.distTo(x))) player.brain.nav.goTo(searchFieldByQuad.dest, precision=nav.GRAINY, speed=nav.QUICK_SPEED, avoidObstacles=True, fast=True, pb=False) searchFieldByQuad.quadIndex = points.index(searchFieldByQuad.dest) searchFieldByQuad.quadsWalked = 0 if shared.navAtPosition(player) and player.brain.loc.distTo( searchFieldByQuad.dest) < 60: searchFieldByQuad.quadIndex += 1 searchFieldByQuad.quadsWalked += 1 searchFieldByQuad.dest = points[searchFieldByQuad.quadIndex % len(points)] if searchFieldByQuad.quadsWalked > 3: return player.goLater('playOffBall') player.brain.nav.updateDest(searchFieldByQuad.dest)
def searchFieldByQuad(player): """ Search the field quadrant by quadrant. Choose first quadrant by loc heading. """ if player.firstFrame(): player.brain.tracker.trackBall() searchFieldByQuad.dest = min(points, key=lambda x:fabs(player.brain.loc.getRelativeBearing(x))) player.brain.nav.goTo(searchFieldByQuad.dest, precision = nav.GRAINY, speed = nav.QUICK_SPEED, avoidObstacles = True, fast = True, pb = False) if shared.navAtPosition(player): if searchFieldByQuad.dest == quad1Center: searchFieldByQuad.dest = quad2Center elif searchFieldByQuad.dest == quad3Center: searchFieldByQuad.dest = quad1Center elif searchFieldByQuad.dest == quad2Center: searchFieldByQuad.dest = quad4Center elif searchFieldByQuad.dest == quad4Center: searchFieldByQuad.dest = quad3Center player.brain.nav.updateDest(searchFieldByQuad.dest)
def searchFieldByQuad(player): """ Search the field quadrant by quadrant. Choose first quadrant by loc heading. """ if player.firstFrame(): player.brain.tracker.trackBall() player.brain.tracker.repeatBasicPan() searchFieldByQuad.dest = min(points, key=lambda x:fabs(player.brain.loc.distTo(x))) player.brain.nav.goTo(searchFieldByQuad.dest, precision = nav.GRAINY, speed = nav.QUICK_SPEED, avoidObstacles = True, fast = True, pb = False) searchFieldByQuad.quadIndex = points.index(searchFieldByQuad.dest) searchFieldByQuad.quadsWalked = 0 if shared.navAtPosition(player) and player.brain.loc.distTo(searchFieldByQuad.dest) < 60: searchFieldByQuad.quadIndex += 1 searchFieldByQuad.quadsWalked += 1 searchFieldByQuad.dest = points[searchFieldByQuad.quadIndex % len(points)] if searchFieldByQuad.quadsWalked > 3: return player.goLater('playOffBall') player.brain.nav.updateDest(searchFieldByQuad.dest)
def chaseAfterBall(player): if player.firstFrame(): player.brain.tracker.repeatHeadMove(HeadMoves.FAST_TWO_INTERVAL) dest = RelRobotLocation(150, 0, 0) # player.brain.nav.goTo(dest, precision = nav.PLAYBOOK, # speed = speeds.SPEED_SEVEN, avoidObstacles = True, # fast = True, pb = False) // Maybe try something like this player.brain.nav.destinationWalkTo(RelRobotLocation(player.brain.ball.x, player.brain.ball.y, 0)) # print(" CHASEAFTERBALL I'm dest walking to:", player.brain.ball.x, player.brain.ball.y) return player.stay() if transitions.shouldChaseBall(player): print "I can see the ball!" afterKick.numTimes = 0 return player.goNow('approachBall') if shared.walkingOffField(player): print "I'm walking off the field!" afterKick.numTimes = 0 return player.goNow('spinSearch') if shared.navAtPosition(player) or player.counter > 100: return player.goNow('lookAroundForBall') return player.stay()