annotate gamelib/scenes/engine.py @ 285:2ec328aeeaf8

Engine room mostly hooked up
author Stefano Rivera <stefano@rivera.za.net>
date Fri, 27 Aug 2010 23:35:18 +0200
parents 3b4a78422201
children 6d93e04036c9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
1 """Engine room where things need to be repaired."""
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
2
285
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
3 from gamelib.cursor import CursorSprite
263
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 262
diff changeset
4 from gamelib.state import Scene, Item, Thing, Result
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 262
diff changeset
5 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: 262
diff changeset
6 InteractRectUnion, InteractImage,
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 262
diff changeset
7 InteractAnimated, GenericDescThing)
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
8
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
9
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
10 class Engine(Scene):
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
11
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
12 FOLDER = "engine"
244
cc478e3a951e Line-art engine room.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 242
diff changeset
13 BACKGROUND = "engine_room.png"
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
14
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
15 INITIAL_DATA = {
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
16 'accessible': True,
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
17 }
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
18
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
19 def __init__(self, state):
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
20 super(Engine, self).__init__(state)
285
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
21 self.add_item(CanOpener('canopener'))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
22 self.add_thing(CanOpenerThing())
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
23 self.add_item(BrokenSuperconductor('superconductor_broken'))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
24 self.add_thing(SuperconductorSocket())
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
25 self.add_thing(ToMap())
285
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
26 self.add_thing(GenericDescThing('engine.body', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
27 "Dead. He must have suffocated in the vacuum.",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
28 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
29 (594, 387, 45, 109),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
30 (549, 475, 60, 55),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
31 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
32 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
33 self.add_thing(GenericDescThing('engine.controlpanel', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
34 "A control panel. It seems dead.",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
35 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
36 (513, 330, 58, 50),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
37 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
38 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
39 self.add_thing(GenericDescThing('engine.computer_console', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
40 "A computer console. It seems dead",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
41 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
42 (293, 287, 39, 36),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
43 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
44 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
45 self.add_thing(GenericDescThing('engine.superconductors', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
46 "Superconductors. The engines must be power hogs.",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
47 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
48 (679, 246, 50, 56),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
49 (473, 277, 28, 23),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
50 (381, 224, 26, 22),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
51 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
52 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
53 self.add_thing(GenericDescThing('engine.floor_hole', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
54 "A gaping hole in the floor of the room. I'm guessing that's why there's a vacuum in here.",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
55 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
56 (257, 493, 141, 55),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
57 (301, 450, 95, 45),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
58 (377, 422, 19, 29),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
59 (239, 547, 123, 39),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
60 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
61 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
62 self.add_thing(GenericDescThing('engine.cryo_containers', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
63 "Those are cryo-fluid containers. They look empty",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
64 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
65 (129, 246, 135, 160),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
66 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
67 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
68 self.add_thing(GenericDescThing('engine.empty_cans', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
69 "Empty Chocolate-Covered-Bacon Cans? He must have got in early",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
70 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
71 (562, 422, 30, 31),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
72 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
73 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
74 self.add_thing(GenericDescThing('engine.engines', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
75 "The engines. They don't look like they are working.",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
76 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
77 (342, 261, 109, 81),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
78 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
79 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
80 self.add_thing(GenericDescThing('engine.laser_cutter', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
81 "A burned out laser cutter. It may be responsible for the hole in the floor.",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
82 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
83 (120, 466, 115, 67),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
84 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
85 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
86 self.add_thing(GenericDescThing('engine.spare_fuel_line', 1,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
87 "The spare fuel line. If something went wrong with the main one, you would hook that one up.",
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
88 (
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
89 (512, 49, 68, 44),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
90 )
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
91 ))
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
92
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
93
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
94 def enter(self):
285
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
95 return Result("You enter the engine room. Even if there wasn't a vacuum "
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
96 "it would be errily quiet.")
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
97
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
98 class CanOpener(Item):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
99 INVENTORY_IMAGE = 'triangle.png'
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
100 CURSOR = CursorSprite('triangle.png', 25, 23)
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
101
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
102
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
103 class CanOpenerThing(Thing):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
104 NAME = 'engine.canopener'
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
105
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
106 INTERACTS = {
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
107 'canopener': InteractImage(565, 456, 'can_opener.png'),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
108 }
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
109
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
110 INITIAL = 'canopener'
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
111
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
112 def get_description(self):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
113 return "A can opener. Looks like you won't be starving"
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
114
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
115 def interact_without(self):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
116 self.state.add_inventory_item('canopener')
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
117 self.scene.remove_thing(self)
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
118 return Result("You pick up the can opener. It looks brand new, "
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
119 "the vacuum has kept it in perfect condition.")
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
120
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
121
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
122 class BrokenSuperconductor(Item):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
123 INVENTORY_IMAGE = 'superconductor_broken.png'
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
124 CURSOR = CursorSprite('superconductor_broken_cursor.png', 13, 19)
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
125
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
126
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
127 class SuperconductorSocket(Thing):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
128 NAME = 'engine.superconductor'
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
129
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
130 INTERACTS = {
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
131 'broken': InteractImage(565, 263, 'superconductor_broken.png'),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
132 'removed': InteractNoImage(565, 263, 26, 39),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
133 'fixed': InteractImage(565, 263, 'superconductor_fixed.png'),
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
134 }
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
135
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
136 INITIAL = 'broken'
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
137
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
138 INITIAL_DATA = {
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
139 'present': True,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
140 'working': False,
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
141 }
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
142
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
143 def get_description(self):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
144 if self.get_data('present') and not self.get_data('working'):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
145 return "That superconductor looks burned out. It's wedged in there pretty firmly"
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
146 elif not self.get_data('present'):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
147 return "An empty superconductor socket"
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
148 else:
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
149 return "A working superconductor."
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
150
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
151 def interact_without(self):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
152 if self.get_data('present') and not self.get_data('working'):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
153 return Result("It's wedged in there pretty firmly, it won't come out.")
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
154 elif self.get_data('working'):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
155 return Result("You decide that working engines are more important than having a shiny superconductor")
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
156 Thing.interact_without()
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
157
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
158 def interact_with_machete(self, item):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
159 if self.get_data('present') and not self.get_data('working'):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
160 self.set_interact('removed')
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
161 self.set_data('present', False)
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
162 self.state.add_inventory_item('superconductor_broken')
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
163 return Result("With leverage, the burned-out superconductor snaps out.")
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
164 Thing.interact_without()
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
165
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
166 def interact_with_superconductor(self, item):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
167 if not self.get_data('present'):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
168 self.set_interact('fixed')
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
169 self.set_data('present', True)
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
170 self.set_data('working', True)
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
171 self.state.remove_inventory_item(item.name)
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
172 return Result("The chair's superconductor looks over-specced for this job, but it should work")
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
173 else:
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
174 return Result("It might help to remove the broken superconductor first")
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
175
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
176
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
177 class ToMap(Door):
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
178
252
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 244
diff changeset
179 SCENE = "engine"
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
180
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
181 INTERACTS = {
262
5f58da9eeb52 Replace text interacts with doors.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 252
diff changeset
182 "door": InteractNoImage(663, 360, 108, 193),
151
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
183 }
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
184
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
185 INITIAL = "door"
d00aa26941c4 Add machine and engine rooms to map. Fix typo in name of mess hall doorway thing.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
186
285
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
187 def get_description(self):
2ec328aeeaf8 Engine room mostly hooked up
Stefano Rivera <stefano@rivera.za.net>
parents: 263
diff changeset
188 return "The airlock leads back to the rest of the ship."
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
189
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
190 SCENES = [Engine]