Unify and simplify kinetic text effect func

This commit is contained in:
LoafyLemon 2024-11-07 12:40:49 +00:00
parent a267ebabba
commit d66866aecb
8 changed files with 41 additions and 78 deletions

View File

@ -42,7 +42,7 @@ label ast_reaction_category_fail(category):
label ast_reaction_touch(what):
if what == "head":
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
random:
block:
@ -55,7 +55,7 @@ label ast_reaction_touch(what):
gen "*Err*..." ("base", xpos="far_left", ypos="head")
ast "When people called you eccentric I didn't think they meant bonkers mad..." ("clench", "closed", "base", "down")
elif what == "breasts":
$ mouse_boing()
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
random:
block:
@ -68,7 +68,7 @@ label ast_reaction_touch(what):
block:
ast "Gross..." ("annoyed", "narrow", "base", "mid")
elif what == "vagina":
$ mouse_heart()
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
random:
block:

View File

@ -57,7 +57,7 @@ label cho_reaction_category_fail(category):
label cho_reaction_touch(what):
if what == "head":
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
if states.cho.level < 10: #Pre Slytherin match (after hufflepuff match)
random:
@ -89,7 +89,7 @@ label cho_reaction_touch(what):
elif what == "breasts":
$ mouse_boing()
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
if states.cho.level < 16: # Before Gryffindor match
random:
@ -111,7 +111,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":
$ mouse_heart()
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
if states.cho.level < 16: #Before Gryffindor match
random:

View File

@ -56,7 +56,7 @@ label her_reaction_category_fail(category):
label her_reaction_touch(what):
if what == "head":
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
if states.her.level >= 20:
#craving it
@ -90,7 +90,7 @@ label her_reaction_touch(what):
her "Why are you doing that?" ("clench", "base", "base", "R")
elif what == "breasts":
$ mouse_boing()
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
if states.her.level >= 20:
random:
@ -112,7 +112,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":
$ mouse_heart()
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
if hermione.is_worn("bottom"):
# Bottoms only OR Bottoms AND panties

View File

@ -51,7 +51,7 @@ label lun_reaction_category_fail(category):
label lun_reaction_touch(what):
if what == "head":
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
if states.lun.tier == 5:
random:
@ -102,7 +102,7 @@ label lun_reaction_touch(what):
elif what == "breasts":
$ mouse_boing()
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
if states.lun.tier == 5:
random:
@ -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":
$ mouse_heart()
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
if states.lun.tier == 5:
random:

View File

@ -38,7 +38,7 @@ label sus_reaction_category_fail(category):
label sus_reaction_touch(what):
if what == "head":
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
random:
sus "S--{w=0.2} Sir..." ("soft", "base", "base", "mid")
@ -46,14 +46,14 @@ label sus_reaction_touch(what):
sus @ cheeks blush "Professor, p--{w=0.2} please..." ("base", "base", "sad", "downR")
elif what == "breasts":
$ mouse_boing()
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
random:
sus @ cheeks blush "W--{w=0.2} Why are you..." ("soft", "happy", "sad", "stare")
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":
$ mouse_heart()
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
random:
sus @ cheeks blush "M--{w=0.2} My..." ("soft", "happy", "sad", "stare")

View File

@ -52,7 +52,7 @@ label ton_reaction_category_fail(category):
label ton_reaction_touch(what):
if what == "head":
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
random:
ton "Is this what you do to our students? A bit tame, don't you think?" ("soft", "narrow", "base", "mid")
@ -66,7 +66,7 @@ label ton_reaction_touch(what):
ton "Don't you dare touch my elbows next..." ("soft", "narrow", "base", "mid")
elif what == "breasts":
$ mouse_boing()
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
random:
ton "*Mmm*..." ("base", "narrow", "base", "up")
@ -76,7 +76,7 @@ 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":
$ mouse_heart()
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
random:
ton "A gentleman usually doesn't kiss on the lips, but I'll allow it..." ("soft", "closed", "base", "mid")
@ -97,11 +97,11 @@ label ton_reaction_touch_fail(what):
block:
ton "Hey, don't do that!" ("open", "narrow", "base", "mid")
ton "Let me pet you instead." ("base", "narrow", "angry", "mid")
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
pause 0.35
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
pause 0.35
$ mouse_headpat()
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
ton "Good boy!" ("horny", "narrow", "base", "mid")
elif what == "breasts":

View File

