annotate gamelib/scenes/machine.py @ 759:386475464202 pyntnclick

Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 26 Jan 2013 13:00:31 +0200
parents c910c8b51d55
children a8510f4e2ea1 43b49f1de828
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 """Machine room where tools and machines are found."""
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
2
549
098ea4ea0d0d Rename imports
Neil Muller <neil@dip.sun.ac.za>
parents: 539
diff changeset
3 from pyntnclick.state import Scene, Item, Thing, Result
098ea4ea0d0d Rename imports
Neil Muller <neil@dip.sun.ac.za>
parents: 539
diff changeset
4 from pyntnclick.cursor import CursorSprite
098ea4ea0d0d Rename imports
Neil Muller <neil@dip.sun.ac.za>
parents: 539
diff changeset
5 from pyntnclick.scenewidgets import (InteractNoImage, InteractImage,
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
6 InteractAnimated, GenericDescThing)
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
7
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
8 from gamelib.scenes.game_widgets import Door
47
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
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
11 class Machine(Scene):
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
12
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
13 FOLDER = "machine"
260
020f83305bf3 Line art machine room.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 252
diff changeset
14 BACKGROUND = "machine_room.png"
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
15
592
4e9178215e75 Introduce .setup() for GameDeveloperGizmos.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 549
diff changeset
16 def setup(self):
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
17 self.add_thing(ToMap())
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
18 self.add_thing(LaserWelderSlot())
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
19 self.add_thing(LaserWelderButton())
281
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
20 self.add_thing(LaserWelderPowerLights())
194
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
21 self.add_thing(Grinder())
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
22 self.add_thing(ManualThing())
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 215
diff changeset
23 self.add_item(TitaniumMachete('machete'))
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
24 self.add_item(CryoPipesOne('cryo_pipes_one'))
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
25 self.add_item(CryoPipesTwo('cryo_pipes_two'))
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
26 self.add_item(CryoPipesThree('cryo_pipes_three'))
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
27 self.add_item(Manual('manual'))
297
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
28 self.add_thing(GenericDescThing('machine.wires', 2,
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
29 "Wires run to all the machines in the room",
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
30 (
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
31 (250, 172, 252, 12),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
32 (388, 183, 114, 13),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
33 (496, 112, 36, 64),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
34 (533, 85, 19, 45),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
35 (647, 114, 10, 308),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
36 (111, 96, 13, 285),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
37 (152, 106, 34, 30),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
38 (189, 136, 27, 28),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
39 (222, 157, 24, 25),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
40 (120, 86, 34, 29),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
41 (110, 80, 21, 15),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
42 (383, 196, 12, 56),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
43 (553, 61, 26, 50),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
44 (574, 39, 16, 48),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
45 (648, 85, 22, 26),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
46 (674, 54, 23, 36),
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
47 )))
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
48 self.add_thing(GenericDescThing('machine.diagram', 3,
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
49 "A wiring diagram of some sort",
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
50 ((694, 140, 94, 185),)))
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
51 self.add_thing(GenericDescThing('machine.powerpoint', 4,
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
52 "The cables to this power point have been cut",
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
53 ((155, 22, 92, 74),)))
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
54 self.add_thing(GenericDescThing("machine.powerpoint", 5,
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
55 "All the machines run off this powerpoint",
4adb64d349bc Add some flavour text to machine room. Tweak rects
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
56 ((593, 19, 74, 57),)))
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
57 self.add_thing(GenericDescThing("machine.drill_press", 6,
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
58 "An impressive looking laser drill press",
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
59 (
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
60 (519, 338, 36, 63),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
61 (545, 348, 93, 46),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
62 (599, 309, 41, 150),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
63 (588, 445, 66, 42),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
64 (616, 479, 41, 14),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
65 (527, 393, 15, 17),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
66 (510, 360, 13, 11),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
67 (532, 331, 14, 11),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
68 (605, 304, 26, 8),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
69 )))
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
70 self.add_thing(GenericDescThing("machine.drill_press_block", 7,
753
c910c8b51d55 No idea what that TODO thinks needs to be done, but we've done it.
Stefano Rivera <stefano@rivera.za.net>
parents: 750
diff changeset
71 "The block for the laser drill press",
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
72 ((461, 446, 38, 27),)))
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
73
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
74
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 239
diff changeset
75 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
76
252
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
77 SCENE = "machine"
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
78
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
79 INTERACTS = {
262
5f58da9eeb52 Replace text interacts with doors.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 260
diff changeset
80 "door": InteractNoImage(695, 350, 97, 212),
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
81 }
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
82
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
83 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
84
281
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
85
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
86 class LaserWelderSlot(Thing):
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
87
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
88 NAME = "machine.welder.slot"
190
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
89
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
90 INTERACTS = {
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
91 "empty": InteractImage(241, 310, "welder_empty.png"),
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
92 "can": InteractImage(241, 310, "welder_can.png"),
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
93 "tube": InteractImage(241, 310, "welder_pipe.png"),
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
94 "can_and_tube": InteractImage(241, 310, "welder_can_pipe.png"),
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
95 }
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
96
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
97 INITIAL = "empty"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
98
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
99 INITIAL_DATA = {
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
100 'contents': set(),
190
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
101 }
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
102
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
103 def select_interact(self):
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
104 contents = self.get_data('contents')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
105 if not contents:
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
106 return "empty"
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
107 elif len(contents) == 1:
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
108 if "can" in contents:
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
109 return "can"
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
110 elif "tube" in contents:
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
111 return "tube"
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
112 else:
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
113 return "can_and_tube"
190
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
114
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
115 def interact_without(self):
406
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 384
diff changeset
116 return Result("You really don't want to put your hand in there.")
190
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
117
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
118 def interact_with_empty_can(self, item):
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
119 contents = self.get_data('contents')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
120 if "can" in contents:
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
121 return Result("There is already a can in the welder.")
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
122 self.game.remove_inventory_item(item.name)
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
123 contents.add("can")
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
124 self.set_interact()
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
125 return Result("You carefully place the can in the laser welder.")
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
126
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
127 def interact_with_tube_fragment(self, item):
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
128 contents = self.get_data('contents')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
129 if "tube" in contents:
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
130 return Result("There is already a tube fragment in the welder.")
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
131 self.game.remove_inventory_item(item.name)
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
132 contents.add("tube")
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
133 self.set_interact()
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
134 return Result("You carefully place the tube fragments in the"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
135 " laser welder.")
190
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
136
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
137 def get_description(self):
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
138 contents = self.get_data('contents')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
139 if not contents:
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
140 return ("This is a Smith and Wesson 'zOMG' class high-precision"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
141 " laser welder.")
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
142 if len(contents) == 1:
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
143 msg = "The laser welder looks hungry, somehow."
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
144 if "can" in contents:
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
145 msg += " It currently contains an empty can."
731
2f74064bc779 Misc pep8 cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 603
diff changeset
146 elif "tube" in contents:
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
147 msg += " It currently contains a tube fragment."
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
148 elif len(contents) == 2:
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
149 msg = "The laser welder looks expectant. "
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
150 if "can" in contents and "tube" in contents:
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
151 msg += (" It currently contains an empty can and a"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
152 " tube fragment.")
190
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
153 return msg
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
154
30f2308c1efc Fix tests and add a (currently unhooked) laser welder.
Jeremy Thurgood <firxen@gmail.com>
parents: 151
diff changeset
155
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
156 class LaserWelderButton(Thing):
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
157
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
158 NAME = "machine.welder.button"
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
159
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
160 INTERACTS = {
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
161 "button": InteractNoImage(406, 389, 28, 31),
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
162 }
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
163
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
164 INITIAL = "button"
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
165
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
166 def interact_without(self):
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
167 welder_slot = self.scene.things["machine.welder.slot"]
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
168 contents = welder_slot.get_data("contents")
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
169 if not contents:
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
170 return Result("The laser welder doesn't currently contain"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
171 " anything weldable.")
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
172 elif len(contents) == 1:
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
173 if "can" in contents:
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
174 return Result("The laser welder needs something to weld the"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
175 " can to.")
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
176 elif "tube" in contents:
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
177 return Result("The laser welder needs something to weld the"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
178 " tube fragments to.")
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
179 else:
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
180 welder_slot.set_data("contents", set())
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 753
diff changeset
181 welder_slot.set_interact()
750
ef4bda7d623d Better state and inventory management.
Jeremy Thurgood <firxen@gmail.com>
parents: 731
diff changeset
182 if self.game.is_in_inventory("cryo_pipes_one"):
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
183 self.game.replace_inventory_item("cryo_pipes_one",
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
184 "cryo_pipes_two")
459
786773393e6f Tweak laser text
Neil Muller <neil@dip.sun.ac.za>
parents: 437
diff changeset
185 return Result("With high-precision spitzensparken, you weld"
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
186 " together a second pipe. You bundle the two"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
187 " pipes together.",
459
786773393e6f Tweak laser text
Neil Muller <neil@dip.sun.ac.za>
parents: 437
diff changeset
188 soundfile='laser.ogg')
750
ef4bda7d623d Better state and inventory management.
Jeremy Thurgood <firxen@gmail.com>
parents: 731
diff changeset
189 elif self.game.is_in_inventory("cryo_pipes_two"):
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
190 self.game.replace_inventory_item("cryo_pipes_two",
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
191 "cryo_pipes_three")
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
192 return Result("With high-precision spitzensparken, you create"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
193 " yet another pipe. You store it with the other"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
194 " two.",
459
786773393e6f Tweak laser text
Neil Muller <neil@dip.sun.ac.za>
parents: 437
diff changeset
195 soundfile='laser.ogg')
750
ef4bda7d623d Better state and inventory management.
Jeremy Thurgood <firxen@gmail.com>
parents: 731
diff changeset
196 elif self.game.is_in_inventory("cryo_pipes_three"):
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
197 # just for safety
459
786773393e6f Tweak laser text
Neil Muller <neil@dip.sun.ac.za>
parents: 437
diff changeset
198 return None
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
199 else:
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
200 self.game.add_inventory_item("cryo_pipes_one")
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
201 return Result("With high-precision spitzensparken, the can and"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
202 " tube are welded into a whole greater than the"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
203 " sum of the parts.",
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
204 soundfile='laser.ogg')
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
205
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
206
281
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
207 class LaserWelderPowerLights(Thing):
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
208
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
209 NAME = "machine.welder.lights"
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
210
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
211 INTERACTS = {
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
212 "lights": InteractAnimated(199, 273, ["power_lights_%d.png" % i for i
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
213 in range(8) + range(6, 0, -1)],
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
214 10),
281
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
215 }
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
216
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
217 INITIAL = 'lights'
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
218
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
219 def get_description(self):
372
3aee5895c2c6 remove random out of 1 choice
Neil Muller <neil@dip.sun.ac.za>
parents: 333
diff changeset
220 return "The power lights pulse expectantly."
281
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
221
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
222
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
223 class CryoPipesOne(Item):
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
224 "A single cryo pipe (made from a tube fragment and can)."
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
225
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
226 INVENTORY_IMAGE = "cryo_pipes_one.png"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
227 CURSOR = CursorSprite('cryo_pipes_one_cursor.png')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
228 TOOL_NAME = "cryo_pipes_one"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
229
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
230
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
231 class CryoPipesTwo(Item):
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
232 "Two cryo pipes (each made from a tube fragment and can)."
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 219
diff changeset
233
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
234 INVENTORY_IMAGE = "cryo_pipes_two.png"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
235 CURSOR = CursorSprite('cryo_pipes_two_cursor.png')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
236 TOOL_NAME = "cryo_pipes_two"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
237
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
238
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
239 class CryoPipesThree(Item):
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
240 "Three cryo pipes (each made from a tube fragment and can)."
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
241
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
242 INVENTORY_IMAGE = "cryo_pipes_three.png"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
243 CURSOR = CursorSprite('cryo_pipes_three_cursor.png')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 317
diff changeset
244 TOOL_NAME = "cryo_pipes_three"
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 219
diff changeset
245
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 219
diff changeset
246
194
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
247 class Grinder(Thing):
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
248
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
249 NAME = "machine.grinder"
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
250
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
251 INTERACTS = {
281
eb3cfcaff469 Too long since last commit. Felt like showing off some machine room progress.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 263
diff changeset
252 "grind": InteractNoImage(86, 402, 94, 63),
194
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
253 }
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
254
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
255 INITIAL = "grind"
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
256
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
257 def interact_without(self):
539
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
258 return Result("It looks like it eats fingers. Perhaps a different"
11530992924a PEP8 clean-up for engine, machine and mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 528
diff changeset
259 " approach is in order?")
194
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
260
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
261 def interact_with_titanium_leg(self, item):
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
262 self.game.replace_inventory_item(item.name, 'machete')
194
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
263 return Result("After much delicate grinding and a few close calls with"
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
264 " various body parts, the titanium femur now resembles"
206
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 194
diff changeset
265 " a machete more than a bone. Nice and sharp, too.",
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 194
diff changeset
266 soundfile="grinder.ogg")
194
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
267
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
268 def get_description(self):
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
269 return "A pretty ordinary, albeit rather industrial, grinding machine."
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
270
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
271
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
272 class TitaniumMachete(Item):
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
273 "Titanium machete, formerly a leg."
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
274
307
5031b84fbb4c Hook up new machete, can_opener, and titanium_femur images
Stefano Rivera <stefano@rivera.za.net>
parents: 306
diff changeset
275 INVENTORY_IMAGE = "machete.png"
5031b84fbb4c Hook up new machete, can_opener, and titanium_femur images
Stefano Rivera <stefano@rivera.za.net>
parents: 306
diff changeset
276 CURSOR = CursorSprite('machete_cursor.png', 23, 1)
194
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
277
9887c68110d8 Sharp things.
Jeremy Thurgood <firxen@gmail.com>
parents: 193
diff changeset
278
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
279 class ManualThing(Thing):
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
280
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
281 NAME = "machine.manual"
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
282
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
283 INTERACTS = {
333
81f5fb9f50e4 Hook up manual.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 329
diff changeset
284 "manual": InteractImage(432, 493, "manual_on_floor.png"),
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
285 }
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
286
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
287 INITIAL = "manual"
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
288
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
289 def interact_without(self):
333
81f5fb9f50e4 Hook up manual.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 329
diff changeset
290 self.scene.remove_thing(self)
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
291 self.game.add_inventory_item("manual")
333
81f5fb9f50e4 Hook up manual.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 329
diff changeset
292 return Result("Ah! The ship's instruction manual. You'd feel better"
81f5fb9f50e4 Hook up manual.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 329
diff changeset
293 " if the previous owner wasn't lying next to it with a"
81f5fb9f50e4 Hook up manual.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 329
diff changeset
294 " gaping hole in his rib cage.")
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
295
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
296
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
297 class Manual(Item):
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
298 "A ship instruction manual."
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
299
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
300 INVENTORY_IMAGE = "manual.png"
384
56a05ae56574 Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents: 372
diff changeset
301 CURSOR = None
56a05ae56574 Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents: 372
diff changeset
302
519
8f3c82c685a4 Fix is_interactive() by adding tool param.
Jeremy Thurgood <firxen@gmail.com>
parents: 513
diff changeset
303 def is_interactive(self, tool=None):
513
0e8487038834 fixed crash caused by the manual item's special snowflakeness
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 512
diff changeset
304 return True
0e8487038834 fixed crash caused by the manual item's special snowflakeness
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 512
diff changeset
305
512
b10dae40dc32 Fix items.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
306 def interact_without(self):
384
56a05ae56574 Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents: 372
diff changeset
307 return Result(detail_view='manual_detail')
317
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
308
3d1a5c0c362a Split laser welder slot and on button. Add manual thing. Add descriptions for drill press and block.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 307
diff changeset
309
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
310 SCENES = [Machine]