X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Froaches.py;h=866e5ca25909d24a8bcaea0c9bcce4ebf73768de;hb=fe24fa626cccac70b327fcaf64065f20080641cc;hp=b708a88b9b0219f65bee7656b924362113cca6a8;hpb=359505e8ab4874f750103bcdc6222207bf52722a;p=koperkapel.git diff --git a/koperkapel/roaches.py b/koperkapel/roaches.py index b708a88..866e5ca 100644 --- a/koperkapel/roaches.py +++ b/koperkapel/roaches.py @@ -4,6 +4,7 @@ from pgzero.loaders import images from pygame.constants import BLEND_RGBA_MULT from .actors.animsurf import AnimatedSurfActor from .serums import roach_serum_color +from .util import safepath NAMES = [ "roupert", @@ -75,8 +76,8 @@ class RoachFactory: self.frames = 4 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)) + roach = images.load(safepath("roach%s/roach_%d") % (self.suffix, i + 1)) + eyes = images.load(safepath("roach%s/eyes_%d") % (self.suffix, i + 1)) if weapon is None: frame = roach.copy() frame.fill(color, None, BLEND_RGBA_MULT) @@ -88,8 +89,9 @@ class RoachFactory: frame.blit(eyes, (0, 0)) return frame - def assemble(self, roach_data, weapon=None): - color = roach_serum_color(roach_data) + def assemble(self, roach_data, color=None, weapon=None): + if not color: + color = roach_serum_color(roach_data) frames = [] frames = [ self.assemble_frame(i, color, roach_data, weapon) @@ -97,9 +99,39 @@ class RoachFactory: return AnimatedSurfActor(frames) +class RatFactory: + + def __init__(self, frames=4): + self.frames = 4 + + def assemble_frame(self, i): + roach = images.load(safepath("rat/rat_%d") % (i + 1)) + return roach + + def assemble(self): + frames = [self.assemble_frame(i) for i in range(self.frames)] + return AnimatedSurfActor(frames) + + +class RobotFactory: + + def __init__(self, frames=4): + self.frames = 4 + + def assemble_frame(self, i): + roach = images.load(safepath("vehicle_tiles/robot_%d") % (i + 1)) + return roach + + def assemble(self): + frames = [self.assemble_frame(i) for i in range(self.frames)] + return AnimatedSurfActor(frames) + + default_roaches = RoachFactory("") t32_roaches = RoachFactory("_32") t21_roaches = RoachFactory("_21") big_roaches = RoachFactory("_big") roaches_quartet = RoachFactory("_quartet") roaches_nonet = RoachFactory("_nonet") +default_rats = RatFactory() +default_robots = RobotFactory()