Механика записей набора правил

На этой странице можно посмотреть, что запись каталога делает в числах: блок mechanics записи, который читают проверки, отдых и бои. Это справочник для авторов наборов правил. Прежде чем начать, прочитайте Создание наборов правил Game Mode.

Запись может содержать необязательный блок mechanics, описывающий ее действие в числах: kind (attack, heal, buff, debuff, utility, rider), range, area, targets, targetCount, friendlyFire, amount (кости, например 2d6, или постоянное число), amountAdd (значение из листа использующего, прибавляемое к величине, например { "field": "level_fighter" } для Second Wind на 1d10 плюс уровень воина; требует amount, читается только в собственных боях набора (бои Classic и Tactical от Engine используют величину как написано) и требует Capability API 1.83), damageType, attackRoll, autoHit, save (один из спасбросков листа и эффект успеха), applies (накладываемые состояния), temporary (временные очки в запасе здоровья), scales (величина, растущая вместе с листом), cost (расходуемый при использовании запас), perCostStep, targetsPerCostStep, budget (расходуемая часть экономики действий), concentration, reaction, plus, free, gives, standard, rider и check.

Атака, направленная на врагов, может оставить через summons нечто, что будет наносить удары в последующие ходы (Capability API 1.122). Для Spiritual Weapon добавьте в запись атаки "summons": { "budget": "bonus", "rounds": 10, "move": 20, "reach": 5 }. Сотворение делает первую атаку и, когда реакции завершатся, оставляет оружие рядом с первой целью; отмененное сотворение ничего не оставляет. Последующие удары тратят только объявленный бюджет экономики действий, сохраняют уровень оплаты сотворения для масштабирования урона и открывают те же окна реакций. Расстояния задаются в единице каталога; не указанное перемещение равно нулю, а не указанная досягаемость – одной клетке. На поле оружие может ударить врага в пределах перемещения плюс досягаемости, не обращая внимания на стены, и перемещается к нему. Без поля в досягаемости находится любой стоящий враг. Раунды отсчитываются в конце ходов владельца, не считая хода сотворения. Призыв заканчивается на нуле, при поражении владельца или когда заканчивается концентрация его записи. Повторное сотворение той же записи заменяет ее призыв.

Запись с area может оставаться на поле через zone (Capability API 1.172): { "rounds", "anchor", "triggers", "atCast" }. Зона держится rounds (от 1 до 1000) ходов своего заклинателя, отсчитываемых так же, как у призыва, и заканчивается раньше, когда заканчивается удерживающая ее концентрация или заклинатель повержен. anchor: "point" (по умолчанию) сохраняет клетки, на которые она была сотворена; anchor: "caster" – это взрыв вокруг заклинателя, который перемещается вместе с ним, поэтому его дальность равна 0. triggers задает, когда зона снова применяет собственный эффект записи (amount, plus, save, applies) к одному существу: enter (оно входит в зону или зона, которую несет заклинатель, достигает его), turn-start или turn-end (оно начинает или заканчивает ход в зоне). Существо задевается не чаще раза за ход, каким бы ни был триггер, а те, кого задело само сотворение, считаются задетыми в этот ход. Кого зона задевает, следует из записи: friendlyFire: false исключает сторону заклинателя, лечение или запись для союзников ограничивается ею, а зона, которую несет заклинатель, никогда не задевает его самого. atCast: false ничего не делает при появлении. Повторное сотворение записи заменяет ее зону. Поле подкрашивает клетки зоны, бой показывает ее в списке с оставшимися ходами, а журнал сообщает о каждом попадании в нее. Вне поля зона удерживает тех, на кого была сотворена, и turn-start и turn-end задевают их.

"mechanics": { "kind": "attack", "area": { "shape": "burst", "size": 20 }, "range": 120,
  "amount": { "dice": "5d8" }, "damageType": "poison", "save": { "save": "con_save", "onSuccess": "half" },
  "concentration": true, "zone": { "rounds": 100, "triggers": ["enter", "turn-start"] } }

Это Cloudkill. Spirit Guardians – это "area": { "shape": "burst", "size": 15 }, "range": 0, "friendlyFire": false с "zone": { "rounds": 100, "anchor": "caster", "triggers": ["enter", "turn-start"], "atCast": false }; Moonbeam – взрыв на 5 футов с "triggers": ["enter", "turn-start"].

Зона, удерживаемая в точке, может перемещаться и менять свою местность (Capability API 1.173). move: { "budget", "distance" } позволяет заклинателю перемещать ее в свой ход: бой предлагает вариант "Move <zone>" за этот бюджет, выбираемый на поле, как перемещение, на любую клетку в пределах distance от ее центра. drift: { "distance" } сдвигает ее на это расстояние прямо от заклинателя в начале каждого его хода, останавливаясь у края поля. В обоих случаях тот, кого она теперь накрывает, а раньше не накрывала, задевается так, как говорит enter. Перемещаться или дрейфовать может только взрыв, удерживаемый в точке. terrain: { "difficult": true } делает так, что вход в каждую ее клетку стоит вдвое дороже для того, кого она задевает (уже трудная местность не удваивается еще раз), а terrain: { "perDistance": { "every", "amount", "damageType" } } наносит amount (кости и постоянное число, как у собственной величины записи) тому, кого она задевает, за каждые every, пройденные внутри нее, без спасброска, с учетом всех перемещений. Журнал сообщает о каждом перемещении, дрейфе и ранении.

{
  "id": "moonbeam",
  "name": "Moonbeam",
  "mechanics": {
    "kind": "attack",
    "range": 120,
    "area": { "shape": "burst", "size": 5 },
    "amount": { "dice": "2d10" },
    "damageType": "radiant",
    "save": { "save": "con_save", "onSuccess": "half" },
    "concentration": true,
    "zone": { "rounds": 10, "triggers": ["enter", "turn-start"], "move": { "budget": "action", "distance": 60 } }
  }
}

Cloudkill добавляет "drift": { "distance": 10 }. Spike Growth – взрыв на 20 футов без собственной величины, с "triggers": [] (вся его работа – местность), "atCast": false и "terrain": { "difficult": true, "perDistance": { "every": 5, "amount": { "dice": "2d4" }, "damageType": "piercing" } }.

Зона может делать с задетыми больше (Capability API 1.174). breaksConcentration: true заставляет задетое концентрирующееся существо бросить спасбросок концентрации набора против собственной сложности спасброска записи до эффекта записи и терять концентрацию при провале; записи нужен save. damageCap завершает зону, когда она в сумме нанесла столько урона после появления, считая попадания в нее и ее местность. Sleet Storm – взрыв на 40 футов с "save": { "save": "dex" }, "applies": [{ "condition": "prone", "duration": "instant" }] и "zone": { "rounds": 10, "triggers": ["enter", "turn-start"], "breaksConcentration": true, "terrain": { "difficult": true } }. Guardian of Faith – взрыв с "friendlyFire": false, "amount": { "flat": 20 } и "zone": { "rounds": 1000, "triggers": ["enter", "turn-start"], "atCast": false, "damageCap": 60 }.

Освобождение от состояния, наложенного записью, может проверяться против собственной сложности спасброска записи (1.174): "escapeDc": "save" в записи applies рядом с состязанием, чей from.holding – это состояние. Web и Black Tentacles опутывают через { "condition": "restrained", "duration": "until-save", "escapeDc": "save" }, и состязание опутанного существа за освобождение бросается против сложности спасброска заклинаний заклинателя. Если состояние наложено без сложности спасброска, освобождение проходит так, как говорит состязание, против его владельца.

use предмета тоже может содержать concentration и zone (1.174), как запись каталога, поэтому свиток заклинания Cloudkill или Moonbeam сохраняет свою длящуюся область и удерживается концентрацией читающего.

Перемещаемая зона может таранить, а ее местность может стоить дороже (Capability API 1.175). move: { ..., "ram": true } ведет ее по одной клетке прямо туда, куда ее переместили; на первой клетке, где она достает до того, кого раньше не накрывала, она останавливается, задевает его как при таране (что бы ни говорили ее триггеры) и больше в этот ход не перемещается. Существа, входящие в нее сами, задеваются только так, как говорят ее триггеры. Flaming Sphere – взрыв на 5 футов с "triggers": ["turn-end"] и "move": { "budget": "bonus", "distance": 30, "ram": true }. terrain.costTimes (от 2 до 10) делает каждый шаг в нее стоимостью во столько обычных шагов, а уже трудная местность стоит не больше этого: Plant Growth – это "terrain": { "costTimes": 4 }. Он заменяет difficult, то есть costTimes: 2. terrain.halvesSpeed: true удваивает стоимость каждого шага внутри еще раз, поверх любой трудной местности: Spirit Guardians – это "terrain": { "halvesSpeed": true }.

Удержание, наложенное заклинанием, можно сбросить только так, как говорит заклинание (тоже 1.175). Состязание за освобождение с "from": { "holding": "restrained", "escapable": true } предлагается только против удержания, у которого есть escapeDc, поэтому одно и то же состязание рвет паутину, но никогда не снимает окаменение. applies[].escapeChecks называет проверки состязания, которые могут сбросить это удержание, вместо собственных проверок нападающего в состязании: Black Tentacles опутывает с "escapeDc": "save", "escapeChecks": ["might", "agility"], а Web – с "escapeChecks": ["might"]. zone.whileHeld: { "condition", "amount", "damageType" } наносит свою величину без спасброска и вместо собственного эффекта зоны тому, кто начинает в ней ход, уже удерживаемый этим состоянием от ее заклинателя: у Black Tentacles это "whileHeld": { "condition": "restrained", "amount": { "dice": "3d6" }, "damageType": "bludgeoning" }.

Запись или использование предмета может лечить от состояний (Capability API 1.176). ends: { "conditions": [...], "count"? } снимает с цели эти состояния в указанном порядке, не больше count из них: Lesser Restoration – это "ends": { "conditions": ["blinded", "deafened", "paralyzed", "poisoned"], "count": 1 }. stabilizes: true стабилизирует умирающую цель, которая больше не бросает спасброски от смерти, и требует блока боя с правилом dying: Spare the Dying. revives: { "withinRounds", "health" } направляется только на того, кто умер не больше указанного числа раундов назад, и возвращает его с этой величиной: Revivify – это "revives": { "withinRounds": 10, "health": { "flat": 1 } }. Запись, которая только снимает состояния или стабилизирует, предлагается только против того, кому она поможет; запись вида utility, которой больше нечего делать, предлагается, пока она лечит.

Области могут быть квадратами, а длящиеся – стенами (Capability API 1.177). area.shape: "box" – квадрат со стороной size, ближний угол которого стоит на выбранной клетке и который уходит в сторону от создателя; по оси, на которой создатель находится на одной линии с клеткой, он вместо этого центрируется на ней. Без range он примыкает к создателю. Web – это "area": { "shape": "box", "size": 20 } с дальностью 60. area.shape: "wall" всегда остается на поле, поэтому ей нужна zone: она длиной size и толщиной width (без него – одна клетка) и проходит через выбранную клетку поперек линии от создателя или оттуда к клетке toward выбора; "ring": <diameter> позволяет заклинателю вместо этого выложить ее кольцом такого диаметра вокруг выбранной клетки, если выбор говорит "ring": true. Стене не нужен триггер: Wind Wall применяет свой эффект только при появлении. Стена никогда не перемещается, не дрейфует и не следует за создателем. zone.blocks: ["move", "sight"] закрывает ее клетки для перемещения, для видимости или для того и другого, пока она стоит, а того, кто стоит там, где она поднимается, ставят на ближайшую свободную клетку (на выбранной стороне, если такая клетка не дальше): Wall of Stone блокирует и то и другое, Wall of Force – перемещение, Wall of Fire – видимость. zone.side: { "distance", "triggers" } заставляет клетки в пределах distance от одной стороны задевать так, как говорят ее собственные triggers, в дополнение к клеткам самой стены; side выбора задает, какой стороны: near – со стороны создателя (внутри кольца) или far – снаружи; если сторона не указана, берется дальняя. Wall of Fire – это "area": { "shape": "wall", "size": 60, "ring": 20 }, "zone": { "rounds": 10, "triggers": ["enter", "turn-end"], "blocks": ["sight"], "side": { "distance": 10, "triggers": ["turn-end"] } }.

