annotate gamelib/scenes/bridge.py @ 259:b6e1c4e4e59d

Superconductor Thing now works.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 27 Aug 2010 19:01:00 +0200
parents 59dba2dcb280
children 3b4a78422201
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
3 import random
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
4
248
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
5 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
6 from albow.resource import get_image
248
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
7
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
8 from gamelib.cursor import CursorSprite
235
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
9 from gamelib.state import Scene, Item, Thing, Result, InteractText, \
259
b6e1c4e4e59d Superconductor Thing now works.
Jeremy Thurgood <firxen@gmail.com>
parents: 257
diff changeset
10 InteractNoImage, InteractRectUnion, InteractImage, \
b6e1c4e4e59d Superconductor Thing now works.
Jeremy Thurgood <firxen@gmail.com>
parents: 257
diff changeset
11 InteractAnimated
237
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
12 from gamelib.statehelpers import GenericDescThing
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 237
diff changeset
13 from gamelib.scenes.scene_widgets import Door
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
14
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
15 class Bridge(Scene):
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
16
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
17 FOLDER = "bridge"
235
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
18 BACKGROUND = 'bridge.png'
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
19
248
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
20 MUSIC = [
256
5213ee33ec1b More varied beeps
Neil Muller <neil@dip.sun.ac.za>
parents: 255
diff changeset
21 'beep1.ogg',
5213ee33ec1b More varied beeps
Neil Muller <neil@dip.sun.ac.za>
parents: 255
diff changeset
22 'beep2.ogg',
5213ee33ec1b More varied beeps
Neil Muller <neil@dip.sun.ac.za>
parents: 255
diff changeset
23 'beep880.ogg',
248
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
24 'beep660.ogg',
256
5213ee33ec1b More varied beeps
Neil Muller <neil@dip.sun.ac.za>
parents: 255
diff changeset
25 'beep3.ogg',
248
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
26 'silent.ogg',
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
27 'creaking.ogg',
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
28 'silent.ogg',
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
29 ]
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
30
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
31 INITIAL_DATA = {
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
32 'accessible': True,
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
33 }
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
34
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
35 def __init__(self, state):
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
36 super(Bridge, self).__init__(state)
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
37 self.add_item(Superconductor('superconductor'))
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
38 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
39 self.add_thing(ToMap())
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
40 self.add_thing(MassageChair())
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
41 self.add_thing(StethoscopeThing())
237
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
42 self.add_thing(BridgeComputer())
251
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
43 self.add_thing(LeftLights())
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
44 self.add_thing(RightLights())
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
45
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
46 def enter(self):
248
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
47 pieces = [get_music(x, prefix='sounds') for x in self.MUSIC]
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
48 background_playlist = PlayList(pieces, random=True, repeat=True)
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
49 change_playlist(background_playlist)
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
50 return Result("The bridge is in a sorry, shabby state")
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
51
248
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
52 def leave(self):
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
53 change_playlist(None)
37f892b59c4b Beeps on the bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 242
diff changeset
54
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
55
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 237
diff changeset
56 class ToMap(Door):
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
57
252
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 251
diff changeset
58 SCENE = "bridge"
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
59
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
60 INTERACTS = {
235
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
61 "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
62 }
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
63
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
64 INITIAL = "door"
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 120
diff changeset
65
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
66
237
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
67 class BridgeComputer(Thing):
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
68 """The bridge computer. Gives status updates"""
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
69
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
70 NAME = "bridge.comp"
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
71
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
72 INTERACTS = {
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
73 'screen' : InteractNoImage(338, 296, 123, 74),
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
74 }
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
75
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
76 INITIAL = 'screen'
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
77
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
78 def interact_without(self):
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
79 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
80
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
81 def interact_with_titanium_leg(self):
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
82 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
83
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
84 def interact_with_machete(self):
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
85 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
86
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
87 def get_description(self):
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
88 return "The main bridge computer screen."
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
89
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
90
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
91 class MassageChair(Thing):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
92 "The captain's massage chair, contains superconductor"
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
93
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
94 NAME = 'bridge.massagechair'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
95
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
96 INTERACTS = {
235
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
97 'chair': InteractRectUnion((
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
98 (76, 365, 72, 216),
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
99 (148, 486, 160, 97),
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
100 (148, 418, 77, 68),
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
101 )),
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
102 }
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
103
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
104 INITIAL = 'chair'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
105
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
106 INITIAL_DATA = {
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
107 'contains_superconductor': True,
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
108 }
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
109
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
110 def interact_without(self):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
111 return Result(detail_view='chair_detail')
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
112
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
113 def get_description(self):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
114 if self.get_data('contains_superconductor'):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
115 return "A top of the line Massage-o-Matic Captain's Executive Command Chair."
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
116 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
117
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
118
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
119 class Stethoscope(Item):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
120 "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
121
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
122 INVENTORY_IMAGE = 'triangle.png'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
123 CURSOR = CursorSprite('triangle.png', 20, 30)
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
124
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
125
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
126 class StethoscopeThing(Thing):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
127 "Stehoscope on the doctor"
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
128
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
129 NAME ='bridge.stethoscope'
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 = {
235
b0add10f7556 Hook up bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 222
diff changeset
132 'stethoscope': InteractNoImage(643, 177, 57, 87),
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 = 'stethoscope'
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 def interact_without(self):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
138 self.state.add_inventory_item('stethoscope')
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
139 self.scene.remove_thing(self)
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
140 return Result("You pick up the stethoscope and verify that the doctor's "
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
141 "heart has stoped. Probably a while ago.")
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
142
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 class Superconductor(Item):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
145 "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
146
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
147 INVENTORY_IMAGE = 'triangle.png'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
148 CURSOR = CursorSprite('triangle.png', 20, 30)
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
149
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
150
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
151 class SuperconductorThing(Thing):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
152 "Superconductor from the massage chair."
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
153
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
154 NAME ='bridge.superconductor'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
155
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
156 INTERACTS = {
259
b6e1c4e4e59d Superconductor Thing now works.
Jeremy Thurgood <firxen@gmail.com>
parents: 257
diff changeset
157 'superconductor': InteractImage(158, 138, 'superconductor.png'),
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
158 }
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
159
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
160 INITIAL = 'superconductor'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
161
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
162 def interact_without(self):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
163 self.state.add_inventory_item('superconductor')
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
164 self.state.current_scene.things['bridge.massagechair'] \
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
165 .set_data('contains_superconductor', False)
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
166 self.scene.remove_thing(self)
259
b6e1c4e4e59d Superconductor Thing now works.
Jeremy Thurgood <firxen@gmail.com>
parents: 257
diff changeset
167 return Result("The superconductor module unclips easily.")
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
168
251
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
169 class BlinkingLights(Thing):
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
170
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
171 def get_description(self):
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
172 return random.choice([
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
173 "The lights flash in interesting patterns.",
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
174 "The flashing lights don't mean anything to you",
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
175 "The console lights flash and flicker",
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
176 ])
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
177
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
178 class LeftLights(BlinkingLights):
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
179
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
180 NAME ='bridge.lights.1'
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
181
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
182 INTERACTS = {
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
183 "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)
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
184 }
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
185
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
186 INITIAL = 'lights'
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
187
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
188 class RightLights(BlinkingLights):
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
189
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
190 NAME ='bridge.lights.2'
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
191
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
192 INTERACTS = {
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
193 "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)
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
194 }
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
195
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
196 INITIAL = 'lights'
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
197
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
198
602fe654bd37 Das blinken lights
Neil Muller <neil@dip.sun.ac.za>
parents: 248
diff changeset
199
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
200 class ChairDetail(Scene):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
201
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
202 FOLDER = 'bridge'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
203 BACKGROUND = 'chair_detail.png'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
204 NAME = 'chair_detail'
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
205
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
206 SIZE = (300, 300)
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
207
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
208 def __init__(self, state):
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
209 super(ChairDetail, self).__init__(state)
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
210 self.add_thing(SuperconductorThing())
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
211
255
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
212
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
213 # 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
214
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
215
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
216 class LogTab(Thing):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
217 """Tab for log screen"""
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
218
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
219 NAME = 'bridge_comp.screen'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
220
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
221 INTERACTS = {
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
222 '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
223 }
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
224 INITIAL = 'log tab'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
225 COMPUTER = 'bridge_comp_detail'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
226
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
227 def is_interactive(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
228 return self.state.detail_views[self.COMPUTER].get_data('tab') == 'alert'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
229
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
230 def interact_without(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
231 if not self.is_interactive():
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
232 return
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
233 self.state.detail_views[self.COMPUTER].set_data('tab', 'log')
257
59dba2dcb280 Make computer beep
Neil Muller <neil@dip.sun.ac.za>
parents: 256
diff changeset
234 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
235
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
236
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
237 class AlertTab(Thing):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
238 """Tab for alert screen"""
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
239
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
240 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
241
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
242 INTERACTS = {
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
243 '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
244 }
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
245 INITIAL = 'alert tab'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
246 COMPUTER = 'bridge_comp_detail'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
247
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
248 def is_interactive(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
249 return self.state.detail_views[self.COMPUTER].get_data('tab') == 'log'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
250
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
251 def interact_without(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
252 if not self.is_interactive():
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
253 return
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
254 self.state.detail_views[self.COMPUTER].set_data('tab', 'alert')
257
59dba2dcb280 Make computer beep
Neil Muller <neil@dip.sun.ac.za>
parents: 256
diff changeset
255 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
256
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
257
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
258 class CompUpButton(Thing):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
259 """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
260
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
261 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
262
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
263 INTERACTS = {
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
264 '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
265 }
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
266 INITIAL = 'up'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
267 COMPUTER = 'bridge_comp_detail'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
268
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
269 def is_interactive(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
270 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
271 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
272 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
273
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
274 def interact_without(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
275 if not self.is_interactive():
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
276 return
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
277 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
278 self.state.detail_views[self.COMPUTER].set_data('log page', page-1)
257
59dba2dcb280 Make computer beep
Neil Muller <neil@dip.sun.ac.za>
parents: 256
diff changeset
279 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
280
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
281
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
282 class CompDownButton(Thing):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
283 """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
284
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
285 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
286
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
287 INTERACTS = {
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
288 '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
289 }
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
290 INITIAL = 'down'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
291 COMPUTER = 'bridge_comp_detail'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
292
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
293 def is_interactive(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
294 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
295 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
296 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
297 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
298
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
299 def interact_without(self):
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
300 if not self.is_interactive():
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
301 return
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
302 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
303 self.state.detail_views[self.COMPUTER].set_data('log page', page+1)
257
59dba2dcb280 Make computer beep
Neil Muller <neil@dip.sun.ac.za>
parents: 256
diff changeset
304 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
305
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
306
237
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
307 class BridgeCompDetail(Scene):
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
308
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
309 FOLDER = 'bridge'
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
310 NAME = 'bridge_comp_detail'
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
311
255
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
312 SIZE = (640, 400)
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
313
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
314 ALERT = 'comp_detail_1.png'
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
315
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
316 LOGS = ['comp_log_1.png', 'comp_log_2.png',
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
317 'comp_log_end.png']
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
318
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
319 BACKGROUND = ALERT
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
320
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
321
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
322 INITIAL_DATA = {
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
323 'tab' : 'alert',
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
324 'log page' : 0,
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
325 'max page' : len(LOGS),
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
326 }
237
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
327
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
328 def __init__(self, state):
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
329 super(BridgeCompDetail, self).__init__(state)
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
330
255
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
331 self.add_thing(LogTab())
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
332 self.add_thing(AlertTab())
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
333 self.add_thing(CompUpButton())
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
334 self.add_thing(CompDownButton())
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
335 self._alert = get_image(self.FOLDER, self.ALERT)
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
336 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
337
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
338 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
339 if self.get_data('tab') == 'alert':
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
340 self._background = self._alert
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
341 else:
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
342 self._background = self._logs[self.get_data('log page')]
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
343 super(BridgeCompDetail, self).draw_background(surface)
2bd28030e8e4 Hook up parts of the bridge computer system
Neil Muller <neil@dip.sun.ac.za>
parents: 252
diff changeset
344
222
b03debaec72d Things and Items for bridge
Stefano Rivera <stefano@rivera.za.net>
parents: 150
diff changeset
345
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
346 SCENES = [Bridge]
237
ae01c10497b3 Start work on bridge comp detail
Neil Muller <neil@dip.sun.ac.za>
parents: 235
diff changeset
347 DETAIL_VIEWS = [ChairDetail, BridgeCompDetail]