annotate gamelib/scenes/mess.py @ 170:179913efac85

Add dented can image to item
author Neil Muller <neil@dip.sun.ac.za>
date Wed, 25 Aug 2010 12:41:02 +0200
parents de249f7867fc
children 3d3efc5648cc
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
146
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
3 from gamelib.state import Scene, Item, Thing, InteractImage, InteractNoImage, Result
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
4 from gamelib.cursor import CursorSprite
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
5
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
6
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
7 class Mess(Scene):
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
8
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
9 FOLDER = "mess"
140
95d882eeba12 Link up mess hall background.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 55
diff changeset
10 BACKGROUND = "mess_hall.png"
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
11
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
12 INITIAL_DATA = {
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
13 'accessible': True,
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
14 }
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
15
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
16 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
17 super(Mess, self).__init__(state)
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
18 self.add_item(EmptyCan("empty_can"))
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
19 self.add_item(FullCan("full_can"))
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
20 self.add_item(TubeFragments("tube_fragments"))
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
21 self.add_item(ReplacementTubes("replacement_tubes"))
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
22 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
23 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
24 self.add_thing(ToMap())
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
25
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
26
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
27 class EmptyCan(Item):
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
28 "After emptying the full can."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
29
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
30 INVENTORY_IMAGE = "empty_can.png"
168
de249f7867fc Set cursor points
Stefano Rivera <stefano@rivera.za.net>
parents: 167
diff changeset
31 CURSOR = CursorSprite('empty_can_cursor.png', 20, 30)
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
32
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
33 class FullCan(Item):
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
34 "Found on the shelf."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
35
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
36 INVENTORY_IMAGE = "full_can.png"
168
de249f7867fc Set cursor points
Stefano Rivera <stefano@rivera.za.net>
parents: 167
diff changeset
37 CURSOR = CursorSprite('full_can_cursor.png', 20, 30)
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
38
167
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
39 def interact_with_titanium_leg(self, tool, state):
170
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
40 dented = DentedCan("dented_can")
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
41 state.replace_inventory_item(self, dented)
167
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
42 return Result("You club the can with the femur. The can gets dented, but doesn't open.")
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
43
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
44
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
45 class DentedCan(FullCan):
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
46 "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
47
170
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
48 INVENTORY_IMAGE = "dented_can.png"
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
49 CURSOR = CursorSprite('dented_can_cursor.png', 20, 30)
179913efac85 Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents: 168
diff changeset
50
167
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
51 def interact_with_titanium_leg(self, tool, inventory):
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
52 return Result("You club the can with the femur. The dents shift around, but it still doesn't open.")
5845a3ed4dad Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents: 151
diff changeset
53
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
54
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
55 class TubeFragments(Item):
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
56 "Old tubes that need repair."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
57
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
58 INVENTORY_IMAGE = "tube_fragments.png"
168
de249f7867fc Set cursor points
Stefano Rivera <stefano@rivera.za.net>
parents: 167
diff changeset
59 CURSOR = CursorSprite('tube_fragments_cursor.png', 3, 60)
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
60
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
61
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
62 class ReplacementTubes(Item):
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
63 "Repaired tubes."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
64
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
65 INVENTORY_IMAGE = "replacement_tubes.png"
168
de249f7867fc Set cursor points
Stefano Rivera <stefano@rivera.za.net>
parents: 167
diff changeset
66 CURSOR = CursorSprite('replacement_tubes.png', 53, 46)
145
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
67
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
68
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
69 class CansOnShelf(Thing):
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
70
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
71 NAME = "mess.cans"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
72
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
73 INTERACTS = {
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
74 "cans": InteractImage(165, 209, "cans_on_shelf.png"),
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
75 "nocans": InteractNoImage(165, 209, 50, 50),
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
76 }
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
77
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
78 INITIAL = "cans"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
79
146
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
80 INITIAL_DATA = {
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
81 "cans": True,
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
82 }
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
83
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
84 def interact_without(self):
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
85 if self.data['cans']:
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
86 self.state.add_inventory_item('full_can')
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
87 self.set_data("cans", False)
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
88 self.set_interact("nocans")
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
89 return Result("Best before along time in the past. Better not eat these.")
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
90
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
91 def get_description(self):
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
92 if self.data["cans"]:
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
93 return "The contents of these cans looks synthetic."
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
94 else:
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
95 return "You've pillaged these shelves already."
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
96
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
97
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
98 class Tubes(Thing):
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
99
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
100 NAME = "mess.tubes"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
101
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
102 INTERACTS = {
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
103 "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
104 "broken": InteractImage(250, 183, "broken_tubes.png"),
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
105 "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
106 }
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
107
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
108 INITIAL = "blocked"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
109
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
110
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
111 class ToMap(Thing):
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
112 "Way to map."
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
113
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: 150
diff changeset
114 NAME = "mess.tomap"
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
115 DEST = "map"
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
116
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
117 INTERACTS = {
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
118 "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
119 }
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
120
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
121 INITIAL = "door"
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
122
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
123 def interact_without(self):
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
124 """Go to map."""
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
125 self.state.set_current_scene("map")
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
126
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
127
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
128 SCENES = [Mess]