init python: def genie_transform(trans, st, at): trans.xpos = genie_xpos trans.ypos = genie_ypos trans.zoom = genie_zoom trans.xzoom = genie_flip trans.offset = genie_offset return 0 layeredimage genie_stats: anchor (0.0, 1.0) always "characters/genie/base.webp" always "characters/genie/outfits/robes.webp" always "characters/genie/outfits/robes_beard.webp" # TODO: Add outfit support; Low priority layeredimage genie: anchor (0.0, 1.0) group hair: attribute nude "characters/genie/hair.webp" always "characters/genie/base.webp" group face: attribute base default Null() attribute grin "characters/genie/grin.webp" attribute angry "characters/genie/angry.webp" attribute smile "characters/genie/smile.webp" attribute open "characters/genie/open.webp" group outfit: attribute nude Null() attribute robes default "characters/genie/outfits/robes.webp" attribute santa "characters/genie/outfits/santa.webp" group beard multiple: attribute nude default "characters/genie/beard.webp" if_all ["nude"] attribute robes default "characters/genie/outfits/robes_beard.webp" if_all ["robes"] attribute santa_base default "characters/genie/outfits/santa_beard_base.webp" if_all ["santa", "base"] attribute santa_grin default "characters/genie/outfits/santa_beard_grin.webp" if_all ["santa", "grin"] attribute santa_angry default "characters/genie/outfits/santa_beard_angry.webp" if_all ["santa", "angry"] attribute santa_smile default "characters/genie/outfits/santa_beard_smile.webp" if_all ["santa", "smile"] attribute santa_open default "characters/genie/outfits/santa_beard_open.webp" if_all ["santa", "open"] at Transform(function=genie_transform) image side genie = LayeredImageProxy("genie")