Mercurial > boomslang
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 |