The endless pointlessness of level progression
[koperkapel.git] / koperkapel / loaders / levelloader.py
index 4c786572807ced5fb222420169d68f7ba66cece0..601ea80b3609925d2ad5651ea333381be871970d 100644 (file)
@@ -4,7 +4,7 @@ import json
 
 from pgzero.loaders import ResourceLoader
 
-from ..gamelib.tiles import Wall, Floor, Tunnel, Underground, Grate
+from ..gamelib.tiles import Wall, Floor, Tunnel, Underground, Grate, Exit
 from ..gamelib.level import Level
 from ..gamelib.door import Door
 from ..gamelib.keypad import Keypad
@@ -35,6 +35,7 @@ class LevelLoader(ResourceLoader):
         self._level.tiles = level_data['tiles']
         self._level.tileset = level_data['tileset']
         self._level.start_pos = level_data["starting pos"]
+        self._level.exit = level_data["exit"]
         self._level.enemies = []
         self._level.friends = []
         # Consistency check, so we can assume things are correct
@@ -78,7 +79,9 @@ class LevelLoader(ResourceLoader):
                     tile['%s image' % layer] = \
                             TILES[tile[layer]['base']].image(neighbors)
                     # Hack this for now
-                    if layer == 'floor' and 'crawl' in tile[layer]['behaviour']:
+                    if self._level.is_exit(x, y):
+                        tile['floor image'] = Exit.image(neighbors)
+                    elif layer == 'floor' and 'crawl' in tile[layer]['behaviour']:
                         tile['floor image'] = Grate.image(neighbors)
                         self._level.grates.append((x, y))