Arboles de Comportamiento

Los Árboles de Comportamiento constituyen el método por el cual se escribe la IA de los mobs. La clase BehaviourTree tiene los siguientes métodos y atributos públicos.

Shared Context
Las Hojas (leaves) de los árboles de comportamiento necesitan acceder al contexto de todo el árbol (llamado shared_context). Los métodos expuestos a continuación acceden indirectamente al árbol.
tree.clear_context()
:
borra todo el contenido del context. Típicamente esto se hace para resetear el arbol.
tree.get_context(variable)
:
devuelve el valor de la variable como está en el contexto. Variable debe ser un string, y debe existir en el contexto.
tree.set_context(variable, valor)
:
si la variable no se encuentra en el contexto, este método la agrega con el valor dado. En caso de ya existir, el valor de la variable se reemplaza por el valor dado.
leaf.get_entity()
:
devuelve la entidad (por ejemplo, el mob) que está corriendo la AI.
tree.reset()
:
este método restablece todos los valores a sus puntos iniciales.

Composites

Sequence
:
las secuencias ejecutan a sus hijos en orden de prioridad (izquierda a derecha) y solo devuelven Success si todos sus hijos han sido Success. Si alguno de ellos devuelve Fail, la Sequence devuelve Fail a su padre.
Selector
:
Los selectores, al contrario que las Sequences, continúan ejecutando a sus hijos sólo mientras que éstos devuelvan Fail. El selector sólo devuelve Fail si todos sus hijos lo hicieron y Success en cuanto uno de ellos tenga éxito.

Decorator

Repeater
:
Estos decoradores repiten a su hijo un numero de veces. Este numero puede ser 0, lo que significa infinitamente, o un integral mayor que 0, que será el numero de veces que el hijo de este decorador será ejecutado. En este sentido, es similar al Limiter, descrito más abajo.
UntilFail
:
Este decorador continuará ejecutando a su hijo hasta que éste devuelva un resultado de Fail.
Succeeder
:
Este decorador devuelve Success sin importar cuál haya sido el resultado de su hijo.
Inverter
:
Este decorador invierte, como su nombre indica, el resultado de su hijo. Fail se convierte en Success y viceversa. Este decorador devuelve Running sólo si su hijo devuelve ese resultado.
Failer
:
Este decorador devuelve Fail sin importar cuál haya sido el resultado de su hijo.
UntilSuccess
:
Este decorador continuará ejecutando a su hijo hasta que éste devuelva un resultado de Success.
Limiter
:
Este decorador impone un numero máximo de llamadas que su jijo puede recibir dentro de la ejecución completa del árbol.

Leaf

Mientras que Composites y Decorators forman la estructura del árbol, sus hojas (Leaves) son las que le dan función.