Видимость имеет значение (Capability API 1.178). combat.senses перечисляет чувства, которые видят там, где глаза не могут, каждое как { "id", "label", "sheet"?, "blind"? }: дальность персонажа читается из его листа через sheet (при нуле чувства нет), существо несет свою как "senses": { "darkvision": 60 } в единице расстояния набора, а чувство blind (слепое зрение, чувство вибрации) работает без глаз. Тогда блоку нужно combat.distance. Зона с obscures скрывает все внутри себя и все, что видно сквозь нее, от того, у кого нет в пределах дальности ни одного из чувств, перечисленных в ее pierced: Fog Cloud – это "obscures": {}, Darkness – "obscures": { "pierced": ["blindsight", "truesight"] }. Такой зоне не нужен триггер, а запись utility, которая только оставляет стоящую область (Fog Cloud, Darkness, стена), есть в меню и ставится туда, куда выберет заклинатель. Запись combat.conditions с unseen скрывает владельца так же: невидимость – это "unseen": { "pierced": ["blindsight", "truesight"] }. combat.sight задает, что это дает: unseenAttacks: true дает атаке преимущество, если цель не видит атакующего, и помеху, если атакующий не видит цель, а eyes называет чувство (так, как его называет lacks состояния), которое является зрением, поэтому ослепленное существо видит только чувством blind. Запись или действие существа с seen: true может выбирать только цели, которые видит ее создатель, как говорит формулировка "существо, которое вы видите в пределах дальности". Взрыв или квадрат можно поставить сразу несколько раз через area.copies (от 2 до 10), причем каждая копия касается другой, а игрок размещает каждую: Fire Storm – это "area": { "shape": "box", "size": 10, "copies": 10 }. Зона, поставленная несколько раз, остается там, где ее сотворили.

Зоны могут действовать на тех, кто в них стоит (Capability API 1.179). combat.components называет, что может понадобиться для использования, каждое как { "id", "label" } (вербальный, соматический и материальный компоненты 5e), а запись или действие существа перечисляет свои в components. inside зоны накладывает conditions на тех, кто в ней находится, и защищает их от типов урона из immune, пока они там остаются; ее forbids: { "components": [...] } запрещает использовать внутри все, что требует этих компонентов, как forbids состояния делает для его владельца (с кляпом). Silence – это "inside": { "conditions": ["deafened"], "immune": ["thunder"] }, "forbids": { "components": ["verbal"] }. wards: { "catalogs": [...], "maxLevel": N } зоны не пропускает к тем, кто внутри, ничего из этих каталогов, использованного снаружи на уровне N или ниже, причем уровень оценивается по оплате: Globe of Invulnerability – это "wards": { "catalogs": ["spells"], "maxLevel": 5 }. Состояние, которое отнимает бюджеты (budgets с отрицательным flat) и наложено во время собственного хода владельца, отнимает их и из этого хода, поэтому проваленный спасбросок от Stinking Cloud в начале хода стоит действия этого хода.

Чувства и видимость идут дальше (Capability API 1.180). Состояние, наложенное записью, может заканчиваться, когда владелец действует: "endsWhenHolder": { "attacks": true, "casts": ["spells"] } снимает его, как только тот атаковал или использовал запись из названного каталога, а использование предмета с "casts": "spells" (свиток, жезл) считается сотворением из этого каталога. Атака или заклинание, которые завершили состояние, еще им пользовались, поэтому Invisibility дает преимущество одной атаке и после нее пропадает. То, что стоящая зона делает сама, не считается действием заклинателя. Состояние в combat.conditions или эффект worn либо carried предмета может давать чувства с дальностью в единице расстояния набора, "senses": { "darkvision": 60 }; пока оно действует, учитывается большая из этой дальности и собственной дальности владельца, поэтому работают заклинание Darkvision, True Seeing ({ "truesight": 120 }) и очки ночного зрения. Состояние с "cancelsUnseen": true позволяет всем видеть владельца, какое бы состояние его ни скрывало, как Faerie Fire обрисовывает невидимых; скрывающие зоны и стены все равно его прячут.

Защиты, спасброски, заклинания чудовищ и свитки идут дальше (Capability API 1.181). wards зоны сравнивает уровень, на котором было оплачено заклинание, если не указано "by": "base", которое сравнивает собственный уровень заклинания, как бы его ни оплатили, как это делает Globe of Invulnerability. "maxLevelPerCostStep": 1 не пропускает еще на один уровень больше за каждую ступень, на которую сотворение самой защиты оплачено выше базового. save записи или действия существа может говорить, против чего еще он считается, "against": { "damage": ["poison"] }, чтобы к нему применялся модификатор спасброска against яда, и кто преуспевает без броска: "succeeds": { "immune": ["poison"], "conditionImmune": ["poisoned"], "is": { "tags": ["nonbreathing"] } } (достаточно любого), как требует Stinking Cloud. spellcasting существа может задавать, что нужно его заклинаниям, вместо собственных components каждой записи, для всей особенности или для каждого заклинания отдельно, причем [] означает врожденное колдовство, которому ничего не нужно, поэтому Silence его не останавливает. Использование предмета может иметь "kind": "utility", если оно только оставляет стоящую область (свиток Fog Cloud, Darkness, Silence или Globe of Invulnerability); ему нужны area и zone.

Толчки, ветер и очки (Capability API 1.182). "push": 15 записи отталкивает того, на кого она пришлась и кто не преуспел в спасброске, на 15 единиц расстояния каталога прямо от создателя, останавливаясь у твердой преграды или стоящего существа; зона отталкивает задетых так же. Зона, удерживаемая заклинателем ("anchor": "caster"), теперь может быть линией или конусом, а не только взрывом: она направлена туда, куда ее сотворили, и перемещается вместе с заклинателем, а "turn": { "budget": "bonus" } позволяет ему в свой ход потратить этот бюджет, чтобы развернуть ее, задевая тех, кого она теперь накрывает, как будто они вошли в нее (Gust of Wind из 5e). terrain зоны с "towardCaster": true учитывает трудную местность только для шага, приближающего идущего к заклинателю. Чувство, которое дает состояние или предмет, может быть { "add": 60 } вместо дальности: это прибавляется к собственной дальности этого чувства у владельца или дает 60 тому, у кого его нет (очки ночного зрения из 5e).

Зоны, которые срабатывают позже или сгорают (Capability API 1.183). Зона с "detonates" ничего не делает, пока стоит, и ничего при сотворении: когда она заканчивается, потому что закончилась концентрация, вышли раунды или ее сотворили снова, она один раз применяет собственный эффект записи ко всем внутри. "grows": { "dice": "1d6" } прибавляет столько к ее величине в конце каждого хода заклинателя, включая ход сотворения, поэтому она бросает те же кости, что и собственная величина записи; "touched": true заставляет того, кто входит на ее центр, бросить спасбросок записи и подрывает ее при провале (Delayed Blast Fireball из 5e). Она остается там, где ее сотворили. Зона с "burns": { "by": ["fire"], "amount": { "dice": "2d4" }, "damageType": "fire" } загорается от урона одного из этих типов, пришедшегося на любую ее клетку или на любого внутри; она сгорает, когда снова наступает ход заклинателя, завершая заклинание, и тем временем наносит свою величину без спасброска любому другому, кто начинает в ней ход (Web из 5e).

Существа тоже толкают (Capability API 1.184). Действие существа принимает "push": 60 в собственной единице расстояния набора, как запись каталога: того, на кого оно пришлось, отталкивает на это расстояние прямо от существа, а при наличии save – только при провале, поэтому "onSuccess": "none" сохраняет урон и избавляет лишь от толчка и того, что накладывает applies (Tail черепахи-дракона). Использование предмета может задать линии width, как свиток Gust of Wind размером 60 на 10 футов.

То, чем является существо, значит больше (Capability API 1.185). Спасбросок может говорить "modes": [{ "is": { "types": ["undead"] }, "mode": "disadvantage" }], чтобы такая цель бросала его дважды и оставляла худший результат (Sunbeam); "maxAgainst": { "types": ["plant"] } записи наносит такой цели максимальный урон (Blight). targetTypes может также говорить "abilityAtMost": { "int": 3 } для цели, чей показатель не выше этого (существо, записанное без показателя, не исключается), и "notImmuneTo": ["charmed"] (Sleep). Модификатор состояния может бросать атаки дважды: { "to": "attacks", "mode": "disadvantage", "atSource": true } – собственные атаки владельца против того, кто наложил на него состояние (Chill Touch), а { "to": "attacks-taken", "mode": "disadvantage", "from": { "types": ["fiend", "undead"] } } – атаки против владельца от атакующих такого вида (Protection from Evil and Good). Изменение спасбросков может быть "against": { "from": { "types": ["dragon"] } }, что совпадает с любым спасброском против того, что сделало существо такого вида (Dragon Scale Mail).

Действия существа могут перезаряжаться вместе (Capability API 1.186): дайте каждому "recharge" одинаковые "group" и кости, и использование любого из них тратит оба, а один бросок в начале хода существа возвращает оба (два вида дыхания металлического дракона). Удар может иметь "charge": { "atLeast": 10, "plus": [{ "dice": "2d8", "type": "piercing" }], "save": { "save": "str_save", "difficulty": 14 }, "push": 10, "applies": [{ "condition": "prone", "duration": "instant" }] } добавляет свои части, если перемещение существа в этот ход закончилось разбегом не меньше atLeast прямо к тому, кого оно бьет, причем каждый шаг на клетку ближе к нему; затем цель бросает спасбросок и при провале (или всегда, если спасброска нет) отлетает и получает состояния (Charge минотавра). Разбег сопровождает удар по одной цели и измеряется только на поле.

attack предмета может подробнее говорить о том, во что он попадает (Capability API 1.187). "against": [{ "is": { "types": ["construct"] }, "toHit": 2 }] прибавляет к попаданию против такой цели (булава сокрушения). Часть plus может говорить "not": { "types": ["construct", "undead"] }, чтобы пропускать такие цели, "blow": "ranged", чтобы учитываться только при брошенном или выпущенном ударе (метатель дворфов), или "melee" – только при ударе в пределах досягаемости, а "tempHp": true дает владельцу оружия временные хиты, равные нанесенному (меч похищения жизни). Состояние onHit может называть "targetIs" (убийца великанов сбивает великана с ног) и "oncePerTurn": true (меч ранений). "slay": [{ "when": "critical", "not": { "types": ["construct", "undead"] }, "healthAtMost": 99, "save": { "save": "con_save", "difficulty": 15 }, "charges": 1 }] сразу убивает цель, у которой после попадания осталось не больше healthAtMost, при проваленном спасброске, если он есть, и при этом тратит заряды предмета (похититель девяти жизней); "immuneTo": ["slashing"] щадит цель, невосприимчивую к этому (меч остроты). Здоровье читается после урона удара.

live.conditions листа, clear.conditions отдыха и combat.conditions вмещают до 640 записей (Capability API 1.552; 320 начиная с 1.269, 160 начиная с 1.188, 80 до этого). Модификатор to: "attacks" может называть "ability": "str", чтобы менять только атаки этой характеристикой (Weakening Breath золотого дракона), а модификатор to: "checks" может называть "abilities": ["str"], чтобы менять только проверки одной из этих характеристик, включая состязания и проверки навыков этой характеристики (Rage варвара). Действия из блока характеристик существа не называют характеристику, поэтому модификатор атак, суженный до характеристики, их никогда не касается.

