Mercurial > boomslang
annotate gamelib/scenes/manual.py @ 774:b0bd36c2c840 pyntnclick
The data is actually on the scene (now we can finish the game)
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sat, 26 Jan 2013 17:51:33 +0200 |
parents | ac9ffba3e97d |
children |
rev | line source |
---|---|
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
1 """The inside of the maintenance manual.""" |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
2 |
549 | 3 from pyntnclick.state import Scene, Thing |
4 from pyntnclick.scenewidgets import InteractNoImage, InteractImage | |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
5 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
6 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
7 # classes related the computer detail |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
8 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
9 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
10 class PageBase(Thing): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
11 "Displays manual pages" |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
12 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
13 def get_page_thing(self): |
761
ac9ffba3e97d
Turns out we can get the scene from the Thing
Stefano Rivera <stefano@rivera.za.net>
parents:
759
diff
changeset
|
14 return self.scene.things['manual.page'] |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
15 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
16 def get_page(self): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
17 return self.get_page_thing().get_data('page') |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
18 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
19 def set_page(self, page): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
20 self.get_page_thing().set_page(page) |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
21 |
759
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
22 def select_interact(self): |
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
23 return self.get_data('display') |
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
24 |
394 | 25 def set_display(self, display): |
26 self.set_data('display', display) | |
759
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
27 self.set_interact() |
394 | 28 |
519
8f3c82c685a4
Fix is_interactive() by adding tool param.
Jeremy Thurgood <firxen@gmail.com>
parents:
394
diff
changeset
|
29 def is_interactive(self, tool=None): |
394 | 30 return self.get_data('display') == 'on' |
31 | |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
32 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
33 class PagePrior(PageBase): |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
34 """Prior page in the manual""" |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
35 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
36 NAME = 'manual.page_prior' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
37 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
38 INTERACTS = { |
394 | 39 'on': InteractImage(36, 351, 'arrow_left.png'), |
40 'off': InteractNoImage(31, 351, 34, 23), | |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
41 } |
394 | 42 INITIAL = 'off' |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
43 |
394 | 44 INITIAL_DATA = { |
45 'display': 'off', | |
46 } | |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
47 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
48 def interact_without(self): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
49 self.set_page(self.get_page() - 1) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
50 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
51 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
52 class PageNext(PageBase): |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
53 """Next page in the manual""" |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
54 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
55 NAME = 'manual.page_next' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
56 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
57 INTERACTS = { |
394 | 58 'on': InteractImage(185, 351, 'arrow_right.png'), |
59 'off': InteractNoImage(185, 351, 34, 23), | |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
60 } |
394 | 61 INITIAL = 'on' |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
62 |
394 | 63 INITIAL_DATA = { |
64 'display': 'on', | |
65 } | |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
66 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
67 def interact_without(self): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
68 self.set_page(self.get_page() + 1) |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
69 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
70 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
71 class ManualPage(Thing): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
72 """Page in the manual""" |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
73 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
74 NAME = 'manual.page' |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
75 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
76 INTERACTS = { |
541 | 77 0: InteractImage(0, 0, 'manual_p1.png'), |
542 | 78 1: InteractImage(0, 0, 'manual_p2.png'), |
79 2: InteractImage(0, 0, 'manual_p3.png'), | |
80 3: InteractImage(0, 0, 'manual_p4.png'), | |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
81 } |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
82 INITIAL = 0 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
83 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
84 INITIAL_DATA = { |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
85 'page': 0, |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
86 } |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
87 |
519
8f3c82c685a4
Fix is_interactive() by adding tool param.
Jeremy Thurgood <firxen@gmail.com>
parents:
394
diff
changeset
|
88 def is_interactive(self, tool=None): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
89 return False |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
90 |
759
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
91 def select_interact(self): |
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
92 return self.get_data('page') |
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
93 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
94 def set_page(self, page): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
95 self.set_data('page', page) |
759
386475464202
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents:
702
diff
changeset
|
96 self.set_interact() |
394 | 97 self.scene.things['manual.page_prior'].set_display('on') |
98 self.scene.things['manual.page_next'].set_display('on') | |
99 if page == 0: | |
100 self.scene.things['manual.page_prior'].set_display('off') | |
101 if page == len(self.INTERACTS) - 1: | |
102 self.scene.things['manual.page_next'].set_display('off') | |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
103 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
104 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
105 class ManualDetail(Scene): |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
106 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
107 FOLDER = 'manual' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
108 NAME = 'manual_detail' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
109 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
110 BACKGROUND = 'manual_detail.png' |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
111 |
592
4e9178215e75
Introduce .setup() for GameDeveloperGizmos.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
566
diff
changeset
|
112 def setup(self): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
113 self.add_thing(ManualPage()) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
114 self.add_thing(PagePrior()) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
115 self.add_thing(PageNext()) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
116 self._scene_playlist = None |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
117 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
118 def enter(self): |
566
ea9dd2b9186a
Hook up sound in gamelib/scenes.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
549
diff
changeset
|
119 self._scene_playlist = self.sound.get_current_playlist() |
636
2748d3afcae5
Excise albow. Really.
Stefano Rivera <stefano@rivera.za.net>
parents:
603
diff
changeset
|
120 self.sound.change_playlist(None) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
121 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
122 def leave(self): |
636
2748d3afcae5
Excise albow. Really.
Stefano Rivera <stefano@rivera.za.net>
parents:
603
diff
changeset
|
123 self.sound.change_playlist(self._scene_playlist) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
124 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
125 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
126 SCENES = [] |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
127 DETAIL_VIEWS = [ManualDetail] |