Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
    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