A generated Choice from the story.
A single ChoicePoint in the Story could potentially generate
different Choices dynamically dependent on state, so they're
separated.
The InkList is the underlying type that's used to store an instance of a
list in ink. It's not used for the definition of the list, but for a list
value that's stored in a variable.
Somewhat confusingly, it's backed by a C# Dictionary, and has nothing to
do with a C# List!
The underlying type for a list item in ink. It stores the original list definition
name as well as the item name, but without the value of the item. When the value is
stored, it's stored in a KeyValuePair of InkListItem and int.
When looking up content within the story (e.g. in Container.ContentAtPath),
the result is generally found, but if the story is modified, then when loading
up an old save state, then some old paths may still exist. In this case we
try to recover by finding an approximate result by working up the story hierarchy
in the path to find the closest valid container. Instead of crashing horribly,
we might see some slight oddness in the content, but hopefully it recovers!
All story state information is included in the StoryState class,
including global variables, read counts, the pointer to the current
point in the story, the call stack (for tunnels, functions, etc),
and a few other smaller bits and pieces. You can save the current
state using the json serialisation functions ToJson and LoadJson.
Encompasses all the global variables in an ink Story, and
allows binding of a VariableChanged event so that that game
code can be notified whenever the global variables change.
General purpose delegate definition for bound EXTERNAL function definitions
from ink. Note that this version isn't necessary if you have a function
with three arguments or less - see the overloads of BindExternalFunction.