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

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

Одни и те же правила записи работают везде, где лист бросает кости:

В полях, где ждут число, — КЗ, скорость, максимум ресурса — работают поля с формулами. Те же правила записи у Anima.

Запись кости — NdS: N костей по S граней. Если N не указано, кость одна.

Запись Что это
1d20, d20 одна двадцатигранная кость
2d6 две шестигранных
3к8, 1К12, 2D4 то же самое: буква кости — d, D, к или К
d% процентная кость, то же, что d100
dF кость Fate: −1, 0, +1

Количество и грани можно посчитать: (ceil([LVL]/2))d6, max(1,[WIS])d8, 1d(6+2). Посчитанное количество округляется вниз; если вышло меньше нуля — костей ноль. 0d6 — ноль костей, даёт 0.

Модификаторы пишутся сразу после кости или группы {…} латинскими буквами.

Запись Что делает Пример
khN, klN оставить N старших / младших 2d20kh1 — с преимуществом, 4d6kh3
dhN, dlN отбросить N старших / младших 4d6dl1
! взрыв: на максимуме добросить ещё кость 3d6!, 1d10!>=9
!!, !p взрыв в ту же кость; каждый доброс −1 2d6!!, 2d6!p
r, ro + условие перебрасывать; ro — один раз 1d20ro=1, 2d6r<2
u, uo перебрасывать повторы 4d6u
minN, maxN грань не ниже / не выше N 4d6min2, 4d6max3
cs, cf + условие какие грани — критический успех / провал 1d20cs=20cf=1, 1d100cs<=5
sa, sd отсортировать грани в расшифровке 4d6sd
условие подсчёт успехов: итог — сколько костей прошли условие, минус провалы f… 10d10>=8, 4d6>4f<3

Условие — =, != (или <>), >, <, >=, <= и число. Сброшенные кости в логе приглушены, в сообщениях Vortex и мессенджеров — зачёркнуты.

Действия: +, -, *, /, % (остаток), ^ (степень). Порядок обычный — скобки, степень, умножение и деление, сложение и вычитание:

  • 1d20 + 5, 2d6 - 1
  • (1d6 + 2) * 2 — скобки работают как в математике
  • -1d4, 2 * -1d4 — минус перед костью вычитает её
  • 1d6 / 2 — деление точное, итог броска округляется по правилам игры

Пробелы не важны: 1d20 + 5 — то же, что 1d20+5. Дробные числа пишутся через точку: 0.5. Типографские −, ×, ÷ понимаются как -, *, /.

Функции — имя вплотную к скобке:

Функция Что делает Пример
floor, ceil, round округление вниз / вверх / к ближайшему floor(4d10/3)
min, max меньшее / большее из значений max(4d6, 10), min([LVL], 5)
abs модуль abs(4d10-25)
pow, sqrt степень, корень pow(2d6, 2)
sign, exp, log, sin, cos, tan прочая математика

Переменные подставляют показатели персонажа. Регистр не важен: [str] — то же, что [STR].

Переменная Значение
[STR], [DEX], [CON] модификаторы Силы, Ловкости, Телосложения
[INT], [WIS], [CHA] модификаторы Интеллекта, Мудрости, Харизмы
[PROF] бонус мастерства
[HALF_PROF] половина бонуса мастерства, вниз
[LVL] уровень персонажа
  • 1d8 + [STR] — урон длинного меча
  • (ceil([LVL]/2))d6 — кости по уровню
  • [[STR]+1]d6 — квадратные скобки считаются изнутри наружу; кости внутри них бросаются вместе с формулой

Неизвестная переменная — ошибка, формула не бросается.

Фигурные скобки бросают несколько формул вместе, к группе можно приписать модификатор:

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

if(условие, тогда, иначе) выбирает часть формулы — как в таблицах. Бросается только выбранная ветка, вложенность разрешена:

  • if([STR] >= 3, 2d6+3, 1d6)
  • if([a] > 0, if([b] > 0, 1d6, 1d4), 0)

В условии — числа, переменные, математика, сравнения = (или ==), !=, >, <, >=, <= и and, or, not. Ноль — «нет», любое другое число — «да». Кости в условии нельзя: if(1d20 > 10, …) — ошибка, условие должно сводиться к числу. В ветках кости любые.

Сравнение сразу после кости — это подсчёт успехов (10d10>=8), а не «да / нет». В другом месте формулы сравнение без if — ошибка.

Бросок можно подписать — подпись видна в логе и уходит в мессенджеры:

Где Пример Что значит
перед формулой Вдохновение барда 1d6 название броска; цифр в нём быть не должно
в скобках в конце 1d20+5 (Атака), 2d6+3 (Урон огнём) подпись броска
после # 1d100cs<=25 # Слишком медленный жест подпись до конца строки — так пишет Foundry VTT
у части группы {1d12 (Надежда), 1d12 (Страх)} подпись каждой части

Скобки в конце — подпись, только если внутри не формула: 1d20 + (1d6) — это математика.

В бросках листа — урон оружия, кости хитов, формулы в тексте — слова сразу после формулы тоже подпись, скобки не обязательны: 1к6 колющий, 1к4/колющий. Урон из нескольких частей складывается: 1к4 колющий + 1к6 яд бросает обе кости, подпись — «колющий, яд». Вид урона из отдельного поля оружия тоже попадает в подпись броска.

Если слово стоит вместо числа — 1к6 + сила, — формула не бросится: модификатор пишется переменной, 1к6 + [STR].

Формула с ошибкой не бросается — вместо броска видна причина: неизвестная переменная, непарная скобка, лишние слова. Подсказка с диапазоном «среднее (мин–макс)» строится тем же разбором, что и бросок: если подсказка есть, бросок пройдёт.

Ограничения защищают от формул вроде 999999d6 в чужих листах: до 1000 символов, до 32 уровней скобок, до 1000 костей во всей формуле и до 100 добросов и перебросов на одну кость.

// и /* */ — не комментарии, а ошибка: подпись пишется после #.

  • Крит — натуральные 20 и 1 на d20 атаки, проверки и спасброска. Крит отмечается, только если d20 в броске одна; у урона, костей хитов и зелий крита нет. Явные cs / cf в формуле важнее.
  • Преимущество и помеха — Shift-клик / Alt-клик по броску или кнопки заряженной дайсницы: бросок превращается в 2d20kh1 / 2d20kl1. В формуле их тоже можно написать сразу.
  • Критическое попадание — Shift-клик по урону или опция заряженной дайсницы: кости урона удваиваются, числа нет. У заклинания с атакой натуральная 20 включает её для урона сама.
  • Итог броска округляется вниз: 1d6/2 при выпавшей 5 даёт 2.