Состояние в combat.conditions может ранить владельца (Capability API 1.189): "harms": { "at": "turn-start", "dice": "1d4", "type": "necrotic" } наносит это в начале каждого его хода (или при "turn-end" – в конце) от имени того, кто наложил состояние, до любого спасброска, который его снимает. "stacks": 10 позволяет накладывать его снова, пока оно действует, до этого числа раз, и его вред наносится по разу за каждое (меч ранений); снятие состояния снимает все наложения. "onePerSource": true держит его на одном владельце для каждого источника: наложенное на кого-то другого, оно покидает того, у кого было от того же источника (заклятый враг лука клятвы). Запись against атаки предмета может называть "marked": "sworn" вместо is или рядом с ним, совпадая с целью, на которой есть это состояние от владельца оружия, и помимо toHit может говорить "mode": "advantage", "ignoresCover": true (укрытие, кроме полного, ничего не дает) и "ignoresLongRange": true; часть plus тоже может говорить "marked": "sworn" (колющие 3d6 лука клятвы). Действие из блока характеристик существа может называть "ability": "str" – характеристику, которой делается его атака, чтобы до него доходили изменения атак или урона, суженные до характеристики.

Запись modes атаки предмета может быть совсем другим способом использования оружия (Capability API 1.190): "range": { "normal": 120 } – насколько далеко оно достает в этом режиме, в собственной единице расстояния набора; "plus" добавляет части к попаданию, как собственные части атаки; "line": { "dice": "4d6", "type": "lightning", "save": { "save": "dex_save", "difficulty": 13, "onSuccess": "half" } } – молния, против которой до броска атаки бросают спасбросок все, кто стоит между владельцем оружия и целью (но не они сами); а "charges": 1 тратит столько собственных зарядов предмета, поэтому режим предлагается, только пока они есть (дротик молнии: charges.max 1 и stack 1 у предмета). Линии нужно поле, по которому она пройдет.

Боевое состояние с эффектом "cannot-heal" не дает владельцу никакого лечения, пока длится, и журнал об этом сообщает (Capability API 1.191): Chill Touch из 5e. "conditionImmunitiesFrom": [{ "conditions": ["charmed", "frightened"], "from": { "types": ["fiend", "undead"] } }] у боевого состояния защищает от этих состояний, только когда их накладывает существо, подходящее под from; уже наложенное остается (Protection from Evil and Good). targetTypes.abilityAtLeast заклинания – нижний предел, для которого abilityAtMost – верхний: { "int": 5 } пропускает существо с Intelligence 4 или ниже (Hideous Laughter), а существо, записанное без этого показателя, не исключается. against.actions модификатора спасбросков называет действия по id, имени или общей группе перезарядки без учета регистра и сужает все остальное, что говорит against: { "from": { "types": ["dragon"] }, "actions": ["frightful_presence", "breath_weapons"] } – это дыхание дракона или Frightful Presence, но никогда не его Wing Attack, а повторный спасбросок, чтобы снять состояние, наложенное одним из них, тоже учитывается.

Атака предмета может нести больше дополнительных эффектов (Capability API 1.192). "ignoresResistance": true пропускает ее урон сквозь сопротивление цели собственному типу урона атаки, включая сопротивление всему, тогда как часть plus другого типа все равно делится пополам (рубящий урон меча остроты); невосприимчивость по-прежнему действует. "saved" записи slay перечисляет состояния в той же форме, что applies, которые цель, преуспевшая в спасброске этой записи, получает вместо смерти: [{ "condition": "frightened", "duration": { "rounds": 1, "of": "source" } }] – это исчадие, испуганное владельцем булавы разрушения до конца следующего хода владельца. "othersWhileMarked": { "condition": "sworn", "mode": "disadvantage" } заставляет каждую другую атаку оружием, которую делает владелец, бросаться в этом режиме, пока стоит существо, на которое он наложил sworn, или только дальнобойные – с "ranged": true (лук клятвы). И в бою без поля действие с областью (существа или заклинания) можно направить на тех, кто стоит с любой стороны, но никогда на его создателя, потому что оно задевает каждое существо внутри; friendlyFire: false ограничивает его другой стороной, как и на поле.

Состязание может быть проверкой против фиксированного числа вместо встречного броска (Capability API 1.193). Опустите defender и задайте "difficulty": 15; действующий бросает лучшую из своих проверок attacker и побеждает, если достиг ее. "targets" задает, на ком его можно провести: "enemy" (по умолчанию), "ally" или "any", включая самого действующего. "targetHolds": "wounded" предлагает его только против цели с этим состоянием, а "targetDying": true – только против умирающего, еще не стабилизированного. onWin.stabilizes стабилизирует умирающую цель. Поэтому проверка Wisdom (Medicine) СЛ 15, которая прекращает раны от меча ранений, – это { "difficulty": 15, "targets": "any", "targetHolds": "wounded", "onWin": { "ends": [{ "condition": "wounded", "on": "target" }] } }, а проверка СЛ 10, спасающая умирающего, – { "difficulty": 10, "targets": "ally", "targetDying": true, "onWin": { "stabilizes": true } }. Бой пулами считает успехи, поэтому отклоняет difficulty. "healedOnlyByRest": true атаки предмета запечатывает отнятые ею хиты: никакое лечение не поднимает владельца выше максимума за вычетом запечатанного, а любой отдых возвращает их и снимает печать. harms боевого состояния принимает тот же "healedOnlyByRest": true, поэтому раны, которые оставляет меч, тоже запечатывают отнятое.

Размер может занимать больше одной клетки (Capability API 1.194). Дайте записи combat.sizes.order число "cells", { "id": "large", "label": "Large", "cells": 2 }, и существо этого размера займет на поле квадрат с такой стороной в клетках, причем его собственной клеткой будет левая верхняя: Large в 5e – 2, Huge – 3, Gargantuan – 4. Его ставят туда, где оно помещается целиком, в ближайшее такое место к запрошенному. Досягаемость и дальность считаются до ближайшей занятой им клетки и от нее, поэтому меч достает огра, стоя рядом с любой из четырех его клеток; оно ходит только туда, где помещается целиком, и никто не проходит ни через одну из его клеток; область задевает его, если внутри любая из его клеток; толчок двигает его целиком; а видимость и укрытие оцениваются по самой открытой его клетке. Размер без cells занимает одну клетку, как и раньше.

Состояние может увеличивать или уменьшать владельца (Capability API 1.195). Дайте записи combat.conditions "size": { "steps": 1 }, и, пока оно действует, владелец находится на столько размеров дальше по combat.sizes.order или назад при отрицательном числе, но не дальше первого и последнего: Enlarge в 5e – это 1, Reduce – -1. Его досягаемость, то, какие области его задевают, и все, что спрашивает размер, читают новый, а когда состояние заканчивается, размер возвращается. На поле выросший занимает свой новый размер поверх всех клеток, где стоял, если тот помещается на открытой местности, свободной от других, либо наибольший меньший размер, который помещается, поэтому увеличенный огр в коридоре вырастает только настолько, насколько позволяет коридор; уменьшившийся сохраняет свою левую верхнюю клетку. Журнал сообщает, кто изменился и до какого размера. Нужно combat.sizes; сочетайте с модификатором damage для костей оружия и режимом checks и saves для Strength, чтобы передать остальное заклинание.

Запись может выбирать цели по тому, сколько у них осталось здоровья (Capability API 1.196). "healthPool": { "dice": "5d8" } в ее mechanics бросается один раз при использовании и распределяется начиная с цели, у которой осталось меньше всего здоровья, и далее вверх: каждая затрагивается, только если ее здоровье не больше остатка, который она затем расходует, а остальные остаются совсем нетронутыми, как работают Sleep и Color Spray в 5e; perCostStep увеличивает его при сотворении на более высоком уровне. "healthAtMost": 150 затрагивает только цель с таким или меньшим здоровьем, как Power Word Stun; "kills": true сразу убивает затронутого, поэтому Power Word Kill – это "healthAtMost": 100, "kills": true. Оба читают оставшееся у цели здоровье после того, как targetTypes решил, кого вообще можно выбрать. Журнал сообщает, что выпало для запаса и кого он охватил.

Модификатор урона может бросать собственные кости удара несколько раз (Capability API 1.197). { "to": "damage", "attacks": "weapon", "ability": "str", "diceTimes": 2 } у состояния заставляет боевую кирку на 1d8 + 2 наносить 2d8 + 2, пока оно действует, как оружие увеличенного дуэргара; постоянная часть остается прежней, критическое попадание удваивает дополнительные кости, как и остальные, а среднее в меню их учитывает. Он меняет урон удара и больше ничего. Действие существа с "self": true, совершенное в его собственный ход, теперь приходится на само существо, как это уже было в реакции, поэтому его applies срабатывают.

Зона может наносить на своих триггерах другой тип урона, чем при появлении (Capability API 1.198). "zone": { "rounds": 100, "triggers": ["enter"], "atCast": true, "damageType": "slashing" } у записи, чей собственный damageType – "piercing", наносит колющий урон тем, вокруг кого появляется стена, и рубящий тем, кто входит в нее позже, как Wall of Thorns в 5e. Нужны собственная amount записи и триггер, сторона или таран, на котором его наносить, а тип должен быть одним из combat.damageTypes, если набор их объявляет.

Запас здоровья может пропускать некоторые цели (Capability API 1.199). "healthPoolSkips": { "conditions": ["unconscious"] } рядом с healthPool оставляет в покое тех, у кого одно из этих состояний, и не тратит на них запас, как Sleep в 5e пропускает бессознательных; "unseeing": true делает то же для тех, кто не видит создателя записи (ослеплен или не имеет к нему линии видимости), как Color Spray пропускает существ, которые не видят. Указывается conditions, unseeing или оба, и нужен healthPool.

Стена может стоять секциями, которые бьют и разрушают по одной (Capability API 1.200). "zone": { "rounds": 100, "triggers": [], "blocks": ["move", "sight"], "sections": { "every": 10, "health": 30, "defense": 12, "vulnerable": ["fire"], "broken": { "triggers": ["enter"], "amount": { "dice": "5d6" }, "damageType": "cold", "save": "con_save", "onSave": "half" } } } – это Wall of Ice из 5e: у каждой 10-футовой панели КД 12 и 30 хитов, и огонь наносит ей двойной урон (resist и immune работают так же). Атаку, которая направляется на одного врага или на любого и наносит урон, можно вместо этого направить на секцию: ее вариант перечисляет клетки, по которым она может ударить, как walls, а выбор называет одну из них как wall. Атака бросается, и ее урон наносится как по существу, а журнал сообщает, что получила секция и сколько у нее осталось. Секция, доведенная до 0, разрушена: она перестает блокировать, а тот, кто в нее входит (или начинает либо заканчивает там ход, как говорят ее triggers), получает ее amount раз за ход, бросая ее save против собственной сложности записи на половину урона (onSave: "none" – чтобы не получить ничего). Секциям нужна стена с blocks, а save разрушенной секции требует собственного save записи.

Запись может сдвигать текущие шкалы листа и возвращать запечатанное здоровье (Capability API 1.201). "tracks": [{ "track": "exhaustion", "by": -1 }] снимает уровень истощения с того, на кого запись пришлась, как Greater Restoration в 5e, а "by": 1 у записи со спасброском (Sickening Radiance) добавляет уровень тому, кто его провалил. Каждая шкала держится в собственных пределах, уровни, вдвое уменьшающие максимум здоровья, действуют сразу, а достижение уровня с defeats убивает. "unseals": true возвращает здоровье, которое иначе вернул бы только отдых (отнятое ударом с seals), как Greater Restoration снимает уменьшение максимума хитов. Запись, которая лечит только так, предлагается только тому, кому она поможет. broken секции стены может нести собственный perCostStep, добавляемый по разу за каждую ступень, на которую сотворение оплачено выше базового: морозный воздух Wall of Ice, { "dice": "1d6" }. Шкалы здесь обычные, а не шкалы ран, а unseals требует здоровья в очках.

