diff gamelib/state.py @ 166:0db92b3b5833

Add inventory interactions
author Neil Muller <neil@dip.sun.ac.za>
date Wed, 25 Aug 2010 12:03:08 +0200
parents 5184d30669b5
children 5845a3ed4dad
line wrap: on
line diff
--- a/gamelib/state.py	Wed Aug 25 11:19:30 2010 +0200
+++ b/gamelib/state.py	Wed Aug 25 12:03:08 2010 +0200
@@ -551,3 +551,16 @@
     def get_inventory_image(self):
         return self.inventory_image
 
+    def interact(self, tool):
+        handler = getattr(self, 'interact_with_' + tool.name, None)
+        inverse_handler = getattr(tool, 'interact_with_' + self.name, None)
+        if handler is not None:
+            return handler(tool)
+        elif inverse_handler is not None:
+            return inverse_handler(self)
+        else:
+            return self.interact_default(tool)
+
+    def interact_default(self, tool):
+        return Result("That doesn't do anything useful")
+