diff gamelib/scenes/bridge.py @ 759:386475464202 pyntnclick

Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 26 Jan 2013 13:00:31 +0200
parents b9504e6ecde1
children a8510f4e2ea1 43b49f1de828
line wrap: on
line diff
--- a/gamelib/scenes/bridge.py	Sat Jan 26 12:56:21 2013 +0200
+++ b/gamelib/scenes/bridge.py	Sat Jan 26 13:00:31 2013 +0200
@@ -329,6 +329,10 @@
         if self.scene.get_data('ai panel') == 'closed':
             return "The sign reads 'Warning: Authorized Techinicians Only'."
 
+    def select_interact(self):
+        status = self.get_data('ai panel')
+        return status or self.INITIAL
+
     def interact_without(self):
         ai_status = self.state.get_jim_state()
         if ai_status == 'online':
@@ -339,7 +343,7 @@
         elif self.scene.get_data('ai panel') == 'open':
             self.scene.set_data('ai panel', 'broken')
             self.state.break_ai()
-            self.set_interact('broken')
+            self.set_interact()
             return Result("You unplug various important-looking wires.")
 
     def interact_with_machete(self, item):
@@ -348,12 +352,12 @@
             return self.interact_default(item)
         elif self.scene.get_data('ai panel') == 'closed':
             self.scene.set_data('ai panel', 'open')
-            self.set_interact('open')
+            self.set_interact()
             return Result("Using the machete, you lever the panel off.")
         elif self.scene.get_data('ai panel') == 'open':
             self.scene.set_data('ai panel', 'broken')
             self.state.break_ai()
-            self.set_interact('broken')
+            self.set_interact()
             return Result("You smash various delicate components with"
                           " the machete.")
 
@@ -451,11 +455,12 @@
         # set debugging higlight color for when DEBUG is on.
         self._interact_hilight_color = Color(THECOLORS.keys()[number])
         r = Rect(rect)
+        # We dynamically generate the interact rect here.
         self.interacts = {}
         self.interacts['line'] = InteractNoImage(r.x, r.y, r.w, r.h)
         # Whether JIM blocks this
         self.ai_blocked = ai_blocked
-        self.set_interact('line')
+        self.set_interact()
 
     def is_interactive(self, tool=None):
         return self.game.detail_views[self.COMPUTER].get_data('tab') == 'nav'