Состояние, наложенное записью, может заканчиваться вместе с другим ее состоянием (Capability API 1.202). В "applies": [{ "condition": "charmed", "duration": { "rounds": 10 }, "saveEnds": { "save": "wis_save", "at": "damaged" } }, { "condition": "incapacitated", "duration": "instant", "endsWith": "charmed" }], то есть в Hypnotic Pattern из 5e, недееспособность заканчивается вместе с очарованием: от спасброска, лечения, срыва концентрации заклинателя, союзника, растолкавшего очарованного, или конца боя. С ним уходит только состояние, наложенное тем же использованием, а журнал сообщает причину. endsWith называет другое состояние того же списка applies (или списка onEnd, charge или saved), но никогда само себя.

Действие существа может уменьшать максимум здоровья цели (Capability API 1.203). "reducesMax": { "save": "con_save", "difficulty": 14 } у Life Drain умертвия заставляет цель бросить этот спасбросок, когда удар приходится; при провале полученный урон вычитается и из максимума, и из здоровья, и никакое лечение не вернет его до отдыха. С "lasting": true (Slam глиняного голема) не вернет даже отдых, а только запись с unseals (Greater Restoration). Цель, чей максимум так уменьшен до 0, умирает. Лист хранит то, что не возвращает никакой отдых, как lasting своего запаса внутри sealed. Нужно здоровье в очках.

Лечение от состояний может выполнять одно из своих лечений, а не все сразу (Capability API 1.204). С "cureOneOf": true запись, которая снимает (ends) некоторые состояния, сдвигает tracks и возвращает запечатанное (unseals) (Greater Restoration из 5e: очарование, окаменение, уровень истощения или максимум хитов), выполняет ровно одно: каждое предлагается как режим варианта (состояние, шкала или запас здоровья, по его подписи), как режимы оружия, а использование без выбранного режима выполняет первое из них в этом порядке, к которому у цели есть повод. Нужно хотя бы два лечения, между которыми выбирать.

Уменьшение максимума может не требовать собственного спасброска (Capability API 1.235). reducesMax без save и difficulty уменьшает максимум на урон каждого попавшего удара (Bite вампира из 5e); с "onFailedSave": true – только когда цель провалила собственный спасбросок записи (Harm из 5e, запись каталога со спасброском; там у reducesMax никогда нет собственного спасброска). damageType учитывает только урон этого типа (некротический урон Bite), а "heals": true возвращает создателю столько хитов, на сколько уменьшен максимум. Механика каталога тоже принимает reducesMax, а leavesAtLeast не дает урону записи опустить цель ниже этого числа хитов (Harm оставляет 1). targetHolds у действия существа или механики каталога ограничивает, на кого его можно направить: на того, у кого есть одно из его состояний conditions, или одно из его fromSelf, наложенное на цель создателем действия (Bite: схвачен вампиром, недееспособен или опутан).

Состояние может давать владельцу собственные использования (Capability API 1.236). actions боевого состояния перечисляет записи каталога (spells/break-enchantment), которые владелец может использовать, пока состояние действует: только тогда они есть в меню, ничего не стоят из листа, кроме бюджета, который тратит каждая, и бросаются с собственными числами владельца, как его заклинания (существо-заклинатель использует числа своего колдовства). Запись с "endsCondition": "<condition>" после использования снимает это состояние с использующего, а также удерживающую его концентрацию, если она принадлежит самому использующему: Dispel Evil and Good из 5e, у которого Break Enchantment и Dismissal завершают заклинание. ends.from (проверка вида и тега) лечит только то, что наложило проходящее эту проверку существо: Break Enchantment снимает очарование или испуг от небожителя, элементаля, феи, исчадия или нежити и оставляет наложенное кем-то другим. dismisses удаляет того, на кого запись пришлась и кто не преуспел в спасброске, из боя – живым, с поля и из порядка ходов: true – насовсем (Dismissal), или { "while": "<condition>" } – пока у него есть это состояние, которое должна накладывать та же запись (Banishment из 5e). Его отсчет тогда идет по ходам заклинателя, а когда он заканчивается – по времени, от спасброска или срыва концентрации заклинателя, – изгнанный возвращается туда, где был, или в ближайшее свободное место, где помещается. С gone (проверка вида и тега) тот, кто ее проходит и пробыл в состоянии все время, не возвращается.

Бой может начинаться с того, что кто-то застигнут врасплох (Capability API 1.237). Кто именно, говорит сцена: столкновение, из которого бой создан, помечает их "surprised": true, будь то отряд или враги. В первый свой ход они не могут ни двигаться, ни действовать, и в их меню есть только завершение хода; они не совершают реакций и легендарных использований, пока этот ход или первый раунд не закончится, смотря что наступит раньше. Боевое состояние с "cannotBeSurprised": true не дает застать владельца врасплох никогда: Foresight из 5e. Запись каталога с "ignoresSurpriseWith": "<catalog>/<entry>" называет использование, которое владелец может совершить, даже будучи застигнут врасплох, и это использование сразу же снимает неожиданность, так что остаток хода принадлежит ему: Feral Instinct из 5e, позволяющий застигнутому врасплох варвару действовать как обычно, если он сначала впадет в ярость.

Запись каталога может давать владельцу второй ход в первом раунде боя (Capability API 1.238). "extraFirstTurn": { "initiative": -10 } у записи в списке листа ставит этот второй ход на собственную инициативу владельца плюс указанное число, после всех, у кого инициатива равна этому числу или выше; каждый из двух – полный ход, а со второго раунда владелец, как обычно, ходит раз в раунд. Владелец, выведенный из боя до второго хода, его пропускает. С "unlessSurprised": true второго хода нет у того, кто начинает бой застигнутым врасплох: Thief's Reflexes из 5e.

Боевое состояние может сужать то, что покупает выданный им бюджет, до взмаха в пределах досягаемости, и оставлять след на шкалах владельца, когда заканчивается (Capability API 1.239). С "grants": { "budget": "bonus", "attacks": true, "melee": true } единственный удар, который оплачивает этот бюджет, наносится только оружием, бьющим в пределах досягаемости, а метательным – только по тому, кто в его досягаемости, потому что им замахиваются, а не бросают его; оружие с дальностью, но без досягаемости не предлагается. "onEnd": { "tracks": [{ "track": "exhaustion", "by": 1 }] } сдвигает текущие шкалы владельца на уровни, когда состояние заканчивается, как бы оно ни закончилось, так же как tracks у записи каталога; applies и tracks могут стоять вместе или по отдельности. "usesOf": "<row name>" записи каталога тратит использования записи этой строки (ее строки-счетчика) вместо собственных. Frenzy из 5e тогда – это запись берсерка Frenzied Rage с "usesOf": "Rage", которая накладывает ярость и состояние frenzied, заканчивающееся с ней через endsWith, и держит оба.

