Split level scene for game play extensions
[koperkapel.git] / koperkapel / scenes / menu.py
index c91c14213e99ae00226065d17129d96be90f1e55..ce09cb5ccb2afa8b9505affb6b7b02172ba12db5 100644 (file)
@@ -3,9 +3,7 @@
 from pgzero.constants import keys
 from ..actors.buttons import TextButton
 from ..actors.navigator import ActorNavigator
-from .base import Scene, ChangeSceneEvent, QuitEvent
-
-
+from .base import Scene, ChangeSceneEvent, WorldEvent, QuitEvent
 
 
 class MenuScene(Scene):
@@ -14,17 +12,18 @@ class MenuScene(Scene):
     def __init__(self):
         super().__init__()
         self._title = self.actors.add(TextButton("Main Menu"))
-        self._title.pos = (300, 200)
+        self._title.pos = (300, 100)
         self._nav = ActorNavigator()
         self._menu = [
             TextButton("Play", action=self.change_to_level),
             TextButton("View Last Generated Level",
                        action=self.change_to_viewer),
+            TextButton("Manage Roaches", action=self.change_to_roaches),
             TextButton("Credits", action=self.change_to_credits),
             TextButton("Quit", action=self.quit),
         ]
         for i, item in enumerate(self._menu):
-            item.pos = (300, 300 + (i * 100))
+            item.pos = (300, 200 + (i * 100))
             self.actors.add(item)
         self._nav.connect(
             self._menu, [keys.DOWN, keys.RIGHT], [keys.UP, keys.LEFT],
@@ -32,12 +31,19 @@ class MenuScene(Scene):
         self._nav.current.select()
 
     def change_to_level(self):
-        from .level import LevelScene
-        return [ChangeSceneEvent(LevelScene('level1'))]
+        from .level import GameLevelScene
+        return [ChangeSceneEvent(GameLevelScene())]
 
     def change_to_viewer(self):
         from .viewlevel import ViewLevelScene
-        return [ChangeSceneEvent(ViewLevelScene('map'))]
+        return [
+            WorldEvent("set", {"level.name": "map"}),
+            ChangeSceneEvent(ViewLevelScene())
+        ]
+
+    def change_to_roaches(self):
+        from .roaches import RoachesScene
+        return [ChangeSceneEvent(RoachesScene())]
 
     def change_to_credits(self):
         from .credits import CreditsScene