Mercurial > pyntnclick
annotate gamelib/scenes/mess.py @ 168:de249f7867fc
Set cursor points
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Wed, 25 Aug 2010 12:32:45 +0200 |
parents | 5845a3ed4dad |
children | 179913efac85 |
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 | 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 | 18 self.add_item(EmptyCan("empty_can")) |
19 self.add_item(FullCan("full_can")) | |
20 self.add_item(TubeFragments("tube_fragments")) | |
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 | 27 class EmptyCan(Item): |
28 "After emptying the full can." | |
29 | |
30 INVENTORY_IMAGE = "empty_can.png" | |
168 | 31 CURSOR = CursorSprite('empty_can_cursor.png', 20, 30) |
145 | 32 |
33 class FullCan(Item): | |
34 "Found on the shelf." | |
35 | |
36 INVENTORY_IMAGE = "full_can.png" | |
168 | 37 CURSOR = CursorSprite('full_can_cursor.png', 20, 30) |
145 | 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): |
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
40 state.replace_inventory_item(self, DentedCan("dented_can")) |
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
41 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
|
42 |
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 class DentedCan(FullCan): |
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
45 "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
|
46 |
5845a3ed4dad
Inventory interaction can (surprisingly) affect the inventory
Neil Muller <neil@dip.sun.ac.za>
parents:
151
diff
changeset
|
47 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
|
48 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
|
49 |
145 | 50 |
51 class TubeFragments(Item): | |
52 "Old tubes that need repair." | |
53 | |
54 INVENTORY_IMAGE = "tube_fragments.png" | |
168 | 55 CURSOR = CursorSprite('tube_fragments_cursor.png', 3, 60) |
145 | 56 |
57 | |
58 class ReplacementTubes(Item): | |
59 "Repaired tubes." | |
60 | |
61 INVENTORY_IMAGE = "replacement_tubes.png" | |
168 | 62 CURSOR = CursorSprite('replacement_tubes.png', 53, 46) |
145 | 63 |
64 | |
143
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
65 class CansOnShelf(Thing): |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
66 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
67 NAME = "mess.cans" |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
68 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
69 INTERACTS = { |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
70 "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
|
71 "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
|
72 } |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
73 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
74 INITIAL = "cans" |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
75 |
146
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
76 INITIAL_DATA = { |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
77 "cans": True, |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
78 } |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
79 |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
80 def interact_without(self): |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
81 if self.data['cans']: |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
82 self.state.add_inventory_item('full_can') |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
83 self.set_data("cans", False) |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
84 self.set_interact("nocans") |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
85 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
|
86 |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
87 def get_description(self): |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
88 if self.data["cans"]: |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
89 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
|
90 else: |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
91 return "You've pillaged these shelves already." |
1be149cc42db
Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
145
diff
changeset
|
92 |
143
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
93 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
94 class Tubes(Thing): |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
95 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
96 NAME = "mess.tubes" |
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 INTERACTS = { |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
99 "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
|
100 "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
|
101 "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
|
102 } |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
103 |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
104 INITIAL = "blocked" |
d15270c2898c
Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
140
diff
changeset
|
105 |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
106 |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
107 class ToMap(Thing): |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
108 "Way to map." |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
109 |
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
|
110 NAME = "mess.tomap" |
150
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
111 DEST = "map" |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
112 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
113 INTERACTS = { |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
114 "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
|
115 } |
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 INITIAL = "door" |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
118 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
119 def interact_without(self): |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
120 """Go to map.""" |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
121 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
|
122 |
5e5d71e40e54
Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
146
diff
changeset
|
123 |
47
8f1fccb8cadf
Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff
changeset
|
124 SCENES = [Mess] |