changeset 442:a084af91d5dc

Make breakable items break
author Neil Muller <drnlmuller@gmail.com>
date Sat, 09 Apr 2011 19:41:20 +0200
parents f3ccb00df6a4
children d959426b3fa1
files skaapsteker/sprites/items.py skaapsteker/sprites/player.py
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/skaapsteker/sprites/items.py	Sat Apr 09 19:41:20 2011 +0200
+++ b/skaapsteker/sprites/items.py	Sat Apr 09 19:41:20 2011 +0200
@@ -1,5 +1,6 @@
 from .. import engine
-from .base import Item
+from .base import Item, PC_LAYER, PROJECTILE_LAYER
+
 
 
 def notify(text):
@@ -10,6 +11,8 @@
     whole_image_file = None
     broken_image_file = None
 
+    collides_with = set([PC_LAYER, PROJECTILE_LAYER])
+
     def setup(self, broken, **opts):
         super(BreakableItem, self).setup(**opts)
         self.broken = broken
@@ -25,6 +28,8 @@
         self.broken = True
         self.setup_image_data(self._starting_tile_pos)
 
+    def damage(self, damage):
+        self.smash()
 
 
 ##################################################
--- a/skaapsteker/sprites/player.py	Sat Apr 09 19:41:20 2011 +0200
+++ b/skaapsteker/sprites/player.py	Sat Apr 09 19:41:20 2011 +0200
@@ -5,6 +5,7 @@
 
 from ..sprites.base import find_sprite, Monster, TILE_SIZE, PC_LAYER, MONSTER_LAYER, PROJECTILE_LAYER
 from ..sprites.projectiles import Fireball, Lightning
+from ..sprites.items import BreakableItem
 from ..physics import Sprite
 from ..constants import Layers, FoxHud, DOUBLE_TAP_TIME
 from ..data import get_files, load_image
@@ -359,7 +360,7 @@
             pos = pygame.Rect(self.rect.midleft, (0, 0))
         else:
             pos = pygame.Rect(self.rect.midright, (0, 0))
-        projectile = cls(pos, direction=self.facing, hits=Monster, source=self)
+        projectile = cls(pos, direction=self.facing, hits=(Monster, BreakableItem), source=self)
         AddSpriteEvent.post(projectile)
 
     def _fireball_attack(self):