def shouldNotBeSupporter(player): if role.isChaser(player.role): return shared.ballOffForNFrames(120)(player) return not shouldBeSupporter(player)
player.brain.nav.updateDest(home) @superState('playOffBall') @stay @ifSwitchNow(transitions.tooFarFromHome(20), 'positionAtHome') def watchForBall(player): """ The player is at home, waiting for the ball to be within it's box (range) """ if player.firstFrame(): player.brain.nav.stand() @superState('playOffBall') @stay @ifSwitchLater(shared.ballOffForNFrames(120), 'playOffBall') def positionAsSupporter(player): if (role.isChaser(player.role) and role.isChaser(player.roleOfClaimer) and player.brain.ball.distance > hypot(CHASER_DISTANCE, CHASER_DISTANCE)): fast = True else: fast = False positionAsSupporter.position = getSupporterPosition(player, player.role) # TODO don't call goTo every frame player.brain.nav.goTo(positionAsSupporter.position, precision = nav.GENERAL_AREA, speed = nav.QUICK_SPEED, avoidObstacles = True, fast = False, pb = False) @superState('playOffBall')
def shouldNotBeSupporter(player): if role.isChaser(player.role): return shared.ballOffForNFrames(120) return not shouldBeSupporter(player)
player.brain.nav.updateDest(home) @superState('playOffBall') @stay @ifSwitchNow(transitions.tooFarFromHome(20), 'positionAtHome') def watchForBall(player): """ The player is at home, waiting for the ball to be within it's box (range) """ if player.firstFrame(): player.brain.nav.stand() @superState('playOffBall') @stay @ifSwitchLater(shared.ballOffForNFrames(120), 'playOffBall') def positionAsSupporter(player): if (role.isChaser(player.role) and role.isChaser(player.roleOfClaimer) and player.brain.ball.distance > hypot(CHASER_DISTANCE, CHASER_DISTANCE)): fast = True else: fast = False positionAsSupporter.position = getSupporterPosition(player, player.role) if player.firstFrame(): player.brain.nav.goTo(positionAsSupporter.position, precision = nav.GENERAL_AREA, speed = nav.QUICK_SPEED, avoidObstacles = True, fast = False, pb = False) player.brain.nav.updateDest(positionAsSupporter.position, fast=fast)