This commit is contained in:
LoafyLemon 2024-11-09 12:10:08 +00:00
parent dfa36937e5
commit cd23aa6914
10 changed files with 76 additions and 24 deletions

View File

@ -4,6 +4,7 @@ define ast_requirements = {
"category piercings & tattoos": 16,
"touch head": 4,
"touch breasts": 12,
"touch ass": 12,
"touch vagina": 18,
"unequip panties": 15,
"unequip bra": 15,
@ -68,7 +69,7 @@ label ast_reaction_touch(what):
block:
ast "Gross..." ("annoyed", "narrow", "base", "mid")
elif what == "vagina":
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_text)
random:
block:
@ -82,6 +83,8 @@ label ast_reaction_touch(what):
block:
ast "Thought you could slip past my wards, did you?" ("clench", "base", "base", "mid")
ast @ cheeks blush "I'll have you know I felt none of that!" ("open", "closed", "base", "mid")
elif what == "ass":
$ show_kinetic_text(_("{shake}*spank*{/shake}"), sound="sounds/spank.ogg", trans=expand_text)
return
@ -151,6 +154,8 @@ label ast_reaction_touch_fail(what):
ast "Don't be gross, [name_genie_astoria]." ("base", "base", "base", "mid")
block:
ast "..." ("clench", "closed", "base", "mid")
elif what == "ass":
$ mouse_slap()
return
label ast_reaction_equip(item):

View File

@ -4,6 +4,7 @@ define cho_requirements = {
"category piercings & tattoos": 16,
"touch head": 4,
"touch breasts": 10, #Start of Gryffindor match leadup tier
"touch ass": 10,
"touch vagina": 15, #Highest level of Gryffindor match leadup tier
"unequip panties": 15,
"unequip bra": 15,
@ -90,7 +91,7 @@ label cho_reaction_touch(what):
elif what == "breasts":
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
if states.cho.level < 16: # Before Gryffindor match
random:
cho @ cheeks blush "Kissing them for good luck are we?" ("smile", "narrow", "base", "mid")
@ -111,7 +112,7 @@ label cho_reaction_touch(what):
cho @ cheeks blush "Glad you appreciate them as much as I do..." ("smile", "wink", "base", "mid")
elif what == "vagina":
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_text)
if states.cho.level < 16: #Before Gryffindor match
random:
@ -125,8 +126,8 @@ label cho_reaction_touch(what):
cho @ cheeks blush "There's two more you know..." ("smile", "wink", "base", "mid")
cho @ cheeks blush "Careful or I might lock my thighs around your neck and keep you there..." ("soft", "narrow", "base", "mid")
elif what == "ass":
$ show_kinetic_text(_("{shake}*spank*{/shake}"), sound="sounds/spank.ogg", trans=expand_text)
return
label cho_reaction_touch_fail(what):
@ -158,6 +159,8 @@ label cho_reaction_touch_fail(what):
cho "You'd have to be a lot faster to get even close to getting away with that..." ("crooked_smile", "narrow", "angry", "mid")
cho "Nice try..." ("soft", "narrow", "angry", "mid")
cho "No foul play, [name_genie_cho]..." ("angry", "narrow", "angry", "mid")
elif what == "ass":
$ mouse_slap()
return

View File

