pub enum Step<D = NoDirective> {
Caption {
text: String,
},
Place {
side: Side,
character: CharacterId,
expression: String,
},
Clear {
side: Side,
},
Say {
speaker: CharacterId,
expression: Option<String>,
text: String,
direction: Option<String>,
line: LineId,
},
Narrate {
text: String,
direction: Option<String>,
line: LineId,
},
Choice {
options: Vec<ChoiceOption<D>>,
},
Music(MusicLine),
Directive(D),
If {
character: CharacterId,
then: Vec<Step<D>>,
otherwise: Vec<Step<D>>,
},
}Expand description
One step of a scene, in script order. D is the game’s own
directives.
Variants§
Caption
@caption <text>: a location/time caption, shown until the next one.
Place
@left <id> <expression>: a character enters (or replaces whoever
is) on side.
Clear
@left clear: the portrait on side leaves.
Say
id: text or id[expression]: text: an on-screen character speaks,
first changing expression if one is given.
Fields
speaker: CharacterIdWho speaks.
Narrate
> text: narration, no speaker.
Fields
Choice
@choice … @endchoice: the replies the player picks from, each
with its own reaction steps. Every option rejoins the scene after
the block.
Fields
options: Vec<ChoiceOption<D>>The options, in menu order.
Music(MusicLine)
@music <cue> or @music stop: the music changes when playback
reaches this line, and stays so after the scene.
Directive(D)
A directive of the game’s (Directive).
If
@if <character> … @else … @endif: steps that play only if the
character is there when the scene plays (Present), and the
steps that play instead if they aren’t.