Mercurial > pyntnclick
diff gamelib/scenes/engine.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 | 2f74064bc779 |
children | a8510f4e2ea1 43b49f1de828 |
line wrap: on
line diff
--- a/gamelib/scenes/engine.py Sat Jan 26 12:56:21 2013 +0200 +++ b/gamelib/scenes/engine.py Sat Jan 26 13:00:31 2013 +0200 @@ -207,6 +207,13 @@ else: return "A working superconductor." + def select_interact(self): + if not self.get_data('present'): + return 'removed' + if self.get_data('working'): + return 'fixed' + return self.INITIAL + def interact_without(self): if self.get_data('present') and not self.get_data('working'): return Result("It's wedged in there pretty firmly, it won't" @@ -217,8 +224,8 @@ def interact_with_machete(self, item): if self.get_data('present') and not self.get_data('working'): - self.set_interact('removed') self.set_data('present', False) + self.set_interact() return Result("With leverage, the burned-out superconductor" " snaps out. You discard it.") @@ -234,9 +241,9 @@ def interact_with_taped_superconductor(self, item): if not self.get_data('present'): - self.set_interact('fixed') self.set_data('present', True) self.set_data('working', True) + self.set_interact() self.game.remove_inventory_item(item.name) results = [Result("The chair's superconductor looks over-specced " "for this job, but it should work.")] @@ -261,6 +268,11 @@ 'filled': False, } + def select_interact(self): + if self.get_data('filled'): + return 'full' + return self.INITIAL + def get_description(self): if not self.get_data('filled'): return "Those are coolant reservoirs. They look empty." @@ -296,7 +308,7 @@ " container connected to a cracked pipe would be a waste.") self.game.remove_inventory_item(item.name) self.scene.things['engine.cryo_containers'].set_data('filled', True) - self.scene.things['engine.cryo_containers'].set_interact('full') + self.scene.things['engine.cryo_containers'].set_interact() results = [Result("You fill the reservoirs. " "The detergent bottle was just big enough, which " "is handy, because it's sprung a leak.")] @@ -489,13 +501,18 @@ return "The pipe looks cracked and won't hold" \ " fluid until it's fixed." + def select_interact(self): + if self.get_data('fixed'): + return 'taped' + return self.INITIAL + def interact_with_duct_tape(self, item): if self.get_data('fixed'): return Result("The duct tape already there appears to be " "sufficient.") else: self.set_data('fixed', True) - self.set_interact('taped') + self.set_interact() return Result("You apply your trusty duct tape to the " "creak, sealing it.")