projects
/
koperkapel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Melee weapons now do damage.
[koperkapel.git]
/
koperkapel
/
weapons.py
diff --git
a/koperkapel/weapons.py
b/koperkapel/weapons.py
index da8c4c3712b6ccafeca80fed1c17bb929c9384ea..3ef987919c9820b4bef15792b759376fc6f20914 100644
(file)
--- a/
koperkapel/weapons.py
+++ b/
koperkapel/weapons.py
@@
-2,30
+2,36
@@
from pgzero.loaders import images
from .actors.animsurf import AnimatedSurfActor
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,
class Weapon:
def __init__(self, name, damage, image_name=None, bullet_range=0,
- can_tape=True, frames=("_1",)):
+ 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.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,
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("butter_knife", damage=2),
Weapon("crowbar", damage=4),
- Weapon("gun", damage=4, bullet_range=4),
+ Weapon("gun", damage=4, bullet_range=4
, sound='gun_fire'
),
]
WEAPON_LOOKUP = {w.name: w for w in 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)
class WeaponActor(AnimatedSurfActor):
def __init__(self, weapon, **kw):
super().__init__(**kw)
@@
-35,15
+41,16
@@
class WeaponActor(AnimatedSurfActor):
class WeaponFactory:
def assemble_frame(self, suffix, weapon, tape):
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:
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
def assemble(self, weapon_name, tape=False):
frame.blit(tape_surf, (0, 0))
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)
tape = tape and weapon.can_tape
frames = [
self.assemble_frame(suffix, weapon, tape)