Mercurial > pyntnclick
annotate gamelib/scenes/bridge.py @ 435:19aff54b2e73
Many small fixes.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 28 Aug 2010 23:48:50 +0200 |
parents | 860cb6144fd4 |
children | 4136b5d931e7 |
rev | line source |
---|---|
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
1 """Bridge where the final showdown with the AI occurs.""" |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
2 |
251 | 3 import random |
4 | |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
5 from pygame.colordict import THECOLORS |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
6 from pygame.color import Color |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
7 from pygame.rect import Rect |
248 | 8 from albow.music import change_playlist, get_music, PlayList |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
9 from albow.resource import get_image |
248 | 10 |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
11 from gamelib.cursor import CursorSprite |
263
3b4a78422201
Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents:
259
diff
changeset
|
12 from gamelib.state import Scene, Item, Thing, Result |
315
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
13 from gamelib.sound import get_current_playlist |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
14 from gamelib.constants import DEBUG |
263
3b4a78422201
Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents:
259
diff
changeset
|
15 |
352
88c1a59b0544
Add sentence for bridge. Have poster break AI
Neil Muller <neil@dip.sun.ac.za>
parents:
350
diff
changeset
|
16 from gamelib.scenes.game_constants import PLAYER_ID |
263
3b4a78422201
Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents:
259
diff
changeset
|
17 from gamelib.scenes.scene_widgets import (Door, InteractText, InteractNoImage, |
3b4a78422201
Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents:
259
diff
changeset
|
18 InteractRectUnion, InteractImage, |
350
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
19 InteractAnimated, GenericDescThing, |
360
452230d78541
Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents:
354
diff
changeset
|
20 BaseCamera, make_jim_dialog) |
263
3b4a78422201
Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents:
259
diff
changeset
|
21 |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
22 |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
23 class Bridge(Scene): |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
24 |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
25 FOLDER = "bridge" |
235 | 26 BACKGROUND = 'bridge.png' |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
27 |
278 | 28 OFFSET = (0, -50) |
29 | |
248 | 30 MUSIC = [ |
256 | 31 'beep1.ogg', |
32 'beep2.ogg', | |
33 'beep880.ogg', | |
248 | 34 'beep660.ogg', |
256 | 35 'beep3.ogg', |
248 | 36 'silent.ogg', |
37 'creaking.ogg', | |
38 'silent.ogg', | |
39 ] | |
40 | |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
41 INITIAL_DATA = { |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
42 'accessible': True, |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
43 'ai status' : 'online', # online, looping, dead |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
44 'ai panel' : 'closed', # closed, open, broken |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
45 } |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
46 |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
47 def __init__(self, state): |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
48 super(Bridge, self).__init__(state) |
315
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
49 self.background_playlist = None |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
50 self.add_item(Superconductor('superconductor')) |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
51 self.add_item(Stethoscope('stethoscope')) |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
52 self.add_thing(ToMap()) |
350
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
53 self.add_thing(MonitorCamera()) |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
54 self.add_thing(MassageChair()) |
316
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
55 self.add_thing(MassageChairBase()) |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
56 self.add_thing(StethoscopeThing()) |
237
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
57 self.add_thing(BridgeComputer()) |
251 | 58 self.add_thing(LeftLights()) |
59 self.add_thing(RightLights()) | |
354
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
60 self.add_thing(JimPanel()) |
424
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
61 self.add_thing(StarField()) |
277 | 62 self.add_thing(GenericDescThing('bridge.wires', 1, |
293
4012d50a4674
more spelling and full stops
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
292
diff
changeset
|
63 "The brightly coloured wires contrast with the drab walls.", |
277 | 64 ((46, 4, 711, 143),))) |
65 self.add_thing(GenericDescThing('bridge.note', 2, | |
293
4012d50a4674
more spelling and full stops
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
292
diff
changeset
|
66 "\"Dammit JIM, I'm a doctor, not an engineer!\"", |
277 | 67 ( |
68 (491, 494, 194, 105), | |
69 (422, 533, 71, 66), | |
70 ))) | |
291 | 71 self.doctor = GenericDescThing('bridge.skel', 3, |
72 "A skeleton hangs improbably from the wires.", | |
73 ( | |
74 (632, 148, 40, 29), | |
75 (683, 176, 30, 101), | |
76 (652, 274, 45, 96), | |
77 (639, 180, 11, 95), | |
78 )) | |
79 self.add_thing(self.doctor) | |
80 | |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
81 |
120 | 82 def enter(self): |
248 | 83 pieces = [get_music(x, prefix='sounds') for x in self.MUSIC] |
315
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
84 self.background_playlist = PlayList(pieces, random=True, repeat=True) |
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
85 change_playlist(self.background_playlist) |
120 | 86 |
248 | 87 def leave(self): |
88 change_playlist(None) | |
89 | |
120 | 90 |
242 | 91 class ToMap(Door): |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
92 |
252
dfc89bc64fdb
Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
251
diff
changeset
|
93 SCENE = "bridge" |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
94 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
95 INTERACTS = { |
235 | 96 "door": InteractNoImage(707, 344, 84, 245), |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
97 } |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
98 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
99 INITIAL = "door" |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
120
diff
changeset
|
100 |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
101 |
237
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
102 class BridgeComputer(Thing): |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
103 """The bridge computer. Gives status updates""" |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
104 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
105 NAME = "bridge.comp" |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
106 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
107 INTERACTS = { |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
108 'screen' : InteractNoImage(338, 296, 123, 74), |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
109 } |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
110 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
111 INITIAL = 'screen' |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
112 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
113 def interact_without(self): |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
114 return Result(detail_view='bridge_comp_detail') |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
115 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
116 def interact_with_titanium_leg(self): |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
117 return Result("You can't break the duraplastic screen.") |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
118 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
119 def interact_with_machete(self): |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
120 return Result("Scratching the screen won't help you.") |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
121 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
122 def get_description(self): |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
123 return "The main bridge computer screen." |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
124 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
125 |
330
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
126 class MassageChairBase(Thing): |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
127 "The captain's massage chair, contains superconductor" |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
128 |
330
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
129 NAME = 'bridge.massagechair_base' |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
130 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
131 INTERACTS = { |
316
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
132 'chair': InteractNoImage(127, 518, 69, 64), |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
133 } |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
134 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
135 INITIAL = 'chair' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
136 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
137 INITIAL_DATA = { |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
138 'contains_superconductor': True, |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
139 } |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
140 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
141 def interact_without(self): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
142 return Result(detail_view='chair_detail') |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
143 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
144 def get_description(self): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
145 if self.get_data('contains_superconductor'): |
316
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
146 return "A top of the line Massage-o-Matic Captain's Executive Command Chair. " \ |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
147 "It's massaging a skeleton." |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
148 return "The chair won't work any more, it has no power." |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
149 |
327
67e8a547970b
More engine room descs
Stefano Rivera <stefano@rivera.za.net>
parents:
316
diff
changeset
|
150 |
330
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
151 class MassageChair(Thing): |
316
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
152 "The captain's massage chair, contains superconductor" |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
153 |
330
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
154 NAME = 'bridge.massagechair' |
316
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
155 |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
156 INTERACTS = { |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
157 'chair': InteractRectUnion(( |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
158 (148, 418, 77, 68), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
159 (69, 363, 80, 156), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
160 (104, 514, 18, 40), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
161 (147, 487, 106, 32), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
162 (220, 518, 83, 49), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
163 (196, 502, 75, 34), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
164 (207, 534, 69, 51), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
165 )), |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
166 } |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
167 |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
168 INITIAL = 'chair' |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
169 |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
170 def get_description(self): |
330
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
171 return self.state.current_scene.things['bridge.massagechair_base'] \ |
316
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
172 .get_description() |
4a7aa7fcd191
Only the base of the massage chair brings up the subscene
Stefano Rivera <stefano@rivera.za.net>
parents:
315
diff
changeset
|
173 |
330
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
174 def is_interactive(self): |
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
175 return False |
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
176 |
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
177 |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
178 class Stethoscope(Item): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
179 "Used for cracking safes. Found on the doctor on the chair" |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
180 |
269 | 181 INVENTORY_IMAGE = 'stethoscope.png' |
302
6d93e04036c9
CursorSprite: Default pointer-position to the centre of the cursor
Stefano Rivera <stefano@rivera.za.net>
parents:
293
diff
changeset
|
182 CURSOR = CursorSprite('stethoscope.png') |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
183 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
184 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
185 class StethoscopeThing(Thing): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
186 "Stehoscope on the doctor" |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
187 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
188 NAME ='bridge.stethoscope' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
189 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
190 INTERACTS = { |
269 | 191 'stethoscope': InteractImage(650, 178, 'hanging_stethoscope.png'), |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
192 } |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
193 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
194 INITIAL = 'stethoscope' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
195 |
291 | 196 def get_description(self): |
293
4012d50a4674
more spelling and full stops
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
292
diff
changeset
|
197 return "A stethoscope hangs from the neck of the skeleton." |
291 | 198 |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
199 def interact_without(self): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
200 self.state.add_inventory_item('stethoscope') |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
201 self.scene.remove_thing(self) |
291 | 202 # Fill in the doctor's rect |
203 self.scene.doctor.rect.append(self.rect) | |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
204 return Result("You pick up the stethoscope and verify that the doctor's " |
292 | 205 "heart has stopped. Probably a while ago.") |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
206 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
207 |
399
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
208 class TapedSuperconductor(Item): |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
209 "Used for connecting high-powered parts of the ship up" |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
210 |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
211 INVENTORY_IMAGE = 'superconductor_taped.png' |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
212 CURSOR = CursorSprite('superconductor_taped_cursor.png') |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
213 |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
214 |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
215 class Superconductor(Item): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
216 "Used for connecting high-powered parts of the ship up" |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
217 |
285
2ec328aeeaf8
Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents:
278
diff
changeset
|
218 INVENTORY_IMAGE = 'superconductor_fixed.png' |
302
6d93e04036c9
CursorSprite: Default pointer-position to the centre of the cursor
Stefano Rivera <stefano@rivera.za.net>
parents:
293
diff
changeset
|
219 CURSOR = CursorSprite('superconductor_fixed.png') |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
220 |
399
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
221 def interact_with_duct_tape(self, item, state): |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
222 taped_superconductor = TapedSuperconductor('taped_superconductor') |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
223 state.add_item(taped_superconductor) |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
224 state.replace_inventory_item(self.name, taped_superconductor.name) |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
225 return Result("You rip off a piece of duct tape and stick it on the superconductor. " |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
226 "It almost sticks to itself, but you successfully avoid disaster.") |
1cfcd82519b6
You have to duct tape the superconductor
Stefano Rivera <stefano@rivera.za.net>
parents:
393
diff
changeset
|
227 |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
228 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
229 class SuperconductorThing(Thing): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
230 "Superconductor from the massage chair." |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
231 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
232 NAME ='bridge.superconductor' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
233 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
234 INTERACTS = { |
259
b6e1c4e4e59d
Superconductor Thing now works.
Jeremy Thurgood <firxen@gmail.com>
parents:
257
diff
changeset
|
235 'superconductor': InteractImage(158, 138, 'superconductor.png'), |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
236 } |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
237 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
238 INITIAL = 'superconductor' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
239 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
240 def interact_without(self): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
241 self.state.add_inventory_item('superconductor') |
330
8f85902f4cb6
Massage chair and base where swapped
Stefano Rivera <stefano@rivera.za.net>
parents:
327
diff
changeset
|
242 self.state.current_scene.things['bridge.massagechair_base'] \ |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
243 .set_data('contains_superconductor', False) |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
244 self.scene.remove_thing(self) |
426
dabc9d15c18c
Jim complains when you break the chair
Stefano Rivera <stefano@rivera.za.net>
parents:
424
diff
changeset
|
245 return (Result("The superconductor module unclips easily."), |
dabc9d15c18c
Jim complains when you break the chair
Stefano Rivera <stefano@rivera.za.net>
parents:
424
diff
changeset
|
246 make_jim_dialog(("Prisoner %s. That chair you've destroyed was " |
dabc9d15c18c
Jim complains when you break the chair
Stefano Rivera <stefano@rivera.za.net>
parents:
424
diff
changeset
|
247 "property of the ship's captain. " |
dabc9d15c18c
Jim complains when you break the chair
Stefano Rivera <stefano@rivera.za.net>
parents:
424
diff
changeset
|
248 "You will surely be punished." |
dabc9d15c18c
Jim complains when you break the chair
Stefano Rivera <stefano@rivera.za.net>
parents:
424
diff
changeset
|
249 ) % PLAYER_ID, self.state)) |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
250 |
424
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
251 class StarField(Thing): |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
252 |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
253 NAME = 'bridge.stars' |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
254 |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
255 INTERACTS = { |
427 | 256 #'stars' : InteractImage(190, 145, 'stars_3.png'), |
257 'stars' : InteractAnimated(190, 145, | |
424
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
258 ['stars_%d.png' % (i+1) for i in range(3) + range(1,0,-1)], 30) |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
259 } |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
260 |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
261 INITIAL = 'stars' |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
262 |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
263 def is_interactive(self): |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
264 return False |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
265 |
8d8ccae862ee
Animated starfield for bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
412
diff
changeset
|
266 |
251 | 267 class BlinkingLights(Thing): |
268 | |
370
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
269 def __init__(self): |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
270 super(BlinkingLights, self).__init__() |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
271 self.description = None |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
272 |
270
d4f08abc58fb
Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents:
269
diff
changeset
|
273 def is_interactive(self): |
d4f08abc58fb
Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents:
269
diff
changeset
|
274 return False |
d4f08abc58fb
Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents:
269
diff
changeset
|
275 |
370
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
276 def leave(self): |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
277 self.description = random.choice([ |
251 | 278 "The lights flash in interesting patterns.", |
292 | 279 "The flashing lights don't mean anything to you.", |
280 "The console lights flash and flicker.", | |
251 | 281 ]) |
282 | |
370
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
283 def get_description(self): |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
284 if not self.description: |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
285 self.leave() |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
286 return self.description |
8936c043d7a1
Fix bliken lights description
Neil Muller <neil@dip.sun.ac.za>
parents:
369
diff
changeset
|
287 |
251 | 288 class LeftLights(BlinkingLights): |
289 | |
290 NAME ='bridge.lights.1' | |
291 | |
292 INTERACTS = { | |
293 "lights": InteractAnimated(176, 337, ["bridge_lights_1_1.png", "bridge_lights_1_2.png", "bridge_lights_1_3.png", "bridge_lights_1_2.png"], 5) | |
294 } | |
295 | |
296 INITIAL = 'lights' | |
297 | |
298 class RightLights(BlinkingLights): | |
299 | |
300 NAME ='bridge.lights.2' | |
301 | |
302 INTERACTS = { | |
303 "lights": InteractAnimated(559, 332, ["bridge_lights_2_1.png", "bridge_lights_2_2.png", "bridge_lights_2_3.png", "bridge_lights_2_2.png"], 5) | |
304 } | |
305 | |
306 INITIAL = 'lights' | |
307 | |
354
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
308 class JimPanel(Thing): |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
309 "The panel to JIM's internals'" |
251 | 310 |
354
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
311 NAME = "jim_panel" |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
312 |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
313 INTERACTS = { |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
314 'closed' : InteractNoImage(506, 430, 137, 47), |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
315 'open' : InteractImage(500, 427, 'jim_panel_open.png'), |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
316 'broken' : InteractImage(488, 412, 'jim_panel_destroyed.png'), |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
317 } |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
318 |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
319 INITIAL = 'closed' |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
320 |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
321 def get_description(self): |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
322 if self.scene.get_data('ai panel') == 'closed': |
435 | 323 return "The sign reads 'Warning: Authorized Techinicians Only'." |
354
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
324 |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
325 def interact_without(self): |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
326 if self.scene.get_data('ai status') == 'online': |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
327 return self.interact_default() |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
328 elif self.scene.get_data('ai panel') == 'closed': |
368 | 329 return Result("You are unable to open the panel with your bare hands.") |
354
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
330 elif self.scene.get_data('ai panel') == 'open': |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
331 self.scene.set_data('ai panel', 'broken') |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
332 self.scene.set_data('ai status', 'dead') |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
333 self.set_interact('broken') |
368 | 334 return Result("You unplug various important-looking wires.") |
354
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
335 |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
336 |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
337 def interact_with_machete(self, item): |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
338 if self.scene.get_data('ai status') == 'online': |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
339 return self.interact_default() |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
340 elif self.scene.get_data('ai panel') == 'closed': |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
341 self.scene.set_data('ai panel', 'open') |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
342 self.set_interact('open') |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
343 return Result("Using the machete, you lever the panel off.") |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
344 elif self.scene.get_data('ai panel') == 'open': |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
345 self.scene.set_data('ai panel', 'broken') |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
346 self.scene.set_data('ai status', 'dead') |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
347 self.set_interact('broken') |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
348 return Result("You smash various delicate components with the machete.") |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
349 |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
350 def interact_default(self): |
09efb8b7c132
Hook up panel part of AI puzzle
Neil Muller <neil@dip.sun.ac.za>
parents:
352
diff
changeset
|
351 if self.scene.get_data('ai status') == 'online': |
368 | 352 return (Result('You feel a shock from the panel.'), |
360
452230d78541
Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents:
354
diff
changeset
|
353 make_jim_dialog("Prisoner %s. Please step away from the panel. " |
452230d78541
Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents:
354
diff
changeset
|
354 "You are not an authorized techinican." % PLAYER_ID, self.state)) |
251 | 355 |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
356 class ChairDetail(Scene): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
357 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
358 FOLDER = 'bridge' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
359 BACKGROUND = 'chair_detail.png' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
360 NAME = 'chair_detail' |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
361 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
362 SIZE = (300, 300) |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
363 |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
364 def __init__(self, state): |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
365 super(ChairDetail, self).__init__(state) |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
366 self.add_thing(SuperconductorThing()) |
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
367 |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
368 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
369 # classes related the computer detail |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
370 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
371 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
372 class LogTab(Thing): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
373 """Tab for log screen""" |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
374 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
375 NAME = 'bridge_comp.screen' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
376 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
377 INTERACTS = { |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
378 'log tab' : InteractNoImage(100, 53, 94, 37) |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
379 } |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
380 INITIAL = 'log tab' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
381 COMPUTER = 'bridge_comp_detail' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
382 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
383 def is_interactive(self): |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
384 return self.state.detail_views[self.COMPUTER].get_data('tab') != 'log' |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
385 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
386 def interact_without(self): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
387 self.state.detail_views[self.COMPUTER].set_data('tab', 'log') |
257 | 388 return Result(soundfile='beep550.ogg') |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
389 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
390 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
391 class AlertTab(Thing): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
392 """Tab for alert screen""" |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
393 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
394 NAME = 'bridge_comp.alert_tab' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
395 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
396 INTERACTS = { |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
397 'alert tab' : InteractNoImage(12, 53, 88, 37) |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
398 } |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
399 INITIAL = 'alert tab' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
400 COMPUTER = 'bridge_comp_detail' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
401 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
402 def is_interactive(self): |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
403 return self.state.detail_views[self.COMPUTER].get_data('tab') != 'alert' |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
404 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
405 def interact_without(self): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
406 self.state.detail_views[self.COMPUTER].set_data('tab', 'alert') |
257 | 407 return Result(soundfile='beep550.ogg') |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
408 |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
409 class NavTab(Thing): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
410 """Tab for the Navigation screen""" |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
411 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
412 NAME = 'bridge_comp.nav_tab' |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
413 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
414 INTERACTS = { |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
415 'nav tab' : InteractNoImage(197, 53, 126, 37), |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
416 } |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
417 INITIAL = 'nav tab' |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
418 COMPUTER = 'bridge_comp_detail' |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
419 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
420 def is_interactive(self): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
421 return self.state.detail_views[self.COMPUTER].get_data('tab') != 'nav' |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
422 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
423 def interact_without(self): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
424 self.state.detail_views[self.COMPUTER].set_data('tab', 'nav') |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
425 return Result(soundfile='beep550.ogg') |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
426 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
427 class DestNavPageLine(Thing): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
428 """The destination navigation lines.""" |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
429 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
430 INITIAL = 'line' |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
431 COMPUTER = 'bridge_comp_detail' |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
432 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
433 def __init__(self, number, rect, ai_blocked): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
434 super(DestNavPageLine, self).__init__() |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
435 self.name = 'bridge_comp.nav_line%s' % number |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
436 if DEBUG: |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
437 self._interact_hilight_color = Color(THECOLORS.keys()[number]) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
438 r = Rect(rect) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
439 self.interacts = {} |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
440 self.interacts['line'] = InteractNoImage(r.x, r.y, r.w, r.h) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
441 # Whether JIM blocks this |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
442 self.ai_blocked = ai_blocked |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
443 self.set_interact('line') |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
444 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
445 def is_interactive(self): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
446 return self.state.detail_views[self.COMPUTER].get_data('tab') == 'nav' |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
447 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
448 def interact_without(self): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
449 if self.state.scenes['bridge'].get_data('ai status') == 'online': |
429 | 450 return make_jim_dialog("You are not authorized to change the destination.", self.state) |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
451 if not self.ai_blocked: |
429 | 452 return Result("There's no good reason to choose to go to the penal colony.") |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
453 if self.state.scenes['bridge'].get_data('ai status') == 'looping': |
429 | 454 return Result("You could change the destination, but when JIM recovers, it'll just get reset.") |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
455 if self.state.scenes['bridge'].get_data('ai status') == 'dead': |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
456 self.state.set_current_scene('won') |
435 | 457 return Result("You change the destination.", soundfile="beep550.ogg", close_detail=True) |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
458 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
459 class CompUpButton(Thing): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
460 """Up button on log screen""" |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
461 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
462 NAME = 'bridge_comp.up_button' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
463 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
464 INTERACTS = { |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
465 'up' : InteractNoImage(594, 82, 30, 58) |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
466 } |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
467 INITIAL = 'up' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
468 COMPUTER = 'bridge_comp_detail' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
469 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
470 def is_interactive(self): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
471 tab = self.state.detail_views[self.COMPUTER].get_data('tab') |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
472 page = self.state.detail_views[self.COMPUTER].get_data('log page') |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
473 return tab == 'log' and page > 0 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
474 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
475 def interact_without(self): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
476 page = self.state.detail_views[self.COMPUTER].get_data('log page') |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
477 self.state.detail_views[self.COMPUTER].set_data('log page', page-1) |
257 | 478 return Result(soundfile='beep550.ogg') |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
479 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
480 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
481 class CompDownButton(Thing): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
482 """Down button on log screen""" |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
483 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
484 NAME = 'bridge_comp.down_button' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
485 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
486 INTERACTS = { |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
487 'down' : InteractNoImage(594, 293, 30, 58) |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
488 } |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
489 INITIAL = 'down' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
490 COMPUTER = 'bridge_comp_detail' |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
491 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
492 def is_interactive(self): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
493 tab = self.state.detail_views[self.COMPUTER].get_data('tab') |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
494 page = self.state.detail_views[self.COMPUTER].get_data('log page') |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
495 max_page = self.state.detail_views[self.COMPUTER].get_data('max page') |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
496 return tab == 'log' and (page + 1) < max_page |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
497 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
498 def interact_without(self): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
499 page = self.state.detail_views[self.COMPUTER].get_data('log page') |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
500 self.state.detail_views[self.COMPUTER].set_data('log page', page+1) |
257 | 501 return Result(soundfile='beep550.ogg') |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
502 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
503 |
350
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
504 class MonitorCamera(BaseCamera): |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
505 "A camera on the bridge" |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
506 |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
507 NAME = "bridge.camera" |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
508 |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
509 INTERACTS = { |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
510 'camera' : InteractImage(33, 192, 'camera_small.png') |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
511 } |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
512 |
125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents:
341
diff
changeset
|
513 |
237
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
514 class BridgeCompDetail(Scene): |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
515 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
516 FOLDER = 'bridge' |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
517 NAME = 'bridge_comp_detail' |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
518 |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
519 SIZE = (640, 400) |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
520 |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
521 ALERT_BASE = 'comp_alert_base.png' |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
522 ALERTS = { |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
523 'ai looping' : 'comp_alert_ai_looping.png', |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
524 'ai offline' : 'comp_alert_ai_offline.png', |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
525 'engine offline' : 'comp_alert_engine_offline.png', |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
526 'life support' : 'comp_alert_life_support.png', |
409
72baf5bfebc6
Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents:
403
diff
changeset
|
527 'life support partial' : 'comp_alert_life_support_partial.png', |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
528 } |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
529 |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
530 # Point to start drawing changeable alerts |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
531 ALERT_OFFSET = (16, 140) |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
532 ALERT_SPACING = 4 |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
533 |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
534 LOGS = ['comp_log_start.png', 'comp_log_1.png', |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
535 'comp_log_end.png'] |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
536 |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
537 NAVIGATION = { |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
538 'engine offline' : 'bridge_nav_engine.png', |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
539 'life support' : 'bridge_nav_life_support.png', |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
540 'final' : 'bridge_nav_dest.png' |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
541 } |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
542 |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
543 BACKGROUND = ALERT_BASE |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
544 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
545 |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
546 INITIAL_DATA = { |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
547 'tab' : 'alert', |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
548 'log page' : 0, |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
549 'max page' : len(LOGS), |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
550 } |
237
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
551 |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
552 def __init__(self, state): |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
553 super(BridgeCompDetail, self).__init__(state) |
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
554 |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
555 self.add_thing(LogTab()) |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
556 self.add_thing(AlertTab()) |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
557 self.add_thing(NavTab()) |
412 | 558 #self.add_thing(CompUpButton()) |
559 #self.add_thing(CompDownButton()) | |
315
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
560 self._scene_playlist = None |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
561 self._alert = get_image(self.FOLDER, self.ALERT_BASE) |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
562 self._alert_messages = {} |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
563 self._nav_messages = {} |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
564 for key, name in self.ALERTS.iteritems(): |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
565 self._alert_messages[key] = get_image(self.FOLDER, name) |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
566 for key, name in self.NAVIGATION.iteritems(): |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
567 self._nav_messages[key] = get_image(self.FOLDER, name) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
568 self._nav_lines = [] |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
569 self._nav_lines.append(DestNavPageLine(1, (14, 99, 595, 30), False)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
570 self._nav_lines.append(DestNavPageLine(2, (14, 135, 595, 30), True)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
571 self._nav_lines.append(DestNavPageLine(3, (14, 167, 595, 30), True)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
572 self._nav_lines.append(DestNavPageLine(4, (14, 203, 595, 30), True)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
573 self._nav_lines.append(DestNavPageLine(5, (14, 239, 595, 30), True)) |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
574 self._logs = [get_image(self.FOLDER, x) for x in self.LOGS] |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
575 |
315
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
576 def enter(self): |
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
577 self._scene_playlist = get_current_playlist() |
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
578 change_playlist(None) |
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
579 |
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
580 def leave(self): |
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
581 change_playlist(self._scene_playlist) |
7b07ffc37ec0
Suspend background sound for bridge computer detail
Neil Muller <neil@dip.sun.ac.za>
parents:
302
diff
changeset
|
582 |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
583 def draw_background(self, surface): |
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
584 if self.get_data('tab') == 'alert': |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
585 self._clear_navigation() |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
586 self._background = self._alert |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
587 elif self.get_data('tab') == 'log': |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
588 self._clear_navigation() |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
589 self._background = self._logs[self.get_data('log page')] |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
590 elif self.get_data('tab') == 'nav': |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
591 self._background = self._get_nav_page() |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
592 super(BridgeCompDetail, self).draw_background(surface) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
593 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
594 def _clear_navigation(self): |
435 | 595 "Remove navigation things if necessary" |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
596 for thing in self._nav_lines: |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
597 if thing.name in self.things.keys(): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
598 # Much fiddling to do the right thing when we reinsert it |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
599 del self.things[thing.name] |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
600 thing.scene = None |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
601 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
602 def _get_nav_page(self): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
603 if not self.state.scenes['engine'].get_data('engine online'): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
604 return self._nav_messages['engine offline'] |
409
72baf5bfebc6
Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents:
403
diff
changeset
|
605 elif not self.state.scenes['mess'].get_data('life support status') == 'fixed': |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
606 return self._nav_messages['life support'] |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
607 else: |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
608 for thing in self._nav_lines: |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
609 if thing.name not in self.things: |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
610 self.add_thing(thing) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
611 return self._nav_messages['final'] |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
612 |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
613 def _draw_alerts(self, surface): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
614 xpos, ypos = self.ALERT_OFFSET |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
615 if self.state.scenes['bridge'].get_data('ai status') == 'looping': |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
616 surface.blit(self._alert_messages['ai looping'], (xpos, ypos)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
617 ypos += self._alert_messages['ai looping'].get_size()[1] + self.ALERT_SPACING |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
618 if self.state.scenes['bridge'].get_data('ai status') == 'dead': |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
619 surface.blit(self._alert_messages['ai offline'], (xpos, ypos)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
620 ypos += self._alert_messages['ai offline'].get_size()[1] + self.ALERT_SPACING |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
621 if not self.state.scenes['engine'].get_data('engine online'): |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
622 surface.blit(self._alert_messages['engine offline'], (xpos, ypos)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
623 ypos += self._alert_messages['engine offline'].get_size()[1] + self.ALERT_SPACING |
409
72baf5bfebc6
Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents:
403
diff
changeset
|
624 if self.state.scenes['mess'].get_data('life support status') == 'broken': |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
625 surface.blit(self._alert_messages['life support'], (xpos, ypos)) |
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
626 ypos += self._alert_messages['life support'].get_size()[1] + self.ALERT_SPACING |
409
72baf5bfebc6
Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents:
403
diff
changeset
|
627 if self.state.scenes['mess'].get_data('life support status') == 'replaced': |
72baf5bfebc6
Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents:
403
diff
changeset
|
628 surface.blit(self._alert_messages['life support partial'], (xpos, ypos)) |
72baf5bfebc6
Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents:
403
diff
changeset
|
629 ypos += self._alert_messages['life support partial'].get_size()[1] + self.ALERT_SPACING |
255
2bd28030e8e4
Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents:
252
diff
changeset
|
630 |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
631 def draw_things(self, surface): |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
632 if self.get_data('tab') == 'alert': |
403
df3216b369b1
Hook up navigation tab, Add won condition
Neil Muller <neil@dip.sun.ac.za>
parents:
399
diff
changeset
|
633 self._draw_alerts(surface) |
389
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
634 super(BridgeCompDetail, self).draw_things(surface) |
eef2fca1aa11
Hook up updated alert screens
Neil Muller <neil@dip.sun.ac.za>
parents:
370
diff
changeset
|
635 |
222
b03debaec72d
Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents:
150
diff
changeset
|
636 |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
637 SCENES = [Bridge] |
237
ae01c10497b3
Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents:
235
diff
changeset
|
638 DETAIL_VIEWS = [ChairDetail, BridgeCompDetail] |