diff gamelib/scenes/crew_quarters.py @ 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 e1cae2b61443
children bfb6c682b4fb
line wrap: on
line diff
--- 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]