X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fserums.py;h=f80163932538b22e83db90ac3875eedd0aed760f;hb=HEAD;hp=40ebfbac59f11950847f662e80906e6107e6c4a7;hpb=960200f15d941b367913f0821d7fac8ac5705707;p=koperkapel.git diff --git a/koperkapel/serums.py b/koperkapel/serums.py index 40ebfba..f801639 100644 --- a/koperkapel/serums.py +++ b/koperkapel/serums.py @@ -1,8 +1,11 @@ """ Tools for creating serum actors. """ +import random from pgzero.loaders import images from pygame.constants import BLEND_RGBA_MULT +from pygame.transform import rotate from .actors.surf import SurfActor +from .util import safepath SERUMS = ["smart", "fast", "strong"] @@ -16,6 +19,7 @@ SERUM_OVERLAY_COLORS = { "smart": (0, 0, 255, 255), # blue "fast": (0, 255, 0, 255), # green "strong": (255, 0, 255, 255), # purple + "health": (255, 0, 0, 255), # red "none": (170, 68, 0, 255), # brown } @@ -38,10 +42,20 @@ class SerumFactory: def __init__(self, suffix): self.suffix = suffix + def assemble_icon(self, name, color=None): + assert name in SERUMS + color = color or name + serum_icon = images.load(safepath("serum%s/%s") % ( + self.suffix, SERUM_TILENAME_MAP[name],)) + frame = serum_icon.copy() + frame.fill(SERUM_OVERLAY_COLORS[color], None, BLEND_RGBA_MULT) + return frame + def assemble(self, name): assert name in SERUMS - puddle = images.load("serum%s/serum" % (self.suffix,)) - serum_icon = images.load("serum%s/%s" % ( + puddle = images.load(safepath("serum%s/serum") % (self.suffix,)) + puddle = rotate(puddle, 90 * random.randint(0, 3)) + serum_icon = images.load(safepath("serum%s/%s") % ( self.suffix, SERUM_TILENAME_MAP[name],)) frame = puddle.copy() frame.fill(SERUM_OVERLAY_COLORS[name], None, BLEND_RGBA_MULT)