Add sound parameter to weapon class
[koperkapel.git] / koperkapel / weapons.py
index d09c570b9a33d04e6b7ee3f44d00d3a8f6553730..0050879b068b4b22d6a7903528d4f59cfb269f6a 100644 (file)
@@ -2,22 +2,24 @@
 
 from pgzero.loaders import images
 from .actors.animsurf import AnimatedSurfActor
+from .util import safepath
 
 
 class Weapon:
     def __init__(self, name, damage, image_name=None, bullet_range=0,
-                 can_tape=True, frames=("_1", "_2")):
+                 can_tape=True, frames=("_1",), sound=None):
         self.name = name
         self.image_name = image_name or name
         self.frames = frames
         self.damage = damage
         self.bullet_range = bullet_range
         self.can_tape = can_tape
+        self.sound = sound
 
 
 WEAPONS = [
     Weapon("spit", damage=1, bullet_range=2, can_tape=False,
-           image_name="blank", frames=("",)),
+           image_name="blank", frames=("",), sound="fire_spit"),
     Weapon("butter_knife", damage=2),
     Weapon("crowbar", damage=4),
     Weapon("gun", damage=4, bullet_range=4),
@@ -35,10 +37,11 @@ class WeaponActor(AnimatedSurfActor):
 class WeaponFactory:
 
     def assemble_frame(self, suffix, weapon, tape):
-        surf = images.load("weapons/%s%s" % (weapon.image_name, suffix))
+        surf = images.load(safepath("weapons/%s%s")
+                            % (weapon.image_name, suffix))
         frame = surf.copy()
         if tape:
-            tape_surf = images.load("weapons/tape")
+            tape_surf = images.load(safepath("weapons/tape"))
             frame.blit(tape_surf, (0, 0))
         return frame