How Are Packages Evaluated
This is a difficult question to answer. There are a number of variables which control when and how Packages are evaluated.
Package Evaluation
Packages evaluation is synonymous with selection. An actor will be given packages to define AI behavior. The game selects from the available packages and uses it to control the behavior of each actor.
To effectively define custom actor behavior it is necessary to create new packages and have an understanding of how they are selected (evaluated).
When Packages Are Evaluated
- Packages seem to be re-evaluated every 10 seconds.
- Calling EvaluatePackage will force all packages to be immediately re-evaluated.
- Calling ResetAI will force all packages to be immediately re-evaluated however this is not the intended purpose of the function.
- When the player waits, packages are re-evaluated at the end of the wait and according to a set of (UNKNOWN) rules the actors can teleport to the packages target location.
- When an existing package completes packages are re-evaluated.
How Packages Are Evaluated
Packages seem to be evaluated in a top-to-bottom fashion. From the AI Packages tab, the packages are searched top-to-bottom and the first one whose conditions are satisfied is used.
The conditions and schedule directly control whether a package can start. The schedule controls the period of time when the package can run. The schedule is an implicit condition which can prevent a package from being evaluated when the current game time does not fit the schedule.
Each condition is evaluated top to bottom following the conventions described in the Quest_and_Dialogue_Tutorial#Conditions. If the set of conditions for a package all evaluate to true then the package is selected.