Нотация формул
Anima поддерживает мощную и гибкую нотацию для бросков костей. Она одинаково работает в двух местах: в поле ввода дайсницы и в формулах виджетов. Отличие одно: в формулах виджетов дополнительно доступны переменные в квадратных скобках — [str], [local-modifier].
Ниже — руководство по основным и продвинутым возможностям.
1. Базовые броски
Заголовок раздела «1. Базовые броски»1d20— одна 20-гранная кость.2d6— две 6-гранных кости.dF.2илиdF— кости Fate/Fudge.1d100илиd%— процентная кость.
2. Математические операции
Заголовок раздела «2. Математические операции»Вы можете использовать стандартные операторы: +, -, *, /, ^ (степень), % (остаток от деления).
1d20 + 5— бросок d20 с модификатором +5.(2d6 + 2) * 2— результат выражения в скобках удваивается.
3. Текстовые метки (Лейблы)
Заголовок раздела «3. Текстовые метки (Лейблы)»Для подписи бросков используйте круглые скобки в конце формулы.
1d20 + 5 (Атака)2d6 + 3 (Урон огнем)
Важные ограничения:
- Перед скобкой метки должен быть пробел или оператор, чтобы система не спутала её с математической функцией.
- Лейблы работают некорректно с оператором сортировки (sd/sa).
4. Математические функции
Заголовок раздела «4. Математические функции»Вы можете использовать функции для обработки результатов бросков:
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.
5. Сравнения и целевые значения
Заголовок раздела «5. Сравнения и целевые значения»Вы можете проверять результаты костей на соответствие условию. Это часто используется для подсчета успехов.
Операторы сравнения:
Заголовок раздела «Операторы сравнения:»=или==— равно!=или<>— не равно>/<— больше / меньше>=/<=— больше или равно / меньше или равно
Примеры:
Заголовок раздела «Примеры:»4d6 > 4— бросить 4d6 и посчитать количество костей, на которых выпало больше 4.10d10 >= 8— классический подсчет успехов (World of Darkness).4d6 > 4f < 3— считать успехи больше 4 и вычитать провалы меньше 3.
6. Перебросы
Заголовок раздела «6. Перебросы»2d6r=5— перебрасывать любые кости, на которых выпадает 5.2d6ro>4— перебросить кость один раз (Re-roll Once), если выпало больше 4.4d10r <= 3— перебрасывать любые кости, на которых выпадает 3 или меньше.
7. Модификаторы Min и Max
Заголовок раздела «7. Модификаторы Min и Max»Позволяют установить «пол» или «потолок» для значений кубов.
- Min:
4d6min3— любое значение ниже 3 будет считаться как 3. - Max:
4d6max3— любое значение выше 3 будет считаться как 3.
8. Дополнительные модификаторы
Заголовок раздела «8. Дополнительные модификаторы»- Критические значения:
1d20cs=20cf=1(Critical Success/Failure). - Взрывающиеся кости:
4d6!(каждый макс. результат добавляет ещё одну кость). - Сортировка:
4d6sd(по убыванию),4d6sa(по возрастанию). - Keep/Drop:
4d6kh3(оставить 3 лучших),4d6dl1(сбросить 1 худший).
9. Групповые броски {}
Заголовок раздела «9. Групповые броски {}»Группы позволяют кидать несколько разных формул одновременно.
{1d20, 1d20}kh1— бросить два d20 и оставить наибольший.{1d12 (Надежда), 1d12 (Страх)}— групповой бросок с индивидуальными метками для каждой части.
10. Условные операторы if()
Заголовок раздела «10. Условные операторы if()»Выбирают часть формулы по условию — как в табличных редакторах (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~, разбор типичных причин собран в Вопросах и ответах.
