The first steps towards enemy generators
[koperkapel.git] / koperkapel / scenes / level.py
index 60e230568575670baa72e1de4a4d3f1ffce1dab2..a1515997dc48d470044925e0193495cc904d4add 100644 (file)
@@ -84,18 +84,22 @@ class BaseLevelScene(Scene):
 class GameLevelScene(BaseLevelScene):
 
     def enter(self, world):
-        print('enter', world['level']['name'], self._level)
         if self._level is not None:
+            for generator in self._generators:
+                generator.unpause()
             return
         super().enter(world)
         self._roaches = self.actors.add_layer("roaches", level=10)
         self._friends = self.actors.add_layer("friendly roaches", level=9)
         self._items = self.actors.add_layer("items", level=9)
+        self._generators = self.actors.add_layer("enemy generators", level=8)
+        self._enemies = self.actors.add_layer("enemies", level=7)
         self._vehicle = Vehicle.current(world)
         self._mode = 'walk'
         self._angle = 0
         self._init_items()
         self._init_friendly_roaches()
+        self._init_generators()
         return self._init_roaches(world)
 
     def _init_items(self):
@@ -106,6 +110,17 @@ class GameLevelScene(BaseLevelScene):
         for friend in self._level.friends:
             self._friends.add(friend)
 
+    def exit(self, world):
+        for generator in self._generators:
+            # We don't want these running while we're on other levels, but we don't want to delete them
+            # here either (because of the vehicle management view)
+            generator.pause()
+
+    def _init_generators(self):
+        for generator in self._level.enemy_generators:
+            self._generators.add(generator)
+            generator.unpause()
+
     def _init_roaches(self, world):
         x, y = self._level.start_pos
         self._level_layer = 'floor'