Sequence
1 -> 2 -> 3
Нода Sequence выполняет своих детей по порядку, слева направо. Если какой-либо из детей вернул Failure, выполнение ноды Sequence прекращается, и она тоже возвращает Failure. Если все дети вернули Success, нода Sequence возвращает Success.
Пример применения:
- Применение скилла по цели:

Логика такая - если 1-ая или 2-ая проверка вернут Failure, то до каста скилла дело не дойдет. Если же обе вернут Success, то персонаж попробует применить скилл.
Обычно нужно применять вместе в комбинации с нодой Selector.
При этом располагать ноды можно так, как вашей душе угодно, главное помнить, что обход будет слева направо.

- Ротация скиллов - Selector + Sequence: А теперь давайте построим уже полноценную ротацию
![c5do0cg[1].png](/_wiki/assets/b5b11f4af3ac2cc641ec6c7180a8f00e6f052ef6356bb5f7c5916704f971ea11/assets/c5do0cg%5B1%5D.png)
Что же здесь происходит - для начала, мы используем ноду Sequence(1), которая объединяет еще одну Sequence(2) и Selector(5). Sequence(2) отвечает за проверки "А можем ли мы вообще бить?", т.е. мы живы и выбрана цель. В реальных примерах сюда еще могут примешиваться проверки HP, нахождения в городе и так далее. Если любая из проверок не выполнится - дерево уйдет на следующий цикл, так и не попытавшись атаковать. Если же мы живы и у нас есть цель, то дальше нужно выбрать "А как же именно мы будем атаковать выбранную цель?".
Для упрощения здесь всего 2 варианта:
- если у нас готов скилл Aura Is Active(7), то мы применим его Execute Aura(8), здесь внутри может быть тот же Send Sequence
- если скилл не готов - бьем базовой атакой
В реальных сценариях сама ротация может быть сильно сложнее - нужно проверять ресурсы(HP/MP/кулдауны), можно проверять приоритетность текущей цели (если мало HP у цели - нет смысла бить сильным скиллом) и т.п.
Работа ноды:
- Нода Sequence выполняет своих детей по порядку.
- Если какой-либо ребенок вернул
Failure, Sequence возвращаетFailure. - Если все дети вернули
Success, Sequence возвращаетSuccess. - Если какой-либо ребенок вернул
Running, Sequence запоминает его и продолжает выполнение с него при следующем обновлении.
Использование ноды Sequence позволяет создавать последовательные цепочки действий в деревьях поведения, где важен порядок выполнения задач.
Не путайте! Sequence останавливается на первой же ноде, которая вернула Failure, а Selector останавливается на первой ноде, которая вернула Success.
