comparison gamelib/state.py @ 403:df3216b369b1

Hook up navigation tab, Add won condition
author Neil Muller <neil@dip.sun.ac.za>
date Sat, 28 Aug 2010 21:31:30 +0200
parents b1dc0caec668
children 19aff54b2e73
comparison
equal deleted inserted replaced
402:2090b2bc13e4 403:df3216b369b1
16 DEBUG_RECTS = False 16 DEBUG_RECTS = False
17 17
18 class Result(object): 18 class Result(object):
19 """Result of interacting with a thing""" 19 """Result of interacting with a thing"""
20 20
21 def __init__(self, message=None, soundfile=None, detail_view=None, style=None): 21 def __init__(self, message=None, soundfile=None, detail_view=None, style=None, close_detail=False):
22 self.message = message 22 self.message = message
23 self.sound = None 23 self.sound = None
24 if soundfile: 24 if soundfile:
25 self.sound = get_sound(soundfile) 25 self.sound = get_sound(soundfile)
26 self.detail_view = detail_view 26 self.detail_view = detail_view
27 self.style = style 27 self.style = style
28 self.close_detail = close_detail
28 29
29 def process(self, scene_widget): 30 def process(self, scene_widget):
30 """Helper function to do the right thing with a result object""" 31 """Helper function to do the right thing with a result object"""
31 if self.sound: 32 if self.sound:
32 self.sound.play() 33 self.sound.play()
33 if self.message: 34 if self.message:
34 scene_widget.show_message(self.message, self.style) 35 scene_widget.show_message(self.message, self.style)
35 if self.detail_view: 36 if self.detail_view:
36 scene_widget.show_detail(self.detail_view) 37 scene_widget.show_detail(self.detail_view)
38 if self.close_detail and hasattr(scene_widget, 'parent') and hasattr(scene_widget.parent, 'clear_detail'):
39 scene_widget.parent.clear_detail()
37 40
38 41
39 def handle_result(result, scene_widget): 42 def handle_result(result, scene_widget):
40 """Handle dealing with result or result sequences""" 43 """Handle dealing with result or result sequences"""
41 if result: 44 if result:
57 state.load_scenes("engine") 60 state.load_scenes("engine")
58 state.load_scenes("machine") 61 state.load_scenes("machine")
59 state.load_scenes("crew_quarters") 62 state.load_scenes("crew_quarters")
60 state.load_scenes("map") 63 state.load_scenes("map")
61 state.load_scenes("manual") 64 state.load_scenes("manual")
65 state.load_scenes("won")
62 initial_scene = "cryo" if DEBUG_SCENE is None else DEBUG_SCENE 66 initial_scene = "cryo" if DEBUG_SCENE is None else DEBUG_SCENE
63 state.set_current_scene(initial_scene) 67 state.set_current_scene(initial_scene)
64 state.set_do_enter_leave() 68 state.set_do_enter_leave()
65 return state 69 return state
66 70