def reevaluate(self): if not self.bot.world.trosballManager.enabled: self.returnToParent() return player = self.bot.player world = self.bot.world if self.nextCheck: self.nextCheck.cancel() delay = 2.5 + random.random() self.nextCheck = world.callLater(delay, self.reevaluate) if player.dead: pos = world.trosballManager.getPosition() zone = world.map.getZoneAtPoint(pos) self.setSubGoal(RespawnNearZone(self.bot, self, zone)) elif player.hasTrosball(): zoneDef = world.trosballManager.getTargetZoneDefn(player.team) self.setSubGoal(None) self.bot.moveToOrb(world.zoneWithDef[zoneDef]) elif world.trosballManager.trosballPlayer: self.setSubGoal(None) trosballPlayer = world.trosballManager.trosballPlayer if player.isFriendsWith(trosballPlayer): self.bot.followPlayer(trosballPlayer) else: self.bot.attackPlayer(trosballPlayer) else: self.setSubGoal(None) self.bot.collectTrosball()
def reevaluate(self, *args, **kwargs): self.cancelNextCheck() player = self.bot.player if player.dead: zone = self.selectZone() if zone is None: zone = player.getZone() if zone is None: zone = random.choice(list(self.bot.world.zones)) self.setSubGoal(RespawnNearZone(self.bot, self, zone)) self.scheduleNextCheck() return if player.getZone() and self.zoneIsOk(player.getZone()): # There are enemies here self.setSubGoal(MessAroundInZone(self.bot, self)) self.scheduleNextCheck() return zone = self.selectZone() if zone: self.setSubGoal(None) self.bot.moveToOrb(zone) else: self.setSubGoal(MessAroundInZone(self.bot, self)) self.scheduleNextCheck()
def reevaluate(self): if self.bot.player.dead: zone = self.bot.player.getZone() if zone is None: zone = random.choice(list(self.bot.world.zones)) self.setSubGoal(RespawnNearZone(self.bot, self, zone)) else: self.setSubGoal(MessAroundInZone(self.bot, self))
def reevaluate(self): player = self.bot.player if self.zone.owner != player.team: self.returnToParent() return if player.dead: self.setSubGoal(RespawnNearZone(self.bot, self, self.zone)) return playerZone = player.getZone() if playerZone == self.zone: teamsWhoCanTag = self.zone.teamsAbleToTag() - {player.team} if teamsWhoCanTag: # Our only hope is to kill someone self.setSubGoal(KillEnemyInZone(self.bot, self)) else: self.setSubGoal(MessAroundInZone(self.bot, self)) else: self.bot.moveToOrb(self.zone)
def reevaluate(self): player = self.bot.player if self.zone.owner == player.team: self.returnToParent() return if not self.zone.adjacentToAnotherZoneOwnedBy(player.team): self.returnToParent() return if player.dead: self.setSubGoal(RespawnNearZone(self.bot, self, self.zone)) return playerZone = player.getZone() if playerZone == self.zone: if self.zone.isCapturableBy(player.team): self.bot.moveToOrb(self.zone) else: self.setSubGoal(KillEnemyInZone(self.bot, self)) else: self.bot.moveToZone(self.zone)
def reevaluate(self): if not (self.huntedPlayer and self.isEnemyRabbit(self.huntedPlayer)): rabbits = [ p for p in self.bot.world.players if self.isEnemyRabbit(p)] if not rabbits: if self.bot.player.dead: self.bot.respawn() return # All survining rabbits are on this player's team self.setSubGoal(RunAway(self.bot, self)) return self.huntedPlayer = random.choice(rabbits) if self.bot.player.dead: rabbitZone = self.huntedPlayer.getZone() if rabbitZone is None: self.bot.respawn() else: self.setSubGoal(RespawnNearZone(self.bot, self, rabbitZone)) return self.bot.attackPlayer(self.huntedPlayer)