Перейти к содержимому

Формулы и переменные

Автоматизация в Anima позволяет связывать виджеты друг с другом. Например, вы можете сделать так, чтобы бонус к атаке автоматически пересчитывался при изменении характеристики Силы.

Переменная — это ссылка на значение конкретного поля виджета. Чтобы использовать значение в формуле, его нужно заключить в квадратные скобки: [имя_переменной].

  1. Собственные значения. Вы можете обращаться к полям того же самого виджета, используя префикс local- и техническое имя поля: [local-modifier], [local-current], [local-input]. Имена полей каждого виджета перечислены в Каталоге виджетов.
  2. Связанные виджеты. Чтобы получить данные из другого виджета, необходимо привязать его к текущему с помощью меню Связи.
  3. Алиасы. По умолчанию привязанные виджеты дают обращаться к переменным по их техническому id, например modifier-663988958975. Но вы можете задать для переменной алиас в настройках Данных, назвав переменную более осмысленно, например str.

Если у вас есть счётчик, и для его поля «Текущее значение» задан алиас str, вы можете создать другой виджет, который будет вычислять модификатор по формуле: floor(([str] - 10) / 2)

Для кнопки атаки можно задать формулу: 1d20 + [str] + [proficiency_bonus] Здесь str и proficiency_bonus — это алиасы соответствующих виджетов на листе. Чтобы виджет кидал такую формулу по клику, включите ему «Действие по клику» → «Бросок» и впишите её в поле «Формула броска» (см. Каталог виджетов).

В формуле можно ветвиться по условию через if(условие, тогда, иначе): 1d20 + [str] + if([blessed] == 1, 1d4, 0) Если поле с алиасом blessed равно 1, к броску добавляется 1d4, иначе ничего. Подробнее — в разделе Нотация формул.

Композиция: бросок из нескольких виджетов

Заголовок раздела «Композиция: бросок из нескольких виджетов»

Обычный бросок по клику кидает формулу целиком и сразу. Композиция — это режим, в котором бросок собирается за несколько кликов: сначала вы жмёте базовый виджет, затем добавляете к нему части (навык, бонус, оружие), и только потом кидаете. Режим пригодится системам, где порог успеха или пул костей складывается из нескольких значений: Mothership, Heart, Forbidden Lands.

Режим задаётся у поля «Формула броска» — там же, где включается «Действие по клику» → «Бросок» (вкладка Данные, см. Действие по клику). Под полем формулы есть переключатель «Использование дайсницы»:

  • Бросок — клик кидает формулу немедленно (поведение по умолчанию).
  • Композиция — клик не кидает, а собирает формулу в дайснице.

Роль виджета определяется не отдельной настройкой, а наличием плейсхолдера [composition] в его формуле:

  • Базовый виджет — формула содержит [composition]. Клик по нему начинает новую композицию (и сбрасывает предыдущую, если она была). С него всегда начинают.
  • Виджет-часть — режим «Композиция», но [composition] в формуле нет. Клик дописывает вычисленное значение виджета к уже начатой композиции.

Клик по виджету-части, когда композиция ещё не начата, ничего не делает — сначала базовый виджет.

Бросок 1d100 под сумму характеристики и навыка.

  1. Виджет «Strength» (Модификатор), значение 35. Формула: 1d100<[[local-modifier][composition]], режим «Композиция». Внешние квадратные скобки — обычное математическое выражение: внутри складываются собственное значение виджета и всё, что добавят виджеты-части.
  2. Виджет «Military Training» (Модификатор), значение 10. Формула: +[local-modifier], режим «Композиция».

Клик по «Strength» → в дайснице появляется 1d100<35. Клик по «Military Training» → строка становится 1d100<45. Остаётся нажать бросок.

Групповой бросок, где каждая часть добавляет свою горсть кубов.

  1. «Сила» (Модификатор), значение 4. Формула: {[local-modifier]d6[composition]}, режим «Композиция».
  2. «Ближний бой», значение 2. Формула: , [local-modifier]d6, режим «Композиция».
  3. «Оружие», значение 1. Формула: , [local-modifier]d6, режим «Композиция».

Клики по трём виджетам подряд собирают {4d6}{4d6, 2d6}{4d6, 2d6, 1d6}.

Части подставляются вместо [composition] подряд, без пробелов и знаков между ними. Поэтому знак или разделитель пишется в начале формулы самой части:

  • +[local-modifier] — прибавить к сумме;
  • -[local-modifier] — вычесть;
  • , [local-modifier]d6 — добавить отдельную группу внутри группового броска {...}.

Собранная формула появляется в поле ввода дайсницы — её видно до броска и можно поправить руками. Бросок делается кнопкой в дайснице; после броска композиция сбрасывается, и следующий клик по базовому виджету начинает новую. Кнопка «Сбросить» в дайснице очищает собранное, не бросая.

  • composition — зарезервированное слово, так нельзя назвать алиас.
  • Плейсхолдер работает один раз на формулу: вторая копия [composition] в той же формуле не заполнится.
  • Список добавленных частей нигде не показывается — видна только итоговая строка, и убрать одну часть нельзя. Если добавили лишнее, кликните базовый виджет ещё раз: композиция начнётся заново.
  • У Модификатора курсор подсказывает роль: над базовым виджетом — обычный указатель, над виджетом-частью — курсор «копировать».

Формула виджета — это та же нотация, что и в дайснице: кости, математика, функции округления (floor, ceil, round), условия if(), групповые броски {} — плюс переменные в квадратных скобках. Полный справочник с примерами: Нотация формул.

При вводе формулы в настройках виджета доступны подсказки:

  • Автодополнение переменных. Начните вводить [ — редактор предложит список доступных переменных (поля этого виджета и привязанных).
  • Предпросмотр броска. Для полей-формул бросков рядом показывается ожидаемый результат в виде среднее (мин–макс).
  • Подсветка ошибок. Если формула некорректна или переменная не найдена, ошибка показывается прямо под полем ввода — исправляйте сразу, не запуская бросок.
  • Регистр алиаса не важен. Имена переменных нечувствительны к регистру: [str] и [STR] — это одно и то же.
  • Проверяйте скобки и алиасы. Большинство ошибок — это опечатка в алиасе или незакрытая скобка. Ориентируйтесь на подсветку ошибок в редакторе формул.