Unify and simplify kinetic text effect func
This commit is contained in:
parent
a267ebabba
commit
d66866aecb
@ -42,7 +42,7 @@ label ast_reaction_category_fail(category):
|
|||||||
|
|
||||||
label ast_reaction_touch(what):
|
label ast_reaction_touch(what):
|
||||||
if what == "head":
|
if what == "head":
|
||||||
$ mouse_headpat()
|
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
|
||||||
|
|
||||||
random:
|
random:
|
||||||
block:
|
block:
|
||||||
@ -55,7 +55,7 @@ label ast_reaction_touch(what):
|
|||||||
gen "*Err*..." ("base", xpos="far_left", ypos="head")
|
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")
|
ast "When people called you eccentric I didn't think they meant bonkers mad..." ("clench", "closed", "base", "down")
|
||||||
elif what == "breasts":
|
elif what == "breasts":
|
||||||
$ mouse_boing()
|
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
|
||||||
|
|
||||||
random:
|
random:
|
||||||
block:
|
block:
|
||||||
@ -68,7 +68,7 @@ label ast_reaction_touch(what):
|
|||||||
block:
|
block:
|
||||||
ast "Gross..." ("annoyed", "narrow", "base", "mid")
|
ast "Gross..." ("annoyed", "narrow", "base", "mid")
|
||||||
elif what == "vagina":
|
elif what == "vagina":
|
||||||
$ mouse_heart()
|
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
|
||||||
|
|
||||||
random:
|
random:
|
||||||
block:
|
block:
|
||||||
|
@ -57,7 +57,7 @@ label cho_reaction_category_fail(category):
|
|||||||
|
|
||||||
label cho_reaction_touch(what):
|
label cho_reaction_touch(what):
|
||||||
if what == "head":
|
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)
|
if states.cho.level < 10: #Pre Slytherin match (after hufflepuff match)
|
||||||
random:
|
random:
|
||||||
@ -89,7 +89,7 @@ label cho_reaction_touch(what):
|
|||||||
|
|
||||||
|
|
||||||
elif what == "breasts":
|
elif what == "breasts":
|
||||||
$ mouse_boing()
|
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
|
||||||
|
|
||||||
if states.cho.level < 16: # Before Gryffindor match
|
if states.cho.level < 16: # Before Gryffindor match
|
||||||
random:
|
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")
|
cho @ cheeks blush "Glad you appreciate them as much as I do..." ("smile", "wink", "base", "mid")
|
||||||
|
|
||||||
elif what == "vagina":
|
elif what == "vagina":
|
||||||
$ mouse_heart()
|
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
|
||||||
|
|
||||||
if states.cho.level < 16: #Before Gryffindor match
|
if states.cho.level < 16: #Before Gryffindor match
|
||||||
random:
|
random:
|
||||||
|
@ -56,7 +56,7 @@ label her_reaction_category_fail(category):
|
|||||||
|
|
||||||
label her_reaction_touch(what):
|
label her_reaction_touch(what):
|
||||||
if what == "head":
|
if what == "head":
|
||||||
$ mouse_headpat()
|
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
|
||||||
|
|
||||||
if states.her.level >= 20:
|
if states.her.level >= 20:
|
||||||
#craving it
|
#craving it
|
||||||
@ -90,7 +90,7 @@ label her_reaction_touch(what):
|
|||||||
her "Why are you doing that?" ("clench", "base", "base", "R")
|
her "Why are you doing that?" ("clench", "base", "base", "R")
|
||||||
|
|
||||||
elif what == "breasts":
|
elif what == "breasts":
|
||||||
$ mouse_boing()
|
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
|
||||||
|
|
||||||
if states.her.level >= 20:
|
if states.her.level >= 20:
|
||||||
random:
|
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 "I guess a small kiss is fine..." ("annoyed", "base", "base", "R")
|
||||||
her @ cheeks blush "That's not my cheek..." ("disgust", "narrow", "base", "mid")
|
her @ cheeks blush "That's not my cheek..." ("disgust", "narrow", "base", "mid")
|
||||||
elif what == "vagina":
|
elif what == "vagina":
|
||||||
$ mouse_heart()
|
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
|
||||||
|
|
||||||
if hermione.is_worn("bottom"):
|
if hermione.is_worn("bottom"):
|
||||||
# Bottoms only OR Bottoms AND panties
|
# Bottoms only OR Bottoms AND panties
|
||||||
|
@ -51,7 +51,7 @@ label lun_reaction_category_fail(category):
|
|||||||
|
|
||||||
label lun_reaction_touch(what):
|
label lun_reaction_touch(what):
|
||||||
if what == "head":
|
if what == "head":
|
||||||
$ mouse_headpat()
|
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
|
||||||
|
|
||||||
if states.lun.tier == 5:
|
if states.lun.tier == 5:
|
||||||
random:
|
random:
|
||||||
@ -102,7 +102,7 @@ label lun_reaction_touch(what):
|
|||||||
|
|
||||||
|
|
||||||
elif what == "breasts":
|
elif what == "breasts":
|
||||||
$ mouse_boing()
|
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
|
||||||
|
|
||||||
if states.lun.tier == 5:
|
if states.lun.tier == 5:
|
||||||
random:
|
random:
|
||||||
@ -149,7 +149,7 @@ label lun_reaction_touch(what):
|
|||||||
lun "Sorry [name_genie_luna], your beard is tickling me..." ("smile", "base", "base", "mid")
|
lun "Sorry [name_genie_luna], your beard is tickling me..." ("smile", "base", "base", "mid")
|
||||||
|
|
||||||
elif what == "vagina":
|
elif what == "vagina":
|
||||||
$ mouse_heart()
|
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
|
||||||
|
|
||||||
if states.lun.tier == 5:
|
if states.lun.tier == 5:
|
||||||
random:
|
random:
|
||||||
|
@ -38,7 +38,7 @@ label sus_reaction_category_fail(category):
|
|||||||
|
|
||||||
label sus_reaction_touch(what):
|
label sus_reaction_touch(what):
|
||||||
if what == "head":
|
if what == "head":
|
||||||
$ mouse_headpat()
|
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
|
||||||
|
|
||||||
random:
|
random:
|
||||||
sus "S--{w=0.2} Sir..." ("soft", "base", "base", "mid")
|
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")
|
sus @ cheeks blush "Professor, p--{w=0.2} please..." ("base", "base", "sad", "downR")
|
||||||
|
|
||||||
elif what == "breasts":
|
elif what == "breasts":
|
||||||
$ mouse_boing()
|
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
|
||||||
|
|
||||||
random:
|
random:
|
||||||
sus @ cheeks blush "W--{w=0.2} Why are you..." ("soft", "happy", "sad", "stare")
|
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 "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")
|
sus @ cheeks blush "D--{w=0.2} don't... Don't look at me, sir..." ("soft", "closed", "sad", "mid")
|
||||||
elif what == "vagina":
|
elif what == "vagina":
|
||||||
$ mouse_heart()
|
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
|
||||||
|
|
||||||
random:
|
random:
|
||||||
sus @ cheeks blush "M--{w=0.2} My..." ("soft", "happy", "sad", "stare")
|
sus @ cheeks blush "M--{w=0.2} My..." ("soft", "happy", "sad", "stare")
|
||||||
|
@ -52,7 +52,7 @@ label ton_reaction_category_fail(category):
|
|||||||
|
|
||||||
label ton_reaction_touch(what):
|
label ton_reaction_touch(what):
|
||||||
if what == "head":
|
if what == "head":
|
||||||
$ mouse_headpat()
|
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
|
||||||
|
|
||||||
random:
|
random:
|
||||||
ton "Is this what you do to our students? A bit tame, don't you think?" ("soft", "narrow", "base", "mid")
|
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")
|
ton "Don't you dare touch my elbows next..." ("soft", "narrow", "base", "mid")
|
||||||
|
|
||||||
elif what == "breasts":
|
elif what == "breasts":
|
||||||
$ mouse_boing()
|
$ show_kinetic_text(_("{shake}*boing*{/shake}"), sound="sounds/boing02.ogg")
|
||||||
|
|
||||||
random:
|
random:
|
||||||
ton "*Mmm*..." ("base", "narrow", "base", "up")
|
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 "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")
|
ton "But I'll look the other way for now..." ("grin", "closed", "base", "mid")
|
||||||
elif what == "vagina":
|
elif what == "vagina":
|
||||||
$ mouse_heart()
|
$ show_kinetic_text(_("*squelch*"), sound="sounds/drooling.ogg", trans=squeeze_hearts)
|
||||||
|
|
||||||
random:
|
random:
|
||||||
ton "A gentleman usually doesn't kiss on the lips, but I'll allow it..." ("soft", "closed", "base", "mid")
|
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:
|
block:
|
||||||
ton "Hey, don't do that!" ("open", "narrow", "base", "mid")
|
ton "Hey, don't do that!" ("open", "narrow", "base", "mid")
|
||||||
ton "Let me pet you instead." ("base", "narrow", "angry", "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
|
pause 0.35
|
||||||
$ mouse_headpat()
|
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
|
||||||
pause 0.35
|
pause 0.35
|
||||||
$ mouse_headpat()
|
$ show_kinetic_text(_("{shudder}*pat*{/shudder}"), sound="sounds/slap_03.ogg")
|
||||||
ton "Good boy!" ("horny", "narrow", "base", "mid")
|
ton "Good boy!" ("horny", "narrow", "base", "mid")
|
||||||
|
|
||||||
elif what == "breasts":
|
elif what == "breasts":
|
||||||
|
@ -106,6 +106,25 @@ init -1 python:
|
|||||||
|
|
||||||
return score
|
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():
|
def mouse_slap():
|
||||||
"""Causes the mouse to be moved away from current position and displays a smoke effect"""
|
"""Causes the mouse to be moved away from current position and displays a smoke effect"""
|
||||||
renpy.play('sounds/slap.ogg')
|
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.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)
|
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):
|
def wardrobe_fail_hint(value):
|
||||||
"""Displays required whoring/friendship/affection level."""
|
"""Displays required whoring/friendship/affection level."""
|
||||||
word_list = {"tonks": "friendship", "astoria": "affection", "susan": "confidence", "luna": "corruption", "cho": "recklessness", "hermione": "whoring"}
|
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)
|
renpy.with_statement(d3)
|
||||||
return
|
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:
|
transform squeeze_hearts:
|
||||||
animation
|
animation
|
||||||
subpixel True
|
subpixel True
|
||||||
|
@ -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()
|
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)
|
save_action = renpy.store.Function(renpy.store.colorpicker.cp.add_favorite, i, renpy.store.colorpicker.cp.live_color)
|
||||||
d = {
|
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]),
|
_("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:
|
if col:
|
||||||
|
Loading…
Reference in New Issue
Block a user