def _do_auto_strike(self): """Do an automatic strike if appropriate. Return True iff we did one. """ auto_strike = prefs.load_bool_option(self.playername, prefs.AUTO_STRIKE_SINGLE_TARGET) auto_rangestrike = prefs.load_bool_option( self.playername, prefs.AUTO_RANGESTRIKE_SINGLE_TARGET) if auto_strike or auto_rangestrike: strikers = self.game.battle_active_legion.strikers for striker in strikers: hexlabels = striker.find_target_hexlabels() if len(hexlabels) == 1: hexlabel = hexlabels.pop() if ((auto_strike and hexlabel in striker.find_adjacent_target_hexlabels()) or (auto_rangestrike and hexlabel in striker.find_rangestrike_target_hexlabels())): chits = self.chits_in_hex(hexlabel) assert len(chits) == 1 chit = chits[0] target = chit.creature num_dice = striker.number_of_dice(target) strike_number = striker.strike_number(target) self.strike(striker, target, num_dice, strike_number) return True return False
def _do_auto_carry(self, striker, target, num_dice, strike_number, carries): """Automatically carry if appropriate. Return True iff we carried. """ auto_carry = prefs.load_bool_option(self.playername, prefs.AUTO_CARRY_TO_SINGLE_TARGET) if auto_carry: carry_targets = striker.carry_targets(target, num_dice, strike_number) if len(carry_targets) == 1: carry_target = carry_targets.pop() def1 = self.user.callRemote("carry", self.game.name, carry_target.name, carry_target.hexlabel, carries) def1.addErrback(self.failure) return True return False