def __init__(self):
     sprites = ResourceManagement.get_enemy_stone_sprites()
     sprite = next(iter(sprites.values()))[0]
     Enemy.__init__(self, sprite, EnemySettings.HeavyRock.WEIGHT,
                    EnemySettings.HeavyRock.HEALTH_MAX,
                    EnemySettings.HeavyRock.ATTACK_COOLDOWN_S)
     AnimatedSprite.__init__(self, sprites, 2, EnemyState.RUNNING_LEFT)
 def __init__(self):
     sprites = ResourceManagement.get_enemy_fire_sprites()
     first_sprite = next(iter(sprites.values()))[0]
     Enemy.__init__(self, first_sprite, EnemySettings.Ranged.WEIGHT,
                    EnemySettings.Ranged.HEALTH_MAX,
                    EnemySettings.Ranged.ATTACK_COOLDOWN_S)
     AnimatedSprite.__init__(self, sprites, 3, EnemyState.RUNNING_LEFT)
     self.__cooldown_expire = 0
示例#3
0
 def __init__(self):
     sprites = ResourceManagement.get_enemy_ice_sprites()
     first_sprite = next(iter(sprites.values()))[0]
     Enemy.__init__(self, first_sprite, .5,
                    EnemySettings.HandToHand.HEALTH_MAX,
                    EnemySettings.HandToHand.ATTACK_COOLDOWN_S)
     AnimatedSprite.__init__(self,
                             ResourceManagement.get_enemy_ice_sprites(), 4,
                             EnemyState.RUNNING_RIGHT)
     self.__retreat_distance_sqr: float = 0
示例#4
0
    def _on_collide(self, other: GameObject, direction_of_impact: Vector2,
                    impact_side: ImpactSide, delta_time: float):
        if other != self._target:
            Enemy._on_collide(self, other, direction_of_impact, impact_side,
                              delta_time)
        else:
            # Collided with player, he need to suffer
            other: LivingEntity
            other.take_damage(EnemySettings.HandToHand.DAMAGE)
            if other.is_dead:
                self._target = None

            self.__backoff(direction_of_impact)
    def _on_collide(self, other: GameObject, direction_of_impact: Vector2,
                    impact_side: ImpactSide, delta_time: float):
        if other != self._target:
            Enemy._on_collide(self, other, direction_of_impact, impact_side,
                              delta_time)
        else:
            if impact_side != ImpactSide.TOP:
                # Collided with player, he need to suffer
                other: GameObject
                if impact_side == ImpactSide.BOTTOM:
                    i = 0
                    other.take_damage(1000)
                elif impact_side == ImpactSide.RIGHT:
                    i = 1
                elif impact_side == ImpactSide.LEFT:
                    i = -1

                other.apply_force(EnemySettings.HeavyRock.KNOCKBACK * i)
                other.take_damage(EnemySettings.HeavyRock.SIDE_DAMAGE)
                if other.is_dead:
                    self._target = None
示例#6
0
 def update(self, delta_time: float):
     self._update_state()
     Enemy.update(self, delta_time)
     AnimatedSprite.update(self, delta_time)
示例#7
0
 def start(self, scene: Scene):
     Enemy.start(self, scene)
     self.__retreat_distance_sqr = (self.width / 2 +
                                    self._target.width / 2)**2
 def _on_collide(self, other: GameObject, direction_of_impact: Vector2,
                 impact_side: ImpactSide, delta_time: float):
     if other != self._target:
         Enemy._on_collide(self, other, direction_of_impact, impact_side,
                           delta_time)
 def start(self, scene: Scene):
     Enemy.start(self, scene)
     self.__cooldown_expire = 0
 def start(self, scene: Scene):
     Enemy.start(self, scene)