# HG changeset patch # User Jeremy Thurgood # Date 1302294589 -7200 # Node ID 15b2be883a402999f3b65ab2bf347a6b8adacab4 # Parent b5ce2c7f4c6096e237d91463255917b89b6a40bc Ancient and honorable tea ceremony. diff -r b5ce2c7f4c60 -r 15b2be883a40 data/game.json --- a/data/game.json Fri Apr 08 22:13:28 2011 +0200 +++ b/data/game.json Fri Apr 08 22:29:49 2011 +0200 @@ -22,7 +22,7 @@ "items": { "tealeaf": { "type": "TeaLeaf", "level": "temple", "pos": [1, 7] }, "teacup": { "type": "TeaCup", "level": "temple", "pos": [18, 10] }, - "teapot": { "type": "TeaPot", "level": "temple", "pos": [13, 2] }, + "teapot": { "type": "TeaPot", "level": "temple", "pos": [13, 2], "brewed": false }, "teacupfull": { "type": "TeaCupFull", "level": "_limbo", "pos": [0, 0] }, "vase": { "type": "Vase", "level": "geisha_room", "pos": [1, 3], "broken": false } }, diff -r b5ce2c7f4c60 -r 15b2be883a40 skaapsteker/sprites/base.py --- a/skaapsteker/sprites/base.py Fri Apr 08 22:13:28 2011 +0200 +++ b/skaapsteker/sprites/base.py Fri Apr 08 22:29:49 2011 +0200 @@ -231,6 +231,7 @@ def setup(self, name, world): self.name = name self.world = world + self.item_state = getattr(self.world.items, self.name) def get_debug_color(self): diff -r b5ce2c7f4c60 -r 15b2be883a40 skaapsteker/sprites/items.py --- a/skaapsteker/sprites/items.py Fri Apr 08 22:13:28 2011 +0200 +++ b/skaapsteker/sprites/items.py Fri Apr 08 22:29:49 2011 +0200 @@ -17,6 +17,24 @@ image_file = 'teapot.png' portable = False + def setup(self, brewed, **opts): + super(TeaPot, self).setup(**opts) + + + def player_action(self, player): + if player.has_item('tealeaf'): + self.item_state.brewed = True + player.discard_item() + return + if player.has_item('teacup'): + if self.item_state.brewed: + player.discard_item() + player.take_item_by_name('teacupfull') + self.item_state.brewed = False + else: + print "Sadly, the teapot is empty." + + class Vase(Item): image_file = 'dummy.png' diff -r b5ce2c7f4c60 -r 15b2be883a40 skaapsteker/sprites/player.py --- a/skaapsteker/sprites/player.py Fri Apr 08 22:13:28 2011 +0200 +++ b/skaapsteker/sprites/player.py Fri Apr 08 22:29:49 2011 +0200 @@ -293,11 +293,16 @@ self._image_dict[sprint_key].append(sprint_image) + + def discard_item(self): + self.the_world.fox.item = None + + def drop_item(self): my_item = self.the_world.fox.item if my_item is None: return - self.the_world.fox.item = None + self.discard_item() world_item = getattr(self.the_world.items, my_item) world_item.level = self.the_world.fox.level world_item.pos = [a/b for a, b in zip(self.rect.center, TILE_SIZE)] @@ -309,12 +314,20 @@ def take_item(self, item): - self.drop_item() - getattr(self.the_world.items, item.name).level = "_limbo" - self.the_world.fox.item = item.name + self.take_item_by_name(item.name) item.kill() print "took", item + def take_item_by_name(self, item_name): + self.drop_item() + getattr(self.the_world.items, item_name).level = "_limbo" + self.the_world.fox.item = item_name + + + def has_item(self, item): + return self.the_world.fox.item == item + + def add_actionable(self, actionable): self._touching_actionables.append(actionable)