1 """ Add enemies to the level as required """
4 from pgzero.actor import Actor
5 from pgzero.clock import each_tick
7 from .enemy_roach import get_enemy_roach
9 class EnemyGenerator(Actor):
10 """Generators are currently invisble, but we want the update hook."""
12 def __init__(self, info, level):
13 self.gen_pos = info['pos']
15 self.enemy_type = info['type']
16 self.rate = info['rate']
17 self.max_enemies = info['max']
18 self._time_since_last_update = 0
20 each_tick(self.update)
21 self._made_enemies = []
22 super().__init__(os.path.join('weapons', 'blank'))
27 self._time_since_last_update += dt
28 if self._time_since_last_update > self.rate:
29 if len(self._made_enemies) < self.max_enemies:
32 def _make_enemy(self):
33 if self.enemy_type == 'roach':
34 roach = get_enemy_roach()
35 self._made_enemies.append(roach)
36 self.level.add_enemy(roach, *self.gen_pos)
38 def killed(self, enemy):
39 if enemy in self._made_enemies:
40 self._made_enemies.remove(enemy)