changeset 193:738608e90e9c

CloneableItem tweaks and a usable laser welder. zOMG!
author Jeremy Thurgood <firxen@gmail.com>
date Wed, 25 Aug 2010 21:59:26 +0200
parents b1f4262139e7
children 9887c68110d8
files gamelib/scenes/machine.py gamelib/state.py
diffstat 2 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/scenes/machine.py	Wed Aug 25 21:42:01 2010 +0200
+++ b/gamelib/scenes/machine.py	Wed Aug 25 21:59:26 2010 +0200
@@ -15,6 +15,7 @@
     def __init__(self, state):
         super(Machine, self).__init__(state)
         self.add_thing(ToMap())
+        self.add_thing(LaserWelder())
 
     def enter(self):
         return Result("The machine room is dark and forbidding.")
@@ -78,7 +79,9 @@
             return Result("The machine has enough cans to weld for the moment.")
 
     def get_description(self):
-        msg = "This is a Smith and Wesson 'zOMG' class high-precision laser welder."
+        if self.get_data('cans_in_place') == 0:
+            return "This is a Smith and Wesson 'zOMG' class high-precision laser welder."
+        msg = "The laser welder looks hungry, somehow."
         if self.get_data('cans_in_place') == 1:
             msg += " It currently contains an empty can."
         elif self.get_data('cans_in_place') == 2:
--- a/gamelib/state.py	Wed Aug 25 21:42:01 2010 +0200
+++ b/gamelib/state.py	Wed Aug 25 21:59:26 2010 +0200
@@ -518,7 +518,7 @@
         if item is None:
             return self.interact_without()
         else:
-            handler = getattr(self, 'interact_with_' + item.name, None)
+            handler = getattr(self, 'interact_with_' + item.tool_name, None)
             if handler is not None:
                 return handler(item)
             else:
@@ -553,6 +553,7 @@
 
     def __init__(self, name):
         self.name = name
+        self.tool_name = name
         self.inventory_image = get_image('items', self.INVENTORY_IMAGE)
         # TODO: needs cursor
 
@@ -561,7 +562,7 @@
 
     def interact(self, tool, state):
         handler = getattr(self, 'interact_with_' + tool.name, None)
-        inverse_handler = getattr(tool, 'interact_with_' + self.name, None)
+        inverse_handler = getattr(tool, 'interact_with_' + self.tool_name, None)
         if handler is not None:
             return handler(tool, state)
         elif inverse_handler is not None:
@@ -580,3 +581,4 @@
         my_count = CloneableItem._counter
         CloneableItem._counter += 1
         super(CloneableItem, self).__init__("%s.%s" % (name, my_count))
+        self.tool_name = name