Mercurial > mamba
view mamba/habitats/level.py @ 344:214b2bd173a8
Move level_completed to the Level habitat, so that we can go_menu()
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Fri, 16 Sep 2011 22:29:48 +0200 |
parents | 8643c7dbc8ad |
children | d4062344d8f4 |
line wrap: on
line source
"""Where a level object hides.""" from pygame.locals import KEYDOWN from mamba.constants import ESCAPE_KEYS from mamba.engine import Habitat, LevelCompletedEvent from mamba.gamestate import level_done from mamba.widgets.game import GameWidget from mamba.widgets.messagebox import MessageBox from mamba.world import World class LevelHabitat(Habitat): def __init__(self, level, go_menu): super(LevelHabitat, self).__init__() self.go_menu = go_menu self.world = World(level) game_widget = GameWidget(self.world) self.container.add(game_widget) self.container.add_callback(KEYDOWN, self.keydown_event) self.container.add_callback(LevelCompletedEvent, self.level_completed) def keydown_event(self, ev, widget): if ev.key in ESCAPE_KEYS: self.go_menu() return True def level_completed(self, ev, widget): if not self.world.pause(): return False messagebox = MessageBox((300, 200), 'Level complete!', self.go_menu) self.container.add(messagebox) messagebox.grab_focus() level_done(self.world.level.level_name) return True