示例#1
0
    def get_action(self, requester=None):
        # TODO: Put this specialization into player.py?
        if self.isinstance('Player') and requester.isinstance('Player'):
            return swappositionaction.SwapPositionAction(requester, self)

        direction = utils.math.sub(self.position, requester.position)
        return attackaction.AttackAction(requester, self, direction)
示例#2
0
    def prerequisite(self):
        # Build a list of sub actions

        coords = list(map(lambda x: utils.math.add(x, self.performer.position), helpers.DirectionHelper.directions))
        entities = instances.scene_root.get_entities(coords)

        for entity in entities:
            attack = attackaction.AttackAction(self.performer, target=entity, direction=None)
            self.sub_actions.append(attack)

        self.sub_actions = [a for a in self.sub_actions if a.prerequisite()]

        if len(self.sub_actions) > 0:
            self.performer.weapon.damage = self.performer.weapon.total_damage // len(self.sub_actions)
            return True

        self.performer.weapon.damage = self.performer.weapon.total_damage

        return False
示例#3
0
 def get_action(self, requester=None):
     direction = utils.math.sub(self.position, requester.position)
     return attackaction.AttackAction(requester, self, direction)
示例#4
0
 def get_perform_action(self, requester, target):
     direction = utils.math.sub(target.position, self.position)
     return attackaction.AttackAction(requester, target, direction)
示例#5
0
    def get_action(self, requester=None):
        if requester.weapon.isinstance('PickAxe'):
            direction = utils.math.sub(self.position, requester.position)
            return attackaction.AttackAction(requester, self, direction)

        return action.IdleAction(requester)