annotate gamelib/scenes/crew_quarters.py @ 528:0ce08d5e2acb

pyflakes-induced cleanup.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 10 Sep 2010 18:47:17 +0200
parents 821b322e903b
children 87368ceebb5d 2f1952748cdb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
1 """Crew quarters."""
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
2
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
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: 252
diff changeset
4 from gamelib.state import Scene, Item, Thing, Result
528
0ce08d5e2acb pyflakes-induced cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 525
diff changeset
5 from gamelib.scenewidgets import (InteractNoImage, InteractImage,
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 491
diff changeset
6 InteractAnimated, GenericDescThing)
359
6b94f549443b JIM comments on safe opening, if able
Neil Muller <neil@dip.sun.ac.za>
parents: 355
diff changeset
7
6b94f549443b JIM comments on safe opening, if able
Neil Muller <neil@dip.sun.ac.za>
parents: 355
diff changeset
8 from gamelib.scenes.game_constants import PLAYER_ID
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 491
diff changeset
9 from gamelib.scenes.game_widgets import Door, BaseCamera, make_jim_dialog
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
10
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
11 class CrewQuarters(Scene):
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
12
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
13 FOLDER = "crew_quarters"
275
d78ce15bccc8 Crew quarters background and toolbar on the rect tool.
Jeremy Thurgood <firxen@gmail.com>
parents: 263
diff changeset
14 BACKGROUND = "crew_quarters.png"
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
15
283
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
16 OFFSET = (0, -50)
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
17
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
18 def __init__(self, state):
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
19 super(CrewQuarters, self).__init__(state)
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 241
diff changeset
20 self.add_thing(ToMap())
287
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
21 self.add_thing(Safe())
283
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
22 self.add_thing(FishbowlThing())
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
23 self.add_item(Fishbowl('fishbowl'))
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
24 self.add_item(DuctTape('duct_tape'))
350
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
25 self.add_item(EscherPoster('escher_poster'))
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
26 self.add_thing(PosterThing())
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
27 self.add_thing(MonitorCamera())
287
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
28 self.add_thing(GenericDescThing('crew.plant', 1,
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
29 "The plant is doing surprisingly well for centuries of neglect",
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
30 ((624, 215, 61, 108),)))
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
31 self.add_thing(GenericDescThing('crew.cat', 2,
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
32 "A picture of a cat labelled 'Clementine'",
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
33 ((722, 382, 66, 72),)))
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
34
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
35
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 241
diff changeset
36 class ToMap(Door):
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
37
355
bfb6c682b4fb Updated walkthrough test as far as completed environmental puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 350
diff changeset
38 SCENE = "crew_quarters"
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
39
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
40 INTERACTS = {
287
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
41 "door": InteractNoImage(233, 252, 125, 181),
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
42 }
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
43
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
44 INITIAL = "door"
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
45
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
46
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
47 class Safe(Thing):
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
48 "A safe, for keeping things safe."
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
49
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
50 NAME = 'crew.safe'
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
51
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
52 INTERACTS = {
287
2a11709cb427 Hook up a few things in the crew quarters
Neil Muller <neil@dip.sun.ac.za>
parents: 283
diff changeset
53 'safe': InteractNoImage(447, 238, 72, 73),
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
54 'full_safe': InteractImage(445, 227, 'open_safe_full.png'),
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
55 'empty_safe': InteractImage(445, 227, 'open_safe_empty.png'),
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
56 }
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
57
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
58 INITIAL = 'safe'
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
59
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
60 INITIAL_DATA = {
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
61 'is_cracked': False,
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
62 'has_tape': True,
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
63 }
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
64
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
65 def interact_without(self):
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
66 if self.get_data('is_cracked'):
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
67 if self.get_data('has_tape'):
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
68 self.set_data('has_tape', False)
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
69 self.state.add_inventory_item('duct_tape')
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
70 self.set_interact('empty_safe')
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
71 return Result("Duct tape. It'll stick to everything except "
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
72 "ducts, apparently.")
368
a95bfba3acd5 speling
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 362
diff changeset
73 return Result("The perfectly balanced door swings frictionlessly "
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
74 "to and fro. What craftsmanship!")
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
75 return Result("The safe is locked. This might be an interesting "
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
76 "challenge, if suitable equipment can be found.")
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
77
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
78 def interact_with_stethoscope(self, item):
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
79 if self.get_data('is_cracked'):
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
80 return Result("It's already unlocked. There's no more challenge.")
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
81 # TODO: Add years to the sentence for safecracking.
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
82 # TODO: Wax lyrical some more about safecracking.
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
83 self.set_data('is_cracked', True)
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
84 self.set_interact('full_safe')
362
4e939b3c73f8 Allow Nones in list of results
Neil Muller <neil@dip.sun.ac.za>
parents: 360
diff changeset
85 return (Result("Even after centuries of neglect, the tumblers slide"
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
86 " almost silently into place. Turns out the combination"
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
87 " was '1 2 3 4 5'. An idiot must keep his luggage in"
362
4e939b3c73f8 Allow Nones in list of results
Neil Muller <neil@dip.sun.ac.za>
parents: 360
diff changeset
88 " here."),
425
7907cd46c206 Spleling
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 368
diff changeset
89 make_jim_dialog("Prisoner %s, you have been observed committing a felony violation. "
368
a95bfba3acd5 speling
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 362
diff changeset
90 "This will go onto your permanent record, and your sentence may be extended by up to twenty years."
362
4e939b3c73f8 Allow Nones in list of results
Neil Muller <neil@dip.sun.ac.za>
parents: 360
diff changeset
91 % PLAYER_ID, self.state))
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
92
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
93 def get_description(self):
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
94 return "Ah, a vintage Knoxx & Co. model QR3. Quaint, but reasonably secure."
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
95
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
96
283
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
97 class FishbowlThing(Thing):
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
98 "A safe, for keeping things safe."
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
99
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
100 NAME = 'crew.fishbowl'
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
101
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
102 INTERACTS = {
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
103 'fishbowl': InteractImage(356, 495, 'fishbowl_on_table.png'),
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
104 'fish_no_bowl': InteractImage(372, 517, 'fish_minus_bowl.png'),
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
105 }
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
106
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
107 INITIAL = 'fishbowl'
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
108
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
109 INITIAL_DATA = {
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
110 'has_bowl': True,
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
111 }
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
112
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
113 def interact_without(self):
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
114 if not self.get_data('has_bowl'):
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
115 return Result("What's the point of lugging around a very dead fish "
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
116 "and a kilogram or so of sand?")
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
117 self.set_interact('fish_no_bowl')
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
118 self.set_data('has_bowl', False)
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
119 self.state.add_inventory_item('fishbowl')
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
120 return Result("The fishbowl is useful, but its contents aren't.")
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
121
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
122 def get_description(self):
485
5bd6bd3d42fa Tweak description when fishbowl is taken
Neil Muller <neil@dip.sun.ac.za>
parents: 466
diff changeset
123 if self.get_data('has_bowl'):
5bd6bd3d42fa Tweak description when fishbowl is taken
Neil Muller <neil@dip.sun.ac.za>
parents: 466
diff changeset
124 return "This fishbowl looks exactly like an old science fiction space helmet."
5bd6bd3d42fa Tweak description when fishbowl is taken
Neil Muller <neil@dip.sun.ac.za>
parents: 466
diff changeset
125 else:
5bd6bd3d42fa Tweak description when fishbowl is taken
Neil Muller <neil@dip.sun.ac.za>
parents: 466
diff changeset
126 return "An evicted dead fish and some sand lie forlornly on the table"
283
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
127
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
128 class Fishbowl(Item):
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
129 "A bowl. Sans fish."
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
130
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
131 INVENTORY_IMAGE = 'fishbowl.png'
302
6d93e04036c9 CursorSprite: Default pointer-position to the centre of the cursor
Stefano Rivera <stefano@rivera.za.net>
parents: 288
diff changeset
132 CURSOR = CursorSprite('fishbowl.png')
342
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
133 NAME = "fishbowl"
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
134
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 485
diff changeset
135 def interact_with_duct_tape(self, item):
342
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
136 helmet = FishbowlHelmet('helmet')
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 485
diff changeset
137 self.state.add_item(helmet)
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 485
diff changeset
138 self.state.replace_inventory_item(self.name, helmet.name)
342
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
139 return Result("You duct tape the edges of the helmet. The seal is"
368
a95bfba3acd5 speling
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 362
diff changeset
140 " crude, but it will serve as a workable helmet if needed.")
342
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
141
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
142
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
143 class FishbowlHelmet(Item):
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
144 "A bowl with duct-tape"
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
145
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
146 INVENTORY_IMAGE = "fishbowl_helmet.png"
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
147 CURSOR = CursorSprite('fishbowl_helmet.png')
e1cae2b61443 Add duct_tape + fishbowl = helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
148 NAME = "helmet"
283
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
149
3ac2e025478f Fishbowl and laser lights that don't make the universe go away.
Jeremy Thurgood <firxen@gmail.com>
parents: 275
diff changeset
150
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
151 class DuctTape(Item):
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
152 "A bowl. Sans fish."
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
153
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
154 INVENTORY_IMAGE = 'duct_tape.png'
302
6d93e04036c9 CursorSprite: Default pointer-position to the centre of the cursor
Stefano Rivera <stefano@rivera.za.net>
parents: 288
diff changeset
155 CURSOR = CursorSprite('duct_tape.png')
288
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
156
13b6fbfb39aa Plotting in the crew quarters.
Jeremy Thurgood <firxen@gmail.com>
parents: 287
diff changeset
157
350
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
158 class MonitorCamera(BaseCamera):
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
159 "A Camera pointing to JIM"
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
160
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
161 NAME = 'crew.camera'
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
162
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
163 INTERACTS = {
464
54853e61b149 Blinken cameras
Stefano Rivera <stefano@rivera.za.net>
parents: 425
diff changeset
164 'online' : InteractImage(85, 97, 'camera_medium.png'),
54853e61b149 Blinken cameras
Stefano Rivera <stefano@rivera.za.net>
parents: 425
diff changeset
165 'dead': InteractImage(85, 97, 'camera_medium_gray.png'),
54853e61b149 Blinken cameras
Stefano Rivera <stefano@rivera.za.net>
parents: 425
diff changeset
166 'looping': InteractAnimated(85, 97, ('camera_medium.png',
54853e61b149 Blinken cameras
Stefano Rivera <stefano@rivera.za.net>
parents: 425
diff changeset
167 'camera_medium_gray.png'),
54853e61b149 Blinken cameras
Stefano Rivera <stefano@rivera.za.net>
parents: 425
diff changeset
168 15),
54853e61b149 Blinken cameras
Stefano Rivera <stefano@rivera.za.net>
parents: 425
diff changeset
169 }
350
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
170
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
171
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
172 class PosterThing(Thing):
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
173 "A innocent poster on the wall"
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
174
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
175 NAME = 'crew.poster'
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
176
350
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
177 INTERACTS = {
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
178 'poster': InteractImage(29, 166, 'triangle_poster.png'),
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
179 }
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
180
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
181 INITIAL = 'poster'
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
182
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
183 def interact_without(self):
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
184 self.state.add_inventory_item('escher_poster')
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
185 self.scene.remove_thing(self)
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
186 return Result("This poster will go nicely on your bedroom wall.")
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
187
350
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
188 def get_description(self):
368
a95bfba3acd5 speling
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 362
diff changeset
189 return "A paradoxical poster hangs below the security camera."
350
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
190
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
191
350
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
192 class EscherPoster(Item):
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
193 "A confusing poster to disable JIM"
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
194
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
195 INVENTORY_IMAGE = "triangle_poster.png"
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
196 CURSOR = CursorSprite('triangle_poster.png')
125cb389ab90 Hook up poster. Add cameras to crew_quarters and bridge
Neil Muller <neil@dip.sun.ac.za>
parents: 342
diff changeset
197 NAME = "escher_poster"
233
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
198
7399b52f196f Add a partial crew quarters (eighths?) implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
199
241
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 233
diff changeset
200 SCENES = [CrewQuarters]