The endless pointlessness of level progression
[koperkapel.git] / koperkapel / scenes / level.py
index a17de55d70ece5aa8a37e2bf88891580eadf728c..5da355f934aa3f0472a0219708cebe6860718cc6 100644 (file)
@@ -4,7 +4,7 @@ from pgzero.constants import keys
 from pygame import Surface
 import pygame.locals as pgl
 from ..loaders.levelloader import levels
-from .base import Scene, ChangeSceneEvent, MoveViewportEvent, defer_to_update
+from .base import Scene, ChangeSceneEvent, MoveViewportEvent, WorldEvent, defer_to_update
 from ..constants import TILE_SIZE, WIDTH, HEIGHT
 from ..roaches import build_roach
 from ..vehicles.base import Vehicle
@@ -84,6 +84,7 @@ class BaseLevelScene(Scene):
 class GameLevelScene(BaseLevelScene):
 
     def enter(self, world):
+        print('enter', world['level']['name'], self._level)
         if self._level is not None:
             return
         super().enter(world)
@@ -187,6 +188,9 @@ class GameLevelScene(BaseLevelScene):
             friend = self._level.remove_friend(x, y)
             self._friends.remove(friend)
             self._add_roach()
+        elif self._level.is_exit(x, y):
+            next_level = self._level.get_exit_level()
+            return [WorldEvent('set', {'level.name': next_level}), ChangeSceneEvent(GameLevelScene())]
 
     def _fire_key(self):
         print('Boom')