@ -106,6 +106,25 @@ init -1 python:
return score
def show_kinetic_text(text, style="what_centered_small", pos=None, anchor=(0.5, 0.6), zoom=1.0, sound=None, trans=None, timer=1):
if pos is None:
start_x, start_y = renpy.get_mouse_pos()
else:
start_x, start_y = pos
target_x, target_y = start_x, start_y-15
xanchor, yanchor = anchor
if sound:
renpy.play(sound)
if trans:
d = At(At(Text(text, style=style), trans), random_rotation) # We need to do this in two steps because of the rotation
else:
d = At(Text(text, style=style), random_rotation)
renpy.show_screen("gfx_effect", start_x=start_x, start_y=start_y, target_x=target_x, target_y=target_y, img=d, xanchor=xanchor, yanchor=yanchor, zoom=zoom, timer=timer)
def mouse_slap():
"""Causes the mouse to be moved away from current position and displays a smoke effect"""
renpy.play('sounds/slap.ogg')
@ -116,36 +135,6 @@ init -1 python:
renpy.show_screen("gfx_effect", start_x=x, start_y=y, target_x=xx, target_y=yy, img="smoke", xanchor=0.1, yanchor=0.7, zoom=0.2, duration=0.15)
renpy.set_mouse_pos(xx, yy, duration=0.1)
def mouse_headpat():
"""Causes the mouse to be moved away from current position and displays a heart effect"""
renpy.play("sounds/slap_03.ogg")
renpy.stop_predict_screen("gfx_effect")
x, y = renpy.get_mouse_pos()
xx, yy = x, y-15
img = At(Text(_("{shudder}*pat*{/shudder}")), random_rotation)
renpy.hide_screen("gfx_effect")
renpy.show_screen("gfx_effect", start_x=x, start_y=y, target_x=xx, target_y=yy, img=img, xanchor=0.5, yanchor=0.65, zoom=1.0, timer=1)
def mouse_boing():
"""Causes the mouse to be moved away from current position and displays a heart effect"""
renpy.play('sounds/boing02.ogg')
renpy.stop_predict_screen("gfx_effect")
x, y = renpy.get_mouse_pos()
xx, yy = x, y-15
img = At(Text(_("{shake}*boing*{/shake}")), random_rotation)
renpy.hide_screen("gfx_effect")
renpy.show_screen("gfx_effect", start_x=x, start_y=y, target_x=xx, target_y=yy, img=img, xanchor=0.5, yanchor=0.65, zoom=1.0, timer=1)
def mouse_heart():
"""Causes the mouse to be moved away from current position and displays a heart effect"""
renpy.play('sounds/drooling.ogg')
renpy.stop_predict_screen("gfx_effect")
x, y = renpy.get_mouse_pos()
xx, yy = x, y-15
img = At(At(Text(_("*squelch*"), style="what_centered_small"), squeeze_hearts), random_rotation)
renpy.hide_screen("gfx_effect")
renpy.show_screen("gfx_effect", start_x=x, start_y=y, target_x=xx, target_y=yy, img=img, xanchor=0.5, yanchor=0.65, zoom=1.0, timer=1)
def wardrobe_fail_hint(value):
"""Displays required whoring/friendship/affection level."""
word_list = {"tonks": "friendship", "astoria": "affection", "susan": "confidence", "luna": "corruption", "cho": "recklessness", "hermione": "whoring"}
@ -159,32 +148,6 @@ init -1 python:
renpy.with_statement(d3)
return
def list_outfit_files():
@functools.cache
def build_button(rp):
style = "wardrobe_button"
child = Fixed(Transform(rp, xsize=96, fit="contain", yalign=1.0, yoffset=-6), Frame(gui.format("interface/frames/{}/iconframe.webp"), 6, 6), xysize=(96, 168))
action = Return(["import", rp])
hover_foreground = "#ffffff80"
return Button(child=child, action=action, hover_foreground=hover_foreground, style=style)
path = f"{config.gamedir}/outfits/"
if not os.path.exists(path):
os.makedirs(path)
files = []
for f in os.listdir(path):
fp = os.path.join(path, f)
rp = os.path.relpath(fp, config.gamedir).replace("\\", "/")
if os.path.isfile(os.path.join(path, f)) and f.endswith(".png"):
files.append(build_button(rp))
return files
transform squeeze_hearts:
animation
subpixel True

View File

@ -309,8 +309,8 @@ init python in wardrobe:
delete_action = renpy.store.Function(renpy.store.colorpicker.cp.remove_favorite, i) if col else renpy.store.NullAction()
save_action = renpy.store.Function(renpy.store.colorpicker.cp.add_favorite, i, renpy.store.colorpicker.cp.live_color)
d = {
_("Select"): (renpy.store.Text("✅", align=(0.5, 0.5)), [exit_action, select_action]),
_("Delete"): (renpy.store.Text("❌", align=(0.5, 0.5)), [exit_action, delete_action]),
_("Select"): (renpy.store.Text("✅", align=(0.5, 0.5)), [exit_action, select_action]),
}
if col: