changeset 296:15b2be883a40

Ancient and honorable tea ceremony.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 08 Apr 2011 22:29:49 +0200
parents b5ce2c7f4c60
children 2844edb6c1cc
files data/game.json skaapsteker/sprites/base.py skaapsteker/sprites/items.py skaapsteker/sprites/player.py
diffstat 4 files changed, 37 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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 }
     },
--- 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):
--- 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'
--- 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)