Mercurial > nagslang
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)