@ -4,6 +4,7 @@ define her_requirements = {
"category piercings & tattoos": 16,
"touch head": 4,
"touch breasts": 12,
"touch ass": 12,
"touch vagina": 18,
"unequip panties": 15,
"unequip bra": 14,
@ -112,7 +113,7 @@ label her_reaction_touch(what):
her @ cheeks blush "I guess a small kiss is fine..." ("annoyed", "base", "base", "R")
her @ cheeks blush "That's not my cheek..." ("disgust", "narrow", "base", "mid")
elif what == "vagina":
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_text)
if hermione.is_worn("bottom"):
# Bottoms only OR Bottoms AND panties
@ -135,6 +136,8 @@ label her_reaction_touch(what):
##This could play after touching her enough times this wardrobe session##
#her "*Nnngh*..." ("base", "base", "base", "mid")
#with kissiris
elif what == "ass":
$ show_kinetic_text(_("{shake}*spank*{/shake}"), sound="sounds/spank.ogg", trans=expand_text)
return
@ -164,6 +167,8 @@ label her_reaction_touch_fail(what):
her "Unhand me..." ("mad", "wide", "angry", "mid")
her @ cheeks blush "Stop it please..." ("open", "happyCl", "angry", "mid")
her "Hands off me." ("clench", "narrow", "angry", "mid")
elif what == "ass":
$ mouse_slap()
return
label her_reaction_equip(item):

View File

@ -2,9 +2,9 @@ define lun_requirements = {
"category upper undergarment": 7,
"category lower undergarment": 7,
"category piercings & tattoos": 13,
# "touch head":
# "touch breasts":
# "touch vagina":
"touch head": 0,
"touch breasts": 0,
"touch vagina": 0,
"unequip panties": 7,
"unequip bra": 7,
"unequip top": 4,
@ -149,7 +149,7 @@ label lun_reaction_touch(what):
lun "Sorry [name_genie_luna], your beard is tickling me..." ("smile", "base", "base", "mid")
elif what == "vagina":
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_text)
if states.lun.tier == 5:
random:
@ -181,6 +181,8 @@ label lun_reaction_touch(what):
block:
lun "{bounce}*Ooohh*...{/bounce}" ("grin", "base", "base", "up")
lun "I don't think anyone has ever kissed me there before... How strange..." ("grin", "closed", "base", "mid")
elif what == "ass":
$ show_kinetic_text(_("{shake}*spank*{/shake}"), sound="sounds/spank.ogg", trans=expand_text)
return
label lun_reaction_touch_fail(what): #Not used
@ -201,6 +203,8 @@ label lun_reaction_touch_fail(what): #Not used
$ mouse_slap()
lun "*Ah* [name_genie_luna], please don't tease me, wrackspurts have been terribly active today, and I'm barely able to withhold as it is."
elif what == "ass":
$ mouse_slap()
return

View File

@ -4,6 +4,7 @@ define sus_requirements = {
"category piercings & tattoos": 16,
"touch head": 4,
"touch breasts": 12,
"touch ass": 12,
"touch vagina": 18,
"unequip panties": 6,
"unequip bra": 6,
@ -53,12 +54,14 @@ label sus_reaction_touch(what):
sus @ cheeks blush "P--{w=0.2} please, it's embarrassing..." ("angry", "happy", "sad", "downR")
sus @ cheeks blush "D--{w=0.2} don't... Don't look at me, sir..." ("soft", "closed", "sad", "mid")
elif what == "vagina":
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_text)
random:
sus @ cheeks blush "M--{w=0.2} My..." ("soft", "happy", "sad", "stare")
sus @ cheeks blush "S--{w=0.2} Sir..." ("soft", "closed", "sad", "mid")
sus @ cheeks blush "P--{w=0.2} please sir, it's embarrassing..." ("base", "happy", "sad", "downR")
elif what == "ass":
$ show_kinetic_text(_("{shake}*spank*{/shake}"), sound="sounds/spank.ogg", trans=expand_text)
return
@ -82,6 +85,8 @@ label sus_reaction_touch_fail(what):
gen "Do what?" ("base", xpos="far_left", ypos="head")
sus @ cheeks blush "N--{w=0.2} nothing [name_genie_susan], forgive me." ("angry", "wide", "sad", "stare")
gen "(...)" ("base", xpos="far_left", ypos="head")
elif what == "ass":
$ mouse_slap()
return

View File

