diff gamelib/scenes/map.py @ 131:97c5ff0a05bb

Hook up map.
author Simon Cross <hodgestar+bzr@gmail.com>
date Tue, 24 Aug 2010 18:52:52 +0200
parents 11afefc4aeaf
children 686bb74a52f8
line wrap: on
line diff
--- a/gamelib/scenes/map.py	Tue Aug 24 18:38:44 2010 +0200
+++ b/gamelib/scenes/map.py	Tue Aug 24 18:52:52 2010 +0200
@@ -7,7 +7,7 @@
    Many parts of the ship are derelict and inaccessible.
    """
 
-from gamelib.state import Scene, Item, Thing, InteractText
+from gamelib.state import Scene, Item, Thing, InteractText, Result
 
 
 class Map(Scene):
@@ -28,10 +28,23 @@
         self.add_thing(ToMachine())
 
 
-class ToCryo(Thing):
+class DoorThing(Thing):
+
+    # name of destination
+    DEST = None
+
+    def interact_without(self):
+        """Go to destination."""
+        if self.DEST in self.state.scenes:
+            self.state.set_current_scene('bridge')
+            return Result("You head for the %s." % self.DEST)
+
+
+class ToCryo(DoorThing):
     "Way to cryo room."
 
     NAME = "map.tocryo"
+    DEST = "cryo"
 
     INTERACTS = {
         "room": InteractText(100, 200, "To Cryo"),
@@ -40,10 +53,11 @@
     INITIAL = "room"
 
 
-class ToBridge(Thing):
+class ToBridge(DoorThing):
     "Way to bridge room."
 
     NAME = "map.tobridge"
+    DEST = "bridge"
 
     INTERACTS = {
         "room": InteractText(300, 200, "To Bridge"),
@@ -52,10 +66,11 @@
     INITIAL = "room"
 
 
-class ToMess(Thing):
+class ToMess(DoorThing):
     "Way to cryo room."
 
     NAME = "map.tomess"
+    DEST = "mess"
 
     INTERACTS = {
         "room": InteractText(100, 300, "To Mess"),
@@ -68,6 +83,7 @@
     "Way to engine room."
 
     NAME = "map.toengine"
+    DEST = "engine"
 
     INTERACTS = {
         "room": InteractText(300, 300, "To Engine"),
@@ -76,10 +92,11 @@
     INITIAL = "room"
 
 
-class ToMachine(Thing):
+class ToMachine(DoorThing):
     "Way to machine room."
 
     NAME = "map.tomachine"
+    DEST = "machine"
 
     INTERACTS = {
         "room": InteractText(100, 400, "To Machine"),