X-Git-Url: https://git.ctpug.org.za/?p=koperkapel.git;a=blobdiff_plain;f=koperkapel%2Fgamelib%2Fenemy_generator.py;h=1329660b1881140768f557e2912c5e0305a018ee;hp=3003064c8ae4a6f9e6b11bea7499e3c4305b70a3;hb=c3d7223fd37b42f88390aa2c299588a10daa9984;hpb=ed7b7dbe49f3962132f0db806552a5873d6fc113 diff --git a/koperkapel/gamelib/enemy_generator.py b/koperkapel/gamelib/enemy_generator.py index 3003064..1329660 100644 --- a/koperkapel/gamelib/enemy_generator.py +++ b/koperkapel/gamelib/enemy_generator.py @@ -4,17 +4,21 @@ import os from pgzero.actor import Actor from pgzero.clock import each_tick +from .enemy_roach import get_enemy_roach + class EnemyGenerator(Actor): """Generators are currently invisble, but we want the update hook.""" - def __init__(self, info): + def __init__(self, info, level): self.gen_pos = info['pos'] + self.level = level 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) + self._made_enemies = [] super().__init__(os.path.join('weapons', 'blank')) def update(self, dt): @@ -22,8 +26,18 @@ class EnemyGenerator(Actor): 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 + if len(self._made_enemies) < self.max_enemies: + self._make_enemy() + + def _make_enemy(self): + if self.enemy_type == 'roach': + roach = get_enemy_roach() + self._made_enemies.append(roach) + self.level.add_enemy(roach, *self.gen_pos) + + def killed(self, enemy): + if enemy in self._made_enemies: + self._made_enemies.remove(enemy) def pause(self): self.paused = True