# HG changeset patch # User Jeremy Thurgood # Date 1282766366 -7200 # Node ID 738608e90e9c8b6bcdf7303331011712fed27588 # Parent b1f4262139e7e00a317cda1413533fd6b008d005 CloneableItem tweaks and a usable laser welder. zOMG! diff -r b1f4262139e7 -r 738608e90e9c gamelib/scenes/machine.py --- 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: diff -r b1f4262139e7 -r 738608e90e9c gamelib/state.py --- 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