annotate gamelib/scenes/cryo.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 a1c0c1078342
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
1 """Cryo room where the prisoner starts out."""
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
2
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
3 import random
433
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
4
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
5 from pyntnclick.i18n import _
830
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
6 from pyntnclick.utils import render_text
549
098ea4ea0d0d Rename imports
Neil Muller <neil@dip.sun.ac.za>
parents: 540
diff changeset
7 from pyntnclick.cursor import CursorSprite
098ea4ea0d0d Rename imports
Neil Muller <neil@dip.sun.ac.za>
parents: 540
diff changeset
8 from pyntnclick.state import Scene, Item, CloneableItem, Thing, Result
764
a8510f4e2ea1 Conditionally add things based on state.
Jeremy Thurgood <firxen@gmail.com>
parents: 759
diff changeset
9 from pyntnclick.scenewidgets import (
a8510f4e2ea1 Conditionally add things based on state.
Jeremy Thurgood <firxen@gmail.com>
parents: 759
diff changeset
10 InteractNoImage, InteractRectUnion, InteractImage, InteractAnimated,
a8510f4e2ea1 Conditionally add things based on state.
Jeremy Thurgood <firxen@gmail.com>
parents: 759
diff changeset
11 GenericDescThing, TakeableThing)
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
12
212
2b820b4ba3bf Add constant for player id. Make IDs uppercase
Neil Muller <neil@dip.sun.ac.za>
parents: 210
diff changeset
13 from gamelib.scenes.game_constants import PLAYER_ID
525
821b322e903b Separate "scene widgets" from "game-specific widgets".
Jeremy Thurgood <firxen@gmail.com>
parents: 519
diff changeset
14 from gamelib.scenes.game_widgets import Door, make_jim_dialog
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
15
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
16
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
17 class Cryo(Scene):
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
18
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
19 FOLDER = "cryo"
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
20 BACKGROUND = "cryo_room.png"
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
21
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
22 INITIAL_DATA = {
540
e0d2ec1d9720 pep8cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 528
diff changeset
23 'greet': True,
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
24 'vandalism_warn': True,
837
bdebe693453f Track total sentence
Neil Muller <neil@dip.sun.ac.za>
parents: 830
diff changeset
25 'sentence': 30,
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
26 }
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
27
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
28 # sounds that will be played randomly as background noise
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
29 MUSIC = [
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
30 'drip1.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
31 'drip2.ogg',
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
32 'drip3.ogg',
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
33 'creaking.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
34 'silent.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
35 'silent.ogg',
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
36 ]
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
37
592
4e9178215e75 Introduce .setup() for GameDeveloperGizmos.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 566
diff changeset
38 def setup(self):
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
39 self.add_item_factory(TitaniumLeg)
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
40 self.add_item_factory(TubeFragment)
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
41 self.add_item_factory(FullBottle)
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
42 self.add_thing(CryoUnitAlpha())
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
43 self.add_thing(CryoRoomDoor())
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
44 self.add_thing(CryoComputer())
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
45 self.add_thing(CryoPipeLeft())
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
46 self.add_thing(CryoPipeRightTop())
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
47 self.add_thing(CryoPipeRightBottom())
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
48 self.add_thing(CryoPools())
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
49
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
50 # Flavour items
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
51 # pipes
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
52 self.add_thing(GenericDescThing('cryo.pipes', 1,
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
53 _("These pipes carry cooling fluid to the cryo units."),
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
54 (
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
55 (552, 145, 129, 66),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
56 (636, 82, 165, 60),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
57 (140, 135, 112, 73),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
58 (11, 63, 140, 67),
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
59 )))
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
60 self.add_thing(UncuttableCryoPipes())
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
61
183
829551aad0f1 Add some flavour descriptions
Neil Muller <neil@dip.sun.ac.za>
parents: 182
diff changeset
62 # cryo units
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
63 self.add_thing(GenericCryoUnit(2,
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
64 _("An empty cryo chamber."),
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
65 _("Prisoner 81E4-C8900480E635. Embezzlement. 20 years."),
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
66 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
67 (155, 430, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
68 (125, 450, 60, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
69 (95, 470, 60, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
70 (55, 490, 60, 55),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
71 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
72
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
73 self.add_thing(GenericCryoUnit(3,
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
74 _("A working cryo chamber. The frosted glass obscures the details"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
75 " of the occupant."),
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
76 _("Prisoner 9334-CE1EB0243BAB. Murder. 40 years."),
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
77 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
78 (215, 430, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
79 (205, 450, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
80 (185, 470, 50, 35),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
81 (125, 505, 80, 40),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
82 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
83
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
84 self.add_thing(GenericCryoUnit(4,
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
85 _("A broken cryo chamber. The skeleton inside has been picked"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
86 " clean."),
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
87 _("Prisoner BFBC-8BF4C6B7492B. Importing illegal alien biomatter."
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
88 " 15 years."),
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
89 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
90 (275, 430, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
91 (255, 460, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
92 (235, 490, 50, 60),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
93 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
94
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
95 self.add_thing(GenericCryoUnit(5,
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
96 _("A working cryo chamber. The frosted glass obscures the details "
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
97 "of the occupant."),
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
98 _("Prisoner B520-99495B8C41CE. Copyright infringement. 60 years."),
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
99 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
100 (340, 430, 50, 70),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
101 (330, 500, 60, 50),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
102 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
103
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
104 self.add_thing(GenericCryoUnit(6,
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
105 _("An empty cryo unit. Recently filled by you."),
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
106 _("Prisoner %s. Safecracking, grand larceny. 30 years.")
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
107 % PLAYER_ID,
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
108 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
109 (399, 426, 70, 56),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
110 (404, 455, 69, 120),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
111 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
112
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
113 self.add_thing(GenericCryoUnit(7,
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
114 _("An empty cryo unit."),
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
115 _("Prisoner 83F1-CE32D3234749. Spamming. 5 years."),
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
116 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
117 (472, 432, 58, 51),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
118 (488, 455, 41, 134),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
119 (517, 487, 42, 93),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
120 )))
213
20998c650ce1 Fixed rect_drawer tool and adjusted JIM message background.
Jeremy Thurgood <firxen@gmail.com>
parents: 212
diff changeset
121
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
122 self.add_thing(GenericCryoUnit(8,
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
123 _("An empty cryo unit."),
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
124 _("Prisoner A455-9DF9F43C43E5. Medical malpractice. 10 years."),
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
125 (
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
126 (596, 419, 69, 39),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
127 (616, 442, 82, 40),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
128 (648, 467, 84, 37),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
129 (681, 491, 97, 60),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
130 )))
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
131
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
132 def enter(self):
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
133 # Setup music
629
660ef5793886 Remove albow from sound
Neil Muller <neil@dip.sun.ac.za>
parents: 623
diff changeset
134 pieces = [self.sound.get_music(x) for x in self.MUSIC]
566
ea9dd2b9186a Hook up sound in gamelib/scenes.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 549
diff changeset
135 background_playlist = self.sound.get_playlist(pieces, random=True,
ea9dd2b9186a Hook up sound in gamelib/scenes.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 549
diff changeset
136 repeat=True)
ea9dd2b9186a Hook up sound in gamelib/scenes.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 549
diff changeset
137 self.sound.change_playlist(background_playlist)
120
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
138 if self.get_data('greet'):
48d24a48d0ce Enter and leave hooks
Neil Muller <neil@dip.sun.ac.za>
parents: 119
diff changeset
139 self.set_data('greet', False)
360
452230d78541 Use make_jim_dialog everywhere
Neil Muller <neil@dip.sun.ac.za>
parents: 353
diff changeset
140 return make_jim_dialog(
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
141 _("Greetings, Prisoner %s. I am the Judicial "
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
142 "Incarceration Monitor. "
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
143 "You have been woken early under the terms of the "
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
144 "emergency conscription act to assist with repairs to "
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
145 "the ship. Your behaviour during this time will "
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
146 "be noted on your record and will be relayed to "
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
147 "prison officials when we reach the destination. "
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
148 "Please report to the bridge.") % PLAYER_ID, self.game)
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
149
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
150 def leave(self):
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
151 # Stop music
566
ea9dd2b9186a Hook up sound in gamelib/scenes.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 549
diff changeset
152 self.sound.change_playlist(None)
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
153
35
ebc76bc0c067 First item!
Simon Cross <hodgestar+bzr@gmail.com>
parents: 28
diff changeset
154
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
155 class CryoPipeBase(Thing):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
156 "Base class for cryo pipes that need to be stolen."
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
157
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
158 INITIAL = "fixed"
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
159
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
160 INITIAL_DATA = {
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
161 'fixed': True,
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
162 }
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
163
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
164 def select_interact(self):
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
165 if not self.get_data('fixed'):
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
166 return 'chopped'
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
167 return self.INITIAL
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
168
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
169 def interact_with_machete(self, item):
247
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
170 if self.get_data('fixed'):
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
171 self.set_data('fixed', False)
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
172 self.game.add_inventory_item('tube_fragment')
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
173 self.set_interact()
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
174 responses = [Result(_("It takes more effort than one would expect,"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
175 " but eventually the pipe is separated from"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
176 " the wall."), soundfile="chop-chop.ogg")]
792
bdaffaa8b6bf Loading and saving! (Plus a bunch of other stuff to make it possible.)
Jeremy Thurgood <firxen@gmail.com>
parents: 770
diff changeset
177 if self.game.get_current_scene().get_data('vandalism_warn'):
bdaffaa8b6bf Loading and saving! (Plus a bunch of other stuff to make it possible.)
Jeremy Thurgood <firxen@gmail.com>
parents: 770
diff changeset
178 self.game.get_current_scene().set_data('vandalism_warn', False)
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
179 responses.append(make_jim_dialog(
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
180 _("Prisoner %s. Vandalism is an offence punishable by a "
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
181 "minimum of an additional 6 months to your sentence."
800
374d96e0b55e pep8/pyflakes fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 792
diff changeset
182 ) % PLAYER_ID, self.game))
375
c80a1bd291d1 Only give vandalism warning once
Stefano Rivera <stefano@rivera.za.net>
parents: 368
diff changeset
183 return responses
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
184
519
8f3c82c685a4 Fix is_interactive() by adding tool param.
Jeremy Thurgood <firxen@gmail.com>
parents: 518
diff changeset
185 def is_interactive(self, tool=None):
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
186 return self.get_data('fixed')
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
187
247
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
188 def interact_without(self):
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
189 if self.get_data('fixed'):
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
190 return Result(_("These pipes aren't attached to the wall very"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
191 " solidly."))
247
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
192 return None
0bad554d0926 More tests, some cryo room fixes and docs in the build.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
193
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 227
diff changeset
194 def get_description(self):
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 227
diff changeset
195 if self.get_data('fixed'):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
196 return _("These pipes carry cooling fluid to empty cryo units.")
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
197 return _("There used to be a pipe carrying cooling fluid here.")
228
ce1e85768f7b Flavour interactions for mess hall
Neil Muller <neil@dip.sun.ac.za>
parents: 227
diff changeset
198
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
199
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
200 class UncuttableCryoPipes(Thing):
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
201 "Base class for cryo pipes that can't be cut down."
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
202
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
203 NAME = "cryo.pipes.2"
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
204
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
205 INTERACTS = {
540
e0d2ec1d9720 pep8cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 528
diff changeset
206 "fixed": InteractRectUnion((
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
207 (2, 130, 44, 394),
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
208 (756, 127, 52, 393),))
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
209 }
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
210
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
211 INITIAL = "fixed"
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
212
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
213 def interact_with_machete(self, item):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
214 return Result(_("These pipes carry fluid to the working cryo units."
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
215 " Chopping them down doesn't seem sensible."))
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
216
519
8f3c82c685a4 Fix is_interactive() by adding tool param.
Jeremy Thurgood <firxen@gmail.com>
parents: 518
diff changeset
217 def is_interactive(self, tool=None):
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
218 return True
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
219
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
220 def interact_without(self):
800
374d96e0b55e pep8/pyflakes fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 792
diff changeset
221 return Result(
374d96e0b55e pep8/pyflakes fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 792
diff changeset
222 _("These pipes aren't attached to the wall very solidly."))
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
223
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
224 def get_description(self):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
225 return _("These pipes carry cooling fluid to the working cryo units.")
328
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
226
3cb48621759a Add uncuttable cryo pipe interact
Neil Muller <neil@dip.sun.ac.za>
parents: 307
diff changeset
227
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
228 class TubeFragment(CloneableItem):
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
229 "Obtained after cutting down a cryo room pipe."
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
230
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
231 NAME = "tube_fragment"
329
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
232 INVENTORY_IMAGE = "tube_fragment.png"
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
233 CURSOR = CursorSprite('tube_fragment_cursor.png')
0bb1ab329bee Link up laser welder
Simon Cross <hodgestar+bzr@gmail.com>
parents: 328
diff changeset
234 TOOL_NAME = "tube_fragment"
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
235 MAX_COUNT = 3
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
236
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
237
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
238 class CryoPipeLeft(CryoPipeBase):
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
239 "Left cryo pipe."
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
240
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
241 NAME = "cryo.pipe.left"
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
242 INTERACTS = {
271
e3a2d73e94f4 Hook up intact pipes
Neil Muller <neil@dip.sun.ac.za>
parents: 270
diff changeset
243 "fixed": InteractImage(117, 226, "intact_cryo_pipe_left.png"),
e3a2d73e94f4 Hook up intact pipes
Neil Muller <neil@dip.sun.ac.za>
parents: 270
diff changeset
244 "chopped": InteractNoImage(125, 192, 27, 258),
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
245 }
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
246
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
247
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
248 class CryoPipeRightTop(CryoPipeBase):
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
249 "Right cryo pipe, top."
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
250
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
251 NAME = "cryo.pipe.right.top"
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
252 INTERACTS = {
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
253 "fixed": InteractImage(645, 212, "intact_cryo_pipe_right_top.png"),
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
254 "chopped": InteractNoImage(643, 199, 31, 111),
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
255 }
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
256
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
257
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
258 class CryoPipeRightBottom(CryoPipeBase):
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
259 "Right cryo pipe, bottom."
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
260
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
261 NAME = "cryo.pipe.right.bottom"
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
262 INTERACTS = {
348
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
263 "fixed": InteractImage(644, 333, "intact_cryo_pipe_right_bottom.png"),
c193cbff785d The environment / pipe puzzle is now solveable
Stefano Rivera <stefano@rivera.za.net>
parents: 329
diff changeset
264 "chopped": InteractNoImage(644, 333, 31, 107),
219
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
265 }
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
266
326300c218a6 Choppable cryopipes and can refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 218
diff changeset
267
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
268 class TitaniumLeg(Item):
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
269 "Titanium leg, found on a piratical corpse."
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
270
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
271 NAME = 'titanium_leg'
91
542ede2896bb Link in femur inventory image.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 89
diff changeset
272 INVENTORY_IMAGE = "titanium_femur.png"
307
5031b84fbb4c Hook up new machete, can_opener, and titanium_femur images
Stefano Rivera <stefano@rivera.za.net>
parents: 302
diff changeset
273 CURSOR = CursorSprite('titanium_femur_cursor.png', 13, 5)
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
274
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
275
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
276 class CryoUnitAlpha(Thing):
67
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
277 "Cryo unit containing titanium leg."
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
278
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
279 NAME = "cryo.unit.1"
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
280
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
281 INTERACTS = {
133
0530547a131f Better map handling, detail_view stuff in Result.
Jeremy Thurgood <firxen@gmail.com>
parents: 131
diff changeset
282 "unit": InteractRectUnion((
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
283 (531, 430, 64, 49),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
284 (560, 460, 57, 47),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
285 (583, 482, 65, 69),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
286 (600, 508, 71, 48),
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
287 ))
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
288 }
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
289
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
290 INITIAL = "unit"
67
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
291
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
292 INITIAL_DATA = {
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
293 'contains_titanium_leg': True,
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
294 }
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
295
6b0f7364f3bf Inventory-related game state.
Jeremy Thurgood <firxen@gmail.com>
parents: 63
diff changeset
296 def interact_without(self):
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
297 return Result(detail_view='cryo_detail')
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
298
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
299 def interact_with_titanium_leg(self, item):
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
300 return Result(_("You hit the chamber that used to hold this very leg."
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
301 " Nothing happens as a result."),
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
302 soundfile="clang2.ogg")
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
303
94
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
304 def get_description(self):
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
305 if self.get_data('contains_titanium_leg'):
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
306 return _("A broken cryo chamber, with a poor unfortunate corpse"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
307 " inside.")
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
308 return _("A broken cryo chamber. The corpse inside is missing a leg.")
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
309
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
310
182
5cb3fbe61f75 Add genric thing with description helper class
Neil Muller <neil@dip.sun.ac.za>
parents: 180
diff changeset
311 class GenericCryoUnit(GenericDescThing):
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
312 "Generic Cryo unit"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
313
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
314 def __init__(self, number, description, detailed_description, areas):
540
e0d2ec1d9720 pep8cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 528
diff changeset
315 super(GenericCryoUnit, self).__init__('cryo.unit', number,
e0d2ec1d9720 pep8cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 528
diff changeset
316 description, areas)
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
317 self.detailed_description = detailed_description
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
318
519
8f3c82c685a4 Fix is_interactive() by adding tool param.
Jeremy Thurgood <firxen@gmail.com>
parents: 518
diff changeset
319 def is_interactive(self, tool=None):
270
d4f08abc58fb Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents: 263
diff changeset
320 return True
d4f08abc58fb Interactivity status tweaks
Neil Muller <neil@dip.sun.ac.za>
parents: 263
diff changeset
321
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
322 def interact_without(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
323 return Result(self.detailed_description)
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
324
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
325 def get_description(self):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
326 return self.description
94
ce23fad8ecb3 More complex shaped interactables
Neil Muller <neil@dip.sun.ac.za>
parents: 91
diff changeset
327
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
328 def interact_with_titanium_leg(self, item):
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
329 return Result(random.choice([
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
330 _("You bang on the chamber with the titanium femur. Nothing"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
331 " much happens."),
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
332 _("Hitting the cryo unit with the femur doesn't achieve"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
333 " anything."),
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
334 _("You hit the chamber with the femur. Nothing happens."),
209
aeb96ca5f76c Add more sounds to cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 202
diff changeset
335 ]), soundfile="clang2.ogg")
180
6b3ccee6f3f9 Fill in more flavour for cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 167
diff changeset
336
39
088a101f5b94 Add an example Thing to cryo scene.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 35
diff changeset
337
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents: 232
diff changeset
338 class CryoRoomDoor(Door):
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
339 "Door to the cryo room."
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
340
252
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 247
diff changeset
341 SCENE = "cryo"
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
342
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
343 INTERACTS = {
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
344 "shut": InteractNoImage(290, 260, 99, 152),
87
4c6fea1b242b Fix interact positions.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 86
diff changeset
345 "ajar": InteractImage(290, 260, "door_ajar.png"),
4c6fea1b242b Fix interact positions.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 86
diff changeset
346 "open": InteractImage(290, 260, "door_open.png"),
86
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
347 }
593bddfacf18 Refactor Things a bit to render images.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 78
diff changeset
348
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
349 INITIAL = "shut"
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
350
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
351 INITIAL_DATA = {
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
352 'door': "shut",
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
353 }
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
354
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
355 def interact_with_titanium_leg(self, item):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
356 if self.get_data('door') == "ajar":
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
357 self.open_door()
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
358 return Result(_("You wedge the titanium femur into the chain and"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
359 " twist. With a satisfying *snap*, the chain"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
360 " breaks and the door opens."),
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
361 soundfile='break.ogg')
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
362 elif self.get_data('door') == "shut":
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
363 text = _("You bang on the door with the titanium femur. It makes a"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
364 " clanging sound.")
141
4f18e68fd0dc Add a few sounds to the cryo room
Neil Muller <neil@dip.sun.ac.za>
parents: 136
diff changeset
365 return Result(text, soundfile='clang.ogg')
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
366 else:
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
367 return Result(_("You wave the femur in the doorway. Nothing"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
368 " happens."))
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
369
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
370 def interact_without(self):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
371 if self.get_data('door') == "shut":
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
372 self.half_open_door()
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
373 if self.get_data('door') != "open":
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
374 return Result(_("It moves slightly and then stops. A chain on the"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
375 " other side is preventing it from opening"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
376 " completely."), soundfile='chain.ogg')
118
e548f4a13741 Add a transition, on general principles
Neil Muller <neil@dip.sun.ac.za>
parents: 109
diff changeset
377 else:
692
d6ded808cc33 Much scene management refactoring.
Jeremy Thurgood <firxen@gmail.com>
parents: 653
diff changeset
378 self.game.change_scene('map')
144
29ba5456e8b3 Removed a bunch of cruft.
Jeremy Thurgood <firxen@gmail.com>
parents: 141
diff changeset
379 return None
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
380
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
381 def interact_default(self, item):
435
19aff54b2e73 Many small fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 433
diff changeset
382 return self.interact_without()
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
383
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
384 def select_interact(self):
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
385 return self.get_data('door') or self.INITIAL
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
386
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
387 def half_open_door(self):
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
388 self.set_data('door', "ajar")
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
389 self.set_interact()
56
75bf3d3689e9 Refactor thing interactivity and add "fake" bridge scene.
Jeremy Thurgood <firxen@gmail.com>
parents: 55
diff changeset
390
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
391 def open_door(self):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
392 self.set_data('door', "open")
759
386475464202 Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
Jeremy Thurgood <firxen@gmail.com>
parents: 745
diff changeset
393 self.set_interact()
55
2e2f6ff54780 Part of the cryo door puzzle.
Jeremy Thurgood <firxen@gmail.com>
parents: 41
diff changeset
394
63
3087be3463e0 Some framework support for better message handling
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
395 def get_description(self):
95
7590586180f5 door goes from shut to ajar to open
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 94
diff changeset
396 if self.get_data('door') == "open":
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
397 return _('An open doorway leads to the rest of the ship.')
103
0f799b6f40bc Fix ajar door description
Neil Muller <neil@dip.sun.ac.za>
parents: 95
diff changeset
398 elif self.get_data('door') == "ajar":
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
399 return _("A rusty door. It can't open all the way because of a "
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
400 "chain on the other side.")
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
401 return _('A rusty door. It is currently closed.')
63
3087be3463e0 Some framework support for better message handling
Neil Muller <neil@dip.sun.ac.za>
parents: 56
diff changeset
402
41
ad6f56bfa8b7 Cryo door, titanium leg and some interaction prototypes.
Jeremy Thurgood <firxen@gmail.com>
parents: 39
diff changeset
403
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
404 class CryoComputer(Thing):
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
405 "Computer in the cryo room."
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
406
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
407 NAME = "cryo.computer"
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
408
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
409 INTERACTS = {
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
410 "info": InteractAnimated(416, 290, ["comp_info.png", "comp_info2.png"],
105
65976205fc2d Rough Stab at basic animation support
Neil Muller <neil@dip.sun.ac.za>
parents: 103
diff changeset
411 10),
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
412 "warn": InteractImage(416, 290, "comp_warn.png"),
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
413 "error": InteractImage(416, 290, "comp_error.png"),
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
414 }
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
415
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
416 INITIAL = "info"
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
417
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
418 def interact_without(self):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
419 return Result(detail_view='cryo_comp_detail')
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
420
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
421 def interact_with_titanium_leg(self, item):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
422 return Result(_("Hitting it with the leg accomplishes nothing."))
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
423
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
424 def get_description(self):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
425 return _("A computer terminal, with some text on it.")
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
426
89
4625efe69c37 Hook up cryo computer.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 87
diff changeset
427
764
a8510f4e2ea1 Conditionally add things based on state.
Jeremy Thurgood <firxen@gmail.com>
parents: 759
diff changeset
428 class TitaniumLegThing(TakeableThing):
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
429 "Triangle in the cryo room."
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
430
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
431 NAME = "cryo.titanium_leg"
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
432
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
433 INTERACTS = {
232
ca490aecbe0e Updated cryo unit to use new stuff. No more triangles! (Except for the ones that are still there.)
Jeremy Thurgood <firxen@gmail.com>
parents: 228
diff changeset
434 "leg": InteractImage(180, 132, "leg.png"),
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
435 }
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
436
134
faac82748f5a Put the leg inside the cryo unit.
Jeremy Thurgood <firxen@gmail.com>
parents: 133
diff changeset
437 INITIAL = "leg"
764
a8510f4e2ea1 Conditionally add things based on state.
Jeremy Thurgood <firxen@gmail.com>
parents: 759
diff changeset
438 ITEM = 'titanium_leg'
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
439
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
440 def interact_without(self):
745
b9504e6ecde1 Make a couple of interactions less dependent on current_scene, so the 'mad clicker' test works
Neil Muller <neil@dip.sun.ac.za>
parents: 692
diff changeset
441 self.game.scenes['cryo'].things['cryo.unit.1'].set_data(
540
e0d2ec1d9720 pep8cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 528
diff changeset
442 'contains_titanium_leg', False)
764
a8510f4e2ea1 Conditionally add things based on state.
Jeremy Thurgood <firxen@gmail.com>
parents: 759
diff changeset
443 self.take()
769
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
444 return Result(_("The skeletal occupant of this cryo unit has an"
43b49f1de828 Merge i18n for before the pyntnclick split
Stefano Rivera <stefano@rivera.za.net>
parents: 759 765
diff changeset
445 " artificial femur made of titanium. You take it."))
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
446
136
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
447 def get_description(self):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
448 return _("This femur looks synthetic.")
136
d264850806dc Better description handling in detail windows. (Sort of.)
Jeremy Thurgood <firxen@gmail.com>
parents: 135
diff changeset
449
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
450
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
451 class PlaqueThing(Thing):
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
452 "Plaque on the detailed cryo chamber"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
453
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
454 NAME = "cryo.plaque"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
455
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
456 INTERACTS = {
232
ca490aecbe0e Updated cryo unit to use new stuff. No more triangles! (Except for the ones that are still there.)
Jeremy Thurgood <firxen@gmail.com>
parents: 228
diff changeset
457 "plaque": InteractNoImage(60, 40, 35, 24),
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
458 }
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
459
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
460 INITIAL = "plaque"
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
461
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
462 def interact_without(self):
800
374d96e0b55e pep8/pyflakes fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 792
diff changeset
463 return Result(
374d96e0b55e pep8/pyflakes fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 792
diff changeset
464 _("The plaque is welded to the unit. You can't shift it."))
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
465
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
466 def get_description(self):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
467 return _("'Prisoner 98CC-764E646391EE. War crimes. 45 years.")
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
468
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
469
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
470 class FullBottle(Item):
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
471 NAME = 'full_detergent_bottle'
363
2cadb47405a4 Use bottle image. The boomslang is now triangle-free
Stefano Rivera <stefano@rivera.za.net>
parents: 362
diff changeset
472 INVENTORY_IMAGE = 'bottle_full.png'
2cadb47405a4 Use bottle image. The boomslang is now triangle-free
Stefano Rivera <stefano@rivera.za.net>
parents: 362
diff changeset
473 CURSOR = CursorSprite('bottle_full_cursor.png', 27, 7)
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
474
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
475
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
476 class CryoPools(Thing):
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
477 "Handy for cooling engines"
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
478
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
479 NAME = 'cryo.pool'
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
480
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
481 INTERACTS = {
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
482 'pools': InteractRectUnion((
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
483 (444, 216, 125, 67),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
484 (44, 133, 74, 107),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
485 (485, 396, 97, 34),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
486 )),
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
487 }
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
488
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
489 INITIAL = 'pools'
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
490
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
491 def get_description(self):
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
492 return _("Coolant leaks disturbingly from the bulkheads.")
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
493
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
494 def interact_without(self):
765
2f1952748cdb merge i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 528 478
diff changeset
495 return Result(_("It's gooey"))
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
496
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
497 def interact_with_detergent_bottle(self, item):
816
eed75a1d50c4 Better Item handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 800
diff changeset
498 self.game.replace_inventory_item(item.name, 'full_detergent_bottle')
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents: 466
diff changeset
499 return Result(_("You scoop up some coolant and fill the bottle."))
353
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
500
b61dccc7fb42 Detergent + cryo fluid puzzle (currently triangular)
Stefano Rivera <stefano@rivera.za.net>
parents: 348
diff changeset
501
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
502 class CryoCompDetail(Scene):
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
503
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
504 FOLDER = "cryo"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
505 BACKGROUND = "comp_info_detail.png"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
506 NAME = "cryo_comp_detail"
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
507
597
c0e0b3d5730c Fix cryocomp.
Jeremy Thurgood <firxen@gmail.com>
parents: 595
diff changeset
508 def setup(self):
830
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
509 background = self.get_image(
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
510 self.FOLDER, self.BACKGROUND)
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
511 # Add the common text strings
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
512 bg = (0, 0, 0, 0)
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
513 fg = 'lightgreen'
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
514 font = 'DejaVuSans-Bold.ttf'
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
515 size = 18
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
516
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
517 background.blit(render_text(_("Info"),
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
518 font, 24, fg, bg, self.resource, (90, 25), False), (25, 60))
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
519 background.blit(render_text(_("Cryo Units Online: 2, 4"),
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
520 font, size, fg, bg, self.resource, (240, 30), False), (15, 120))
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
521 background.blit(render_text(_("Crew Active: 0"),
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
522 font, size, fg, bg, self.resource, (240, 30), False), (15, 170))
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
523 background.blit(render_text(_("Current Trip Time: 97558 days"),
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
524 font, size, fg, bg, self.resource, (340, 30), False), (15, 210))
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
525 background.blit(render_text(_("Expected Time of Arrival:"),
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
526 font, size, fg, bg, self.resource, (340, 30), False), (15, 240))
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
527
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
528 self._background_fixed = background.copy()
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
529 self._background_offline = background.copy()
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
530
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
531 self._background_fixed.blit(render_text(_("397 days"),
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
532 font, size, fg, bg, self.resource, (340, 30), False), (275, 240))
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
533
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
534 self._background_offline.blit(render_text(
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
535 _("<Error: Division by Zero Error>"),
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
536 font, size, fg, bg, self.resource, (340, 30), False), (275, 240))
433
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
537
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
538 def draw_background(self, surface):
603
3ce19d33b51f Rename state to game to not cause confusion with the other state
Neil Muller <neil@dip.sun.ac.za>
parents: 597
diff changeset
539 if self.game.scenes['engine'].get_data('engine online'):
433
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
540 surface.blit(self._background_fixed, self.OFFSET, None)
6b7b08d67233 Hook up fixed ETA screen
Neil Muller <neil@dip.sun.ac.za>
parents: 422
diff changeset
541 else:
830
a1c0c1078342 Convert cryo computer detail to use text
Neil Muller <neil@dip.sun.ac.za>
parents: 816
diff changeset
542 surface.blit(self._background_offline, self.OFFSET, None)
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
543
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
544
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
545 class CryoUnitWithCorpse(Scene):
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
546
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
547 FOLDER = "cryo"
127
9646e7c8bb97 Size detail window based on the Scene background image.
Jeremy Thurgood <firxen@gmail.com>
parents: 125
diff changeset
548 BACKGROUND = "cryo_unit_detail.png"
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
549 NAME = "cryo_detail"
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
550
592
4e9178215e75 Introduce .setup() for GameDeveloperGizmos.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 566
diff changeset
551 def setup(self):
125
d3ca34a664fd Some detail view and data cleanup.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
552 self.add_thing(TitaniumLegThing())
157
153dcb313057 Fill in more cryo room stuff
Neil Muller <neil@dip.sun.ac.za>
parents: 148
diff changeset
553 self.add_thing(PlaqueThing())
119
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
554
d5f7cccfdb6c Hook up "detail view" scenes.
Jeremy Thurgood <firxen@gmail.com>
parents: 118
diff changeset
555
28
0f25f7b9b37a Add loading of initial state.
Simon Cross <hodgestar+bzr@gmail.com>
parents:
diff changeset
556 SCENES = [Cryo]
189
c18ef647ffe6 Add detail view for cryo screen. Tweak animation
Neil Muller <neil@dip.sun.ac.za>
parents: 183
diff changeset
557 DETAIL_VIEWS = [CryoUnitWithCorpse, CryoCompDetail]