Occasional sounds
[tabakrolletjie.git] / tabakrolletjie / enemies.py
index 76616ab515db1151f3ffaf86c3d007d957f025f8..0fe1619fc175f63b970deb882e8d1ed5a15e6e6a 100644 (file)
@@ -12,6 +12,7 @@ import pygame.locals as pgl
 
 from .constants import SCREEN_SIZE, MOULD_CATEGORY, OBSTACLE_CATEGORY
 from .loader import loader
+from .sound import sound
 
 MOULD_FILTER = pymunk.ShapeFilter(
     mask=MOULD_CATEGORY | OBSTACLE_CATEGORY,
@@ -43,11 +44,13 @@ class Mould(pymunk.Body):
         if not self._img:
             name = random.choice(
                 ('mouldA.png', 'mouldB.png', 'mouldC.png'))
-            self._img = loader.load_image("32", name)
+            size = "16" if self._age < 10 else "32" if self._age < 20 else "64"
+            self._img = loader.load_image(size, name)
         return self._img
 
     def tick(self, gamestate, space, moulds):
         """Grow and / or Die"""
+
         self._age += 1
 
         # we regain a health every tick, so we heal in the dark
@@ -86,6 +89,13 @@ class Mould(pymunk.Body):
                 child._health = self._health
                 moulds.append(child)
                 refresh = True
+                if random.randint(0, 10) < 2:
+                    sound.play_sound("mouth_pop_2a.ogg")
+
+        if self._age in (10, 20):
+            # Segment grows in size
+            refresh = True
+            self._img = None # invalidate cached image
 
         if self._age > 120:
             # We die of old age
@@ -119,7 +129,7 @@ class Boyd(object):
         for m in self._moulds:
             self._image.blit(m.get_image(),
                              m.pygame_pos(self._image), None,
-                             pgl.BLEND_RGBA_ADD)
+                             0)
 
     def tick(self, gamestate, space, lights):
         redraw = False