diff gamelib/scenes/map.py @ 132:686bb74a52f8

Map shows accessible areas.
author Jeremy Thurgood <firxen@gmail.com>
date Tue, 24 Aug 2010 19:22:01 +0200
parents 97c5ff0a05bb
children 0530547a131f
line wrap: on
line diff
--- a/gamelib/scenes/map.py	Tue Aug 24 18:52:52 2010 +0200
+++ b/gamelib/scenes/map.py	Tue Aug 24 19:22:01 2010 +0200
@@ -27,6 +27,10 @@
         self.add_thing(ToEngine())
         self.add_thing(ToMachine())
 
+    def enter(self):
+        for door_thing in self.things.values():
+            door_thing.check_dest()
+
 
 class DoorThing(Thing):
 
@@ -36,9 +40,16 @@
     def interact_without(self):
         """Go to destination."""
         if self.DEST in self.state.scenes:
-            self.state.set_current_scene('bridge')
+            self.state.set_current_scene(self.DEST)
             return Result("You head for the %s." % self.DEST)
 
+    def check_dest(self):
+        if self.DEST in self.state.scenes:
+            if self.state.scenes[self.DEST].get_data('accessible'):
+                self.set_interact('accessible')
+            else:
+                self.set_interact('inaccessible')
+
 
 class ToCryo(DoorThing):
     "Way to cryo room."
@@ -47,10 +58,11 @@
     DEST = "cryo"
 
     INTERACTS = {
-        "room": InteractText(100, 200, "To Cryo"),
+        "inaccessible": InteractText(100, 200, "To Cryo"),
+        "accessible": InteractText(100, 200, "To Cryo", (0, 127, 0)),
         }
 
-    INITIAL = "room"
+    INITIAL = "inaccessible"
 
 
 class ToBridge(DoorThing):
@@ -60,10 +72,11 @@
     DEST = "bridge"
 
     INTERACTS = {
-        "room": InteractText(300, 200, "To Bridge"),
+        "inaccessible": InteractText(300, 200, "To Bridge"),
+        "accessible": InteractText(300, 200, "To Bridge", (0, 127, 0)),
         }
 
-    INITIAL = "room"
+    INITIAL = "inaccessible"
 
 
 class ToMess(DoorThing):
@@ -73,23 +86,25 @@
     DEST = "mess"
 
     INTERACTS = {
-        "room": InteractText(100, 300, "To Mess"),
+        "inaccessible": InteractText(100, 300, "To Mess"),
+        "accessible": InteractText(100, 300, "To Mess", (0, 127, 0)),
         }
 
-    INITIAL = "room"
+    INITIAL = "inaccessible"
 
 
-class ToEngine(Thing):
+class ToEngine(DoorThing):
     "Way to engine room."
 
     NAME = "map.toengine"
     DEST = "engine"
 
     INTERACTS = {
-        "room": InteractText(300, 300, "To Engine"),
+        "inaccessible": InteractText(300, 300, "To Engine"),
+        "accessible": InteractText(300, 300, "To Engine", (0, 127, 0)),
         }
 
-    INITIAL = "room"
+    INITIAL = "inaccessible"
 
 
 class ToMachine(DoorThing):
@@ -99,10 +114,11 @@
     DEST = "machine"
 
     INTERACTS = {
-        "room": InteractText(100, 400, "To Machine"),
+        "inaccessible": InteractText(100, 400, "To Machine"),
+        "accessible": InteractText(100, 400, "To Machine", (0, 127, 0)),
         }
 
-    INITIAL = "room"
+    INITIAL = "inaccessible"
 
 
 SCENES = [Map]