Mercurial > boomslang
changeset 350:125cb389ab90
Hook up poster. Add cameras to crew_quarters and bridge
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Sat, 28 Aug 2010 15:31:45 +0200 |
parents | 0cc6ee8f2827 |
children | 837728b3cbf4 |
files | Resources/images/bridge/camera_small.png gamelib/scenes/bridge.py gamelib/scenes/crew_quarters.py gamelib/scenes/scene_widgets.py |
diffstat | 4 files changed, 63 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/gamelib/scenes/bridge.py Sat Aug 28 15:26:30 2010 +0200 +++ b/gamelib/scenes/bridge.py Sat Aug 28 15:31:45 2010 +0200 @@ -11,7 +11,8 @@ from gamelib.scenes.scene_widgets import (Door, InteractText, InteractNoImage, InteractRectUnion, InteractImage, - InteractAnimated, GenericDescThing) + InteractAnimated, GenericDescThing, + BaseCamera) class Bridge(Scene): @@ -42,6 +43,7 @@ self.add_item(Superconductor('superconductor')) self.add_item(Stethoscope('stethoscope')) self.add_thing(ToMap()) + self.add_thing(MonitorCamera()) self.add_thing(MassageChair()) self.add_thing(MassageChairBase()) self.add_thing(StethoscopeThing()) @@ -352,6 +354,16 @@ return Result(soundfile='beep550.ogg') +class MonitorCamera(BaseCamera): + "A camera on the bridge" + + NAME = "bridge.camera" + + INTERACTS = { + 'camera' : InteractImage(33, 192, 'camera_small.png') + } + + class BridgeCompDetail(Scene): FOLDER = 'bridge'
--- a/gamelib/scenes/crew_quarters.py Sat Aug 28 15:26:30 2010 +0200 +++ b/gamelib/scenes/crew_quarters.py Sat Aug 28 15:31:45 2010 +0200 @@ -4,7 +4,8 @@ from gamelib.state import Scene, Item, Thing, Result from gamelib.scenes.scene_widgets import (Door, InteractText, InteractNoImage, InteractRectUnion, InteractImage, - InteractAnimated, GenericDescThing) + InteractAnimated, GenericDescThing, + BaseCamera) class CrewQuarters(Scene): @@ -25,6 +26,9 @@ self.add_thing(Safe()) self.add_item(Fishbowl('fishbowl')) self.add_item(DuctTape('duct_tape')) + self.add_item(EscherPoster('escher_poster')) + self.add_thing(PosterThing()) + self.add_thing(MonitorCamera()) self.add_thing(GenericDescThing('crew.plant', 1, "The plant is doing surprisingly well for centuries of neglect", ((624, 215, 61, 108),))) @@ -149,17 +153,42 @@ CURSOR = CursorSprite('duct_tape.png') -class SafeDetail(Scene): +class MonitorCamera(BaseCamera): + "A Camera pointing to JIM" + + NAME = 'crew.camera' + + INTERACTS = { + 'camera' : InteractImage(85, 97, 'camera_medium.png') + } + + +class PosterThing(Thing): + "A innocent poster on the wall" + + NAME = 'crew.poster' - FOLDER = 'crew_quarters' - BACKGROUND = None # TODO - NAME = 'safe_detail' + INTERACTS = { + 'poster': InteractImage(29, 166, 'triangle_poster.png'), + } + + INITIAL = 'poster' + + def interact_without(self): + self.state.add_inventory_item('escher_poster') + self.scene.remove_thing(self) + return Result("This poster will go nicely on your bedroom wall.") - SIZE = (300, 300) + def get_description(self): + return "A paradoxial poster hanges below the security camera" + - def __init__(self, state): - super(SafeDetail, self).__init__(state) +class EscherPoster(Item): + "A confusing poster to disable JIM" + + INVENTORY_IMAGE = "triangle_poster.png" + CURSOR = CursorSprite('triangle_poster.png') + NAME = "escher_poster" SCENES = [CrewQuarters] -DETAIL_VIEWS = [SafeDetail]
--- a/gamelib/scenes/scene_widgets.py Sat Aug 28 15:26:30 2010 +0200 +++ b/gamelib/scenes/scene_widgets.py Sat Aug 28 15:31:45 2010 +0200 @@ -177,3 +177,15 @@ "Waving that in the doorway does nothing. Try something else, perhaps?", ])) +class BaseCamera(Thing): + "Base class for the camera puzzles" + + INITIAL = 'camera' + + def get_description(self): + return "A security camera watches over the room" + + def interact_with_escher_poster(self, item): + # TODO + return Result("A very bad idea") +