@ -4,6 +4,7 @@ define ton_requirements = {
"category piercings & tattoos": 60,
"touch head": 50,
"touch breasts": 20,
"touch ass": 20,
"touch vagina": 40,
#"unequip panties": 6, # Tonks does not use panties unequip limits.
#"unequip bra": 6, # Tonks does not use bra unequip limits.
@ -76,13 +77,18 @@ label ton_reaction_touch(what):
ton "I don't remember this being part of the job description..." ("horny", "narrow", "shocked", "down")
ton "But I'll look the other way for now..." ("grin", "closed", "base", "mid")
elif what == "vagina":
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_text)
random:
ton "A gentleman usually doesn't kiss on the lips, but I'll allow it..." ("soft", "closed", "base", "mid")
ton "*Hmm*...{w=0.3} Did I feel some tongue? Must've been my imagination..." ("horny", "narrow", "base", "down")
ton "Is this one part of the extracurricular activities in my work contract?" ("grin", "narrow", "raised", "mid")
ton "I didn't expect to receive a bonus today... What a nice surprise..." ("grin", "narrow", "raised", "mid")
elif what == "ass":
$ show_kinetic_text(_("*spank*"), sound="sounds/spank.ogg", trans=expand_text)
ton "*Mmm* Spank me daddy!" ("horny", "narrow", "base", "down")
return
label ton_reaction_touch_fail(what):
@ -124,7 +130,8 @@ label ton_reaction_touch_fail(what):
ton "Hey, who said you had permission to approach the chamber of secrets?" ("grin", "narrow", "angry", "mid")
ton "That place is reserved for good boys and girls..." ("annoyed", "narrow", "angry", "mid")
ton "That forest is forbidden entry for newbies... Let's get to know each other a bit better first..." ("soft", "narrow", "base", "mid")
elif what == "ass":
$ mouse_slap()
return
label ton_reaction_equip(item):

View File

@ -209,11 +209,13 @@ init python:
try:
renpy.render_to_file(d, fpt_output, width=width, height=height, resize=True)
image_payload.inject(fn_input, fn_output, str(exported))
os.remove(osfp) # Remove temp file
except Exception as e:
print(f"Warning! Failed to write to path: {fp}/{fn_input} - {e}")
image_payload.inject(fn_input, fn_output, str(exported))
os.remove(osfp) # Remove temp file
renpy.notify("Export failed!")
else:
set_clipboard(exported)
renpy.notify("Export successful!")

View File

@ -148,7 +148,7 @@ init -1 python:
renpy.with_statement(d3)
return
transform squeeze_hearts:
transform squeeze_text:
animation
subpixel True
transform_anchor True
@ -157,3 +157,12 @@ transform squeeze_hearts:
easeout 0.5 xzoom 1.0
pause 1
repeat
transform expand_text:
animation
subpixel True
transform_anchor True
xzoom 0.5
easein 0.35 xzoom 1.0
pause 1
repeat

View File

