1 """ Tools for dealing with weapons. """
3 from pgzero.loaders import images
4 from .actors.surf import SurfActor
8 def __init__(self, name, damage, image_name=None, bullet_range=0,
11 self.image_name = image_name or name
13 self.bullet_range = bullet_range
14 self.can_tape = can_tape
18 Weapon("spit", damage=1, bullet_range=2, can_tape=False,
20 Weapon("butter_knife", damage=2),
21 Weapon("crowbar", damage=4),
22 Weapon("gun", damage=4, bullet_range=4),
25 WEAPON_LOOKUP = {w.name: w for w in WEAPONS}
28 class WeaponActor(SurfActor):
29 def __init__(self, weapon, **kw):
30 super().__init__(**kw)
36 def assemble(self, weapon_name, tape=False):
37 weapon = WEAPON_LOOKUP[weapon_name]
38 surf = images.load("weapons/%s" % (weapon.image_name,))
40 if tape and weapon.can_tape:
41 tape_surf = images.load("weapons/tape")
42 surf.blit(tape_surf, (0, 0))
43 return WeaponActor(weapon, surf=surf)
46 default_weapons = WeaponFactory()