diff nagslang/screens/area.py @ 437:d087dfb10896

Replace menu and death screen with the starting level
author Stefano Rivera <stefano@rivera.za.net>
date Sat, 07 Sep 2013 14:26:28 +0200
parents 7fcde01ea50e
children 9eee96966d88
line wrap: on
line diff
--- a/nagslang/screens/area.py	Sat Sep 07 14:19:31 2013 +0200
+++ b/nagslang/screens/area.py	Sat Sep 07 14:26:28 2013 +0200
@@ -8,7 +8,7 @@
     COLLISION_TYPE_WALL, COLLISION_TYPE_PLAYER, CALLBACK_COLLIDERS,
     COLLISION_TYPE_FURNITURE, COLLISION_TYPE_WEREWOLF_ATTACK,
     CMD_TOGGLE_FORM, CMD_ACTION)
-from nagslang.events import ScreenChange, DoorEvent
+from nagslang.events import ScreenChange, DoorEvent, QuitEvent
 from nagslang.level import Level
 from nagslang.screens.base import Screen
 from nagslang.sound import sound
@@ -84,6 +84,7 @@
         self.keys = ControlKeys()
         self._level = Level(self.name, self.world)
         self._level.load(self.space)
+        self.game_starting_point = Level.game_starting_point()
         self._drawables = Drawables()
         self.add_walls()
         self._add_collision_handlers()
@@ -161,7 +162,16 @@
     def handle_event(self, ev):
         if ev.type == pygame.locals.KEYDOWN:
             if ev.key == pygame.locals.K_ESCAPE:
-                ScreenChange.post('menu')
+                if self._level.is_starting_level():
+                    QuitEvent.post()
+                    return
+                room, pos = self.game_starting_point
+                self.world.load()
+                self.world.deaths += 1
+                ScreenChange.post(room)
+                self.protagonist.set_position(pos)
+                self._disable_render = True
+                return
             cmd_key = self.keys.get_command_key(ev.key)
             if cmd_key is not None:
                 self.protagonist.handle_keypress(cmd_key)