2022-05-16 23:48:22 +00:00
|
|
|
|
|
|
|
# Transforms used by the chibi class or chibi images
|
|
|
|
|
|
|
|
transform combine_transforms(one, two):
|
|
|
|
one
|
|
|
|
two
|
|
|
|
|
|
|
|
transform chibi_base(position, flip, scale):
|
|
|
|
pos position
|
|
|
|
anchor (0.0, 1.0)
|
|
|
|
xzoom (-1 if flip else 1)
|
|
|
|
zoom (0.5 * scale)
|
|
|
|
|
|
|
|
transform chibi_walk(path, times):
|
|
|
|
function renpy.partial(chibi_path_move, path, times, _warper.linear)
|
|
|
|
|
|
|
|
transform chibi_fly:
|
|
|
|
block:
|
|
|
|
yoffset absolute(0)
|
|
|
|
ease 2 yoffset absolute(-10)
|
|
|
|
ease 2 yoffset absolute(10)
|
|
|
|
ease 2 yoffset absolute(0)
|
|
|
|
repeat
|
|
|
|
|
|
|
|
transform chibi_fly_move(path, times):
|
|
|
|
parallel:
|
|
|
|
function renpy.partial(chibi_path_move, path, times, _warper.ease_quad)
|
|
|
|
|
|
|
|
parallel:
|
|
|
|
yoffset absolute(0)
|
|
|
|
ease 2 yoffset absolute(-10)
|
|
|
|
ease 2 yoffset absolute(10)
|
|
|
|
ease 2 yoffset absolute(0)
|
|
|
|
repeat
|
|
|
|
|
|
|
|
transform chibi_wand:
|
|
|
|
xoffset -72 # Note: Offset seems to be applied after zoom
|
|
|
|
|
|
|
|
transform chibi_lie:
|
|
|
|
rotate 90
|
|
|
|
transform_anchor True
|
|
|
|
anchor (0.5, 0.65)
|
|
|
|
xzoom 1 # Negate flip
|
|
|
|
|
|
|
|
transform chibi_float_move(path, times):
|
|
|
|
combine_transforms(chibi_lie, chibi_fly_move(path, times))
|
|
|
|
|
|
|
|
transform random_blink(close_image, open_image=Null()):
|
|
|
|
close_image
|
|
|
|
pause .08
|
|
|
|
open_image
|
|
|
|
choice:
|
|
|
|
pause 6
|
|
|
|
choice:
|
|
|
|
pause 3
|
|
|
|
choice:
|
|
|
|
# Double blink
|
|
|
|
close_image
|
|
|
|
pause .08
|
|
|
|
open_image
|
|
|
|
pause 5
|
|
|
|
repeat
|
|
|
|
|
|
|
|
transform emote_effect():
|
|
|
|
alpha 0.0
|
|
|
|
on show:
|
|
|
|
zoom 0.8
|
|
|
|
linear .2 zoom 1.0 alpha 1.0
|
|
|
|
on hide:
|
|
|
|
linear .2 zoom 1.2 alpha 0.0
|
|
|
|
|
|
|
|
init python:
|
|
|
|
def chibi_path_move(path, times, warp, trans, st, at):
|
|
|
|
if st >= sum(times):
|
|
|
|
trans.pos = path[-1]
|
|
|
|
return None
|
|
|
|
|
|
|
|
it = 0
|
|
|
|
seg = 0
|
2022-09-29 21:19:55 +00:00
|
|
|
for i in range(len(times)):
|
2022-05-16 23:48:22 +00:00
|
|
|
if it + times[i] > st:
|
|
|
|
seg = i
|
|
|
|
break
|
|
|
|
it += times[i]
|
|
|
|
|
|
|
|
segt = (st - it) / times[seg]
|
|
|
|
segt = warp(segt)
|
|
|
|
trans.pos = renpy.atl.interpolate(segt, path[seg], path[seg + 1], renpy.atl.PROPERTIES["pos"])
|
|
|
|
return 0
|