Инициативу можно бросать дважды, оставляя лучший или худший результат (Capability API 1.240). combat.initiative.checkAbility говорит, что инициатива – это проверка этой характеристики, поэтому все, что бросает такую проверку дважды, бросает дважды и инициативу: состояние с own-checks-advantage (Foresight из 5e) или модификатор checks с mode, суженный до этой характеристики или ни до какой (Cat's Grace от Enhance Ability на Dexterity). Запись каталога в списке листа с "initiativeMode": "advantage" (или "disadvantage") бросает инициативу владельца дважды, что бы у него ни было: Feral Instinct из 5e. Преимущество и помеха взаимно отменяются, как в любом броске; запись инициативы в журнале содержит mode и отброшенный бросок dropped. Бой, бросающий инициативу каждый раунд, бросает ее дважды каждый раунд. Только для бросаемых костей: инициатива пулом дважды не бросается.

Реакция может отвечать на попадание СОБСТВЕННОЙ атаки владельца (Capability API 1.241): реакция "hit" с "by": "self" предлагается атакующему, когда его бросок попал, после того как ответили все, по кому пришелся удар, и направляется на того, в кого он попал (напишите "at": "target"). "weapon": true сужает любой момент попадания до удара оружием: атаки или одиночного действия существа, не из каталога. Реакцию на собственное попадание не останавливает то, что останавливает реакции, потому что ее выбор – часть атаки; помечайте ее "free", если она не тратит бюджет. Stunning Strike из 5e – как раз такая: "reaction": { "on": "hit", "by": "self", "weapon": true, "blow": "melee", "at": "target" }, бесплатная, с ценой в ки, спасброском Constitution и stunned до конца следующего хода монаха. С "addsToBlow": true величина записи атаки присоединяется к этому удару, а не наносится отдельно: бросается, когда удар приходится, удваивается его критическим попаданием, а ее части действуют только на цели, до которых достают. Divine Smite из 5e – это 2d8 излучением, perCostStep 1d8, часть 1d8 излучением с targetIs исчадие или нежить и "perCostStepsMax": 3: наибольшее число ступеней повышенной цены, которые учитываются, для любой записи с perCostStep или targetsPerCostStep. Атака, совершенная внутри другого окна (удар по уходящему), никогда не задерживается ради своего попадания, поэтому к ней ничего не добавляется.

То, что есть в листе, может менять строки атак, давать удары и ждать действия атаки (Capability API 1.242). Запись каталога в списке листа с attackRows меняет строки, имена которых перечисляет (без учета регистра), пока выполняются ее условия when (значение из листа, например надетая броня не больше 0): abilities использует лучшую из собственной характеристики строки и этих для попадания и, если урон строки прибавляет ту же характеристику, для урона; die (from – значение из листа, через ступенчатую table, до числа граней) бросает одну кость такого размера вместо костей строки, если у нее среднее лучше; qualities добавляют то, что удары несут сквозь сопротивление. Martial Arts из 5e – это { "names": ["Unarmed Strike", "Shortsword", ...], "abilities": ["str", "dex"], "die": { "from": { "field": "level_monk" }, "table": [[1, 4], [5, 6], [11, 8], [17, 10]] }, "when": { "value": { "derived": "armor_worn" }, "atMost": 0 } }, а Ki-Empowered Strikes – { "names": ["Unarmed Strike"], "qualities": ["magical"] }. grantsStrike записи в листе позволяет владельцу купить один удар другим бюджетом, когда собственный бюджет атаки потрачен, точно так же, как grants.attacks состояния: names сужает его до этих атак, melee – до досягаемости, а afterAttack – до хода, в котором было совершено действие атаки (true или { "names": [...] } для действия атаки одной из этих атак). Бонусный безоружный удар Martial Arts – это { "budget": "bonus", "names": ["Unarmed Strike"], "afterAttack": { "names": [...the monk weapons] } }. grants состояния принимает те же names и afterAttack. Запись с afterAttack предлагается только после действия атаки: Flurry of Blows – это запись utility на бонусном бюджете, тратящая одно ки, с afterAttack, которая дает (gives) 2 бюджета, объявленного с count 0, и grantsStrike для Unarmed Strike на этом бюджете. Действие атаки – это любая атака из списка атак или предмета, оплачивающая собственный бюджет или уже купленный удар, но никогда не атака, оплаченная выдачей.

Удар по уходящему задерживается в момент попадания точно так же, как атака в ход (Capability API 1.243): спрашивают всех, у кого есть ответ на это попадание, а его автора – последним, о том, что он к нему добавит (Divine Smite, Stunning Strike), и собственное окно перемещения, где ударивший уже ответил, продолжает опрос, когда удар пришелся. Идущий, которого по пути остановили (состояние с speed-zero, например оглушение или захват), не уходит дальше клетки, где по нему ударили. Запись, которая является реакцией или добавляется к другому удару, никогда не выбирается в качестве самого удара по уходящему.

Правила атак достают до удерживаемого оружия, а список атак может дать строку каждому листу (Capability API 1.244). combat.attacks[].always перечисляет до 4 строк в столбцах этого списка, которые бой каждого листа получает в дополнение к собственным; строка листа с тем же именем используется вместо нее. Безоружный удар из 5e – это { "name": "Unarmed Strike", "ability": "str", "proficient": true, "bonus": 0, "damage": "1", "damage_type": "bludgeoning", "reach": 5 }. names правила attackRows теперь совпадает с удерживаемым оружием и по имени, под которым идет его атака, а его items совпадает с удерживаемым оружием по тегам: все из tags и ни одного из notTags ({ "tags": ["simple", "melee"], "notTags": ["two_handed", "heavy"] }, так что кинжал +1 тоже подходит); правило называет names, items или оба. wielding: { "only": {...} } с теми же names, tags и notTags сохраняет правило, только пока каждое удерживаемое оружие – одно из этих или оружия нет вовсе: "без оружия или только с оружием монаха". grantsStrike принимает тот же wielding и when, как у правила attackRows, поэтому бонусный удар Martial Arts не предлагается в доспехах.

Несколько использований сразу, спасбросок, опускающий до 0, попадания названными атаками и вред при окончании состояния (Capability API 1.245). usesSpent записи тратит столько использований ее строки (или строки из usesOf) за одно использование и предлагается, только пока столько осталось: 3 ки у Quivering Palm. names реакции "hit" отвечает только на попадание этими атаками, совпадающими по имени без учета регистра: Quivering Palm – это { "on": "hit", "by": "self", "names": ["Unarmed Strike"], "at": "target" }, накладывающая длительное состояние quivering. dropsOnFailedSave у записи со спасброском опускает здоровье цели, проваливший его, до 0 вместо нанесения величины (существо выбывает, персонаж умирает, если в наборе есть правило умирания); цель, преуспевшая в нем, получает величину так, как говорит onSuccess спасброска. Прекращение вибраций – это действие с targetHolds: { "fromSelf": ["quivering"] }, 10d10 некротического урона, спасбросок Constitution с onSuccess: "none" и dropsOnFailedSave. onEnd.harm состояния (dice, flat, type, unless) наносит владельцу урон, когда состояние заканчивается, от имени того, кто его наложил, если только владелец не подходит под unless: Hurl Through Hell – это реакция на попадание с dismisses: { "while": "hurled" } и hurled длительностью { "rounds": 1, "of": "source" }, а onEnd состояния hurled – это { "harm": { "dice": "10d10", "type": "psychic", "unless": { "types": ["fiend"] } } }.

afterAttack сопоставляет оружие, которым совершено действие атаки, еще и по тегам (Capability API 1.246): { "names": [...], "items": { "tags": ["simple", "melee"], "notTags": ["two_handed", "heavy"] } } означает "после атаки одним из этих имен или удерживаемым оружием, у которого есть все tags и нет ни одного из notTags", как бы оно ни называлось, поэтому кинжал +1 подходит. Он называет names, items или оба – и у записи, и у grantsStrike или выдачи состояния.

Безрассудные и жестокие удары (Capability API 1.247). Запись с beforeAttack предлагается только в собственный ход владельца до того, как он в нем атаковал: Reckless Attack – это бесплатный buff на варваре с beforeAttack, накладывающий reckless на { "rounds": 1 } и exposed на { "rounds": 1, "at": "turn-start" }. Изменение атак принимает attacks (weapon, spell или any) и blow (melee или ranged), как изменение урона, вместе с ability: reckless – это { "to": "attacks", "mode": "advantage", "ability": "str", "attacks": "weapon", "blow": "melee" }, а у exposed эффект attacks-against-advantage. criticalDice изменения урона добавляет столько собственных костей урона удара только при критическом попадании, без удвоения: Brutal Critical – это уровень на производном значении варвара с { "to": "damage", "criticalDice": 1, "attacks": "weapon", "blow": "melee" }, по уровню на каждую кость.

Ответы на попадания шквала (Capability API 1.248). budget момента hit сужает его до попаданий ударом, оплаченным из этого бюджета: Open Hand Technique отвечает на { "on": "hit", "by": "self", "budget": "flurry" } – бюджет, который дает (gives) Flurry of Blows и тратит его grantsStrike. oneOf реакции называет группу ответов на собственное попадание владельца, из которых за одно попадание берется только один: Open Hand Technique – это три бесплатные записи с общим "oneOf": "open-hand": одна со спасброском Dexterity (save), накладывающая prone, одна со спасброском Strength (save) и push на 15, и одна, накладывающая состояние с эффектом cannot-react на { "rounds": 1, "at": "turn-start" }. Выбор одной тратит две другие для этого попадания; следующее попадание снова предлагает все три. oneOf ставится на момент hit с by self без also.

Спасение после броска (Capability API 1.249). Изменение attacks, saves или checks с "rescue": true не участвует в броске сразу: только если собственный бросок владельца не дотягивает, а максимум изменения (постоянная часть и каждая кость на наибольшей грани) мог бы покрыть разницу, оно бросается и прибавляется, а состояние, от которого оно пришло, расходуется. Бросок, который оно не могло бы спасти, оставляет его на месте. Bardic Inspiration – это состояние, наложенное на союзника, с { "to": "saves", "dice": "1d6", "rescue": true } и тем же для attacks и checks (по состоянию на каждый размер кости, выбираемому по уровню барда, как другие ступени); Guidance – это checks с 1d4, Resistance – saves с 1d4. Естественный промах никогда не спасается, а бой на пуле костей ничего не придерживает. rescue записи убирает ее из меню: она расходуется со своими использованиями и ценой, когда собственный бросок владельца этого вида провалился. { "roll": "saves", "by": "reroll" } бросает спасбросок еще раз, и новый бросок остается (Indomitable с собственными использованиями; Diamond Soul с usesOf Ki); { "roll": "attacks", "by": "success" } превращает промах в попадание, а { "roll": "checks", "by": "success" } – проваленную проверку в успех (Stroke of Luck). Придержанные изменения пробуются первыми.

Колкие слова и увертливость (Capability API 1.250). lowersRoll записи применяется, когда попадает чужая атака, в реакции hit без by (с for и within, чтобы отвечать за союзников): ее dice или одна кость die, размер которой задает значение, как у Martial Arts ({ "from": { "field": "level" }, "table": [[1, 6], [5, 8], [10, 10], [15, 12]] }), вычитаются из броска, который затем снова сравнивается с защитой; естественное попадание все равно попадает. Cutting Words – это бесплатный debuff с { "on": "hit", "for": "ally", "within": 60 } и usesOf – счетчиком вдохновения барда. evasion боевого состояния или уровня называет спасброски: против того, что при успехе наносит половину, успешный спасбросок не получает ничего, а проваленный – половину. Evasion – это уровень на уровне плута или монаха с "evasion": ["dex_save"].

Наложение рук (Capability API 1.251). usesChosen записи позволяет использующему выбрать, сколько ее использований тратит одно использование – от одного до оставшегося числа, – и лечит во столько раз больше ее величины. Вариант несет amount: { max }, а выбор присылает amount; если он опущен, тратится столько, сколько в среднем полностью вылечит первую цель. Это для heal без usesSpent. Lay on Hands – это heal с "amount": { "flat": 1 }, usesOf счетчиком по пять за уровень паладина, usesChosen и "targetTypes": { "not": { "types": ["undead", "construct"] } }.

Источник магии (Capability API 1.252). restore записи пополняет запас того, на кого она пришлась, у heal или buff: текущий запас по id или запас строки списка по ее имени ("Sorcery Points"). Если у записи есть cost в семействе запасов, perCostStep увеличивает это пополнение за каждую ступень выше самой дешевой, поэтому ячейка чародея превращается в Sorcery Points, равные ее уровню: buff на себя ценой slots_1 с "restore": { "pool": "Sorcery Points", "amount": { "flat": 1 } } и "perCostStep": { "flat": 1 }. overMax позволяет выйти за максимум запаса; превышение хранится отдельно и пропадает, когда отдых возвращает запас к максимуму. Ячейка, созданная из очков, – это по записи на каждый уровень, с usesOf очками, usesSpent – ее ценой и "restore": { "pool": "slots_2", "amount": { "flat": 1 }, "overMax": true }. Запись, пополняющая самому использующему запас, которого у него нет, в его меню не появляется.

Метамагия (Capability API 1.253). alters записи меняет то, как используется запись из ее catalogs: она никогда не появляется в меню отдельно, а предлагается вместе с каждой подходящей записью, выбирается при ее использовании и оплачивается собственными использованиями (usesOf – Sorcery Points с usesSpent или usesSpentByLevel – по уровню, на котором оплачено заклинание, но не меньше одного). Это utility без реакции. Одна на использование, если она не присоединяется (joins) к другой. Что она меняет, причем каждое подходит только заклинанию, в котором есть что менять: spares (значение из листа: столько использующего и его союзников, задетых заклинанием, автоматически преуспевают в его спасброске: Careful), range ({ "times": 2, "touch": 30 }: Distant), rerolls (столько его костей урона ниже среднего бросаются снова, начиная с наименьших: Empowered, с joins), lasts (то, что оно накладывает на минуту или дольше, длится во столько раз дольше, но не больше суток: Extended), heightens (первая цель бросает свой первый спасбросок с помехой: Heightened), budget ({ "from": "action", "to": "bonus" }: Quickened), drops (компоненты, которые ему тогда не нужны, и никто не может ответить на его сотворение: Subtle) и twins (еще одна цель для заклинания с одной целью, которое не действует только на использующего и ничего не получает от ячейки выше: Twinned). Заклинание, которое прямо сейчас можно сотворить только с одной из них (Quickened, когда действие уже потрачено, Subtle под Silence), предлагается с alterNeeded, и выбор должен ее содержать. Выбор присылает alters – id из alters варианта; журнал сообщает altered.

Метамагия при выборе (Capability API 1.254). rerolls бросает снова наименьшие из всех костей урона заклинания, но в сумме не больше указанного числа: собственные, кости каждой части в plus и при критическом попадании дополнительные кости – сколько останется. Заклинание с атакой бросает их для каждой цели, в которую попало. Если изменение spares задевает больше сторонников использующего, чем щадит, использующий выбирает, кого пощадить: предложение alters варианта несет spares (сколько), а выбор присылает spares – id сторонников использующего, которых надо пощадить (пустой список не щадит никого). Если выбор опущен, щадятся первые задетые. Выбор сохраняется на протяжении окна, отвечающего на сотворение. spares без изменения, которое кого-то щадит, с большим числом id, чем щадится, с повтором id или с id с другой стороны отклоняется как bad-alter.

Цель Heightened и Acid Arrow (Capability API 1.255). Если изменение heightens задевает больше одного, использующий выбирает, кто бросит свой первый спасбросок с помехой: предложение alters варианта несет heightens: true, а выбор присылает heightens – id одного участника боя (того, на кого заклинание направлено, если оно на кого-то направлено, и никогда не самого использующего). Если выбор опущен, это первый задетый. Запись с halfOnMiss: true (у нее должны быть attackRoll и amount) при промахе все равно наносит половину урона, включая урон своих частей, и больше ничего из того, что делает при попадании. harmsPerCostStep записи applies ({ "dice": "1d4" }) добавляет столько к вреду harms состояния за каждую ступень повышенной цены, с которой оно наложено: последующая кислота Acid Arrow, на 1d4 больше за каждый уровень ячейки выше 2-го.

Собственное спасение владельца, записи, никогда не действующие на использующего, и состояния по одному (Capability API 1.256). rescue записи может также быть by: "twenty" (только с roll: "checks"): d20 проваленной проверки считается за 20 и расходуется, только если это делает проверку успешной, как Stroke of Luck для проверки характеристики. by: "die" добавляет собственную кость владельца, если ничто данное ему не может покрыть разницу, а эта кость может: dice ("1d10", Dark One's Own Luck) или одна кость die с размером по значению из листа, { "from": { "field": "level" }, "table": [[1, 6], [5, 8], [10, 10], [15, 12]] } (Peerless Skill). Сначала пробуется состояние, данное ему. notSelf: true у записи, направленной на существо ally или any, не позволяет направить ее на самого использующего: Bardic Inspiration. oneAtATime боевого состояния называет группу ("bardic"): пока у существа есть одно состояние этой группы, никакое другое из нее, включая то же самое, не накладывается; событие состояния сообщает already.

Ответы на большее число видов бросков (Capability API 1.257). lowersRoll может также перечислять "also": ["checks", "damage"]: помимо попавшего броска атаки ее кости вычитаются из чужой проверки характеристики (состязания вроде захвата, условия использования предмета, проверки Counterspell) или броска урона в момент броска. Она расходуется сама по себе, с бюджетом, использованиями и ценой записи, первым с другой стороны, чья запись достает до бросающего, и только если ее максимум может изменить исход: проверку, которая была бы успешной и может стать проваленной, или урон, который сбил бы кого-то из стороны владельца и может оставить его на ногах. Cutting Words – это { "dice": "1d6", "also": ["checks", "damage"] } с костью, размер которой задает уровень, needs: ["hearing"] и targetTypes: { "notImmuneTo": ["charmed"] }. Спасение может называть saves (только спасение saves): тогда оно расходуется только на эти спасброски. С budget оно также берет один такой бюджет и без него не расходуется: кольцо увертливости – это { "roll": "saves", "by": "success", "saves": ["dex_save"], "budget": "reaction" } с зарядами в качестве использований. Использование предмета тоже может нести halfOnMiss вместе с attackRoll и amount: свиток Acid Arrow.

Болезни (Capability API 1.258). kinds боевого состояния (["disease"]) говорит, к какому виду оно относится. Вид никогда не совпадает с собственным id состояния. ends лечения может называть вид вместо состояний: учитывается каждое состояние этого вида, а его count по-прежнему берет только указанное число, поэтому "одна болезнь" Lesser Restoration – это { "conditions": ["disease", "blinded", "deafened", "paralyzed", "poisoned"], "count": 1 }. Невосприимчивость (conditionImmunities существа или предмета либо состояния или уровня) тоже может называть вид: Divine Health – это состояние с "conditionImmunities": ["disease"]. saveEnds может вести счет: successes (от 2 до 10) – сколько успехов снимают состояние, а failures ({ "count": 3, "becomes": "blinding_sickness" }) накладывает вместо него becomes без отсчета и без дальнейших спасбросков, когда провалено столько спасбросков. Событие состояния сообщает worsened. Это Contagion: состояние until-save со спасброском в конце каждого хода, по три в каждую сторону. Состояние без отсчета не снимается в конце боя, поэтому развившаяся болезнь переживает бой, пока ее что-нибудь не вылечит.

Спасение на надетых предметах (Capability API 1.259). use предмета может нести rescue, как механика записи, включая saves и budget. Его никогда нет в меню, и оно расходуется, только пока предмет надет (если у него есть слоты) и в нем есть заряды charges, которые тратит его использование. Расход забирает один такой заряд. Кольцо увертливости – это предмет с "charges": { "max": 3 } и "use": { "kind": "buff", "targets": "self", "free": true, "charges": 1, "rescue": { "roll": "saves", "by": "success", "saves": ["dex_save"], "budget": "reaction" } }. Его заряды возвращаются так, как говорит recharge предмета.

Болезни между боями (Capability API 1.260). Боевое состояние может нести onRest: { "rests": [restId], "lowersMax": { "dice": "3d6", "flat": 0 }, "lasting": true }: каждый раз, когда владелец проходит один из этих видов отдыха, пока состояние на нем, максимум здоровья падает на эту величину, брошенную там, где проходит отдых, после того как отдых вернул то, что возвращает. Без lasting следующий отдых возвращает потерянное; с ним – только то, что снимает печать. onRest.save: { "save": saveId, "difficulty": 15, "cures": true } бросается первым, как проверки набора, с собственным модификатором листа: максимум снижается только при провале, а с cures успех снимает состояние (болезнь отидуга). Максимум для снижения есть только у здоровья в очках. Mummy Rot из 5e – это состояние без отсчета с "onRest": { "rests": ["long"], "lowersMax": { "dice": "3d6" }, "lasting": true }. Спасбросок, считающийся до снятия или до превращения (1.258), больше не останавливается вместе с боем: когда заканчивается любой бой, включая бегство, оставшиеся спасброски владельца за ходы добрасываются, поэтому к этому моменту Contagion либо стряхивается, либо развивается. Спасбросок только от урона ждет урона.

Стадии болезни (Capability API 1.261). Боевое состояние может нести onDamaged: { "applies": [...] } – накладывается на владельца каждый раз, когда он получает урон, с отсчетом, как у onEnd (оглушение Slimy Doom до конца следующего хода владельца); expires: { "becomes": conditionId } – во что оно превращается, без отсчета, когда истекает собственный отсчет, включая конец боя, но не когда его снимают иначе (болезнь от Tentacle аболета через минуту); и curedOnlyBy: { "catalogs": [catalogId], "minLevel": 6 }, чтобы его снимало только лечение из этих каталогов, оплаченное на этом уровне или выше. onRest.restoredWhenCured: true (с lasting) возвращает то, что отдых под этим состоянием отнял от максимума, когда состояние снимается, как бы это ни произошло, включая собственный успешный спасбросок. Эффект cannot-heal-nonmagical не пропускает никакого лечения, кроме магического: в бою – действия, чьи качества говорят "magical", вне боя – операции восстановления с "magical": true (например, зелья с тегом magical), и никогда – отдыха; отклоненное восстановление сообщает cannot-heal. Действие блока характеристик может нести ends, как запись каталога, включая виды: Healing Touch единорога – это "heal": { "dice": "2d8", "flat": 2 }, "ends": { "conditions": ["disease", "poisoned"] }, "targets": "ally". Лечение, при котором заклинатель выбирает одно из состояний, например одно проклятие из нескольких, – это cureOneOf (1.204).

Качества действия существа (Capability API 1.262). Действие блока характеристик может нести qualities – теги предметов, объявленные набором, как у записи каталога: ["magical"] делает его лечение магическим, которое пропускает cannot-heal-nonmagical, а спасбросок против него – спасброском против магии. Использование предмета в бою так же несет собственные теги предмета, поэтому зелье с тегом magical лечит там как магия, так же как в листе.

Ауры (Capability API 1.263). Боевое состояние может нести auras, до четырех: каждая распространяет свои conditions на тех, кто стоит в пределах distance от владельца, на стороне side – allies, enemies или all, а с self: true – и на самого владельца (не с enemies). when читает одно из значений листа владельца с atLeast или atMost, поэтому аура может открываться на определенном уровне. Владелец, который упал, повержен или имеет эффект cannot-act, ничего не распространяет. То, что распространяет аура, накладывается по ходу боя, снимается, когда двое расходятся (журнал сообщает aura и parted), никогда не записывается в лист и пропадает, когда бой заканчивается; состояние, которое распространяет аура, не может нести собственную ауру. Без поля аура достает до всех на своей стороне. Чтобы владелец начинал каждый бой с этим состоянием, дайте механике записи каталога или блоку характеристик keepsOn – состояния, которые он держит весь бой и которые тоже никогда не записываются в лист. Aura of Protection из 5e – это удерживаемое aura-of-protection, чья аура распространяет состояние, прибавляющее Charisma паладина к спасброскам; Holy Nimbus – аура на врагов, чье состояние ранит их в начале их хода.

Принудительное поведение (Capability API 1.264). Боевое состояние может нести behavior, которое решает, что владелец делает в свой ход. only перечисляет все, что может содержать ход, кроме его завершения: move (перемещение и подъем на ноги), escape (освобождение от удержания) и стандартные действия, объявленные набором; пустой список оставляет только завершение хода (halt у Command). onlyWhenStuck называет стандартные действия, разрешенные только пока идти некуда (Dodge у Turn Undead). moves: "away" разрешает ходить только прочь от того, кто наложил состояние, ни шагу ближе, заканчивая дальше; moves: "toward" разрешает ходить только ближе (approach у Command, Sympathy). table бросается в начале каждого хода владельца, {dice, rows: [{atMost, does}]}, и первая строка, не меньше которой результат, решает ход: wander проходит всю скорость в одну сторону, выбранную d8, и заканчивает ход, nothing заканчивает ход, strike разрешает только атаку ближнего боя по существу в досягаемости, выбранному костями (другу или врагу; если никого нет – ничего), а normal, как и результат выше всех строк, оставляет ход как есть (Confusion, Mindfire). Журнал показывает бросок как событие compelled, а все остальное отклоняется как compelled. Спасбросок, снимающий состояние, может также иметь at: "action": владелец тратит действие, чтобы его бросить (Irresistible Dance).

Больше от аур (Capability API 1.265). conditions ауры теперь необязательны, если она распространяет состояния, вред или требует спасброска. needs перечисляет чувства, которые должны быть у получающего, и ни владелец, ни получающий не должны стоять в зоне, чьи inside.conditions отнимают эти чувства: Countercharm с needs: ["hearing"] останавливается у Silence. harms {dice, flat, type} владелец наносит всем, до кого достает аура, в начале каждого своего хода (Fire Aura балора). save {save, difficulty, applies, seen?, immuneOnSuccess?} бросают все, до кого достает аура, в начале своего хода: провал накладывает applies от владельца с этой сложностью, seen требует броска, только пока двое видят друг друга (взгляд василиска), а immuneOnSuccess после успеха защищает от ауры этого владельца до конца боя (Fear Aura исчадия ямы). against.casts модификатора спасбросков сужает его до спасбросков против того, что сотворено из этих каталогов, включая использование предмета, сотворяющее из одного из них, а затем до всего остального, что он называет: преимущество Holy Nimbus против заклинаний исчадий или нежити – это against: { casts: ["spells"], from: { types: ["fiend", "undead"] } }.

Больше принудительного поведения (Capability API 1.266). behavior может нести drops {slots?, tags?, at, pickUp?}: владелец роняет каждый надетый предмет, занимающий один из slots или несущий один из tags, и каждое действие блока характеристик, чьи qualities несут один из tags, либо при наложении состояния (at: "applied", "роняет все, что держит" у Fear), либо в начале каждого своего хода (at: "turn-start", "брось" у Command). Упавшее лежит на клетке, где он стоял: ни одно из его действий ему больше не принадлежит (отклоняется как dropped), оно не дает ничего из того, что давало надетым, и его доля в защите владельца пропадает (2 от щита). Подобрать его можно, стоя на этой клетке или рядом, бесплатным подбором за ход или за бюджет pickUp, если состояние его называет; журнал показывает letFall и pickedUp. onlyWhenStuck: "any" делает ход, начавшийся без места, куда состояние позволяет идти, полностью своим (у Fear "если двигаться некуда"). keepsOut – расстояние от того, кто наложил состояние: внутри него владелец может только удаляться и останавливается только снаружи, пока внешнее пространство в пределах досягаемости (у Turn Undead "не может добровольно перемещаться в пространство в пределах 30 футов от вас"). Спасбросок, снимающий состояние, может иметь unseen: true – бросается, только пока владелец не видит того, кто его наложил (спасбросок от Fear вне линии видимости). applies записи может нести destroysUpTo [{tier, when?}]: существо, проваливающее спасбросок, чья ступень угрозы не выше наивысшей tier, чье when выполняется в листе использующего, вместо этого сразу уничтожается (Destroy Undead – от ПО 1/2 на 5-м уровне жреца до ПО 4 на 17-м); персонаж или существо без ступени – никогда.

Выбор целей по любому чувству, цели рядом друг с другом, растущие области, больше использований и удерживаемые вещи (Capability API 1.267). Запись или действие существа, которому needs чувства, может добавить needsAny: true: подходит цель, сохранившая хотя бы одно из них, а отклоняется только та, у которой нет ни одного (у Turn Undead "каждая нежить, которая может вас видеть или слышать"). targetsWithin – расстояние, в пределах которого должна стоять каждая пара выбранных целей, иначе выбор отклоняется как targets-apart (существа ячейки повыше у Command "в пределах 30 футов друг от друга"). area может нести sizePerCostStep – на сколько растет ее размер за каждую ступень повышения цены (сфера Confusion, растущая на 5 футов за уровень ячейки); стена никогда не растет. Предмет с use может перечислять moreUses [{label, use}]: каждое – еще одна запись меню, названная по предмету и своей label, которая тратит те же заряды и падает вместе с предметом (жезл нескольких заклинаний). Существо может перечислять held [{label, tags, defense?}] – то, что оно держит, но что не является его собственным действием (нарисованный в блоке щит): состояние, чьи drops называют один из их tags, заставляет уронить их вместе с действиями с этими тегами, их defense вычитается из его защиты, пока оно их не подберет, а подбираются они как оброненный предмет.

Взгляды и ауры по тому, до кого они достают (Capability API 1.268). Аура может нести targetTypes, читаемые как у записи: она достает только до тех, кто подходит (Horrific Appearance морской ведьмы, только гуманоиды). sourcesOf называет состояния: аура достает только до тех, кто наложил одно из них на ее владельца (Barbed Hide колючего дьявола, ранящий того, кто его схватил). save ауры может нести failedBy {atLeast, applies}: провал хотя бы на столько вместо этого накладывает эти состояния (взгляд медузы: окаменение сразу при провале на 5 или больше). Спасбросок seen может нести avert: true: тот, до кого он достает, может в свой ход и бесплатно отвести глаза от владельца; пока он снова не посмотрит (тоже по собственному бесплатному выбору), он пропускает этот спасбросок и не видит владельца, поэтому его атаки по нему совершаются вслепую; журнал показывает averted, а распорядитель держит глаза своих существ отведенными, пока остается кто-то другой, с кем сражаться. Спасбросок, снимающий состояние, может нести seenLean ("advantage" или "disadvantage"): он бросается так, пока владелец видит того, кто наложил состояние (повторный спасбросок от морской ведьмы с помехой, пока она в поле зрения).

Посохи, творящие заклинания с числами владельца (Capability API 1.269). use предмета может читать сложность спасброска из листа владельца через sheetDifficulty – значение, как его читает toHit.sheetBonus ({ "derived": "spell_save_dc" }), вместо saveDifficulty; бонус атаки уже читается из листа так же, через toHit.sheetBonus ({ "derived": "spell_attack" }) без характеристик. Использование с charges может нести chargeStep {max, amount?, targets?}: использующий может потратить до max дополнительных зарядов, каждый как ступень повышенной цены, добавляя amount и targets, как ячейка выше добавляет perCostStep и targetsPerCostStep, и увеличивая область через sizePerCostStep (заклинание Staff of Power на более высоком уровне, 1d6 урона силовым полем за заряд у Staff of Striking). Меню предлагает их как оплаты с именем charges:<how many more>, только столько, сколько зарядов еще есть в предмете. Тот же минорный выпуск поднимает число состояний, которые может объявить набор, до 320, а save ауры может нести immuneWhenEnds: true: как только то, что наложил провал, заканчивается, как бы ни закончилось (спасбросок, отсчет, лечение), аура этого владельца больше не действует на него до конца боя, так же как immuneOnSuccess защищает после успешного спасброска ("преуспевает или эффект для него заканчивается" у морской ведьмы).

Вид, называемый при сотворении (Capability API 1.270). mechanics записи каталога с applies может нести kindChoice: true: использующий называет один из combat.creatureTypes (вид или тег) при использовании, это предлагается как режимы kind-<id>, и то, что запись накладывает, запоминает этот вид. Аура наложенного с chosenKind: true достает только до существ этого вида, а с orSeen: true – еще и до тех, кто видит владельца, как бы далеко ни был, поэтому Antipathy из 5e накладывает на цель состояние, чья аура с side: "all" пугает выбранный вид в пределах 60 футов или в поле зрения, и испуганные уходят прочь (moves: "away"), а очарованные Sympathy идут навстречу. saveEnds состояния может нести beyond в единице расстояния набора: спасбросок бросается, только пока владелец стоит дальше этого от того, кто наложил состояние, а с unseen – еще и вне его поля зрения (у Antipathy "не в пределах 60 футов от цели и не видя ее").

Больше о том, что делают посохи и кольца (Capability API 1.271). use предмета может нести label, показываемую рядом с именем предмета, как подпись записи moreUses ("Staff of Fire: Burning Hands"); дополнительное использование называется собственной label. Использование может нести amountAdd – значение из листа владельца, прибавляемое к величине, как у записи каталога (Cure Wounds у Staff of Healing, { "abilityModFromField": "spellcasting_ability" }), в бою и вне его. chargeStep может нести push в единице расстояния набора: каждый дополнительный заряд отталкивает цель на столько дальше, сверх собственного push использования (5 футов за заряд у Ring of the Ram). charges.breaksOn предмета может нести regains {atLeast, amount}: когда потрачен последний заряд и кость показывает atLeast или больше, предмет вместо этого получает amount зарядов обратно (1d12 + 1 при 20 у Staff of the Magi) – в бою, вне его и когда инвентарь тратит заряд; atMost тогда можно опустить для предмета, который никогда не ломается.

Предмет, становящийся другим (Capability API 1.272). charges.breaksOn предмета может нести becomes – другой предмет набора как <catalog>/<entry> – рядом с atMost: на гранях, которые сломали бы предмет, он вместо этого становится тем (немагический боевой посох из Staff of Striking или Staff of Power, сохраняющий только свой +2 как предмет, записанный только с ним). В бою его использования пропадают, и с этого момента он бьет как новый предмет, а бой записывает стопку обратно как этот предмет – под его именем и без зарядов; вне боя и когда инвентарь тратит заряд, стопка меняется так же. Названный предмет должен быть другим предметом набора, в каком бы файле каталога он ни был.

Заряды, тратимые при попадании (Capability API 1.273). attack.spends оружия перечисляет до четырех способов, которыми владелец может тратить заряды предмета, когда удар им попал: у каждого есть label, charges, которые он стоит, amount из костей и постоянной части, добавляемая к удару со своим type урона (если не назван – тип оружия), и необязательно blow (только удар melee или ranged), chargeStep (max дополнительных зарядов, каждый снова добавляет свою amount: 1d6 силовым полем за заряд, до трех, у Staff of Striking) и onHit (до двух состояний, которые получает тот, в кого попали, каждое с rounds, защищающим save или saveEnds: спасбросок Constitution у Staff of Withering). В бою каждый предлагается владельцу при его собственном попадании этим оружием, и только при нем, после того как ответил тот, в кого попали; его кости бросаются вместе с ударом и удваиваются его критическим попаданием, а кость последнего заряда предмета бросается, как при использовании. Предмет должен содержать заряды.

Числа, зафиксированные по тому, кто наложил состояние (Capability API 1.274). Состояние, которое запись накладывает (applies), может нести value – ссылку на значение, читаемую из листа накладывающего в момент наложения ({ "abilityModFromField": "spellcasting_ability" } у Heroism), а temporary боевого состояния дает владельцу временные очки в начале или в конце каждого его хода (at): dice и flat плюс это значение при value: true, а с lostWhenEnds их остаток пропадает, когда состояние заканчивается, если только у владельца нет больше временных очков из другого источника. save.appliedDifficulty ауры бросает ее спасбросок против сложности спасброска того, что наложило состояние ауры на ее владельца, зафиксированной при наложении (сложность спасброска заклинаний заклинателя Antipathy/Sympathy); ее difficulty остается для ауры, которую никто не накладывал. Спасбросок, снимающий состояние с at: "damaged", может говорить bySource: бросается только от вреда от того, кто наложил состояние (спасбросок Sympathy, когда цель ранит его владельца). behavior.keepsIn состояния не дает владельцу, оказавшемуся в пределах этого расстояния от наложившего, уходить дальше (у Sympathy "не может добровольно удалиться"). И use предмета может нести kindChoice, как механика записи (1.270), поэтому свиток Antipathy/Sympathy называет свой вид при использовании.

Состояния, приостанавливаемые, а не снимаемые (Capability API 1.275). Рядом с whileSourceInSight orSourceWithin боевого состояния (расстояние в собственных единицах набора) сохраняет его действие, пока владелец стоит настолько близко к наложившему, видит его или нет: вне поля зрения и вне этого расстояния состояние приостанавливается, оставаясь на владельце с идущим отсчетом, и снова действует, как только выполняется любое из условий (испуг Antipathy в пределах 60 футов или в поле зрения). suppresses боевого состояния перечисляет другие состояния, которые оно приостанавливает, пока действует: их действие прекращается, они остаются на месте и снова действуют, когда оно заканчивается (очарование и испуг у Calm Emotions, у Mindless Rage).

Телепортация (Capability API 1.276). mechanics.teleport записи каталога, use.teleport предмета или teleport действия существа мгновенно переносит использующего в свободное место в пределах distance (в собственных единицах набора): без промежуточных шагов, поэтому никто не бьет его за уход, а зона, в которую он попадает, задевает его, как при входе. Только на поле, поэтому нужно combat.distance; вне поля действие, которое только телепортирует, не предлагается. С seen – только в место, которое использующий сейчас видит (стена, туман или слепота, отнимающая глаза, исключают клетки за ними): Misty Step из 5e, { "distance": 30, "seen": true }. carries (от 1 до 8) берет столько согласных существ стороны использующего, не больше его размером, из пределов carriesWithin (если не указано – касание), и каждый оказывается настолько близко к использующему, насколько есть место: Dimension Door, { "distance": 500, "carries": 1, "carriesWithin": 5 }. Действие существа с телепортацией переносит само существо (Teleport мерцающего пса). Вариант перечисляет клетки, куда можно переместиться, как teleport.cells, а тех, кто может отправиться вместе, – как teleport.carries; выбор называет клетку как at, а спутников – как carries. Телепортация никогда не бывает областью или реакцией.

Шесть состояний сразу и зрение, которое действительно видит (Capability API 1.277). applies вмещает до 6 записей у механики записи каталога, использования предмета и действия существа (раньше 4): Rage и Frenzy добавляют к своим четырем состояние Mindless Rage. А whileSourceInSight (вместе с orSourceWithin) теперь читает собственное зрение владельца, как orSeen ауры: свободная линия на поле все еще нужна, но, кроме того, владелец должен видеть источник глазами или чувствами, поэтому слепота, отнимающая глаза, скрывающий туман, темнота за пределами того, что он видит, или невидимый для него источник прерывают это так же, как стена.

Calm Emotions (Capability API 1.278). Спасбросок может говорить alliesMayFail: true (в save записи каталога, использования предмета или действия существа): цель на собственной стороне использующего пропускает его и проваливает без броска, о чем сообщает журнал, а все остальные бросают как обычно. effects состояния может нести cannot-target-source-side: владелец ни на что не направляет действия против наложившего или любого на его стороне, если только это не собственная сторона владельца (тогда оно никого не исключает). endsWhen принимает еще два окончания рядом с damaged и harmed-by-source-side, всего до четырех: attacked – бросок атаки против владельца от кого угодно, попавший или нет (действие, попадающее без броска, им не считается), и ally-harmed-in-sight – урон кому-либо еще на стороне владельца, который владелец видит (свободная линия на поле и собственные глаза или чувства). А endsWhenHarmedFrom перечисляет каталоги: вред владельцу от чего угодно, сотворенного из одного из них кем угодно, включая заклинание со свитка и стоящую зону, снимает состояние; вред – это урон или то, что владелец стал целью вредного действия, как для harmed-by-source-side, а повторное наложение того же состояния обновляет его, а не снимает. Каждое из этих окончаний ждет, пока шаг, который его вызвал, не завершится. И состояние, которое suppresses собственное активное состояние владельца, больше не снимается невосприимчивостью, которую дает это самое состояние: оно приостановлено, а не вылечено, поэтому испуг, уже бывший на владельце, когда началась ярость с невосприимчивостью к испугу, возвращается, когда ярость заканчивается (Mindless Rage из 5e), а новые испуги по-прежнему не накладываются.

Телепортация из боя, видимые попутчики и дым (Capability API 1.279). teleport (у записи каталога, использования предмета или действия существа) принимает еще три ключа. leaves: true: она может вывести использующего из боя совсем, на милю единорога, а не на клетку; выбор тогда не называет at (меню показывает кнопку "Leave the fight"), а использующий и все, кто отправился с ним, уходят живыми (показываются как "Left the fight", их здоровье сохраняется, и ничто их не возвращает). Вне поля уход – единственное, куда она ведет, и отправиться может любой, кто стоит на стороне использующего, потому что ничто не измеряет, кто стоит рядом. Отряд, выбывший из боя, когда кто-то из него ушел так, считается сбежавшим (исход fled, который завершает бой, как бегство); враг, ушедший так, не побежден и не остался на ногах, а скрылся, и итог боя так и сообщает. Собственные существа распорядителя уходят при четверти здоровья или меньше, забирая всех, кого могут. carriesSeen: true (с carries): отправиться вместе могут только те, кого использующий видит, "согласные существа, которых он видит" у единорога. И smoke ({} или { "pierced": [senses] }): на клетках, которые покинул использующий, и на клетках, куда он попал, стоит облако, скрывающее, как obscures зоны, с момента прибытия до конца следующего хода использующего – дым Cape of the Mountebank.

Телепортация с ударом (Capability API 1.280). Телепортация существа может называть одно из его собственных действий как strike (его id): "До или после телепортации пес может совершить одну атаку укусом" у мерцающего пса. Тогда телепортация позволяет этому действию последовать один раз в этот ход бесплатно (меню говорит "Free, part of the same action"), а меню также предлагает это в обратном порядке, как "Bite, then Teleport" за бюджет телепортации, после чего телепортация следует один раз бесплатно. Ни то ни другое не ведет к третьему. Удар, совершенный первым, тратит использования и перезарядку телепортации вместе со своими и предлагается, только пока осталось и то и другое. Удар – это другое простое действие того же существа: не сама телепортация, не последовательность, не другая телепортация, не реакция и не то, что покупается очками. Называть удар может только телепортация существа; у записи каталога или использования предмета это отклоняется. В бою без расстояний телепортация никуда не ведет, поэтому ничего не сочетается. Распорядитель тоже это использует: существо, слишком далекое, чтобы дойти до добычи, телепортируется рядом с ней и кусает в тот же ход.

Иссушающие удары (Capability API 1.281). mechanics записи каталога или действие существа может нести drain: использующий восстанавливает здоровье, равное урону, который удар нанес каждой цели, после сопротивлений, с округлением вниз и не выше своего максимума, а максимум цели не уменьшается (для этого см. reducesMax). share (больше 0, до 1; если не указано – все) – какая доля возвращается, а damageType учитывает только урон этого типа: Psychic Drain аболета – это drain: {}, Vampiric Touch – drain: { "share": 0.5, "damageType": "necrotic" }. То, что останавливает лечение, останавливает и это. Иссушению нужен урон, который можно вернуть, поэтому оно отклоняется у записи без amount, у лечения и у действия существа без damage.

Взрывы с центром на использующем (Capability API 1.282). area (записи каталога или действия существа) может говорить around: true: это взрыв размера size с центром на использующем, который никогда не направляется. Все в пределах size от использующего задеваются при использовании, друзья и враги, если только friendlyFire не равен false (лечебный – только собственную сторону использующего), но никогда сам использующий. Стена между ними защищает существо, если только область не говорит еще и throughWalls: true: Channel Negative Energy лорда-мумии, "включая тех, кто за преградами и за углами". В бою без поля она задевает всех. Она ни на кого не направлена, поэтому работает как особое действие, купленное между ходами, так же как в ход. Центр на использующем может иметь только одиночный взрыв (без copies), throughWalls используется только с around, а взрыв записи вокруг использующего срабатывает сразу, поэтому не оставляет zone. Channel Negative Energy – это действие существа с signature: { "cost": 2 }, area: { "shape": "burst", "size": 60, "around": true, "throughWalls": true } и applies – состоянием с эффектом cannot-heal на { "rounds": 1, "of": "source" }, до конца следующего хода лорда-мумии. Распорядитель оценивает такую область по тому, кого она задевает, как и направленную форму. Взрыв вокруг существа, оставляющий zone (Ink Cloud кракена), покрывает все клетки в пределах size от существа, в том числе за стенами, если указано throughWalls, независимо от того, используется ли он в ход существа или покупается между ходами, и с этого момента задевает там всех, кого указывают условия срабатывания его зоны.

Легендарные перемещения (Capability API 1.283). Действие существа с ценой signature может говорить move и больше ничего не делать: его создатель перемещается между ходами, выбирая клетку на поле, как при перемещении в собственный ход, за запас хода, выделенный только на это перемещение, поэтому движение его собственного хода не затрагивается. move: { "share": 0.5 } – доля скорости (тараск "перемещается не больше чем на половину своей скорости"), move: { "distance": 60 } – расстояние в собственной единице набора, а move: {} – вся скорость; share и distance вместе не указываются. По нему бьют при выходе из чьей-то досягаемости, как при любом перемещении, а окно, в котором оно куплено, продолжает опрос, когда удар пришелся. noOpportunity: true никого не провоцирует (вампир "перемещается на свою скорость, не провоцируя атак по уходящему"). untouchable: true – перемещение, которому ничто не может навредить или помешать (Whirlwind of Sand лорда-мумии, { "distance": 60, "untouchable": true }): все, что удерживает создателя на месте, сначала отпускает его, никто по нему не бьет, а зоны и местность, которые он пересекает, ничего ему не делают. Существу, удерживаемому на месте или без скорости, при любом другом перемещении некуда идти. Вне поля ничего не предлагается. Распорядитель покупает такое перемещение так же, как телепортацию: чтобы отойти от врага рядом, когда тяжело ранен, или сблизиться с врагом, когда никого нет в досягаемости.

Легендарные заклинания (Capability API 1.284). Действие существа с ценой signature может говорить casting и больше ничего не делать: между ходами оно предлагает каждое заклинание, которое создатель мог бы сотворить в свой ход с budget действия, из своего spellcasting или заклинаний листа, с именами "Cast a Spell: Fireball" и так далее. Каждое направляется, оплачивается и разрешается точно так же, как в ход существа (цели, клетка для области, ячейка или использование тратятся как всегда), а вместо бюджета тратятся очки, поэтому в собственный ход у существа остаются все его бюджеты. casting: { "cantripsOnly": true } предлагает только заговоры (заклинания, не оплачиваемые ни из какого запаса): Cantrip лича, signature: { "cost": 1 }. Cast a Spell сфинкса – это casting: {} с signature: { "cost": 3 }. На все, что открывает заклинание (Counterspell, реакцию на полученный от него вред), отвечают как в ход, а окно, в котором оно куплено, продолжает опрос, когда все это закрылось. Распорядитель покупает такое заклинание, когда оно стоит своих очков, оценивая его как любое другое особое действие.

Перемещение после действия и с одной скоростью (Capability API 1.285). Особое действие, которое что-то делает (урон, область, спасбросок, состояние), может нести еще и move: сначала срабатывает то, что оно делает, затем создатель может переместиться на клетку, которую предложило меню, выбранную вместе с действием; не выбрать ничего – тоже выбор, а клетка, до которой после сделанного уже не дойти, не проходится. move может также называть один способ перемещения через speed (walk, fly, swim, climb или burrow): его share читается только из этой скорости, перемещение идет только этим способом, а существу без этой скорости некуда идти. Wing Attack дракона – это взрыв вокруг него (area: { "shape": "burst", "size": 10, "around": true }, его спасбросок и сбивание с ног) с move: { "share": 0.5, "speed": "fly" }: "Затем дракон может пролететь не больше половины своей скорости полета". move по-прежнему не несет teleport, sequence, reaction или charge. Распорядитель улетает после удара крыльями, когда тяжело ранен рядом с врагом, или сближается с врагом вне своей досягаемости.

Слабая заслоненность и ветер (Capability API 1.286). obscures зоны или smoke телепортации может говорить light: true: тогда она никого не скрывает, а лишь слегка заслоняет тех, кого видят сквозь нее или в ней, как тусклый свет в 5e или дым Cape of the Mountebank (Engine знает, кого видят так; Hide и Perception это учитывают). Она также может говорить dispersed: true: зона, чье правило говорит disperses: true, тогда прекращает ее там, где они встречаются, после каждого действия, вместе с удерживающей ее концентрацией. Fog Cloud из 5e – это obscures: { "dispersed": true }, его Gust of Wind – зона с disperses: true; Darkness не говорит ни того, ни другого, поэтому ветер ее не трогает. Зоне, которая только рассеивает, не нужен триггер.

Скрытность, Search и Detect (Capability API 1.287). combat.hiding делает стандартное действие hide настоящим: { "stealth": "stealth", "perception": "perception", "noisy": ["verbal"] } называет две из combat.checks и, необязательно, passive (10), lightly (5) и те из combat.components, что шумят. Hide бросает stealth собственными костями боя; затем использующий скрыт от каждого противника, который не видит его ясно (за стеной, в тумане, невидимым или только слабо заслоненным) и чье пассивное Perception – passive плюс его проверка perception и на lightly меньше, если он видит использующего только слабо заслоненным, – не достигает результата. Противник, от которого он скрыт, его не видит, поэтому не может ни на что его выбрать, а использующий атакует его как невидимый, и combat.sight.unseenAttacks дает этой атаке преимущество. Скрытность длится между ходами и заканчивается: для всех – как только использующий атакует, проводит состязание, кому-то вредит или требует спасброска либо использует что-либо, требующее компонента из noisy (заклинание без вербального компонента или поставленный туман его не раскрывают); и для каждого противника, который начинает видеть его ясно или чье пассивное значение теперь превышает результат, – после любого шага и на каждой клетке перемещения. Стандартное действие search (добавьте его в combat.standard; ему нужно combat.hiding) бросает perception и находит для ищущего всех скрытых от него, чей результат оно достигает. Действие существа с search: true делает то же и больше ничего: легендарное Detect – это { "name": "Detect", "budget": "action", "signature": { "cost": 1 }, "search": true }. Существо читает обе проверки из собственных checks. Распорядитель ищет, когда все его противники от него скрыты, и использует Detect между ходами, когда скрыт хоть кто-то. Вне поля никто не может быть скрыт, кроме как состоянием, которое уже его скрывает.

Подготовка (Capability API 1.288). combat.readying: { "budget": "reaction" } делает действие Ready настоящим: для каждого варианта, который использующий мог бы сейчас выбрать за свой standard бюджет (атака, заклинание, действие существа), и для перемещения меню предлагает две записи – подготовленную на случай, когда противник входит в досягаемость (comes), или когда противник действует (acts). Выбор одной тратит стандартный бюджет и удерживает этот вариант до начала следующего хода использующего. Когда перемещение противника на любом шаге приводит его туда, куда можно направить удерживаемый вариант (и держащий его видит), или противник заканчивает там любое свое действие, окно спрашивает держащего, и он выбирает вариант readied с budget (реакция в 5e) или отпускает его, и на этом перемещении его больше не спрашивают. Удерживаемое перемещение идет настолько далеко, насколько хватает всей скорости держащего, а выход из досягаемости по пути дает удары по уходящему, как любое перемещение. С "concentrates": true (нужно combat.concentration) заклинание оплачивается при подготовке и удерживается концентрацией: при срабатывании оно не оплачивается снова, потеря концентрации теряет его, а не сработавшее остается потраченным. Подго