Расширение для Universal Combat Class
Universal Combat Class (Далее - UCC) - это подсистема бота Astral, управляющая действиями персонажа во время боя. Упрощенное описание алгоритма функционирования боевой подсистемы описано в отдельной статье.
Каждое свободное, боевое и ежедневное умение персонажа активируется специальной командой (Далее - “ucc-команда” или “ucc-Action”). Также существуют специальные ucc-команды на уклонение, приближение или удаление от цели, переключение режима боя и т.п.
Последовательность и условиям применения ucc-команд называются ucc-профиль, который сохраняется в xml-файл.
В случае отсутствия ucc-профиля для класса, которым бот управляет в данный момент, UCC автоматически генерирует ucc-профиль, содержащий минимально необходимый набор ucc-команд. Однако, бот в автоматическом режиме не способен выстроить комбинированные атаки и реализовать специфическую для класса тактику боя.
Профили создаются в специальном редакторе, улучшенная версия которого реализована в плагине EntityTools.
Кроме того в состав плагина EntityTools входят дополнительные ucc-команды и ucc-условия, которые могут быть использованы в ucc-профилях, а также инструменты для их настройки.
Разработчиками бота не была предусмотрена возможность добавления ucc-команд и ucc-условий в плагинах. Чтобы обойти данное ограничение в EntityTools реализованы:
- патч, модифицирующий окно добавления ucc-команд, в котором реализована возможность выбора стандартный и дополнительных ucc-команды.
- патч метода проверки истинности ucc-условий, позволяющий боевой подсистеме обрабатывать дополнительные ucc-условия вместе со стандартными.
В версии плагина EnttyTools 0.22.629.330 и младше для данных целей использовалась специальная команда-обертка SpecializedUCCAction, которая в настоящий момент является устаревшей.. - модифицированный редактор ucc-профилей.
Команды
- UCCActionPack : группирующая ucc-команда, позволяющая объединять несколько ucc-команд и выполнять их последовательно (без прерывания боевого цикла). SpecializedUCCAction : команда-обертка, обрабатывающая расширенный набор ucc-условий.
- ExecuteSpecificPower : команда для активации умения персонажа или используемого предмета, c дополнительными настройки.
- PluggedSkill : активирует артефакт или боевое умение скакуна.
- ChangeTarget : заменяет цель персонажа на противника, заданного командой.
- ApproachEntity : перемещает персонажа к заданной Entity.
- DodgeFromEntity : перемещает персонажа от заданной Entity.
- UseItemSpecial : активация заданного предмета.
Условия
- UCCConditionPack : группирующее ucc-условие, позволяющее объединять несколько ucc-условий.
- UCCEntityCount : подсчет количества Entity и сопоставление с заданной величиной.
- UCCEntityCheck : проверка заданного свойства Entity.
- UCCTargetMatchEntity : проверка цели на сооответствия заданному идентификатору Entity.
- UCCCheckTimer : проверка состояния именованного таймера.
- UCCGameUICheck : проверка состояния заданного элемента внутриигрового интерфейса.
- UCCQuesterCheck : условие-обертка, которое позволяет использовать любые quester-условия.