The global config file is where all of the settings that apply to...
Section explaining character configuration.
This is the first thing you should look at if something goes haywire or your character doesn't behave quite like you would expect.
Angelscript is a statically-typed scripting language that makes it incredibly easy to bind classes and functions. At the same time however, on the C++ side of things, it is also very configurable and extensible. I will not be going over the language here. I will leave that to its creator on the documentation of the language, which can be found HERE. I will, however, go over a few additions to the language that are not covered in the core language guide. Don't worry, Angelscript is an easy language to pick up, and its debugging facilities are among some of the best I have ever had the pleasure to work with. Like all programming languages, however, it is not without its quirks and nuances.
The program utilizes what is called a Finite State Machine to define and organize the character's states of being. Put simply, a Finite State Machine (FSM, from now on) is a way of organizing states of an object into a way that is easy to read and understand, even by non-programmers. Right now, I am assuming that you are sitting. It could be said that you are in a sitting state. Shocked by this newfound knowledge? It could be said you are in a "Shocked" state. See how that works?
Defining states.
Defining a New Task.
The Task Stack.
Effective Task Use.
When a character is in a state, it is able to read from a series of tasks. These tasks are ways of simpifying the... er... task... of defining its behaviors when in a given state. Think of tasks as things you would do in your day-to-day life. Ever walked to school or work? That could be defined as a Task. How about stretching out in your chair? Lounging in front of the T.V.? Those can all be thought of as Tasks.
Tasks are defined in the scripting languages by inheriting from the Task interface provided by Moji.
Task Stack explanation.
Overview of how to use tasks effectively.
1.7.3