init python: class DollCum(DollMethods): zorder_cum = 100 def __init__(self, obj): self.char = obj self.name = self.char.name self.imagepath = "characters/{}/cum/".format(self.name) self.cum = dict((k, None) for k in {"hair", "face", "breasts", "body", "crotch", "pussy", "legs"}) def build_image(self): sprites = tuple("{}{}/{}.webp".format(self.imagepath, k, v) for k, v in self.cum.iteritems() if v != None) return sprites def get_skin(self): return ["{}{}/{}_skin.webp".format(self.imagepath, k, v) for k, v in self.cum.iteritems() if renpy.loadable("{}{}/{}_skin.webp".format(self.imagepath, k, v))] def set_cum(self, *args, **kwargs): """Takes keyword argument(s) containing string name(s) of cum layers to apply or None. Returns True if image is changed.""" changed = False if args: for k, v in self.cum.iteritems(): if v != args[0]: self.cum[k] = args[0] changed = True for arg, value in kwargs.iteritems(): if str(arg) != value: self.cum[str(arg)] = value changed = True if changed: self.rebuild_image() return changed def set_pose(self, pose): if pose is None: self.imagepath = "characters/{}/cum/".format(self.name) else: self.imagepath = "characters/{}/poses/{}/cum/".format(self.name, pose) self.rebuild_image() return