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

Нотация формул

Anima поддерживает мощную и гибкую нотацию для бросков костей. Она одинаково работает в двух местах: в поле ввода дайсницы и в формулах виджетов. Отличие одно: в формулах виджетов дополнительно доступны переменные в квадратных скобках — [str], [local-modifier].

Ниже — руководство по основным и продвинутым возможностям.

  • 1d20 — одна 20-гранная кость.
  • 2d6 — две 6-гранных кости.
  • dF.2 или dF — кости Fate/Fudge.
  • 1d100 или d% — процентная кость.

Вы можете использовать стандартные операторы: +, -, *, /, ^ (степень), % (остаток от деления).

  • 1d20 + 5 — бросок d20 с модификатором +5.
  • (2d6 + 2) * 2 — результат выражения в скобках удваивается.

Для подписи бросков используйте круглые скобки в конце формулы.

  • 1d20 + 5 (Атака)
  • 2d6 + 3 (Урон огнем)

Важные ограничения:

  • Перед скобкой метки должен быть пробел или оператор, чтобы система не спутала её с математической функцией.
  • Лейблы работают некорректно с оператором сортировки (sd/sa).

Вы можете использовать функции для обработки результатов бросков:

  • round(4d10/3) — округление к ближайшему целому.
  • floor(4d10/3) — округление вниз.
  • ceil(4d10/3) — округление вверх.
  • abs(4d10-25) — модуль числа (абсолютное значение).
  • sqrt(4d10/3) — квадратный корень.
  • pow(2d6, 2) — возведение в степень.
  • min(4d6, 10) — выбор минимального значения.
  • max(4d6, 10) — выбор максимального значения.
  • Другие доступные функции: cos, sin, tan, exp, log, sign.

Вы можете проверять результаты костей на соответствие условию. Это часто используется для подсчета успехов.

  • = или == — равно
  • != или <> — не равно
  • > / < — больше / меньше
  • >= / <= — больше или равно / меньше или равно
  • 4d6 > 4 — бросить 4d6 и посчитать количество костей, на которых выпало больше 4.
  • 10d10 >= 8 — классический подсчет успехов (World of Darkness).
  • 4d6 > 4f < 3 — считать успехи больше 4 и вычитать провалы меньше 3.
  • 2d6r=5 — перебрасывать любые кости, на которых выпадает 5.
  • 2d6ro>4 — перебросить кость один раз (Re-roll Once), если выпало больше 4.
  • 4d10r <= 3 — перебрасывать любые кости, на которых выпадает 3 или меньше.

Позволяют установить «пол» или «потолок» для значений кубов.

  • Min: 4d6min3 — любое значение ниже 3 будет считаться как 3.
  • Max: 4d6max3 — любое значение выше 3 будет считаться как 3.
  • Критические значения: 1d20cs=20cf=1 (Critical Success/Failure).
  • Взрывающиеся кости: 4d6! (каждый макс. результат добавляет ещё одну кость).
  • Сортировка: 4d6sd (по убыванию), 4d6sa (по возрастанию).
  • Keep/Drop: 4d6kh3 (оставить 3 лучших), 4d6dl1 (сбросить 1 худший).

Группы позволяют кидать несколько разных формул одновременно.

  • {1d20, 1d20}kh1 — бросить два d20 и оставить наибольший.
  • {1d12 (Надежда), 1d12 (Страх)} — групповой бросок с индивидуальными метками для каждой части.

Выбирают часть формулы по условию — как в табличных редакторах (Excel/Google Sheets).

if(условие, тогда, иначе)
  • if([str] >= 14, 2d6+3, 1d6) — если переменная [str] ≥ 14, бросаем 2d6+3, иначе 1d6.
  • [if([a] > [b], [a], [b])] — подставит большее из двух значений.

Как это работает:

  • Условие — это сравнение чисел (переменные и математика), а не подсчёт успехов из раздела 5. Поддерживаются >, <, >=, <=, ==, !=, а также and / or / not: if([hp] > 0 and [stunned] == 0, 1d20, 1d20dl1).
  • Вложенность. if([a] > 0, if([b] > 0, 1d6, 1d4), 0).
  • Конвертация. 0 конвертируется в false, все остальные числа в true. Формула if(0, да, нет) выведет “нет”.

Ограничения:

  • Равенство — это ==. Одиночное = не работает.
  • В условии нельзя бросать кости: if(1d20 > 10, …) не сработает — условие должно сводиться к числу (переменные и математика). В ветках кости можно любые.
  • Сравнение строк пока не поддерживается, только числа.

Если формула не считается или показывает ~error~, разбор типичных причин собран в Вопросах и ответах.