WTS/game/scripts/characters/tonks/chibi.rpy

179 lines
5.2 KiB
Plaintext

label ton_chibi(action=None, xpos=None, ypos=None, flip=False):
$ tonks_chibi.position(xpos, ypos, flip)
if action == "hide":
$ tonks_chibi.hide()
return
elif action == "leave":
hide tonks_main
hide screen bld1
hide screen blktone
play sound "sounds/door.ogg"
$ tonks_chibi.hide()
with d3
pause .5
return
elif action == "reset":
$ tonks_chibi.do(None)
return
$ tonks_chibi.do(action)
return
label ton_walk(xpos=None, ypos=None, speed=1.0, action=None, reduce=False, path=None, flip=False):
scene onlayer dolls
hide screen bld1
hide screen blktone
with d3
if action == "enter":
play sound "sounds/door.ogg"
call ton_chibi(None, "door", "base", flip)
with d3
if xpos or ypos:
$ tonks_chibi.move((xpos, ypos), speed, reduce)
elif action == "leave":
$ tonks_chibi.show()
$ tonks_chibi.move(("door", "base"), speed, reduce)
play sound "sounds/door.ogg"
$ tonks_chibi.hide()
with d3
pause .5
elif path:
$ tonks_chibi.show()
$ tonks_chibi.move(path, speed, reduce)
else:
$ tonks_chibi.show()
$ tonks_chibi.move((xpos, ypos), speed, reduce)
return
# Screens
screen ton_cloth_pile(position=(440, 425)): # Default position: Right of desk, below feet.
tag ton_cloth_pile
zorder tonks_chibi.zorder
add "characters/chibis/cloth_pile_r.webp" pos position zoom 0.5
label ton_sit(xpos=nxpos, ypos=nypos, flip=None, chair=True): # TODO: replace this with the regular chibi call and add a sitting pose/action -- call ton_chibi("sit", chair=False)
# call ton_sit(chair=False, xpos=0, ypos=0)
# Quidditch stands position: xpos=-140, ypos=125
python:
xpos = nxpos
ypos = nypos
if flip is not None:
tonks.xzoom = -1 if flip else 1
show screen tonks_sit_ani(nxpos, nypos, chair)
return
screen tonks_sit_ani(xpos=nxpos, ypos=nypos, chair=True): # TODO: use Tonks' regular chibi position for this -- tonks_chibi.pos
tag ton_chibi
zorder tonks_chibi.zorder
if chair == True:
add "ch_ton sit_chair" xpos nxpos ypos nypos xzoom tonks.xzoom
add "ch_ton sit" xpos nxpos ypos nypos xzoom tonks.xzoom
if tonks.is_worn("bottom"):
add "ch_ton sit_trousers" xpos nxpos ypos nypos xzoom tonks.xzoom
if tonks.is_any_worn("bottom", "stockings"):
add "ch_ton sit_shoes" xpos nxpos ypos nypos xzoom tonks.xzoom
if tonks.is_worn("top"):
add "ch_ton sit_top" xpos nxpos ypos nypos xzoom tonks.xzoom
screen with_tonks_animated():
tag ton_chibi
zorder tonks_chibi.zorder
if states.env.daytime:
add "ch_gen toast_goblet_daytime" xpos 435 ypos 200
else:
add "ch_gen toast_goblet" xpos 435 ypos 200
add "ch_ton sit_chair" xpos 610 ypos 175
add "ch_ton sit" xpos 610 ypos 175
if tonks.is_worn("bottom"):
add "ch_ton sit_trousers" xpos 610 ypos 175
if tonks.is_any_worn("bottom", "stockings"):
add "ch_ton sit_shoes" xpos 610 ypos 175
if tonks.is_worn("top"):
add "ch_ton sit_top" xpos 610 ypos 175
if tonks.is_worn("neckwear"):
add "ch_ton sit_choker" xpos 610 ypos 175
# Chibi definition
default tonks_chibi = Chibi("tonks", ["fix", "base", "bottom", "shoes", "top", "robe", "gloves", "neck"], update_tonks_chibi)
init python:
def update_tonks_chibi(chibi):
# Assume chibi action has a matching image definition
chibi_image = "ch_ton {}".format(chibi.action or "stand")
chibi["base"] = chibi_image
# Determine clothing state
if tonks.is_worn("top"):
chibi["top"] = "nt_top.webp"
if tonks.is_worn("bottom"):
if chibi.action == "walk":
chibi["bottom"] = "ch_ton walk trousers"
else:
chibi["bottom"] = "nt_trousers.webp"
if tonks.is_worn("gloves"):
chibi["gloves"] = "nt_gloves.webp"
if tonks.is_worn("robe"):
chibi["robe"] = "nt_robe.webp"
if tonks.is_worn("bottom") or tonks.is_worn("stockings"):
if chibi.action == "walk":
chibi["shoes"] = "ch_ton walk shoes"
else:
chibi["shoes"] = "nt_shoes.webp"
if tonks.is_worn("neckwear"):
chibi["neck"] = "nt_choker.webp"
# Sets up a chibi scene with Tonks and Genie in it
label ton_chibi_scene(action="reset", xpos="mid", ypos="base", trans=None):
if trans is not None:
scene onlayer dolls
if trans: # Not sure if this part is needed, depends on context?
hide screen bld1
hide screen blkfade
call ton_chibi("hide")
call gen_chibi("hide")
if action == "reset":
call ton_chibi("stand", xpos, ypos)
call gen_chibi("sit_behind_desk")
# Blowjob
elif action in ('bj_desk', 'bj_desk_shocked'):
show screen tonks_chibi_desk(action)
if trans:
with trans
return
screen tonks_chibi_desk(action):
tag tonks_chibi_scene
zorder states.desk_chibi_zorder
# Works with any image that matches the desk area
add "ch_ton [action]" xpos 370 ypos 336 xanchor 0.5 yanchor 0.5