annotate gamelib/scenes/mess.py @ 150:5e5d71e40e54

Add bridge and mess to map and ways back.
author Simon Cross <hodgestar+bzr@gmail.com>
date Tue, 24 Aug 2010 23:32:05 +0200
parents 1be149cc42db
children d00aa26941c4
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"
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
31 CURSOR = CursorSprite('empty_can_cursor.png', 47, 3)
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
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
34 class FullCan(Item):
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
35 "Found on the shelf."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
36
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
37 INVENTORY_IMAGE = "full_can.png"
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
38 CURSOR = CursorSprite('full_can_cursor.png', 47, 3)
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
39
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
40
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
41 class TubeFragments(Item):
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
42 "Old tubes that need repair."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
43
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
44 INVENTORY_IMAGE = "tube_fragments.png"
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
45 CURSOR = CursorSprite('tube_fragments_cursor.png', 47, 3)
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
46
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
47
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
48 class ReplacementTubes(Item):
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
49 "Repaired tubes."
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
50
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
51 INVENTORY_IMAGE = "replacement_tubes.png"
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
52 CURSOR = CursorSprite('replacement_tubes.png', 47, 3)
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
53
ce419fb7ab8a Add items to mess.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 143
diff changeset
54
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
55 class CansOnShelf(Thing):
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
56
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
57 NAME = "mess.cans"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
58
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
59 INTERACTS = {
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
60 "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
61 "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
62 }
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
63
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
64 INITIAL = "cans"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
65
146
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
66 INITIAL_DATA = {
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
67 "cans": True,
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
68 }
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
69
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
70 def interact_without(self):
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
71 if self.data['cans']:
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
72 self.state.add_inventory_item('full_can')
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
73 self.set_data("cans", False)
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
74 self.set_interact("nocans")
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
75 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
76
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
77 def get_description(self):
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
78 if self.data["cans"]:
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
79 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
80 else:
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
81 return "You've pillaged these shelves already."
1be149cc42db Allow can to be picked up.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 145
diff changeset
82
143
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
83
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
84 class Tubes(Thing):
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
85
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
86 NAME = "mess.tubes"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
87
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
88 INTERACTS = {
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
89 "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
90 "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
91 "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
92 }
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 INITIAL = "blocked"
d15270c2898c Hook up brocolli and cans. Rotate brocolli to correct orientation.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 140
diff changeset
95
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
96
150
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
97 class ToMap(Thing):
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
98 "Way to map."
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
99
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
100 NAME = "bridge.tomap"
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
101 DEST = "map"
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
102
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
103 INTERACTS = {
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
104 "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
105 }
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
106
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
107 INITIAL = "door"
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
108
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
109 def interact_without(self):
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
110 """Go to map."""
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
111 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
112
5e5d71e40e54 Add bridge and mess to map and ways back.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 146
diff changeset
113
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
114 SCENES = [Mess]