From 94041e07b1111324d2666a1f3aa2ea5cdbdbb805 Mon Sep 17 00:00:00 2001 From: Simon Cross Date: Sat, 5 Mar 2016 20:45:29 +0200 Subject: [PATCH] Show weapons when walking. --- koperkapel/roaches.py | 17 ++++++++++++----- koperkapel/vehicles/walking.py | 10 +++++++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/koperkapel/roaches.py b/koperkapel/roaches.py index da362a3..b708a88 100644 --- a/koperkapel/roaches.py +++ b/koperkapel/roaches.py @@ -74,18 +74,25 @@ class RoachFactory: self.suffix = suffix self.frames = 4 - def assemble_frame(self, i, color, roach_data): + def assemble_frame(self, i, color, roach_data, weapon=None): roach = images.load("roach%s/roach_%d" % (self.suffix, i + 1)) eyes = images.load("roach%s/eyes_%d" % (self.suffix, i + 1)) - frame = roach.copy() - frame.fill(color, None, BLEND_RGBA_MULT) + if weapon is None: + frame = roach.copy() + frame.fill(color, None, BLEND_RGBA_MULT) + else: + frame = weapon.surf.copy() + roach = roach.copy() + roach.fill(color, None, BLEND_RGBA_MULT) + frame.blit(roach, (0, 0)) frame.blit(eyes, (0, 0)) return frame - def assemble(self, roach_data): + def assemble(self, roach_data, weapon=None): color = roach_serum_color(roach_data) + frames = [] frames = [ - self.assemble_frame(i, color, roach_data) + self.assemble_frame(i, color, roach_data, weapon) for i in range(self.frames)] return AnimatedSurfActor(frames) diff --git a/koperkapel/vehicles/walking.py b/koperkapel/vehicles/walking.py index f7b73aa..8061f2c 100644 --- a/koperkapel/vehicles/walking.py +++ b/koperkapel/vehicles/walking.py @@ -3,26 +3,30 @@ from .base import Vehicle, circle_of_seats from ..roaches import ( default_roaches, roaches_quartet, roaches_nonet, WorldRoach) +from ..weapons import default_weapons class Walking(Vehicle): vehicle_type = "walking" + weapons_taped_on = False def init_seats(self): return circle_of_seats(6, vehicle=self) def get_avatar(self, world): + weapon = default_weapons.assemble( + world.weapons.current, tape=self.weapons_taped_on) num_roaches = len(world.roaches) roach = WorldRoach() if num_roaches == 1: # Return a single large roach - avatar = default_roaches.assemble(roach) + avatar = default_roaches.assemble(roach, weapon) avatar.anchor = (0, 0) elif num_roaches < 6: - avatar = roaches_quartet.assemble(roach) + avatar = roaches_quartet.assemble(roach, weapon) avatar.anchor = (0, 0) else: - avatar = roaches_nonet.assemble(roach) + avatar = roaches_nonet.assemble(roach, weapon) avatar.anchor = (0, 0) return avatar -- 2.34.1