annotate gamelib/scenes/cryo.py @ 433:6b7b08d67233

Hook up fixed ETA screen
author Neil Muller <neil@dip.sun.ac.za>
date Sat, 28 Aug 2010 23:45:11 +0200
parents 785bceda2f4f
children 19aff54b2e73
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
433
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
4
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
5 from albow.music import change_playlist, get_music, PlayList
433
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
6 from albow.resource import get_image
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
7
135
b43599b7f8a2 Cursor highlights
Stefano Rivera <stefano@rivera.za.net>
parents: 134
diff changeset
8 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
9 from gamelib.sound import get_sound
135
b43599b7f8a2 Cursor highlights
Stefano Rivera <stefano@rivera.za.net>
parents: 134
diff changeset
10 from gamelib.cursor import CursorSprite
263
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
11 from gamelib.state import Scene, Item, CloneableItem, Thing, Result
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
12 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
13 from gamelib.scenes.game_constants import PLAYER_ID
263
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
14 from gamelib.scenes.scene_widgets import (Door, InteractText, InteractNoImage,
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
15 InteractRectUnion, InteractImage,
360
452230d78541 Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents: 353
diff changeset
16 InteractAnimated, GenericDescThing,
452230d78541 Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents: 353
diff changeset
17 make_jim_dialog)
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
18
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
19
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
20 class Cryo(Scene):
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
21
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
22 FOLDER = "cryo"
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
23 BACKGROUND = "cryo_room.png"
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
24
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
25 INITIAL_DATA = {
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
26 'accessible': True,
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
27 'greet' : True,
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
28 'vandalism_warn': True,
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
29 }
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
30
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
31 # 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
32 MUSIC = [
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
33 'drip1.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
34 'drip2.ogg',
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
35 'drip3.ogg',
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
36 'creaking.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
37 'silent.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
38 'silent.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
39 ]
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
40
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
41 def __init__(self, state):
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
42 super(Cryo, self).__init__(state)
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
43 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
44 self.add_thing(CryoUnitAlpha())
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
45 self.add_thing(CryoRoomDoor())
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
46 self.add_thing(CryoComputer())
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
47 self.add_thing(CryoPipeLeft())
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
48 self.add_thing(CryoPipeRightTop())
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
49 self.add_thing(CryoPipeRightBottom())
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
50 self.add_thing(CryoPools())
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
51
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
52 # Flavour items
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
53 # pipes
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
54 self.add_thing(GenericDescThing('cryo.pipes', 1,
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
55 "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
56 (
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
57 (552, 145, 129, 66),
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
58 # (643, 199, 38, 233),
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
59 (636, 82, 165, 60),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
60 (140, 135, 112, 73),
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
61 # (125, 192, 27, 258),
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
62 (11, 63, 140, 67),
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
63 #(2, 130, 44, 394),
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
64 #(756, 127, 52, 393),
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
65 )))
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
66 self.add_thing(UncuttableCryoPipes())
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
67
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
68 # cryo units
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
69 self.add_thing(GenericCryoUnit(2,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
70 "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
71 "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
72 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
73 (155, 430, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
74 (125, 450, 60, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
75 (95, 470, 60, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
76 (55, 490, 60, 55),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
77 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
78
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
79 self.add_thing(GenericCryoUnit(3,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
80 "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
81 "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
82 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
83 (215, 430, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
84 (205, 450, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
85 (185, 470, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
86 (125, 505, 80, 40),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
87 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
88
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
89 self.add_thing(GenericCryoUnit(4,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
90 "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
91 "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
92 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
93 (275, 430, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
94 (255, 460, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
95 (235, 490, 50, 60),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
96 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
97
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
98 self.add_thing(GenericCryoUnit(5,
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
99 "A working cryo chamber. The frosted glass obscures the details of the occupant.",
368
a95bfba3acd5 speling
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 363
diff changeset
100 "Prisoner B520-99495B8C41CE. Copyright infringement. 60 years.",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
101 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
102 (340, 430, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
103 (330, 500, 60, 50),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
104 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
105
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
106 self.add_thing(GenericCryoUnit(6,
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
107 "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
108 "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
109 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
110 (399, 426, 70, 56),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
111 (404, 455, 69, 120),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
112 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
113
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
114 self.add_thing(GenericCryoUnit(7,
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
115 "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
116 "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
117 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
118 (472, 432, 58, 51),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
119 (488, 455, 41, 134),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
120 (517, 487, 42, 93),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
121 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
122
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
123 self.add_thing(GenericCryoUnit(8,
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
124 "An empty cryo unit.",
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 219
diff changeset
125 "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
126 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
127 (596, 419, 69, 39),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
128 (616, 442, 82, 40),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
129 (648, 467, 84, 37),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
130 (681, 491, 97, 60),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
131 )))
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
132
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
133 def enter(self):
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
134 # Setup music
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
135 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
136 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
137 change_playlist(background_playlist)
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
138 if self.get_data('greet'):
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
139 self.set_data('greet', False)
360
452230d78541 Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents: 353
diff changeset
140 return make_jim_dialog(
376
41ee3fc71404 Tweaks to text and JIM background.
Jeremy Thurgood <firxen@gmail.com>
parents: 375
diff changeset
141 "Greetings, Prisoner %s. I am the Judicial "
360
452230d78541 Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents: 353
diff changeset
142 "Incarceration Monitor. "
202
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
143 "You have been woken early under the terms of the "
376
41ee3fc71404 Tweaks to text and JIM background.
Jeremy Thurgood <firxen@gmail.com>
parents: 375
diff changeset
144 "emergency conscription act to assist with repairs to "
202
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
145 "the ship. Your behaviour during this time will "
376
41ee3fc71404 Tweaks to text and JIM background.
Jeremy Thurgood <firxen@gmail.com>
parents: 375
diff changeset
146 "be noted on your record and will be relayed to "
202
6c84eb5ff80a Tweak intro text
Neil Muller <neil@dip.sun.ac.za>
parents: 189
diff changeset
147 "prison officials when we reach the destination. "
376
41ee3fc71404 Tweaks to text and JIM background.
Jeremy Thurgood <firxen@gmail.com>
parents: 375
diff changeset
148 "Please report to the bridge." % PLAYER_ID, self.state)
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
149
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
150 def leave(self):
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
151 # Stop music
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
152 change_playlist(None)
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
153
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
154
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
155 class CryoPipeBase(Thing):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
156 "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
157
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
158 INITIAL = "fixed"
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
159
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
160 INITIAL_DATA = {
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
161 'fixed': True,
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
162 }
219
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 def interact_with_machete(self, item):
247
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
165 if self.get_data('fixed'):
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
166 self.set_data('fixed', False)
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
167 pipe = TubeFragment('tube_fragment')
247
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
168 self.state.add_item(pipe)
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
169 self.state.add_inventory_item(pipe.name)
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
170 self.set_interact("chopped")
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
171 responses = [Result("It takes more effort than one would expect, but "
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
172 "eventually the pipe is separated from the wall.")]
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
173 if self.state.current_scene.get_data('vandalism_warn'):
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
174 self.state.current_scene.set_data('vandalism_warn', False)
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
175 responses.append(make_jim_dialog(
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
176 ("Prisoner %s. Vandalism is an offence punishable by a "
422
785bceda2f4f Full stops.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 376
diff changeset
177 "minimum of an additional 6 months to your sentence."
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
178 ) % PLAYER_ID, self.state))
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
179 return responses
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
180
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
181 def is_interactive(self):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
182 return self.get_data('fixed')
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
183
247
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
184 def interact_without(self):
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
185 if self.get_data('fixed'):
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
186 return Result("These pipes aren't attached to the wall very solidly.")
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
187 return None
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
188
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 227
diff changeset
189 def get_description(self):
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 227
diff changeset
190 if self.get_data('fixed'):
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
191 return "These pipes carry cooling fluid to empty cryo units."
422
785bceda2f4f Full stops.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 376
diff changeset
192 return "There used to be a pipe carrying cooling fluid here."
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 227
diff changeset
193
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
194
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
195 class UncuttableCryoPipes(Thing):
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
196 "Base class for cryo pipes that can't be cut down."
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
197
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
198 NAME = "cryo.pipes.2"
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
199
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
200 INTERACTS = {
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
201 "fixed" : InteractRectUnion((
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
202 (2, 130, 44, 394),
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
203 (756, 127, 52, 393),))
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
204 }
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
205
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
206 INITIAL = "fixed"
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
207
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
208 def interact_with_machete(self, item):
368
a95bfba3acd5 speling
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 363
diff changeset
209 return Result("These pipes carry fluid to the working cryo units."
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
210 " Chopping them down doesn't seem sensible.")
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
211
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
212 def is_interactive(self):
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
213 return True
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
214
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
215 def interact_without(self):
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
216 return Result("These pipes aren't attached to the wall very solidly.")
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
217
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
218 def get_description(self):
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
219 return "These pipes carry cooling fluid to the working cryo units."
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
220
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
221
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
222 class TubeFragment(CloneableItem):
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
223 "Obtained after cutting down a cryo room pipe."
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
224
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
225 INVENTORY_IMAGE = "tube_fragment.png"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
226 CURSOR = CursorSprite('tube_fragment_cursor.png')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
227 TOOL_NAME = "tube_fragment"
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
228
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
229
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
230 class CryoPipeLeft(CryoPipeBase):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
231 "Left cryo pipe."
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
232
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
233 NAME = "cryo.pipe.left"
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
234 INTERACTS = {
271
e3a2d73e94f4 Hook up intact pipes
Neil Muller <neil@dip.sun.ac.za>
parents: 270
diff changeset
235 "fixed": InteractImage(117, 226, "intact_cryo_pipe_left.png"),
e3a2d73e94f4 Hook up intact pipes
Neil Muller <neil@dip.sun.ac.za>
parents: 270
diff changeset
236 "chopped": InteractNoImage(125, 192, 27, 258),
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
237 }
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
238
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
239
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
240 class CryoPipeRightTop(CryoPipeBase):
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
241 "Right cryo pipe, top."
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
242
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
243 NAME = "cryo.pipe.right.top"
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
244 INTERACTS = {
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
245 "fixed": InteractImage(645, 212, "intact_cryo_pipe_right_top.png"),
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
246 "chopped": InteractNoImage(643, 199, 31, 111),
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
247 }
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
248
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
249
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
250 class CryoPipeRightBottom(CryoPipeBase):
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
251 "Right cryo pipe, bottom."
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
252
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
253 NAME = "cryo.pipe.right.bottom"
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
254 INTERACTS = {
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
255 "fixed": InteractImage(644, 333, "intact_cryo_pipe_right_bottom.png"),
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
256 "chopped": InteractNoImage(644, 333, 31, 107),
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
257 }
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
258
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
259
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
260 class TitaniumLeg(Item):
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
261 "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
262
91
542ede2896bb Link in femur inventory image.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 89
diff changeset
263 INVENTORY_IMAGE = "titanium_femur.png"
307
5031b84fbb4c Hook up new machete, can_opener, and titanium_femur images
Stefano Rivera <stefano@rivera.za.net>
parents: 302
diff changeset
264 CURSOR = CursorSprite('titanium_femur_cursor.png', 13, 5)
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
265
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
266
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
267 class CryoUnitAlpha(Thing):
67
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
268 "Cryo unit containing titanium leg."
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
269
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
270 NAME = "cryo.unit.1"
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
271
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
272 INTERACTS = {
133
0530547a131f Better map handling, detail_view stuff in Result.
Jeremy Thurgood <firxen@gmail.com>
parents: 131
diff changeset
273 "unit": InteractRectUnion((
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
274 (531, 430, 64, 49),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
275 (560, 460, 57, 47),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
276 (583, 482, 65, 69),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
277 (600, 508, 71, 48),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
278 ))
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
279 }
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
280
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
281 INITIAL = "unit"
67
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
282
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
283 INITIAL_DATA = {
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
284 'contains_titanium_leg': True,
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
285 }
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
286
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
287 def interact_without(self):
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
288 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
289
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
290 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
291 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
292 soundfile="clang2.ogg")
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
293
94
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
294 def get_description(self):
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
295 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
296 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
297 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
298
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
299
182
5cb3fbe61f75 Add genric thing with description helper class
Neil Muller <neil@dip.sun.ac.za>
parents: 180
diff changeset
300 class GenericCryoUnit(GenericDescThing):
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
301 "Generic Cryo unit"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
302
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
303 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
304 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
305 self.detailed_description = detailed_description
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
306
270
d4f08abc58fb Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents: 263
diff changeset
307 def is_interactive(self):
d4f08abc58fb Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents: 263
diff changeset
308 return True
d4f08abc58fb Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents: 263
diff changeset
309
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
310 def interact_without(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
311 return Result(self.detailed_description)
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
312
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
313 def get_description(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
314 return self.description
94
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
315
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
316 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
317 return Result(random.choice([
422
785bceda2f4f Full stops.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 376
diff changeset
318 "You bang on the chamber with the titanium femur. Nothing much happens.",
785bceda2f4f Full stops.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 376
diff changeset
319 "Hitting the cryo unit with the femur doesn't achieve anything.",
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
320 "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
321 ]), soundfile="clang2.ogg")
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
322
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
323
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 232
diff changeset
324 class CryoRoomDoor(Door):
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
325 "Door to the cryo room."
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
326
252
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 247
diff changeset
327 SCENE = "cryo"
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
328
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
329 INTERACTS = {
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
330 "shut": InteractNoImage(290, 260, 99, 152),
87
4c6fea1b242b Fix interact positions.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 86
diff changeset
331 "ajar": InteractImage(290, 260, "door_ajar.png"),
4c6fea1b242b Fix interact positions.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 86
diff changeset
332 "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
333 }
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
334
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
335 INITIAL = "shut"
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
336
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
337 INITIAL_DATA = {
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
338 'door': "shut",
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
339 }
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
340
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
341 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
342 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
343 self.open_door()
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
344 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
345 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
346 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
347 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
348 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
349 else:
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
350 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
351
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
352 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
353 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
354 self.half_open_door()
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
355 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
356 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
357 else:
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 129
diff changeset
358 self.state.set_current_scene('map')
144
29ba5456e8b3 Removed a bunch of cruft.
Jeremy Thurgood <firxen@gmail.com>
parents: 141
diff changeset
359 return None
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
360
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
361 def interact_default(self, item):
78
6bfebfbce42e Partial message support
Neil Muller <neil@dip.sun.ac.za>
parents: 67
diff changeset
362 return Result(random.choice([
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
363 "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
364 "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
365 "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
366 ]))
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
367
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
368 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
369 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
370 self.set_interact("ajar")
56
75bf3d3689e9 Refactor thing interactivity and add "fake" bridge scene.
Jeremy Thurgood <firxen@gmail.com>
parents: 55
diff changeset
371
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
372 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
373 self.set_data('door', "open")
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
374 self.set_interact("open")
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
375 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
376 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
377
63
3087be3463e0 Some framework support for better message handling
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
378 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
379 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
380 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
381 elif self.get_data('door') == "ajar":
376
41ee3fc71404 Tweaks to text and JIM background.
Jeremy Thurgood <firxen@gmail.com>
parents: 375
diff changeset
382 return ("A rusty door. It can't open all the way because of a "
41ee3fc71404 Tweaks to text and JIM background.
Jeremy Thurgood <firxen@gmail.com>
parents: 375
diff changeset
383 "chain on the other side.")
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
384 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
385
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
386
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
387 class CryoComputer(Thing):
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
388 "Computer in the cryo room."
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
389
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
390 NAME = "cryo.computer"
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
391
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
392 INTERACTS = {
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
393 "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
394 10),
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
395 "warn": InteractImage(416, 290, "comp_warn.png"),
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
396 "error": InteractImage(416, 290, "comp_error.png"),
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
397 }
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
398
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
399 INITIAL = "info"
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
400
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
401 def interact_without(self):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
402 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
403
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
404 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
405 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
406
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
407 def get_description(self):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
408 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
409
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
410
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
411 class TitaniumLegThing(Thing):
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
412 "Triangle in the cryo room."
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
413
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
414 NAME = "cryo.titanium_leg"
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 INTERACTS = {
232
ca490aecbe0e Updated cryo unit to use new stuff. No more triangles! (Except for the ones that are still there.)
Jeremy Thurgood <firxen@gmail.com>
parents: 228
diff changeset
417 "leg": InteractImage(180, 132, "leg.png"),
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
418 }
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
419
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
420 INITIAL = "leg"
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
421
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
422 def interact_without(self):
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
423 self.state.add_inventory_item('titanium_leg')
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
424 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
425 self.scene.remove_thing(self)
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
426 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
427
136
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
428 def get_description(self):
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
429 return "This femur looks synthetic."
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
430
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
431
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
432 class PlaqueThing(Thing):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
433 "Plaque on the detailed cryo chamber"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
434
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
435 NAME = "cryo.plaque"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
436
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
437 INTERACTS = {
232
ca490aecbe0e Updated cryo unit to use new stuff. No more triangles! (Except for the ones that are still there.)
Jeremy Thurgood <firxen@gmail.com>
parents: 228
diff changeset
438 "plaque": InteractNoImage(60, 40, 35, 24),
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
439 }
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
440
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
441 INITIAL = "plaque"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
442
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
443 def interact_without(self):
422
785bceda2f4f Full stops.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 376
diff changeset
444 return Result("The plaque is welded to the unit. You can't shift it.")
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
445
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
446 def get_description(self):
376
41ee3fc71404 Tweaks to text and JIM background.
Jeremy Thurgood <firxen@gmail.com>
parents: 375
diff changeset
447 return "'Prisoner 98CC-764E646391EE. War crimes. 45 years."
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
448
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
449
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
450 class FullBottle(Item):
363
2cadb47405a4 Use bottle image. The boomslang is now triangle-free
Stefano Rivera <stefano@rivera.za.net>
parents: 362
diff changeset
451 INVENTORY_IMAGE = 'bottle_full.png'
2cadb47405a4 Use bottle image. The boomslang is now triangle-free
Stefano Rivera <stefano@rivera.za.net>
parents: 362
diff changeset
452 CURSOR = CursorSprite('bottle_full_cursor.png', 27, 7)
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
453
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
454
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
455 class CryoPools(Thing):
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
456 "Handy for cooling engines"
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
457
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
458 NAME = 'cryo.pool'
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
459
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
460 INTERACTS = {
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
461 'pools': InteractRectUnion((
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
462 (444, 216, 125, 67),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
463 (44, 133, 74, 107),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
464 (485, 396, 97, 34),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
465 )),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
466 }
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
467
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
468 INITIAL = 'pools'
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
469
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
470 def get_description(self):
422
785bceda2f4f Full stops.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 376
diff changeset
471 return "Coolant leaks disturbingly from the bulkheads."
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
472
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
473 def interact_without(self):
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
474 return Result("It's gooey")
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
475
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
476 def interact_with_detergent_bottle(self, item):
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
477 full = FullBottle('full_detergent_bottle')
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
478 self.state.add_item(full)
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
479 self.state.replace_inventory_item(item.name, full.name)
422
785bceda2f4f Full stops.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 376
diff changeset
480 return Result("You scoop up some coolant and fill the bottle.")
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
481
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
482
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
483 class CryoCompDetail(Scene):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
484
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
485 FOLDER = "cryo"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
486 BACKGROUND = "comp_info_detail.png"
433
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
487 BACKGROUND_FIXED = "comp_info_detail_fixed.png"
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
488 NAME = "cryo_comp_detail"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
489
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
490 SIZE = (640, 400)
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
491
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
492 def __init__(self, state):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
493 super(CryoCompDetail, self).__init__(state)
433
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
494 self._background_fixed = get_image(self.FOLDER, self.BACKGROUND_FIXED)
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
495
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
496 def draw_background(self, surface):
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
497 if self.state.scenes['engine'].get_data('engine online'):
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
498 surface.blit(self._background_fixed, self.OFFSET, None)
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
499 else:
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
500 surface.blit(self._background, self.OFFSET, None)
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
501
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
502
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
503 class CryoUnitWithCorpse(Scene):
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
504
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
505 FOLDER = "cryo"
127
9646e7c8bb97 Size detail window based on the Scene background image.
Jeremy Thurgood <firxen@gmail.com>
parents: 125
diff changeset
506 BACKGROUND = "cryo_unit_detail.png"
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
507 NAME = "cryo_detail"
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
508
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
509 SIZE = (300, 300)
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
510
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
511 def __init__(self, state):
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
512 super(CryoUnitWithCorpse, self).__init__(state)
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
513 self.add_thing(TitaniumLegThing())
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
514 self.add_thing(PlaqueThing())
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
515
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
516
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
517 SCENES = [Cryo]
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
518 DETAIL_VIEWS = [CryoUnitWithCorpse, CryoCompDetail]