1 """ Tools for creating serum actors. """
4 from pgzero.loaders import images
5 from pygame.constants import BLEND_RGBA_MULT
6 from pygame.transform import rotate
7 from .actors.surf import SurfActor
9 SERUMS = ["smart", "fast", "strong"]
11 SERUM_TILENAME_MAP = {
12 "smart": "intelligence",
17 SERUM_OVERLAY_COLORS = {
18 "smart": (0, 0, 255, 255), # blue
19 "fast": (0, 255, 0, 255), # green
20 "strong": (255, 0, 255, 255), # purple
21 "none": (170, 68, 0, 255), # brown
25 def roach_serum_color(roach):
26 for serum_name in SERUMS:
27 if getattr(roach, serum_name):
28 return SERUM_OVERLAY_COLORS[serum_name]
29 return SERUM_OVERLAY_COLORS["none"]
32 def roach_is_serumless(roach):
33 for serum_name in SERUMS:
34 if getattr(roach, serum_name):
40 def __init__(self, suffix):
43 def assemble(self, name):
45 puddle = images.load("serum%s/serum" % (self.suffix,))
46 puddle = rotate(puddle, 90 * random.randint(0, 3))
47 serum_icon = images.load("serum%s/%s" % (
48 self.suffix, SERUM_TILENAME_MAP[name],))
50 frame.fill(SERUM_OVERLAY_COLORS[name], None, BLEND_RGBA_MULT)
51 frame.blit(serum_icon, (0, 0))
52 return SurfActor(frame)
55 default_serums = SerumFactory("")
56 big_serums = SerumFactory("_big")