+""" Add enemies to the level as required """
+
+import os
+from pgzero.actor import Actor
+from pgzero.clock import each_tick
+
+class EnemyGenerator(Actor):
+ """Generators are currently invisble, but we want the update hook."""
+
+ def __init__(self, info):
+ self.gen_pos = info['pos']
+ self.enemy_type = info['type']
+ self.rate = info['rate']
+ self.max_enemies = info['max']
+ self._time_since_last_update = 0
+ self.paused = False
+ each_tick(self.update)
+ super().__init__(os.path.join('weapons', 'blank'))
+
+ def update(self, dt):
+ if self.paused:
+ return
+ self._time_since_last_update += dt
+ if self._time_since_last_update > self.rate:
+ print('A horrible monster (%s) appears' % self.enemy_type, self.gen_pos)
+ self._time_since_last_update = 0
+
+ def pause(self):
+ self.paused = True
+
+ def unpause(self):
+ self.paused = False