Play weapon sounds when firing.
[koperkapel.git] / koperkapel / weapons.py
index d2213f6144a4e8f9b98ebf8e0e5611807b6a8e6a..ee83eb816c6eb5c9295db74c05fb78199d506e56 100644 (file)
@@ -18,6 +18,10 @@ class Weapon:
         if sound:
             self.sound = sounds.load(sound)
 
+    def play_sound(self):
+        if self.sound:
+            self.sound.play()
+
 
 WEAPONS = [
     Weapon("spit", damage=1, bullet_range=2, can_tape=False,
@@ -30,6 +34,10 @@ WEAPONS = [
 WEAPON_LOOKUP = {w.name: w for w in WEAPONS}
 
 
+def weapon_by_name(weapon_name):
+    return WEAPON_LOOKUP[weapon_name]
+
+
 class WeaponActor(AnimatedSurfActor):
     def __init__(self, weapon, **kw):
         super().__init__(**kw)
@@ -40,7 +48,7 @@ class WeaponFactory:
 
     def assemble_frame(self, suffix, weapon, tape):
         surf = images.load(safepath("weapons/%s%s")
-                            % (weapon.image_name, suffix))
+                           % (weapon.image_name, suffix))
         frame = surf.copy()
         if tape:
             tape_surf = images.load(safepath("weapons/tape"))
@@ -48,7 +56,7 @@ class WeaponFactory:
         return frame
 
     def assemble(self, weapon_name, tape=False):
-        weapon = WEAPON_LOOKUP[weapon_name]
+        weapon = weapon_by_name(weapon_name)
         tape = tape and weapon.can_tape
         frames = [
             self.assemble_frame(suffix, weapon, tape)