# ============================================================
# Pattern 8: Dynamic Label Jump (Variable as Jump Target)
# ============================================================
# The value of a variable is used as the label to jump to.
# This creates a state-machine-like flow controlled by data.
# ============================================================

label start

join Miko center

Miko (neutral): This pattern uses a variable's VALUE as the jump target.
Miko (smile): Let me show you with a time-of-day example.

# Set the variable that will drive the jump
# In a real game, this might be set by a clock system
set {Gym.time_of_day} = "morning"

Miko (neutral): The variable `Gym.time_of_day` is set to "{Gym.time_of_day}".
Miko (joy): Now watch: I'll jump to a label with that exact name.

# This jump target is resolved at runtime from the variable
jump {Gym.time_of_day}

# ---- Labels act as states ----

label morning
Miko (joy): Good morning! The sun is rising over the hills.
Miko (smile): Birds are singing, and the air is crisp and fresh.
[wait time="1.5"]
jump after_demo

label afternoon
Miko (neutral): It's a warm afternoon. The sun is high.
Miko (smile): A perfect time for adventuring!
[wait time="1.5"]
jump after_demo

label evening
Miko (doubt): The sun is setting. Shadows grow long.
Miko (neutral): We should find shelter before night falls.
[wait time="1.5"]
jump after_demo

label night
Miko (shock): It's dark out here! The stars are beautiful but eerie.
Miko (doubt): I can barely see the path ahead...
[wait time="1.5"]
jump after_demo

# ---- Wrap-up ----

label after_demo

join Advisor right

Advisor (pl5): The jump target was `{Gym.time_of_day}` — resolved at runtime!
Advisor (pl5): This is incredibly powerful for:
Advisor (doubt): • Time-of-day systems
Advisor (doubt): • Quest state machines
Advisor (doubt): • Chapter/scene routing
Advisor (doubt): • Any narrative that follows a data-driven flow

[wait time="2.0"]

Miko (smile): You can also combine it with timeline names.
Advisor (pl5): Use one variable for the timeline and another for the label.
Advisor (surprise): Making it possible to route ANYWHERE from a variable.

[wait time="1.5"]

jump gym_main/menu
