2026-06-09 12:26:53 +02:00
|
|
|
# The Iron Hollow — Chapter 1 PoC
|
|
|
|
|
# Scene 2: Sara Arrives
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
define sara = Character("Sara", color="#c8a882")
|
|
|
|
|
define luno = Character("Luno", color="#82b4c8")
|
|
|
|
|
define narrator = Character(None, kind=nvl)
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
# ── Persistent flags ──────────────────────────────────────────────────────────
|
|
|
|
|
default checkpoint_set = False
|
|
|
|
|
default rewind_used = False
|
|
|
|
|
default branches_explored = 0
|
|
|
|
|
default luno_suspicion = 0
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
# ── Entry point ───────────────────────────────────────────────────────────────
|
2026-06-09 11:08:04 +02:00
|
|
|
label start:
|
2026-06-09 12:26:53 +02:00
|
|
|
scene bg training_yard
|
|
|
|
|
with fade
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
"The Iron Hollow training yard sits inside a converted warehouse district. Stone walls, packed dirt, the smell of old metal and new sweat."
|
|
|
|
|
"Sara takes it all in before she steps through the gate."
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
show sara neutral at left
|
|
|
|
|
with easeinright
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
"Two people are already here. A boy against the far wall, watching nothing. And a girl near the gate — moving like she already belongs."
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
show luno curious at right
|
|
|
|
|
with easeinright
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
"The girl notices Sara first."
|
|
|
|
|
jump luno_greeting
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
label luno_greeting:
|
|
|
|
|
luno "You're here for the recruitment?"
|
|
|
|
|
sara "Yes. Where do I register?"
|
|
|
|
|
luno "The man over at that table takes your name. Then we wait."
|
|
|
|
|
luno "I'm Luno. Been here a few days already — helping with the wounded from last month's job. I know how things run here if you need anything."
|
|
|
|
|
"She doesn't say it like an offer. She says it like she's already taking notes."
|
|
|
|
|
luno "So. Money, glory, or are you just bored?"
|
|
|
|
|
jump choice_screen
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
label choice_screen:
|
|
|
|
|
$ branches_explored += 1
|
|
|
|
|
#show screen timer_bar(20)
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
menu:
|
|
|
|
|
"Why are you here?"
|
|
|
|
|
"\[ Create Checkpoint \]" if not checkpoint_set:
|
|
|
|
|
$ checkpoint_set = True
|
|
|
|
|
hide screen timer_bar
|
|
|
|
|
scene black
|
|
|
|
|
with dissolve
|
|
|
|
|
"A flash. Sara's hand, signing something. A contract. The ink is red."
|
|
|
|
|
"It could mean anything."
|
|
|
|
|
scene bg training_yard
|
|
|
|
|
with dissolve
|
|
|
|
|
show sara neutral at left
|
|
|
|
|
show luno curious at right
|
|
|
|
|
jump choice_screen
|
2026-06-09 11:08:04 +02:00
|
|
|
|
2026-06-09 12:26:53 +02:00
|
|
|
"For the money, like anyone.":
|
|
|
|
|
hide screen timer_bar
|
|
|
|
|
jump branch_money
|
|
|
|
|
|
|
|
|
|
"To find something worth doing.":
|
|
|
|
|
hide screen timer_bar
|
|
|
|
|
jump branch_purpose
|
|
|
|
|
|
|
|
|
|
"I'd rather not say.":
|
|
|
|
|
hide screen timer_bar
|
|
|
|
|
jump branch_silence
|
|
|
|
|
|
|
|
|
|
"[ You asked the others the same thing, didn't you. ]" if checkpoint_set and branches_explored >= 3:
|
|
|
|
|
hide screen timer_bar
|
|
|
|
|
jump branch_sharp
|
|
|
|
|
|
|
|
|
|
label branch_money:
|
|
|
|
|
$ luno_suspicion += 1
|
|
|
|
|
sara "Same reason as everyone else, I'd assume."
|
|
|
|
|
luno "Honest. I can work with that."
|
|
|
|
|
show luno amused at right
|
|
|
|
|
luno "Though if money's the goal, you don't look like you need it."
|
|
|
|
|
sara "Looks can be misleading."
|
|
|
|
|
show luno neutral at right
|
|
|
|
|
luno "Sure."
|
|
|
|
|
"A pause. Just a half-beat too long."
|
|
|
|
|
luno "They can be."
|
|
|
|
|
"She doesn't push. But her eyes stay on Sara a moment after the conversation moves on."
|
|
|
|
|
jump scene_continues
|
|
|
|
|
|
|
|
|
|
label branch_purpose:
|
|
|
|
|
sara "I'm not looking for money exactly. More... something to point myself at."
|
|
|
|
|
"A beat. Something opens in Luno's expression — not warm, but something."
|
|
|
|
|
show luno curious at right
|
|
|
|
|
luno "Huh. That's not what I expected."
|
|
|
|
|
sara "What did you expect?"
|
|
|
|
|
luno "Something about honour. Or family legacy."
|
|
|
|
|
show luno tilted at right
|
|
|
|
|
luno "The clothes suggest a script."
|
|
|
|
|
show sara pained at left
|
|
|
|
|
sara "The script didn't survive."
|
|
|
|
|
"She doesn't mean to say it. Too true. Too fast. Too much."
|
|
|
|
|
"She can feel it land — can feel Luno actually {i}looking{/i} at her now, not just watching."
|
|
|
|
|
show luno soft at right
|
|
|
|
|
luno "...Yeah. I know that feeling."
|
|
|
|
|
"A real moment. Brief. Neither of them knows what to do with it."
|
|
|
|
|
|
|
|
|
|
if checkpoint_set:
|
|
|
|
|
show screen rewind_prompt
|
|
|
|
|
"The rewind option surfaces at the edge of the screen, glowing faintly."
|
|
|
|
|
"Sara can step back. Give the safer answer. Luno will never know what she almost said."
|
|
|
|
|
menu:
|
|
|
|
|
"[ ↺ Rewind ] (14 seconds remaining)":
|
|
|
|
|
hide screen rewind_prompt
|
|
|
|
|
$ rewind_used = True
|
|
|
|
|
$ luno_suspicion += 1
|
|
|
|
|
scene black
|
|
|
|
|
with dissolve
|
|
|
|
|
show screen teal_wash
|
|
|
|
|
"The world pulls back."
|
|
|
|
|
"Colour drains to teal. Sound slows to nothing."
|
|
|
|
|
hide screen teal_wash
|
|
|
|
|
scene bg training_yard
|
|
|
|
|
with dissolve
|
|
|
|
|
show sara neutral at left
|
|
|
|
|
show luno curious at right
|
|
|
|
|
"Sara is standing at the choice again. Luno's question still in the air."
|
|
|
|
|
jump choice_after_rewind
|
|
|
|
|
"[ Continue ]":
|
|
|
|
|
hide screen rewind_prompt
|
|
|
|
|
|
|
|
|
|
jump scene_continues
|
|
|
|
|
|
|
|
|
|
label choice_after_rewind:
|
|
|
|
|
menu (caption="— Why are you here? —"):
|
|
|
|
|
"For the money, like anyone.":
|
|
|
|
|
jump branch_money_post_rewind
|
|
|
|
|
"I'd rather not say.":
|
|
|
|
|
jump branch_silence_post_rewind
|
|
|
|
|
|
|
|
|
|
label branch_money_post_rewind:
|
|
|
|
|
sara "Same reason as everyone else."
|
|
|
|
|
luno "Sure."
|
|
|
|
|
"Unremarkable. Fine."
|
|
|
|
|
"But when Sara finishes speaking, Luno's eyes linger — just a half-second longer than they should."
|
|
|
|
|
show luno linger at right
|
|
|
|
|
"Not suspicion. Not quite. More like the feeling of reaching for something that moved."
|
|
|
|
|
show luno neutral at right
|
|
|
|
|
"She shakes it off. Probably nothing."
|
|
|
|
|
"Sara knows it wasn't nothing."
|
|
|
|
|
$ luno_suspicion += 1
|
|
|
|
|
jump scene_continues
|
|
|
|
|
|
|
|
|
|
label branch_silence_post_rewind:
|
|
|
|
|
sara "I'd rather not say."
|
|
|
|
|
luno "Fair enough."
|
|
|
|
|
"But when Sara finishes speaking, Luno's eyes linger — just a half-second longer than they should."
|
|
|
|
|
show luno linger at right
|
|
|
|
|
"Not suspicion. Not quite. More like the feeling of reaching for something that moved."
|
|
|
|
|
show luno neutral at right
|
|
|
|
|
"She shakes it off. Probably nothing."
|
|
|
|
|
"Sara knows it wasn't nothing."
|
|
|
|
|
$ luno_suspicion += 1
|
|
|
|
|
jump scene_continues
|
|
|
|
|
|
|
|
|
|
label branch_silence:
|
|
|
|
|
sara "That's a fairly personal question for someone I've known thirty seconds."
|
|
|
|
|
luno "Fair. I ask everyone. You don't have to answer."
|
|
|
|
|
sara "...Then I won't."
|
|
|
|
|
luno "That's an answer too."
|
|
|
|
|
"She's not unfriendly. But Sara just became a question mark in Luno's mental ledger."
|
|
|
|
|
$ luno_suspicion += 1
|
|
|
|
|
jump scene_continues
|
|
|
|
|
|
|
|
|
|
label branch_sharp:
|
|
|
|
|
sara "You asked him the same thing."
|
|
|
|
|
"She nods toward Eron."
|
|
|
|
|
sara "Before I arrived."
|
|
|
|
|
"Luno goes still. Not alarmed — but recalibrating."
|
|
|
|
|
show luno still at right
|
|
|
|
|
luno "...You were watching from outside the gate?"
|
|
|
|
|
sara "The wall has gaps."
|
|
|
|
|
luno "Most people don't bother to look."
|
|
|
|
|
sara "I bother."
|
|
|
|
|
"A pause. Luno is weighing something."
|
|
|
|
|
luno "That's either very smart or very paranoid."
|
|
|
|
|
sara "Both, usually."
|
|
|
|
|
"Luno laughs — a real one, short and surprised."
|
|
|
|
|
show luno laugh at right
|
|
|
|
|
"But her eyes are sharper now, not warmer."
|
|
|
|
|
show luno sharp at right
|
|
|
|
|
"This is not a win. It's a different kind of exposure."
|
|
|
|
|
$ luno_suspicion += 2
|
|
|
|
|
jump scene_continues
|
|
|
|
|
|
|
|
|
|
label scene_continues:
|
|
|
|
|
"Before the silence can settle, footsteps at the gate."
|
|
|
|
|
"Two more arrivals. The scene continues..."
|
2026-06-09 11:08:04 +02:00
|
|
|
return
|
2026-06-09 12:26:53 +02:00
|
|
|
|
|
|
|
|
# ── Screens ───────────────────────────────────────────────────────────────────
|
|
|
|
|
|
|
|
|
|
screen timer_bar(duration):
|
|
|
|
|
zorder 10
|
|
|
|
|
timer duration action Hide("timer_bar")
|
|
|
|
|
vbox:
|
|
|
|
|
xalign 0.5
|
|
|
|
|
yalign 0.02
|
|
|
|
|
bar:
|
|
|
|
|
value AnimatedValue(duration, duration)
|
|
|
|
|
xsize 400
|
|
|
|
|
ysize 14
|
|
|
|
|
text "Respond within [duration]s":
|
|
|
|
|
xalign 0.5
|
|
|
|
|
color "#c8c8c8"
|
|
|
|
|
size 18
|
|
|
|
|
|
|
|
|
|
screen rewind_prompt():
|
|
|
|
|
zorder 10
|
|
|
|
|
text "[ ↺ Rewind available ]":
|
|
|
|
|
xalign 0.05
|
|
|
|
|
yalign 0.95
|
|
|
|
|
color "#4ab8b8"
|
|
|
|
|
size 22
|
|
|
|
|
|
|
|
|
|
screen teal_wash():
|
|
|
|
|
zorder 20
|
|
|
|
|
add Solid("#1a4a4a") alpha 0.7
|