@ -333,7 +333,6 @@ init python in wardrobe:
return renpy.store.Transform(item.icon, xysize=(48, 48))
return renpy.store.Transform(item.icon, matrixcolor=renpy.store.SaturationMatrix(0)*renpy.store.BrightnessMatrix(-0.25)*renpy.store.OpacityMatrix(0.5))
@functools.cache
def easteregg(character_name):
scope = renpy.get_screen("wardrobe").scope
character = scope["character"]
@ -343,50 +342,60 @@ init python in wardrobe:
flag = renpy.store.get_character_progression(character.name)
return (flag >= req)
head_action = renpy.store.Function(wardrobe_react,"touch", "head") if check("head") else renpy.store.Function(wardrobe_react,"touch_fail", "head")
head_action = renpy.store.Function(wardrobe_react,"touch", "head") if check("head") else renpy.store.Function(wardrobe_react,"touch_fail", "head")
breasts_action = renpy.store.Function(wardrobe_react, "touch", "breasts") if check("breasts") else renpy.store.Function(wardrobe_react,"touch_fail", "breasts")
vagina_action = renpy.store.Function(wardrobe_react, "touch", "vagina") if check("vagina") else renpy.store.Function(wardrobe_react,"touch_fail", "vagina")
ass_action = renpy.store.Function(wardrobe_react, "touch", "ass") if check("ass") else renpy.store.Function(wardrobe_react,"touch_fail", "ass")
# Positions (hardcoded)
if character_name == "tonks":
head_box = (763, 31, 882, 160)
breasts_box = (735, 232, 890, 310)
vagina_box = (765, 405, 834, 466)
ass_box = (865, 370, 942, 486)
elif character_name == "hermione":
head_box = (760, 14, 882, 170)
breasts_box = (735, 232, 880, 320)
vagina_box = (770, 387, 834, 440)
ass_box = (856, 356, 914, 455)
elif character_name == "cho":
head_box = (756, 71, 863, 193)
breasts_box = (751, 247, 856, 318)
vagina_box = (768, 405, 826, 457)
ass_box = (860, 387, 914, 482)
elif character_name == "luna":
head_box = (763, 31, 885, 165)
breasts_box = (740, 220, 872, 310)
vagina_box = (771, 391, 834, 444)
ass_box = (852, 350, 912, 458)
elif character_name == "astoria":
head_box = (757, 64, 863, 194)
breasts_box = (755, 254, 863, 318)
vagina_box = (775, 410, 824, 457)
ass_box = (853, 371, 908, 475)
else: # Susan + fallback
head_box = (771, 56, 871, 184)
breasts_box = (724, 230, 882, 342)
vagina_box = (770, 405, 850, 464)
ass_box = (870, 376, 933, 492)
head_xysize = (head_box[2] - head_box[0], head_box[3] - head_box[1])
breasts_xysize = (breasts_box[2] - breasts_box[0], breasts_box[3] - breasts_box[1])
vagina_xysize = (vagina_box[2] - vagina_box[0], vagina_box[3] - vagina_box[1])
ass_xysize = (ass_box[2] - ass_box[0], ass_box[3] - ass_box[1])
head_pos = (head_box[0], head_box[1])
breasts_pos = (breasts_box[0], breasts_box[1])
vagina_pos = (vagina_box[0], vagina_box[1])
vagina_pos = (vagina_box[0], vagina_box[1])
ass_pos = (ass_box[0], ass_box[1])
# Buttons
head_btn = renpy.store.Button(child=renpy.store.Null(), style="wardrobe_secret", xysize=head_xysize, action=head_action)
breasts_btn = renpy.store.Button(child=renpy.store.Null(*breasts_xysize), style="wardrobe_secret", xysize=breasts_xysize, action=breasts_action)
vagina_btn = renpy.store.Button(child=renpy.store.Null(*vagina_xysize), style="wardrobe_secret", xysize=vagina_xysize, action=vagina_action)
ass_btn = renpy.store.Button(child=renpy.store.Null(*ass_xysize), style="wardrobe_secret", xysize=ass_xysize, action=ass_action)
return [(head_btn, head_pos), (breasts_btn, breasts_pos), (vagina_btn, vagina_pos)]
return [(head_btn, head_pos), (breasts_btn, breasts_pos), (vagina_btn, vagina_pos), (ass_btn, ass_pos)]
def import_outfits():
scope = renpy.get_screen("wardrobe").scope
@ -760,8 +769,8 @@ style wardrobe_checkbox_button_text is wardrobe_button_text:
# Debug only
style wardrobe_secret:
#background "#ff000025"
background None
background "#ff000025"
# background None
transform wardrobe_show:
subpixel True
@ -782,4 +791,4 @@ transform wardrobe_character_show:
transform wardrobe_character_hide:
xoffset 0
easeout 0.4 xoffset 1080
easeout 0.4 xoffset 1080

BIN
game/sounds/spank.ogg (Stored with Git LFS) Normal file

Binary file not shown.