annotate gamelib/scenes/mess.py @ 525:821b322e903b

Separate "scene widgets" from "game-specific widgets".
author Jeremy Thurgood <firxen@gmail.com>
date Wed, 08 Sep 2010 14:02:11 +0200
parents 8f3c82c685a4
children 0ce08d5e2acb
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 """Mess where crew eat. Fun stuff."""
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
2
419
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
3 from random import choice, randint
175
3d3efc5648cc Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents: 170
diff changeset
4
263
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
5 from gamelib.state import Scene, Item, CloneableItem, Thing, Result
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
6 from gamelib.cursor import CursorSprite
419
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
7 from gamelib.sound import get_sound
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
8 from gamelib import constants
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
9 from gamelib.scenewidgets import (InteractText, InteractNoImage,
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
10 InteractRectUnion, InteractImage,
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
11 InteractImageRect, InteractAnimated,
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
12 GenericDescThing)
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
13
435
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
14 from gamelib.scenes.game_constants import PLAYER_ID
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
15 from gamelib.scenes.game_widgets import Door
419
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
16
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 class Mess(Scene):
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
19
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
20 FOLDER = "mess"
140
95d882eeba12 Link up mess hall background.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
21 BACKGROUND = "mess_hall.png"
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
22
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
23 INITIAL_DATA = {
409
72baf5bfebc6 Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents: 392
diff changeset
24 'life support status': 'broken', # broken, replaced, fixed
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
25 }
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
26
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
27 def __init__(self, state):
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
28 super(Mess, self).__init__(state)
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
29 self.add_thing(CansOnShelf())
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
30 self.add_thing(Tubes())
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
31 self.add_thing(ToMap())
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
32 self.add_thing(DetergentThing())
419
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
33 self.add_thing(Boomslang())
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
34 self.add_item(DetergentBottle('detergent_bottle'))
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
35 # Flavour items
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
36 # extra cans on shelf
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
37 self.add_thing(GenericDescThing('mess.cans', 1,
295
4a9f29bae9b0 more full stops
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 294
diff changeset
38 "A large collection of rusted, useless cans.",
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
39 (
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
40 (154, 335, 89, 106),
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
41 (152, 435, 63, 66),
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
42 )))
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
43 self.add_thing(GenericDescThing('mess.broccoli', 2,
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
44 "An impressively overgrown broccoli.",
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
45 (
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
46 (503, 89, 245, 282),
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
47 (320, 324, 229, 142),
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
48 )))
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
49
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
50
221
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
51 class BaseCan(CloneableItem):
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
52 """Base class for the cans"""
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
53
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
54 def interact_with_full_can(self, item):
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 223
diff changeset
55 return Result("You bang the cans together. It sounds like two cans being banged together.", soundfile="can_hit.ogg")
206
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
56
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
57 def interact_with_dented_can(self, item):
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
58 return self.interact_with_full_can(item)
206
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
59
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
60 def interact_with_empty_can(self, item):
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
61 return self.interact_with_full_can(item)
206
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
62
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
63 def interact_with_machete(self, item):
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 223
diff changeset
64 return Result("You'd mangle it beyond usefulness.")
191
278774b31d3c CloneableItems.
Jeremy Thurgood <firxen@gmail.com>
parents: 175
diff changeset
65
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
66 def interact_with_canopener(self, item):
306
bd9a760eeb18 Hook up canopener. Fix for replace_inventory changes
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
67 empty = EmptyCan('empty_can')
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
68 self.state.add_item(empty)
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
69 self.state.replace_inventory_item(self.name, empty.name)
306
bd9a760eeb18 Hook up canopener. Fix for replace_inventory changes
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
70 return Result("You open both ends of the can, discarding the hideous contents.")
bd9a760eeb18 Hook up canopener. Fix for replace_inventory changes
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
71
221
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
72
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
73 class EmptyCan(BaseCan):
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
74 "After emptying the full can."
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
75
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
76 INVENTORY_IMAGE = "empty_can.png"
302
6d93e04036c9 CursorSprite: Default pointer-position to the centre of the cursor
Stefano Rivera <stefano@rivera.za.net>
parents: 299
diff changeset
77 CURSOR = CursorSprite('empty_can_cursor.png')
221
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
78
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
79 def interact_with_titanium_leg(self, item):
295
4a9f29bae9b0 more full stops
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 294
diff changeset
80 return Result("Flattening the can doesn't look like a useful thing to do.")
221
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
81
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
82 def interact_with_canopener(self, item):
306
bd9a760eeb18 Hook up canopener. Fix for replace_inventory changes
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
83 return Result("There's nothing left to open on this can")
bd9a760eeb18 Hook up canopener. Fix for replace_inventory changes
Neil Muller <neil@dip.sun.ac.za>
parents: 302
diff changeset
84
221
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
85
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
86 class FullCan(BaseCan):
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
87 "Found on the shelf."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
88
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
89 INVENTORY_IMAGE = "full_can.png"
302
6d93e04036c9 CursorSprite: Default pointer-position to the centre of the cursor
Stefano Rivera <stefano@rivera.za.net>
parents: 299
diff changeset
90 CURSOR = CursorSprite('full_can_cursor.png')
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
91
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
92 def interact_with_titanium_leg(self, item):
170
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
93 dented = DentedCan("dented_can")
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
94 self.state.add_item(dented)
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
95 self.state.replace_inventory_item(self.name, dented.name)
206
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
96 return Result("You club the can with the femur. The can gets dented, but doesn't open.", soundfile="can_hit.ogg")
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
97
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
98
221
bcb7b2093118 Tweak cans
Neil Muller <neil@dip.sun.ac.za>
parents: 219
diff changeset
99 class DentedCan(BaseCan):
167
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
100 "A can banged on with the femur"
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
101
170
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
102 INVENTORY_IMAGE = "dented_can.png"
302
6d93e04036c9 CursorSprite: Default pointer-position to the centre of the cursor
Stefano Rivera <stefano@rivera.za.net>
parents: 299
diff changeset
103 CURSOR = CursorSprite('dented_can_cursor.png')
170
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
104
491
9f488671c02e No more state in Item interacts.
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
105 def interact_with_titanium_leg(self, item):
206
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
106 return Result("You club the can with the femur. The dents shift around, but it still doesn't open.", soundfile="can_hit.ogg")
6a52752f4920 some more interacations. Add sound to grinder
Neil Muller <neil@dip.sun.ac.za>
parents: 192
diff changeset
107
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
108
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
109 class CansOnShelf(Thing):
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
110
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
111 NAME = "mess.cans"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
112
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
113 INTERACTS = {
223
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
114 '3cans': InteractImage(165, 209, 'shelf_3_cans.png'),
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
115 '2cans': InteractImage(165, 209, 'shelf_2_cans.png'),
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
116 '1cans': InteractImage(165, 209, 'shelf_1_can.png'),
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
117 '0cans': InteractNoImage(165, 209, 50, 50),
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
118 }
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
119
223
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
120 INITIAL = '3cans'
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
121
146
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
122 INITIAL_DATA = {
223
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
123 'cans_available': 3,
146
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
124 }
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
125
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
126 def interact_without(self):
223
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
127 starting_cans = self.get_data('cans_available')
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
128 if starting_cans > 0:
192
b1f4262139e7 Only vend three cans.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
129 can = FullCan("full_can")
b1f4262139e7 Only vend three cans.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
130 self.state.add_item(can)
b1f4262139e7 Only vend three cans.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
131 self.state.add_inventory_item(can.name)
223
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
132 self.set_data('cans_available', starting_cans - 1)
10d3265f0bfa Decreasing cans on shelf
Stefano Rivera <stefano@rivera.za.net>
parents: 221
diff changeset
133 self.set_interact('%icans' % (starting_cans - 1))
299
c3ff6ff879e6 Make the can Thing go away when it's empty.
Jeremy Thurgood <firxen@gmail.com>
parents: 296
diff changeset
134 if starting_cans == 1:
c3ff6ff879e6 Make the can Thing go away when it's empty.
Jeremy Thurgood <firxen@gmail.com>
parents: 296
diff changeset
135 self.scene.remove_thing(self)
192
b1f4262139e7 Only vend three cans.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
136 return Result({
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 223
diff changeset
137 3: "Best before a long time in the past. Better not eat these.",
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 223
diff changeset
138 2: "Mmmm. Nutritious bacteria stew.",
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 223
diff changeset
139 1: "Candied silkworms. Who stocked this place?!",
192
b1f4262139e7 Only vend three cans.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
140 }[starting_cans])
175
3d3efc5648cc Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents: 170
diff changeset
141 else:
192
b1f4262139e7 Only vend three cans.
Jeremy Thurgood <firxen@gmail.com>
parents: 191
diff changeset
142 return Result("The rest of the cans are rusted beyond usefulness.")
146
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
143
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
144 def get_description(self):
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 223
diff changeset
145 return "The contents of these cans look synthetic."
146
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
146
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
147
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
148 class Tubes(Thing):
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
149
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
150 NAME = "mess.tubes"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
151
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
152 INTERACTS = {
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
153 "blocked": InteractImage(250, 130, "blocking_broccoli.png"),
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
154 "broken": InteractImage(250, 183, "broken_tubes.png"),
416
1470a69d91ee Vague art for pipes + taped pipes
Neil Muller <neil@dip.sun.ac.za>
parents: 409
diff changeset
155 "replaced": InteractImage(250, 183, "replaced_tubes.png"),
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
156 "fixed": InteractImage(252, 183, "fixed_tubes.png"),
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
157 }
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
158
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
159 INITIAL = "blocked"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
160
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
161 INITIAL_DATA = {
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
162 "status": "blocked",
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
163 }
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
164
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
165 def get_description(self):
230
ec2682b373e7 Add chopping sound. Tweak mess descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 228
diff changeset
166 if self.get_data('status') == "blocked":
295
4a9f29bae9b0 more full stops
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 294
diff changeset
167 return "The broccoli seems to have become entangled with something."
230
ec2682b373e7 Add chopping sound. Tweak mess descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 228
diff changeset
168 elif self.get_data("status") == "broken":
ec2682b373e7 Add chopping sound. Tweak mess descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 228
diff changeset
169 return "These broken pipes look important."
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
170 elif self.get_data("status") == "replaced":
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
171 return "The pipes have been repaired but are the repairs aren't airtight, yet"
230
ec2682b373e7 Add chopping sound. Tweak mess descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 228
diff changeset
172 else:
ec2682b373e7 Add chopping sound. Tweak mess descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 228
diff changeset
173 return "Your fix looks like it's holding up well."
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 226
diff changeset
174
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
175 def interact_with_machete(self, item):
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
176 if self.get_data("status") == "blocked":
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
177 self.set_data("status", "broken")
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
178 self.set_interact("broken")
264
3cedc4f95925 Ran pyflakes and fixed some minor things.
Jeremy Thurgood <firxen@gmail.com>
parents: 263
diff changeset
179 return Result("With a flurry of disgusting mutant vegetable "
3cedc4f95925 Ran pyflakes and fixed some minor things.
Jeremy Thurgood <firxen@gmail.com>
parents: 263
diff changeset
180 "chunks, you clear the overgrown broccoli away from "
3cedc4f95925 Ran pyflakes and fixed some minor things.
Jeremy Thurgood <firxen@gmail.com>
parents: 263
diff changeset
181 "the access panel and reveal some broken tubes. "
3cedc4f95925 Ran pyflakes and fixed some minor things.
Jeremy Thurgood <firxen@gmail.com>
parents: 263
diff changeset
182 "They look important.",
230
ec2682b373e7 Add chopping sound. Tweak mess descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 228
diff changeset
183 soundfile='chopping.ogg')
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
184 elif self.get_data("status") == "broken":
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
185 return Result("It looks broken enough already.")
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
186 elif self.get_data("status") == "replaced":
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
187 return Result("Cutting holes won't repair the leaks.")
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
188 else:
264
3cedc4f95925 Ran pyflakes and fixed some minor things.
Jeremy Thurgood <firxen@gmail.com>
parents: 263
diff changeset
189 return Result("After all that effort fixing it, chopping it to "
3cedc4f95925 Ran pyflakes and fixed some minor things.
Jeremy Thurgood <firxen@gmail.com>
parents: 263
diff changeset
190 "bits doesn't seem very smart.")
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
191
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
192 def interact_with_cryo_pipes_three(self, item):
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
193 if self.get_data("status") == "blocked":
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
194 return Result("It would get lost in the fronds.")
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
195 else:
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
196 self.state.remove_inventory_item(item.name)
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
197 self.set_data('status', 'replaced')
409
72baf5bfebc6 Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents: 392
diff changeset
198 self.set_interact("replaced")
72baf5bfebc6 Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents: 392
diff changeset
199 self.scene.set_data('life support status', 'replaced')
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
200 return Result(
416
1470a69d91ee Vague art for pipes + taped pipes
Neil Muller <neil@dip.sun.ac.za>
parents: 409
diff changeset
201 "The pipes slot neatly into place, but don't make an airtight seal. "
435
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
202 "One of the pipes has cracked slightly as well."
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
203 )
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
204
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
205 def interact_with_duct_tape(self, item):
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
206 if self.get_data("status") == "broken":
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
207 return Result("It would get lost in the fronds.")
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
208 elif self.get_data("status") == 'fixed':
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
209 return Result("There's quite enough tape on the ducting already.")
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
210 else:
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
211 self.set_data("fixed", True)
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
212 self.set_data("status", "fixed")
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
213 self.set_interact("fixed")
409
72baf5bfebc6 Support for partial fixed state (pending artwork)
Neil Muller <neil@dip.sun.ac.za>
parents: 392
diff changeset
214 self.scene.set_data('life support status', 'fixed')
226
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
215 # TODO: A less anticlimactic climax?
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
216 return Result("It takes quite a lot of tape, but eventually everything is"
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
217 " airtight and ready to hold pressure. Who'd've thought duct"
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
218 " tape could actually be used to tape ducts?")
a5325919342e Tubes, pipes and ducts.
Jeremy Thurgood <firxen@gmail.com>
parents: 224
diff changeset
219
435
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
220 def interact_without(self):
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
221 if self.get_data("status") == "blocked":
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
222 return Result("The mutant broccoli resists your best efforts.")
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
223 elif self.get_data("status") == "broken":
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
224 return Result("Shoving the broken pipes around doesn't help much.")
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
225 elif self.get_data("status") == "replaced":
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
226 return Result("Do you really want to hold it together for the "
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
227 "rest of the voyage?")
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
228 else:
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
229 return Result("You don't find any leaks. Good job, Prisoner %s." % PLAYER_ID)
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
230
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 322
diff changeset
231
419
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
232 class Boomslang(Thing):
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
233 NAME = 'mess.boomslang'
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
234
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
235 INTERACTS = {
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
236 'snake': InteractAnimated(455, 241, (
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
237 'boomslang_no_tongue.png', 'boomslang_with_tongue.png',
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
238 'boomslang_no_tongue.png', 'boomslang_with_tongue.png',
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
239 'boomslang_no_tongue.png',
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
240 ), 5),
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
241 'no_snake': InteractNoImage(0, 0, 0, 0),
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
242 }
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
243
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
244 INITIAL = 'no_snake'
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
245
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
246 INITIAL_DATA = {
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
247 'anim_pos': -1,
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
248 }
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
249
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
250 HISS = get_sound('boomslang.ogg')
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
251
519
8f3c82c685a4 Fix is_interactive() by adding tool param.
Jeremy Thurgood <firxen@gmail.com>
parents: 491
diff changeset
252 def is_interactive(self, tool=None):
419
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
253 return False
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
254
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
255 def animate(self):
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
256 if self.get_data('anim_pos') > -1:
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
257 self.current_interact.animate()
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
258 if self.get_data('anim_pos') > self.current_interact._anim_pos:
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
259 self.set_interact('no_snake')
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
260 self.set_data('anim_pos', -1)
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
261 else:
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
262 self.set_data('anim_pos', self.current_interact._anim_pos)
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
263 return True
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
264 if randint(0, 30 * constants.FRAME_RATE) == 0:
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
265 self.set_interact('snake')
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
266 self.set_data('anim_pos', 0)
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
267 self.HISS.play()
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
268 return False
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
269
add81f2b747e Boomslang!
Jeremy Thurgood <firxen@gmail.com>
parents: 416
diff changeset
270
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
271 class DetergentThing(Thing):
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
272
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
273 NAME = "mess.detergent"
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
274
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
275 INTERACTS = {
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
276 'present': InteractImageRect(581, 424, 'detergent_lid.png', 565, 399, 62, 95),
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
277 'taken': InteractNoImage(565, 399, 62, 95),
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
278 }
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
279
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
280 INITIAL = 'present'
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
281
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
282 INITIAL_DATA = {
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
283 'taken': False,
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
284 }
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
285
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
286 def interact_without(self):
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
287 if self.get_data('taken'):
435
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
288 return Result("The remaining bottles leak.")
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
289 self.set_data('taken', True)
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
290 self.set_interact('taken')
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
291 self.state.add_inventory_item('detergent_bottle')
435
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 419
diff changeset
292 return Result("You pick up an empty dishwashing liquid bottle. You can't find any sponges.")
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
293
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
294 def get_description(self):
322
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 306
diff changeset
295 return "Empty plastic containers. They used to hold dishwasher soap."
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
296
363
2cadb47405a4 Use bottle image. The boomslang is now triangle-free
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
297
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
298 class DetergentBottle(Item):
363
2cadb47405a4 Use bottle image. The boomslang is now triangle-free
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
299 INVENTORY_IMAGE = 'bottle_empty.png'
2cadb47405a4 Use bottle image. The boomslang is now triangle-free
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
300 CURSOR = CursorSprite('bottle_empty_cursor.png', 27, 7)
296
86e3d5dd7fa6 Added detergent bottle Item and InteractImageRect class
Stefano Rivera <stefano@rivera.za.net>
parents: 295
diff changeset
301
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
302
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 230
diff changeset
303 class ToMap(Door):
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
304
252
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
305 SCENE = "mess"
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
306
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
307 INTERACTS = {
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
308 "door": InteractNoImage(20, 390, 85, 150),
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
309 }
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
310
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
311 INITIAL = "door"
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
312
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
313
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
314 SCENES = [Mess]