Merge branch 'Xmas' into dev

This commit is contained in:
LoafyLemon 2022-12-28 19:09:28 +00:00
commit 4d5fb8869b
26 changed files with 149 additions and 27 deletions

Binary file not shown.

BIN
game/characters/tonks/clothes/bra/santa_bra/0.webp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/characters/tonks/clothes/bra/santa_bra/outline.webp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/characters/tonks/clothes/bra/santa_bra/skin.webp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/characters/tonks/clothes/panties/santa_panties/0.webp (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
game/characters/tonks/clothes/top/santa_top/0.webp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/characters/tonks/clothes/top/santa_top/0_zorder_8.webp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/characters/tonks/clothes/top/santa_top/1.webp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/characters/tonks/clothes/top/santa_top/1_zorder_8.webp (Stored with Git LFS) Normal file

Binary file not shown.

BIN
game/characters/tonks/clothes/top/santa_top/outline.webp (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
game/characters/tonks/clothes/top/santa_top/skin.webp (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -10,25 +10,11 @@ init python:
layeredimage genie_stats: layeredimage genie_stats:
anchor (0.0, 1.0) anchor (0.0, 1.0)
group hair:
attribute nude "characters/genie/hair.webp"
group fixes:
attribute robes "characters/genie/robes_fix.webp"
always "characters/genie/base.webp" always "characters/genie/base.webp"
always "characters/genie/outfits/robes.webp"
always "characters/genie/outfits/robes_beard.webp"
group face: # TODO: Add outfit support; Low priority
attribute base 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/robes.webp"
layeredimage genie: layeredimage genie:
anchor (0.0, 1.0) anchor (0.0, 1.0)

View File

@ -240,6 +240,16 @@ default ton_outfit_elf = DollOutfit([ton_hair_base_new, ton_makeup3_elf_ears, to
default ton_outfit_ribbon = DollOutfit([ton_hair_base_new, ton_neckwear_choker1, ton_bra_ribbon, ton_panties_ribbon]) default ton_outfit_ribbon = DollOutfit([ton_hair_base_new, ton_neckwear_choker1, ton_bra_ribbon, ton_panties_ribbon])
default ton_outfit_xmas = DollOutfit([ton_hair_base_new, ton_hat_antlers, ton_earring_bells, ton_neckwear_bell1, ton_bra_pasties2, ton_bottom_xmas, ton_gloves_xmas, ton_stockings_xmas], addons=[ton_piercing1_nipple_bells, ton_bra_pasties2]) default ton_outfit_xmas = DollOutfit([ton_hair_base_new, ton_hat_antlers, ton_earring_bells, ton_neckwear_bell1, ton_bra_pasties2, ton_bottom_xmas, ton_gloves_xmas, ton_stockings_xmas], addons=[ton_piercing1_nipple_bells, ton_bra_pasties2])
##################
## Santa Outfit ##
##################
default ton_bra_santa = DollCloth("tonks", ("upper undergarment", "bras"), "bra", "santa_bra", [[161, 55, 48, 255]])
default ton_top_santa = DollCloth("tonks", ("upper body", "shirts"), "top", "santa_top", [[161, 55, 48, 255], [255, 255, 255, 255]])
default ton_panties_santa = DollCloth("tonks", ("lower undergarment", "panties"), "panties", "santa_panties", [[161, 55, 48, 255]])
default ton_outfit_santa = DollOutfit([ton_hair_base_new, ton_panties_santa, ton_top_santa, ton_bra_santa])
################### ###################
## Lady D Outfit ## ## Lady D Outfit ##
################### ###################

View File

@ -484,14 +484,14 @@ label ton_reaction_equip_outfit(item):
ton "You sure you'd want that?" ("soft", "base", "raised", "mid") ton "You sure you'd want that?" ("soft", "base", "raised", "mid")
gen "Of course!" ("base", xpos="far_left", ypos="head") gen "Of course!" ("base", xpos="far_left", ypos="head")
ton "But what if you've been to naughty this year for you to unwrap me?" ("soft", "narrow", "raised", "mid") ton "But what if you've been to naughty this year for you to unwrap me?" ("soft", "narrow", "raised", "mid")
gen "I'll just have you unwrap yourself in thas case." ("base", xpos="far_left", ypos="head") gen "I'll just have you unwrap yourself in that case." ("base", xpos="far_left", ypos="head")
ton "*Hmph*... That's cheating..." ("soft", "base", "base", "R") ton "*Hmph*... That's cheating..." ("soft", "base", "base", "R")
################## ##################
### Xmas Outfit ## ### Xmas Outfit ##
################## ##################
elif item == ton_outfit_xmas: elif item == ton_outfit_xmas:
gen "Miss Tonks, you know what the best thing about christmas is?" ("base", xpos="far_left", ypos="head") gen "Miss Tonks, you know what the best thing about Christmas is?" ("base", xpos="far_left", ypos="head")
ton "The presents?" ("base", "base", "raised", "mid") ton "The presents?" ("base", "base", "raised", "mid")
gen "After that." ("base", xpos="far_left", ypos="head") gen "After that." ("base", xpos="far_left", ypos="head")
ton "The food?" ("soft", "base", "base", "mid") ton "The food?" ("soft", "base", "base", "mid")
@ -502,6 +502,17 @@ label ton_reaction_equip_outfit(item):
gen "Yes, put this on for me will you?" ("base", xpos="far_left", ypos="head") gen "Yes, put this on for me will you?" ("base", xpos="far_left", ypos="head")
ton "Very well..." ("base", "base", "base", "mid") ton "Very well..." ("base", "base", "base", "mid")
##################
## Santa Outfit ##
##################
elif item == ton_outfit_santa:
gen "Ho-Ho-Ho!" ("grin", xpos="far_left", ypos="head")
ton "Yes?" ("soft", "base", "base", "mid")
gen "No, I'm doing a Santa laugh!" ("base", xpos="far_left", ypos="head")
ton "Oh, I see!" ("grin", "base", "raised", "mid")
gen "Anyway, I've got this sexy Santa costume for you to wear." ("grin", xpos="far_left", ypos="head")
ton "*Mmm*... Say no more..." ("horny", "narrow", "base", "mid")
################### ###################
## Lady D Outfit ## ## Lady D Outfit ##
################### ###################
@ -671,6 +682,11 @@ label ton_reaction_equip_outfit_fail(item):
################## ##################
# elif item == ton_outfit_xmas: # elif item == ton_outfit_xmas:
##################
## Santa Outfit ##
##################
# elif item == ton_outfit_santa:
################### ###################
## Lady D Outfit ## ## Lady D Outfit ##
################### ###################

View File

@ -48,8 +48,12 @@ init python:
def set_layers(self): def set_layers(self):
for x in self.layers_special: for x in self.layers_special:
path = "{}{}.webp".format(self.imagepath, x)
self.__dict__[x] = path if renpy.loadable(path) else None if x == "zorder":
self.__dict__["zlayers"] = [f for f in renpy.list_files() if f.startswith(self.imagepath.lstrip("/")) and "zorder" in f]
else:
path = "{}{}.webp".format(self.imagepath, x)
self.__dict__[x] = path if renpy.loadable(path) else None
for x in self.layers_additional: for x in self.layers_additional:
self.__dict__[x] = [] self.__dict__[x] = []
@ -86,6 +90,8 @@ init python:
self.get_armfix(mannequin=True) self.get_armfix(mannequin=True)
] ]
sprites.extend(self.get_zlayers())
sprites.sort(key=itemgetter(1)) sprites.sort(key=itemgetter(1))
# Apply Alpha mask # Apply Alpha mask
@ -146,6 +152,24 @@ init python:
# Defers rebuild until next time get_image is called # Defers rebuild until next time get_image is called
self.cached_icon = False self.cached_icon = False
def get_zlayers(self):
"""Returns a list of zordered layers"""
zlayers = []
for i in self.zlayers:
path, filename = os.path.split(i)
filename = os.path.splitext(filename)[0]
# I.e "0_zorder_35", we don't need the middle control
layertype, _, zorder = filename.split("_")
if layertype.isdigit():
zlayers.append((self.apply_color(i, int(layertype)), int(zorder)))
else:
zlayers.append((i, int(zorder)))
return zlayers
def get_back(self): def get_back(self):
"""Returns a list of layers displayed in the back of object/character""" """Returns a list of layers displayed in the back of object/character"""
back_outline = [self.back_outline] if self.back_outline else [] back_outline = [self.back_outline] if self.back_outline else []

View File

@ -76,7 +76,7 @@ init -1 python:
icon_threadlock = False icon_threadlock = False
layers_extra = {"extra", "outline", "overlay"} layers_extra = {"extra", "outline", "overlay"}
layers_special = {"skin", "mask", "wind_mask"} layers_special = {"skin", "mask", "wind_mask", "zorder"}
layers_additional = {"back", "front"} layers_additional = {"back", "front"}
blacklist_toggles = ("hair", "glasses", "pubes", "piercing", "makeup", "tattoo", "earrings") blacklist_toggles = ("hair", "glasses", "pubes", "piercing", "makeup", "tattoo", "earrings")

View File

@ -6,7 +6,10 @@ init python:
def set_layers(self): def set_layers(self):
for x in self.layers_special: for x in self.layers_special:
self.__dict__[x] = None if x == "zorder":
self.__dict__["zlayers"] = [f for f in renpy.list_files() if f.startswith(self.imagepath.lstrip("/")) and "zorder" in f]
else:
self.__dict__[x] = None
for x in self.layers_additional: for x in self.layers_additional:
self.__dict__[x] = [] self.__dict__[x] = []

Some files were not shown because too many files have changed in this diff Show More