Mercurial > pyntnclick
annotate gamelib/scenes/mess.py @ 183:829551aad0f1
Add some flavour descriptions
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Wed, 25 Aug 2010 15:46:03 +0200 |
parents | 3d3efc5648cc |
children | 278774b31d3c |
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 |
175
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
3 from random import choice |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
4 |
146
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
5 from gamelib.state import Scene, Item, Thing, InteractImage, InteractNoImage, Result |
145 | 6 from gamelib.cursor import CursorSprite |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
7 |
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 class Mess(Scene): |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
10 |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
11 FOLDER = "mess" |
140
95d882eeba12
Link up mess hall background.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
55
diff
changeset
|
12 BACKGROUND = "mess_hall.png" |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
13 |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
14 INITIAL_DATA = { |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
15 'accessible': True, |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
16 } |
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
17 |
143
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
18 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
|
19 super(Mess, self).__init__(state) |
145 | 20 self.add_item(EmptyCan("empty_can")) |
21 self.add_item(FullCan("full_can")) | |
22 self.add_item(TubeFragments("tube_fragments")) | |
23 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
|
24 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
|
25 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
|
26 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
|
27 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
28 |
145 | 29 class EmptyCan(Item): |
30 "After emptying the full can." | |
31 | |
32 INVENTORY_IMAGE = "empty_can.png" | |
168 | 33 CURSOR = CursorSprite('empty_can_cursor.png', 20, 30) |
145 | 34 |
35 class FullCan(Item): | |
36 "Found on the shelf." | |
37 | |
38 INVENTORY_IMAGE = "full_can.png" | |
168 | 39 CURSOR = CursorSprite('full_can_cursor.png', 20, 30) |
145 | 40 |
167
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
41 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
|
42 dented = DentedCan("dented_can") |
179913efac85
Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents:
168
diff
changeset
|
43 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
|
44 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
|
45 |
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
46 |
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
47 class DentedCan(FullCan): |
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
48 "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
|
49 |
170
179913efac85
Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents:
168
diff
changeset
|
50 INVENTORY_IMAGE = "dented_can.png" |
179913efac85
Add dented can image to item
Neil Muller <neil@dip.sun.ac.za>
parents:
168
diff
changeset
|
51 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
|
52 |
167
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
53 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
|
54 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
|
55 |
145 | 56 |
57 class TubeFragments(Item): | |
58 "Old tubes that need repair." | |
59 | |
60 INVENTORY_IMAGE = "tube_fragments.png" | |
168 | 61 CURSOR = CursorSprite('tube_fragments_cursor.png', 3, 60) |
145 | 62 |
63 | |
64 class ReplacementTubes(Item): | |
65 "Repaired tubes." | |
66 | |
67 INVENTORY_IMAGE = "replacement_tubes.png" | |
168 | 68 CURSOR = CursorSprite('replacement_tubes.png', 53, 46) |
145 | 69 |
70 | |
143
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
71 class CansOnShelf(Thing): |
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 NAME = "mess.cans" |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
74 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
75 INTERACTS = { |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
76 "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
|
77 "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
|
78 } |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
79 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
80 INITIAL = "cans" |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
81 |
146
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
82 INITIAL_DATA = { |
175
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
83 'taken_one': False, |
146
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
84 } |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
85 |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
86 def interact_without(self): |
175
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
87 self.state.add_inventory_item('full_can') |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
88 if not self.data['taken_one']: |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
89 self.set_data('taken_one', True) |
146
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
90 return Result("Best before along time in the past. Better not eat these.") |
175
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
91 else: |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
92 return Result(choice(( |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
93 'Another can of imitation chicken? Great.', |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
94 'Mmmm. Nutritious Bacteria Stew.', |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
95 "The label has rusted off, I don't want to know what's inside.", |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
96 "I hope I don't get hungry enough to open these.", |
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
97 ))) |
146
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
98 |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
99 def get_description(self): |
175
3d3efc5648cc
Allow multiple cans to be picked up
Stefano Rivera <stefano@rivera.za.net>
parents:
170
diff
changeset
|
100 return "The contents of these cans looks synthetic." |
146
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
101 |
143
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
102 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
103 class Tubes(Thing): |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
104 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
105 NAME = "mess.tubes" |
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 INTERACTS = { |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
108 "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
|
109 "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
|
110 "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
|
111 } |
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 INITIAL = "blocked" |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
114 |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
115 |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
116 class ToMap(Thing): |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
117 "Way to map." |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
118 |
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
|
119 NAME = "mess.tomap" |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
120 DEST = "map" |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
121 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
122 INTERACTS = { |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
123 "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
|
124 } |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
125 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
126 INITIAL = "door" |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
127 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
128 def interact_without(self): |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
129 """Go to map.""" |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
130 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
|
131 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
132 |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
133 SCENES = [Mess] |