annotate gamelib/scenes/map.py @ 837:bdebe693453f pyntnclick

Track total sentence
author Neil Muller <neil@dip.sun.ac.za>
date Tue, 29 Jan 2013 21:45:27 +0200
parents 108eeb4d8f65
children
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 """Neurally implanted schematic for moving around on the ship.
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
2
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
3 It is illegal for prisoners in transit to activate such an
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
4 implant. Failure to comply carries a minimum sentence of
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
5 six months.
51
3417cf0e8795 Place for artist credits.
Simon Cross <simon@simonx>
parents: 47
diff changeset
6
3417cf0e8795 Place for artist credits.
Simon Cross <simon@simonx>
parents: 47
diff changeset
7 Many parts of the ship are derelict and inaccessible.
47
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
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
10 from pyntnclick.i18n import _
549
098ea4ea0d0d Rename imports
Neil Muller <neil@dip.sun.ac.za>
parents: 540
diff changeset
11 from pyntnclick.state import Scene, Thing, Result
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
12 from pyntnclick.scenewidgets import (InteractRectUnion, InteractUnion,
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
13 InteractText, InteractNoImage)
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 466
diff changeset
14
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
15 from gamelib.scenes.game_constants import PLAYER_ID
837
bdebe693453f Track total sentence
Neil Muller <neil@dip.sun.ac.za>
parents: 822
diff changeset
16 from gamelib.scenes.game_widgets import make_jim_dialog, make_sentence_dialog
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
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
19 class Map(Scene):
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
20
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
21 FOLDER = "map"
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
22 BACKGROUND = 'map.png'
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
23
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
24 INITIAL_DATA = {
203
12c66793db8f Add neural implant text
Neil Muller <neil@dip.sun.ac.za>
parents: 133
diff changeset
25 'implant': True,
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
26 }
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
27
592
4e9178215e75 Introduce .setup() for GameDeveloperGizmos.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 549
diff changeset
28 def setup(self):
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
29 self.add_thing(ToCryo())
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
30 self.add_thing(ToBridge())
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
31 self.add_thing(ToMess())
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
32 self.add_thing(ToEngine())
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
33 self.add_thing(ToMachine())
241
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
34 self.add_thing(ToCrew())
413
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
35 self.add_thing(InaccessibleArea())
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
36 self.add_thing(HydroponicsArea())
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
37
132
686bb74a52f8 Map shows accessible areas.
Jeremy Thurgood <firxen@gmail.com>
parents: 131
diff changeset
38 def enter(self):
203
12c66793db8f Add neural implant text
Neil Muller <neil@dip.sun.ac.za>
parents: 133
diff changeset
39 if self.get_data('implant'):
12c66793db8f Add neural implant text
Neil Muller <neil@dip.sun.ac.za>
parents: 133
diff changeset
40 self.set_data('implant', False)
360
452230d78541 Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents: 355
diff changeset
41 ai1 = make_jim_dialog(
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
42 _("Under the terms of the emergency conscription "
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
43 "act, I have downloaded the ship's schematics to your "
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
44 "neural implant to help you navigate around the ship."),
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
45 self.game)
360
452230d78541 Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents: 355
diff changeset
46 if ai1:
837
bdebe693453f Track total sentence
Neil Muller <neil@dip.sun.ac.za>
parents: 822
diff changeset
47 self.state.increase_sentence(3)
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
48 return ai1, make_jim_dialog(_("Prisoner %s, you are a "
435
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 417
diff changeset
49 "class 1 felon. Obtaining access to the ship's schematics "
224
8d8aef45db4e fixed some typos
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 212
diff changeset
50 "constitutes a level 2 offence and carries a minimal penalty "
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
51 "of an additional 3 years on your sentence.") % PLAYER_ID,
837
bdebe693453f Track total sentence
Neil Muller <neil@dip.sun.ac.za>
parents: 822
diff changeset
52 self.game), make_sentence_dialog(PLAYER_ID, self.game)
132
686bb74a52f8 Map shows accessible areas.
Jeremy Thurgood <firxen@gmail.com>
parents: 131
diff changeset
53
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
54
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
55 class DoorThing(Thing):
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
56
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
57 # name of destination
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
58 DEST = None
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
59
466
af2a23b9787d You can now use doors while wielding things.
Jeremy Thurgood <firxen@gmail.com>
parents: 444
diff changeset
60 def interact(self, _item):
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
61 """Go to destination."""
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 592
diff changeset
62 if self.DEST in self.game.scenes:
692
d6ded808cc33 Much scene management refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 603
diff changeset
63 self.game.change_scene(self.DEST)
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
64
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
65
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
66 class ToCryo(DoorThing):
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
67 "Way to cryo room."
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
68
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
69 NAME = "map.tocryo"
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
70 DEST = "cryo"
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
71
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
72 INTERACTS = {
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
73 'door': InteractUnion((
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
74 InteractNoImage(515, 158, 56, 68),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
75 InteractText(361, 512, 245, 33, _("Prisoner cryo chambers"),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
76 'white', 20, 'Monospace.ttf'),
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
77 ))
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
78 }
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
79
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
80 INITIAL = 'door'
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
81
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
82
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
83 class ToBridge(DoorThing):
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
84 "Way to bridge room."
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
85
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
86 NAME = "map.tobridge"
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
87 DEST = "bridge"
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
88
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
89 INTERACTS = {
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
90 'door': InteractUnion((
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
91 InteractNoImage(36, 260, 60, 83),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
92 InteractText(26, 170, 71, 33, _("Bridge"), 'white', 20,
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
93 'Monospace.ttf'),
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
94 ))
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
95 }
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
96
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
97 INITIAL = 'door'
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
98
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
99
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
100 class ToMess(DoorThing):
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
101 "Way to cryo room."
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
102
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
103 NAME = "map.tomess"
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
104 DEST = "mess"
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
105
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
106 INTERACTS = {
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
107 'door': InteractUnion((
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
108 InteractNoImage(395, 262, 64, 80),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
109 InteractText(341, 430, 110, 33, _("Mess hall"), 'white', 20,
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
110 'Monospace.ttf'),
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
111 ))
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
112 }
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
113
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
114 INITIAL = 'door'
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
115
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
116
132
686bb74a52f8 Map shows accessible areas.
Jeremy Thurgood <firxen@gmail.com>
parents: 131
diff changeset
117 class ToEngine(DoorThing):
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
118 "Way to engine room."
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
119
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
120 NAME = "map.toengine"
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
121 DEST = "engine"
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
122
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
123 INTERACTS = {
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
124 'door': InteractUnion((
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
125 InteractNoImage(691, 279, 76, 54),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
126 InteractText(662, 496, 128, 33, _("Engine room"), 'white', 20,
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
127 'Monospace.ttf'),
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
128 ))
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
129 }
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
130
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
131 INITIAL = 'door'
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
132
466
af2a23b9787d You can now use doors while wielding things.
Jeremy Thurgood <firxen@gmail.com>
parents: 444
diff changeset
133 def interact(self, item):
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 769
diff changeset
134 if not self.game.is_in_inventory('helmet:'):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
135 return Result(_('The airlock refuses to open. The automated'
417
aba8e7895324 map corrections
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 413
diff changeset
136 ' voice says: "Hull breach beyond this door. Personnel'
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
137 ' must be equipped for vacuum before entry."'))
343
b3bc101171ea Don't allow access to the engine room without helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 263
diff changeset
138 else:
466
af2a23b9787d You can now use doors while wielding things.
Jeremy Thurgood <firxen@gmail.com>
parents: 444
diff changeset
139 return super(ToEngine, self).interact(item)
343
b3bc101171ea Don't allow access to the engine room without helmet
Neil Muller <neil@dip.sun.ac.za>
parents: 263
diff changeset
140
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
141
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
142 class ToMachine(DoorThing):
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
143 "Way to machine room."
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
144
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
145 NAME = "map.tomachine"
131
97c5ff0a05bb Hook up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 130
diff changeset
146 DEST = "machine"
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
147
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
148 INTERACTS = {
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
149 'door': InteractUnion((
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
150 InteractNoImage(608, 156, 57, 72),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
151 InteractText(578, 83, 140, 33, _("Machine room"), 'white', 20,
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
152 'Monospace.ttf'),
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
153 ))
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
154 }
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
155
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
156 INITIAL = 'door'
130
11afefc4aeaf InteractText for mocking up scenes. Allow backgrounds to be None. Mock up map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 51
diff changeset
157
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
158
241
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
159 class ToCrew(DoorThing):
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
160 "Way to crew quarters."
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
161
355
bfb6c682b4fb Updated walkthrough test as far as completed environmental puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 345
diff changeset
162 NAME = "map.tocrew_quarters"
241
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
163 DEST = "crew_quarters"
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
164
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
165 INTERACTS = {
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
166 'door': InteractUnion((
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
167 InteractNoImage(210, 321, 37, 64),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
168 InteractText(69, 460, 160, 33, _("Crew quarters"), 'white', 20,
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
169 'Monospace.ttf'),
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
170 ))
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
171 }
241
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
172
408
308a433c4713 Initial map hookup
Stefano Rivera <stefano@rivera.za.net>
parents: 376
diff changeset
173 INITIAL = 'door'
241
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
174
b1451b0b906f Link crew quarters to map.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 224
diff changeset
175
413
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
176 class InaccessibleArea(Thing):
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
177 NAME = 'map.inaccessible'
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
178
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
179 INTERACTS = {
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
180 'areas': InteractRectUnion((
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
181 (207, 227, 39, 63),
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
182 (256, 225, 35, 64),
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
183 (259, 322, 34, 64),
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
184 (514, 380, 58, 66),
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
185 (607, 377, 60, 70),
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
186 ))
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
187 }
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
188
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
189 INITIAL = 'areas'
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
190
466
af2a23b9787d You can now use doors while wielding things.
Jeremy Thurgood <firxen@gmail.com>
parents: 444
diff changeset
191 def interact(self, _item):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
192 return Result(_("You look in the door, but just see empty space: "
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
193 "that room appears to have been obliterated by "
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
194 "meteors."))
413
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
195
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
196
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
197 class HydroponicsArea(Thing):
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
198 NAME = 'map.hydroponics'
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
199
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
200 INTERACTS = {
822
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
201 'areas': InteractUnion((
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
202 InteractNoImage(314, 263, 73, 81),
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
203 InteractText(313, 132, 140, 33, _("Hydroponics"), 'white', 20,
108eeb4d8f65 Convert map to use InteractText for room labels
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
204 'Monospace.ttf'),
413
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
205 ))
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
206 }
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
207
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
208 INITIAL = 'areas'
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
209
466
af2a23b9787d You can now use doors while wielding things.
Jeremy Thurgood <firxen@gmail.com>
parents: 444
diff changeset
210 def interact(self, _item):
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
211 return Result(_("Peering in through the window, you see that the "
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
212 "entire chamber is overgrown with giant broccoli. "
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 692 765
diff changeset
213 "It would take you years to cut a path through that."))
413
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
214
4ce318029cd1 Map: Inaccessible areas
Stefano Rivera <stefano@rivera.za.net>
parents: 408
diff changeset
215
47
8f1fccb8cadf Skeletons for scenes in plot outline.
Simon Cross <simon@simonx>
parents:
diff changeset
216 SCENES = [Map]