2.9 KiB
Syntax
Setup
This is done in the about.json file,
{
"title": "My Great Story",
"description": "please read!"
}
Characters
See Character documentation for more info
Referencing a character using the @, @NARRATOR is reserved for the Narrator.
Customisation is done with @CHARACTER change <feature> <feature name>
Move a character with @CHARACTER to fr
Outputting can be done with @CHARACTER says "string", see more at (outputs)[##outputs]
Note
fr means front-right for instance.
Variables
Currently only strings and integers are supported as variable types (booleans are planned).
The interpreter can assume the data type so this doesn't need to be specified.
To assign new variables (or overwrite existing ones):
$x = 1
$an_integer = 3
$y = "hello"
$a_string = "world"
Note
Variable names can be as long as you want and can contain any characters except whitespaces
To modify existing variables:
$x + 1 // Adds 1 to an integer x
$x - 1 // Subtracts 1 from an integer x
$y + " world" // Appends " world" to the end of a string y
Other uses:
$x = choice "choice 1" { // Assigns to x the choice made by the client
...
$x = input // Assigns to x the string input made by the client
Outputs
@CHARACTER says "this string
is multi-line
and ends with a"
$x = "hello world"
@CHARACTER says $x
$name = "deadvey"
@CHARACTER says "hello $name"
Note
Strings only support double quotes now ("") and do not support having quotes within quotes.
Variables
Variables are referenced with the $, only integers will be supported.
Selection
Condition based:
if condition {
}
elif condition { // Only gets checked if the if and all previous elif statements failed
}
else // Always passes if all previous if and elif statements failed
}
Note
See conditions
Choice based:
choice "choice 1" {
}
or "choice 2" {
}
or "choice 3" {
}
You can assign a variable to the result of a choice by doing the following:
$x = choice "choice 1" {
...
Positioning
@CHARACTER to position
PAN position
Conditions
A condition works works like this:
$x == "hello" // evaluates true only if x is "hello"
$x > 1 // evaulates true if x is an integer and is more than 1
$x < 1 // evaluates true if x is an integer and is less than 1
$x >= 1 // evaluates true if x is an integer and is more than or equal to 1
$x <= 1 // evaluates true if x is an integer and is less than or equal to 1
Note
== can be used for integers or strings whereas the rest can only be used with integers
The order (variable operator value) is currently fixed and so must be layed out like this.
Other
label:
GOTO label
Ending
END to exit out of the story