annotate gamelib/scenes/cryo.py @ 227:be4ac4418aa2

Cryo pipe image
author Stefano Rivera <stefano@rivera.za.net>
date Thu, 26 Aug 2010 23:00:20 +0200
parents a5325919342e
children ce1e85768f7b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
1 """Cryo room where the prisoner starts out."""
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
2
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
3 import random
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
4 from albow.music import change_playlist, get_music, PlayList
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
5
135
b43599b7f8a2 Cursor highlights
Stefano Rivera <stefano@rivera.za.net>
parents: 134
diff changeset
6 from gamelib import speech
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
7 from gamelib.sound import get_sound
135
b43599b7f8a2 Cursor highlights
Stefano Rivera <stefano@rivera.za.net>
parents: 134
diff changeset
8 from gamelib.cursor import CursorSprite
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
9 from gamelib.state import Scene, Item, CloneableItem, Thing, Result, \
105
65976205fc2d Rough Stab at basic animation support
Neil Muller <neil@dip.sun.ac.za>
parents: 103
diff changeset
10 InteractImage, InteractNoImage, InteractRectUnion, \
65976205fc2d Rough Stab at basic animation support
Neil Muller <neil@dip.sun.ac.za>
parents: 103
diff changeset
11 InteractAnimated
182
5cb3fbe61f75 Add genric thing with description helper class
Neil Muller <neil@dip.sun.ac.za>
parents: 180
diff changeset
12 from gamelib.statehelpers import GenericDescThing
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
13 from gamelib.constants import DEBUG
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
14 from gamelib.scenes.game_constants import PLAYER_ID
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
15
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
16
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
17 class Cryo(Scene):
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
18
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
19 FOLDER = "cryo"
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
20 BACKGROUND = "cryo_room.png"
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
21
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
22 INITIAL_DATA = {
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
23 'accessible': True,
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
24 'greet' : True
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
25 }
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
26
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
27 # sounds that will be played randomly as background noise
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
28 MUSIC = [
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
29 'drip1.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
30 'drip2.ogg',
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
31 'drip3.ogg',
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
32 'creaking.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
33 'silent.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
34 'silent.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
35 ]
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
36
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
37 def __init__(self, state):
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
38 super(Cryo, self).__init__(state)
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
39 self.add_item(TitaniumLeg("titanium_leg"))
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
40 self.add_thing(CryoUnitAlpha())
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
41 self.add_thing(CryoRoomDoor())
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
42 self.add_thing(CryoComputer())
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
43 self.add_thing(CryoPipeLeft())
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
44 self.add_thing(CryoPipeRight())
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
45
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
46 # Flavour items
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
47 # pipes
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
48 self.add_thing(GenericDescThing('cryo.pipes', 1,
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
49 "These pipes carry cooling fluid to the cryo units.",
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
50 (
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
51 (552, 145, 129, 66),
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
52 # (643, 199, 38, 233),
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
53 (636, 82, 165, 60),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
54 (756, 127, 52, 393),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
55 (140, 135, 112, 73),
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
56 # (125, 192, 27, 258),
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
57 (11, 63, 140, 67),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
58 (2, 130, 44, 394),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
59 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
60
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
61 # leaks
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
62 self.add_thing(GenericDescThing('cryo.leaks', 2,
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
63 "Fluid leaks disturbingly from the bulkheads",
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
64 (
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
65 (444, 216, 125, 67),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
66 (44, 133, 74, 107),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
67 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
68
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
69 # cryo units
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
70 self.add_thing(GenericCryoUnit(2,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
71 "An empty cryo chamber.",
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
72 "Prisoner 81E4-C8900480E635. Embezzlement. 20 years.",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
73 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
74 (155, 430, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
75 (125, 450, 60, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
76 (95, 470, 60, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
77 (55, 490, 60, 55),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
78 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
79
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
80 self.add_thing(GenericCryoUnit(3,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
81 "A working cryo chamber. The frosted glass obscures the details of the occupant.",
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
82 "Prisoner 9334-CE1EB0243BAB. Murder. 40 years.",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
83 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
84 (215, 430, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
85 (205, 450, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
86 (185, 470, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
87 (125, 505, 80, 40),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
88 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
89
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
90 self.add_thing(GenericCryoUnit(4,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
91 "A broken cryo chamber. The skeleton inside has been picked clean.",
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
92 "Prisoner BFBC-8BF4C6B7492B. Importing illegal alien biomatter. 15 years.",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
93 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
94 (275, 430, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
95 (255, 460, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
96 (235, 490, 50, 60),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
97 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
98
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
99 self.add_thing(GenericCryoUnit(5,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
100 "A working cryo chamber. The frosted glass obscures the details of the occupant.",
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
101 "Prisoner B520-99495B8C41CE. Copyright infringment. 60 years.",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
102 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
103 (340, 430, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
104 (330, 500, 60, 50),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
105 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
106
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
107 self.add_thing(GenericCryoUnit(6,
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
108 "An empty cryo unit. Recently filled by you.",
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
109 "Prisoner %s. Safe cracker. 30 years." % PLAYER_ID,
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
110 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
111 (399, 426, 70, 56),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
112 (404, 455, 69, 120),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
113 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
114
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
115 self.add_thing(GenericCryoUnit(7,
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
116 "An empty cryo unit.",
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
117 "Prisoner 83F1-CE32D3234749. Spammer. 5 years",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
118 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
119 (472, 432, 58, 51),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
120 (488, 455, 41, 134),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
121 (517, 487, 42, 93),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
122 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
123
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
124 self.add_thing(GenericCryoUnit(8,
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
125 "An empty cryo unit.",
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 219
diff changeset
126 "Prisoner A455-9DF9F43C43E5. Medical malpractice. 10 years.",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
127 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
128 (596, 419, 69, 39),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
129 (616, 442, 82, 40),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
130 (648, 467, 84, 37),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
131 (681, 491, 97, 60),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
132 )))
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
133
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
134 def enter(self):
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
135 # Setup music
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
136 pieces = [get_music(x, prefix='sounds') for x in self.MUSIC]
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
137 background_playlist = PlayList(pieces, random=True, repeat=True)
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
138 change_playlist(background_playlist)
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
139 if self.get_data('greet'):
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
140 self.set_data('greet', False)
202
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
141 return Result(
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 219
diff changeset
142 "You hear a voice: 'Greetings, Prisoner %s. "
202
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
143 "This is the Judicial Incarceration Monitor. "
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
144 "You have been woken early under the terms of the "
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
145 "emergency conscription act to help with repairs to "
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
146 "the ship. Your behaviour during this time will "
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
147 "be added to your record and will be relayed to "
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
148 "prison officials when we reach the destination. "
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
149 "Please report to the bridge.'" % PLAYER_ID, style="JIM")
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
150
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
151 def leave(self):
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
152 # Stop music
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
153 change_playlist(None)
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
154
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
155
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
156 class CryoPipeBase(Thing):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
157 "Base class for cryo pipes that need to be stolen."
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
158
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
159 INITIAL = "fixed"
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
160
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
161 INITIAL_DATA = {
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
162 'fixed': True,
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
163 }
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
164
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
165 def interact_with_machete(self, item):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
166 self.set_data('fixed', False)
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
167 pipe = CryoPipe('cryopipe')
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
168 self.state.add_item(pipe)
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
169 self.state.add_inventory_item(pipe.name)
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
170 self.set_interact("chopped")
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
171
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
172 def is_interactive(self):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
173 return self.get_data('fixed')
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
174
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
175
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
176 class CryoPipe(CloneableItem):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
177 "After emptying the full can."
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
178
227
be4ac4418aa2 Cryo pipe image
Stefano Rivera <stefano@rivera.za.net>
parents: 226
diff changeset
179 INVENTORY_IMAGE = "cryo_pipe.png"
be4ac4418aa2 Cryo pipe image
Stefano Rivera <stefano@rivera.za.net>
parents: 226
diff changeset
180 CURSOR = CursorSprite('cryo_pipe_cursor.png', 53, 44)
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
181 TOOL_NAME = "pipe"
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
182
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
183
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
184 class CryoPipeLeft(CryoPipeBase):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
185 "Left cryo pipe."
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
186
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
187 NAME = "cryo.pipe.left"
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
188 INTERACTS = {
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
189 "fixed": InteractNoImage(125, 192, 27, 258),
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
190 "chopped": InteractImage(125, 192, "triangle.png"),
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
191 }
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
192
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
193
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
194 class CryoPipeRight(CryoPipeBase):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
195 "Left cryo pipe."
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
196
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
197 NAME = "cryo.pipe.right"
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
198 INTERACTS = {
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
199 "fixed": InteractNoImage(643, 199, 38, 233),
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
200 "chopped": InteractImage(643, 199, "triangle.png"),
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
201 }
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
202
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
203
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
204 class TitaniumLeg(Item):
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
205 "Titanium leg, found on a piratical corpse."
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
206
91
542ede2896bb Link in femur inventory image.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 89
diff changeset
207 INVENTORY_IMAGE = "titanium_femur.png"
218
6ad6575b501c Tweak cursors
Neil Muller <neil@dip.sun.ac.za>
parents: 213
diff changeset
208 CURSOR = CursorSprite('titanium_femur_cursor.png', 20, 3)
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
209
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
210
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
211 class CryoUnitAlpha(Thing):
67
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
212 "Cryo unit containing titanium leg."
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
213
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
214 NAME = "cryo.unit.1"
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
215
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
216 INTERACTS = {
133
0530547a131f Better map handling, detail_view stuff in Result.
Jeremy Thurgood <firxen@gmail.com>
parents: 131
diff changeset
217 "unit": InteractRectUnion((
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
218 (531, 430, 64, 49),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
219 (560, 460, 57, 47),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
220 (583, 482, 65, 69),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
221 (600, 508, 71, 48),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
222 ))
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
223 }
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
224
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
225 INITIAL = "unit"
67
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
226
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
227 INITIAL_DATA = {
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
228 'contains_titanium_leg': True,
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
229 }
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
230
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
231 def interact_without(self):
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
232 return Result(detail_view='cryo_detail')
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
233
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
234 def interact_with_titanium_leg(self, item):
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
235 return Result("You hit the chamber that used to hold this very leg. Nothing happens as a result.",
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
236 soundfile="clang2.ogg")
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
237
94
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
238 def get_description(self):
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
239 if self.get_data('contains_titanium_leg'):
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
240 return "A broken cryo chamber, with a poor unfortunate corpse inside."
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
241 return "A broken cryo chamber. The corpse inside is missing a leg."
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
242
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
243
182
5cb3fbe61f75 Add genric thing with description helper class
Neil Muller <neil@dip.sun.ac.za>
parents: 180
diff changeset
244 class GenericCryoUnit(GenericDescThing):
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
245 "Generic Cryo unit"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
246
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
247 def __init__(self, number, description, detailed_description, areas):
182
5cb3fbe61f75 Add genric thing with description helper class
Neil Muller <neil@dip.sun.ac.za>
parents: 180
diff changeset
248 super(GenericCryoUnit, self).__init__('cryo.unit', number, description, areas)
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
249 self.detailed_description = detailed_description
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
250
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
251 def interact_without(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
252 return Result(self.detailed_description)
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
253
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
254 def get_description(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
255 return self.description
94
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
256
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
257 def interact_with_titanium_leg(self, item):
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
258 return Result(random.choice([
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
259 "You bang on the chamber with the titanium femur. Nothing much happens",
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
260 "Hitting the cryo unit with the femur doesn't achieve anything",
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
261 "You hit the chamber with the femur. Nothing happens.",
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
262 ]), soundfile="clang2.ogg")
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
263
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
264
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
265 class CryoRoomDoor(Thing):
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
266 "Door to the cryo room."
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
267
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
268 NAME = "cryo.door"
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
269
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
270 INTERACTS = {
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
271 "shut": InteractNoImage(290, 260, 99, 152),
87
4c6fea1b242b Fix interact positions.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 86
diff changeset
272 "ajar": InteractImage(290, 260, "door_ajar.png"),
4c6fea1b242b Fix interact positions.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 86
diff changeset
273 "open": InteractImage(290, 260, "door_open.png"),
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
274 }
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
275
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
276 INITIAL = "shut"
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
277
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
278 INITIAL_DATA = {
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
279 'door': "shut",
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
280 }
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
281
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
282 def interact_with_titanium_leg(self, item):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
283 if self.get_data('door') == "ajar":
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
284 self.open_door()
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
285 return Result("You wedge the titanium femur into the chain and twist. With a satisfying *snap*, the chain breaks and the door opens.", soundfile='break.ogg')
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
286 elif self.get_data('door') == "shut":
109
66898d810247 Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents: 105
diff changeset
287 text = "You bang on the door with the titanium femur. It makes a clanging sound."
66898d810247 Add hackish speech support (run regen-speech.py to generate files -- needs espeak and oggenc).
Simon Cross <simon@simonx>
parents: 105
diff changeset
288 speech.say(self.name, text)
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
289 return Result(text, soundfile='clang.ogg')
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
290 else:
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
291 return Result("You wave the femur in the doorway. Nothing happens.")
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
292
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
293 def interact_without(self):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
294 if self.get_data('door') == "shut":
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
295 self.half_open_door()
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
296 if self.get_data('door') != "open":
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
297 return Result("It moves slightly and then stops. A chain on the other side is preventing it from opening completely.", soundfile='chain.ogg')
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
298 else:
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 129
diff changeset
299 self.state.set_current_scene('map')
144
29ba5456e8b3 Removed a bunch of cruft.
Jeremy Thurgood <firxen@gmail.com>
parents: 141
diff changeset
300 return None
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
301
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
302 def interact_default(self, item):
78
6bfebfbce42e Partial message support
Neil Muller <neil@dip.sun.ac.za>
parents: 67
diff changeset
303 return Result(random.choice([
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
304 "Sadly, this isn't that sort of game.",
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
305 "Your valiant efforts are foiled by the Evil Game Designer.",
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
306 "The door resists. Try something else, perhaps?",
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
307 ]))
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
308
56
75bf3d3689e9 Refactor thing interactivity and add "fake" bridge scene.
Jeremy Thurgood <firxen@gmail.com>
parents: 55
diff changeset
309 def is_interactive(self):
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
310 return True
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
311
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
312 def half_open_door(self):
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
313 self.set_data('door', "ajar")
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
314 self.set_interact("ajar")
56
75bf3d3689e9 Refactor thing interactivity and add "fake" bridge scene.
Jeremy Thurgood <firxen@gmail.com>
parents: 55
diff changeset
315
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
316 def open_door(self):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
317 self.set_data('door', "open")
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
318 self.set_interact("open")
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
319 self.state.scenes['bridge'].set_data('accessible', True)
147
a039d3b81b3d Deselect tools and get to the Mess.
Jeremy Thurgood <firxen@gmail.com>
parents: 144
diff changeset
320 self.state.scenes['mess'].set_data('accessible', True)
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
321
63
3087be3463e0 Some framework support for better message handling
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
322 def get_description(self):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
323 if self.get_data('door') == "open":
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
324 return 'An open doorway leads to the rest of the ship.'
103
0f799b6f40bc Fix ajar door description
Neil Muller <neil@dip.sun.ac.za>
parents: 95
diff changeset
325 elif self.get_data('door') == "ajar":
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
326 return "A rusty door. It can't open all the way because of a chain on the other side."
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
327 return 'A rusty door. It is currently closed.'
63
3087be3463e0 Some framework support for better message handling
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
328
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
329
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
330 class CryoComputer(Thing):
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
331 "Computer in the cryo room."
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
332
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
333 NAME = "cryo.computer"
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
334
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
335 INTERACTS = {
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
336 "info": InteractAnimated(416, 290, ["comp_info.png", "comp_info2.png"],
105
65976205fc2d Rough Stab at basic animation support
Neil Muller <neil@dip.sun.ac.za>
parents: 103
diff changeset
337 10),
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
338 "warn": InteractImage(416, 290, "comp_warn.png"),
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
339 "error": InteractImage(416, 290, "comp_error.png"),
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
340 }
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
341
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
342 INITIAL = "info"
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
343
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
344 def interact_without(self):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
345 return Result(detail_view='cryo_comp_detail')
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
346
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
347 def interact_with_titanium_leg(self, item):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
348 return Result("Hitting it with the leg accomplishes nothing.")
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
349
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
350 def get_description(self):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
351 return "A computer terminal, with some text on it."
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
352
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
353
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
354 class TitaniumLegThing(Thing):
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
355 "Triangle in the cryo room."
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
356
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
357 NAME = "cryo.titanium_leg"
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
358
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
359 INTERACTS = {
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
360 "leg": InteractImage(50, 50, "triangle.png"),
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
361 }
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
362
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
363 INITIAL = "leg"
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
364
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
365 def interact_without(self):
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
366 self.state.add_inventory_item('titanium_leg')
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
367 self.state.current_scene.things['cryo.unit.1'].set_data('contains_titanium_leg', False)
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
368 self.scene.remove_thing(self)
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
369 return Result("The skeletal occupant of this cryo unit has an artificial femur made of titanium. You take it.")
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
370
136
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
371 def get_description(self):
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
372 return "This femur looks synthetic."
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
373
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
374 class PlaqueThing(Thing):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
375 "Plaque on the detailed cryo chamber"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
376
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
377 NAME = "cryo.plaque"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
378
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
379 INTERACTS = {
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
380 "plaque": InteractImage(150, 150, "triangle.png"),
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
381 }
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
382
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
383 INITIAL = "plaque"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
384
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
385 def interact_without(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
386 return Result("The plaque is welded to the unit. You can't shift it")
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
387
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
388 def get_description(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
389 return "'Prisoner 98cc-764e646391ee. War crimes. 45 years."
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
390
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
391 class CryoCompDetail(Scene):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
392
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
393 FOLDER = "cryo"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
394 BACKGROUND = "comp_info_detail.png"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
395 NAME = "cryo_comp_detail"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
396
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
397 SIZE = (640, 400)
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
398
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
399 def __init__(self, state):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
400 super(CryoCompDetail, self).__init__(state)
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
401
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
402
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
403 class CryoUnitWithCorpse(Scene):
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
404
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
405 FOLDER = "cryo"
127
9646e7c8bb97 Size detail window based on the Scene background image.
Jeremy Thurgood <firxen@gmail.com>
parents: 125
diff changeset
406 BACKGROUND = "cryo_unit_detail.png"
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
407 NAME = "cryo_detail"
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
408
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
409 SIZE = (300, 300)
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
410
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
411 def __init__(self, state):
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
412 super(CryoUnitWithCorpse, self).__init__(state)
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
413 self.add_thing(TitaniumLegThing())
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
414 self.add_thing(PlaqueThing())
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
415
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
416
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
417 SCENES = [Cryo]
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
418 DETAIL_VIEWS = [CryoUnitWithCorpse, CryoCompDetail]