Compare commits

..

18 Commits

Author SHA1 Message Date
4d5fb8869b Merge branch 'Xmas' into dev 2022-12-28 19:09:28 +00:00
2d7a84bf00 Bug fixes
* Fixed Genie flashing his goods in stats menu
* Fixed lipstick causing a crash in saved outfits due to missing zlayers
* Fixed debug print spam
* Version bump
2022-12-28 19:06:24 +00:00
90e57fd6af Hotfix
* Fixed a crash caused by zlayers
2022-12-23 19:48:00 +00:00
bdd654a806 Version bump 2022-12-23 17:03:53 +00:00
8994c77109 Zlayers
* Implemented zorder control for specific clothing layers
* Fixed Tonks' breasts missing shading.
2022-12-23 16:26:49 +00:00
e4c3c3e51d Outfit
* Added Tonks Santa outfit.
* Added outfit unlock and Tonks to xmas Mirror story.
2022-12-23 02:09:10 +01:00
c7be1497f9 Revert "Virgin Killer outfit" 2022-12-22 23:38:47 +00:00
08c347a321 fix 2022-12-22 15:40:50 +01:00
860212b5e1 Xmas Story
* Added new Genie Stripper Santa Outfit.
* Added experimental Genie Outfit cheat.
* Refactored santa speaker to utilize a single `gen` speaker and applied the change to all affected events.
* Improved base Genie model, the default robes outfit and image creation code.
2022-12-21 20:38:20 +00:00
b38147852a Bug fix
* Fixed naughty list username retrieval failing on Windows
2022-12-20 22:54:47 +00:00
2956afe75a Bug Fixes
* Fixed decoration menu page swap arrow position
* Fixed room and title screen animations restarting with every interaction
2022-12-17 21:57:06 +00:00
367fabc739 Decorations
* Added naughty list decor
* Added window decor
* Added garland decor
* Improved poster enlarging
2022-12-17 21:52:44 +00:00
b26dbb4f06 Outfits
* Added remaining outfit pieces
2022-12-15 21:08:24 +01:00
3281387711 Outfits
* Added remaining outfit pieces
2022-12-15 21:07:32 +01:00
f10e6608ce Virgin Killer outfit
* Added Cho Virgin killer outfit.
2022-12-14 20:56:44 +01:00
b29701f39c Mirror story posing + outfits
* Posed Xmas Mirror story dialogue

* Added Cho Reindeer Outfit.
* Added Luna Reindeer Outfit.

* Partially added Luna Bunny-girl outfit.
* Partially added Cho Bunny-girl outfit.
* Partially added Hermione Bunny-girl outfit.
* Partially added Hermione Reindeer Outfit.
2022-12-14 18:32:54 +01:00
f58d18b2ac Xmas Story - Posing - Part 1 2022-12-12 22:08:39 +01:00
e169296009 Xmas Story 2022-12-11 19:37:56 +00:00
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:
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/outfits/robes.webp"
always "characters/genie/outfits/robes_beard.webp"
group face:
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"
# TODO: Add outfit support; Low priority
layeredimage genie:
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_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 ##
###################

View File

@ -484,14 +484,14 @@ label ton_reaction_equip_outfit(item):
ton "You sure you'd want that?" ("soft", "base", "raised", "mid")
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")
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")
##################
### Xmas Outfit ##
##################
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")
gen "After that." ("base", xpos="far_left", ypos="head")
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")
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 ##
###################
@ -671,6 +682,11 @@ label ton_reaction_equip_outfit_fail(item):
##################
# elif item == ton_outfit_xmas:
##################
## Santa Outfit ##
##################
# elif item == ton_outfit_santa:
###################
## Lady D Outfit ##
###################

View File

@ -48,8 +48,12 @@ init python:
def set_layers(self):
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:
self.__dict__[x] = []
@ -86,6 +90,8 @@ init python:
self.get_armfix(mannequin=True)
]
sprites.extend(self.get_zlayers())
sprites.sort(key=itemgetter(1))
# Apply Alpha mask
@ -146,6 +152,24 @@ init python:
# Defers rebuild until next time get_image is called
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):
"""Returns a list of layers displayed in the back of object/character"""
back_outline = [self.back_outline] if self.back_outline else []

View File

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

View File

@ -6,7 +6,10 @@ init python:
def set_layers(self):
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:
self.__dict__[x] = []

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