X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Froaches.py;h=b39d189fe669c6571047973feb33f8b7b6e4eecc;hb=bc8a030300c8367c5412585ffe37c07ce2d7bcee;hp=904b8c7dfc9bdf927018cb200372080ce97ca635;hpb=0aef1803b665e1c1a50564c2c4ca8c3dd8ae4c2a;p=koperkapel.git diff --git a/koperkapel/roaches.py b/koperkapel/roaches.py index 904b8c7..b39d189 100644 --- a/koperkapel/roaches.py +++ b/koperkapel/roaches.py @@ -4,23 +4,18 @@ import random from pgzero.clock import each_tick from pgzero.loaders import images from pygame.constants import BLEND_RGBA_MULT -from .actors.surf import SurfActor +from .actors.orientatedsurf import OrientatedSurfActor +from .serums import roach_serum_color -ROACH_COLORS = { - "blue": (0, 0, 255, 255), - "green": (0, 255, 0, 255), - "purple": (255, 0, 255, 255), -} - -class RoachActor(SurfActor): +class RoachActor(OrientatedSurfActor): def __init__(self, frames): self._frames = frames self._frame = random.randint(0, len(frames) - 1) self._dt = 0 self._cycle_dt = 0.2 each_tick(self.update) - super().__init__(surf=frames[self._frame]) + super().__init__(surf=frames[self._frame], angle=0) def update(self, dt): self._dt += dt @@ -31,25 +26,31 @@ class RoachActor(SurfActor): self.surf = self._frames[self._frame] +class WorldRoach(object): + """A roach proxy with no properties for display on the game level.""" + + def __init__(self): + self.smart = False + self.strong = False + self.fast = False + + class RoachFactory: def __init__(self, suffix, frames=4): self.suffix = suffix self.frames = 4 - def roach_color(self, roach_data): - return random.choice(list(ROACH_COLORS.values())) - def assemble_frame(self, i, color, roach_data): roach = images.load("roach%s/roach_%d" % (self.suffix, i + 1)) eyes = images.load("roach%s/eyes_%d" % (self.suffix, i + 1)) - roach = roach.copy() - roach.fill(color, None, BLEND_RGBA_MULT) - roach.blit(eyes, (0, 0)) - return roach + frame = roach.copy() + frame.fill(color, None, BLEND_RGBA_MULT) + frame.blit(eyes, (0, 0)) + return frame def assemble(self, roach_data): - color = self.roach_color(roach_data) + color = roach_serum_color(roach_data) frames = [ self.assemble_frame(i, color, roach_data) for i in range(self.frames)] @@ -60,3 +61,5 @@ default_roaches = RoachFactory("") t32_roaches = RoachFactory("_32") t21_roaches = RoachFactory("_21") big_roaches = RoachFactory("_big") +roaches_quartet = RoachFactory("_quartet") +roaches_nonet = RoachFactory("_nonet")