# ============================================================
# Gym 10.4 — Transforms (Mirror, Scale, Offset)
# ============================================================
# Demonstrates visual manipulation: mirroring (flip),
# scaling, offset, and manual positioning with size/rotation.
# ============================================================

leave --All--

# ---- Baseline ----
Miko (neutral): Let's explore transforms — mirror, scale, and offset.
join Miko (neutral) center [animation="Fade In"]
Miko (neutral): Here I am at default: scale=1, no mirror, no offset.

[wait time="1.5"]

# ---- Mirror (flip horizontally) ----
update Miko (neutral) center [animation="Tada" wait="true" mirrored="true"]
Miko (smile): And now I'm mirrored! I'm facing the other way.

[wait time="1.0"]

update Miko (neutral) center [animation="Tada" wait="true" mirrored="false"]
Miko (smile): And back to normal. Mirror is great for characters\
facing each other.

[wait time="1.5"]

# ---- Scale ----
leave Miko
join Miko (joy) center [animation="Fade In"]
Miko (joy): This is scale=1 — the default size.

[wait time="1.0"]

leave Miko
# Scale is set on the character resource, but we can demonstrate via update
# with manual size
join Miko (shock) pos=x0.5y0.5 size=x0.4y0.4 [animation="Bounce In"]
Miko (shock): Now I'm bigger! size=x0.4 y0.4 — 40% of viewport!

[wait time="1.5"]

join Advisor (pl5) pos=x0.2y0.5 size=x0.2y0.2 [animation="Fade In"]
Advisor (pl5): And I'm smaller — only 20% of the viewport.

[wait time="1.5"]

Miko (smile): Size differences create visual hierarchy.
Advisor (pl5): The main speaker can be larger; background characters smaller.

[wait time="1.5"]

# ---- Offset ----
leave --All--

join Miko (neutral) center [animation="Fade In"]
Miko (neutral): Offset shifts a character from their position origin.

[wait time="1.0"]

# Offset is set on the character resource, not via timeline syntax
# But we can use manual pos for the same effect
update Miko (smile) pos=x0.5y0.7 [move_time="0.8" move_trans="Sine" move_ease="In Out"]
Miko (smile): I used pos= to shift downward smoothly!

[wait time="1.0"]

update Miko (joy) pos=x0.5y0.5 [move_time="0.5"]
Miko (joy): And back to center. The move_time made it animate smoothly.

[wait time="1.5"]

# ---- Rotation ----
leave Miko
join Miko (joy) pos=x0.5y0.5 rot=15 [animation="Fade In"]
Miko (joy): I'm tilted! rot=15 degrees.

[wait time="1.0"]

update Miko (smile) pos=x0.5y0.5 rot=0 [move_time="0.5"]
Miko (smile): And back to straight. Rotate for dramatic effect!

[wait time="1.5"]

# ---- Summary ----
leave --All--

Advisor (pl5): Quick reference:
Advisor (pl5): • mirroed=true/false — flip horizontally
Advisor (doubt): • size=x1 y1 — scale from viewport (0-1)
Advisor (doubt): • pos=x1 y1 — manual position
Advisor (doubt): • rot=degrees — rotation
Advisor (doubt): • move_time=X — smooth tween for position changes

[wait time="2.0"]

jump gym10_main/menu
