规则集物品

用本页描述队伍携带的东西:类别、武器、护甲、弹药、战利品、金钱、初始装备和市场。本页面向规则集作者。开始之前,先读编写 Game Mode 规则集。

本页各节:

护甲、武器、药水、装备、弹药和钱都是物品。可选的 items 块声明规则集中每件物品所用的词汇,holds: "items" 的目录则列出物品本身。两者都需要 Capability API 1.49;该块中管理 Game Master 自创物品的 rarityCaps 和 propose 需要 1.51;读取角色所持物品的值(itemStat)需要 1.52;物品在穿戴或携带时对检定的作用,以及该块的 bonus 上限,需要 1.53;物品对穿戴者的要求及其改变的属性需要 1.54;武器的 attack 需要 1.55;物品在战斗中的作用需要 1.56;武器射出什么、装填多少需要 1.57;武器的模式、副手攻击、下限和命中时施加的状态需要 1.58;在战斗中使用物品的效果及其储存的充能需要 1.59;恢复池的使用需要 1.60;休息时恢复充能,或用尽时会损坏的物品需要 1.61;先要求检定的使用(gate)需要 1.62;战利品表和生物的战利品需要 1.63;掉落钱币的战利品项,或移除钱币的层需要 1.64;市场、物品的 sold 地点和 service 需要 1.65;集市日(钱袋、buyBack、卖家的 stock、limited 数量,或不指定地点的 sold)需要 1.69;在手持武器上触发的附加效果(weapons)需要 1.70;初始装备(startingGear)需要 1.78;有风险的物品、赝品或不诚实的卖家需要 1.79;市场的 unsold(或层的 items) 需要 1.813。

物品块

该块放在文件顶层的 items 中。下面是 Ember Roads 的物品块,略有删减:

"items": {
  "categories": [
    { "id": "weapon", "label": "Weapon" },
    { "id": "armor", "label": "Armor" },
    { "id": "ammunition", "label": "Ammunition" }
  ],
  "rarities": [
    { "id": "common", "label": "Common" },
    { "id": "storied", "label": "Storied" }
  ],
  "tags": [
    { "id": "thrown", "label": "Thrown" },
    { "id": "ranged", "label": "Ranged" },
    { "id": "two_handed", "label": "Two-handed" },
    { "id": "arrow", "label": "Arrow" }
  ],
  "stats": [
    { "id": "bulk", "label": "Bulk", "type": "number", "min": 0, "max": 10, "default": 0 },
    { "id": "guard", "label": "Guard", "type": "number", "min": 0, "max": 4, "default": 0 },
    { "id": "damage", "label": "Damage", "type": "dice", "example": "1d6" },
    { "id": "swing", "label": "Rolls with", "type": "enum", "values": ["brawn", "wits", "heart"], "default": "brawn" },
    { "id": "reach", "label": "Reach", "type": "enum", "values": ["close", "near", "far"], "default": "close" }
  ],
  "slots": [
    { "id": "body", "label": "Body", "count": 1 },
    { "id": "hands", "label": "Hands", "count": 2 }
  ],
  "carry": { "stat": "bulk", "encumberedAbove": { "derived": "load" }, "limit": { "const": 12 } },
  "rarityCaps": [
    { "rarity": "common", "stats": { "guard": 1 }, "bonus": 1 },
    { "rarity": "storied", "stats": { "guard": 3 }, "bonus": 2 }
  ],
  "currencies": [
    {
      "id": "coin",
      "label": "Coin",
      "perWeight": 100,
      "units": [
        { "id": "bit", "label": "bits", "value": 1 },
        { "id": "mark", "label": "marks", "value": 10 },
        { "id": "sovereign", "label": "sovereigns", "value": 100 }
      ]
    },
    {
      "id": "salt",
      "label": "Salt",
      "perWeight": 10,
      "units": [
        { "id": "pinch", "label": "pinches", "value": 1 },
        { "id": "cake", "label": "cakes", "value": 20 }
      ]
    }
  ]
}

一件物品

物品目录不声明 feeds:

{ "id": "outfitter", "label": "Outfitter", "holds": "items", "entries": [] }

每个条目携带 item,而不是 rows 或 creature:

{
  "id": "hunting-bow",
  "label": "Hunting bow",
  "summary": "Yew, waxed string, and a grip worn smooth by someone else's hand.",
  "item": {
    "category": "weapon",
    "rarity": "common",
    "tags": ["ranged", "two_handed"],
    "stats": { "bulk": 2, "damage": "1d8", "swing": "wits", "reach": "far" },
    "slots": { "hands": 2 },
    "cost": { "amount": 3, "unit": "sovereign" }
  }
}

物品不携带 mechanics:它的作用写在自己的 item 块中。

什么会读取物品

以上所有内容都会在导入规则集时检查,物品目录也随规则集一起提供。游戏中,Game Mode 的物品栏会读取它们:

在 Classic 或 Tactical 战斗中,每件带 use 的物品都按其描述生效,没有它的物品不会提供(见下文“Classic 与 Tactical 战斗中的物品”)。无论 native 如何设置:人物卡都能读取你的物品(见下文);在规则集战斗中,手持的武器就是一次攻击,射出从背包中取出的东西;物品在穿戴或携带时的作用在规则集战斗中也会计入(见下文“战斗中的护甲与穿戴效果”);带 use 的物品在战斗中和战斗外都按其自身规则使用(见下文“在战斗中使用物品”和“在战斗外使用物品”);你的 currencies 就是队伍的钱(见下文“金钱”)。

人物卡上的物品

值引用可以用 itemStat 读取角色持有的物品(Capability API 1.52)。Ember Roads 把旅人所穿护甲的 guard 加到其 Guard 上,也就是打击必须超过的数值:

{
  "id": "guard",
  "label": "Guard",
  "op": "sum",
  "of": [{ "const": 6 }, { "abilityMod": "wits" }, { "itemStat": { "stat": "guard", "from": "worn", "pick": "sum" } }]
}

物品会在游玩中变化,因此 itemStat 受与实时读取相同的规则约束:池或轨道的 max、熟练加值、binding.max、carry 的数字,以及目录的缩放列或缩放都不能读取它,经由派生值也不行。其他任何读取数字的地方都可以:派生值、检定的 adjust、技能的 cap、战斗的防御、吸收或先攻。

角色的物品就是其自己背包里的物品。玩家的角色卡(聊天设定为玩家扮演的那张,否则为第一张)读取玩家的背包,其他每张角色卡读取各自的背包。只有规则集的物品才计入,因为普通物品没有可读取的数值。屏幕上的人物卡、检定、Game Master 的人物卡块,以及开始时的战斗,都读取每个角色当时持有的东西。在游戏之外,即人物卡编辑器或导入审核中,没有人持有任何东西,itemStat 读取其 default。

战斗外的检定

Game Master 在战斗外要求的检定或豁免,读取的不只是人物卡:还有角色自身生效的状态、已达到的等级、物品在穿戴或携带时的作用,以及未达到穿戴物品要求时的代价。它使用与战斗状态相同的词汇(物品相关的键和范围收窄需要 Capability API 1.53)。

物品用 worn 说明穿在身上时(需要绑定的还须已绑定)的作用,用 carried 说明仅携带时的作用。Ember Roads 的皮外套在你潜行时会吱嘎作响,而路石让商队的人信任你:

"worn": { "modifiers": [{ "to": "checks", "skills": ["sneak"], "flat": -1 }] }
"carried": { "modifiers": [{ "to": "checks", "skills": ["sway"], "flat": 1 }] }

两者都使用检定所读取的那部分状态内容:

Ember Roads 的牛皮护手能让无力的手握得像赶牲口的人一样牢:

"worn": { "abilities": { "brawn": { "set": 2 } } }

物品在战斗中的作用(防御、攻击、速度、战斗的其他效果,以及它能挡下的伤害和状态)见战斗中的护甲与穿戴效果;战斗外的检定只读取上述部分。无论某人持有同一物品多少叠,它都只生效一次。

物品还可以用 requires 对穿戴者提出要求:其人物卡上的某个值(value,任意值引用,读取方式与游玩中的一切相同)、该值的最低要求(atLeast),以及未达到时适用的效果(otherwise,使用相同词汇,但不能改变属性,因为要求本身可能读取属性)。最多四项。对力弱的守望者来说,Gravewatch 的墓地铁锹是份重活:

"requires": [
  {
    "value": { "abilityScore": "sinew" },
    "atLeast": 3,
    "otherwise": { "modifiers": [{ "to": "checks", "skills": ["dig"], "flat": -1 }] }
  }
]

要求读取的是穿戴者的物品改变之后的属性,因此把 Sinew 设为 3 的护手就能满足铁锹的要求。

检定时:

Gravewatch 在骰池上展示了同样的做法:已绑定的 Dawn bell 为 Ward 加一颗骰子,Rattled 则从 Soothe 和 Barter 中减去一颗。

来自状态、等级、物品和人物卡行的分类防御

combat.conditions[] 和 combat.levels[] 可以给予 resist、vulnerable、immune(各 1–30 项) 和 conditionImmunities(1–40 个状态 ID)。它们在状态持续期间或等级阈值达到时生效。新获得的状态免疫会结束已经生效的该状态,并防止再次施加它。免疫优先于抗性;抗性与易伤相互抵消。多重抗性从不会让伤害减半两次。

resist 和 immune 使用生物的写法:一个伤害词,或 { "type": "bludgeoning", "except": ["magical"] }。打击上任何被指定的标签都会绕过该项。vulnerable 仍是普通的伤害词。同样的例外写法也适用于物品的 worn 和 carried 效果。在 items.tags 中声明例外标签,并把它们放在武器或法术的性质上。例如,Stoneskin 是这样一个状态映射:

{
  "condition": "stoneskin",
  "resist": [
    { "type": "bludgeoning", "except": ["magical"] },
    { "type": "piercing", "except": ["magical"] },
    { "type": "slashing", "except": ["magical"] }
  ]
}

Armor of invulnerability 在其 worn 效果中使用同样的 resist 数组。Protection from Energy 可以给予 resist: ["fire"];类似 Brave 的特性可以给予 conditionImmunities: ["frightened"]。等级可以在达到其阈值时给予 resist: ["poison"]。在 combat.damageTypes 声明了词汇时,未知的静态伤害词会被报告,与生物相同;没有该声明时,伤害词是自由文本。

对于血统或目录特性,combat.sheetHides 最多容纳八个来源(允许空数组)。每个来源指定一个人物卡列表、该列表中的一个文本或枚举列,以及四种类型之一。对于特性行在 resistance 列中包含 "poison" 的矮人:

"sheetHides": [{ "list": "traits", "column": "resistance", "kind": "resist" }]

每一行都提供以逗号分隔的词,去掉首尾空格并不区分大小写匹配;空词会被跳过。添加一行 "fire" 会增加火焰抗性;删除它会移除这个来源。抗性和免疫词可以包含 except,例如 "bludgeoning except magical silvered"。易伤和状态免疫是普通的词。人物卡文本中未知的已声明伤害词会被忽略,未知的状态 ID 也一样;用于状态免疫的枚举列在导入时只能声明状态 ID。人物卡、战斗和 Game Master 的摘要都包含这些防御及其例外。

战斗中的武器

物品可以是武器(Capability API 1.55)。它的 attack 与战斗块的攻击行形状相同,只是用值代替列;物品穿戴时,规则集战斗会把它作为攻击提供:拿在它所占用的手中,需要绑定的还须已绑定。收起或仅携带的武器不提供任何东西,攻击行和生物自身的行动与以前完全一样。Ember Roads 的手斧:

"attack": {
  "budget": "act",
  "toHit": { "abilities": { "stat": "swing" } },
  "damage": { "dice": { "stat": "damage" }, "abilities": { "stat": "swing" }, "type": "cut" },
  "reach": 2,
  "range": { "normal": 10, "long": 20 }
}

这些数字或词语中的任何一个都可以改为读取物品自己的数值:{ "stat": "damage" } 就是物品的 damage,物品没有给出的数值视同没有写这个值。abilities 和 skill 读取取值为属性或技能 ID 的枚举数值,type 读取文本或枚举数值。因此,Game Master 用 like= 某件武器自创的物品也是武器,用自己的数值作战,并像任何数值一样受 rarityCaps 限制(你直接写下的值按原样复制)。自创时没有槽位也没有绑定的物品从不算作穿戴,因此不会带有攻击。小模型往往会描述一件武器却省略 like=,所以在你的某个武器类别中自创、没有起点的物品,会按名称最相近的该类别武器作战(任一方向共用一个词即可,所以 crossbow 和 bow 相近),找不到就按该类别的第一件武器,并采用该攻击读取、而提议中省略的数值,答复也会说明这一点(“It fights as Hand axe does.”)。Game Master 的提议格式也会告诉它,照某件武器做出的武器会像它一样作战。

武器的标签会随其打击一起传递。生物的 resist 或 immune 项可以说明什么能穿透它:{ "type": "tearing", "except": ["silver"] } 表示来自带 silver 标签武器的伤害全额承受,来自其他东西的则被抵抗。Gravewatch 的墓地尸妖就是这样写的,银棺钉能够穿透它。不是武器物品造成的伤害,用 qualities(Capability API 1.101) 以同样的物品标签说明它所携带的东西:写在目录条目的 mechanics 上(法术),以及生物行动的 damage 上(deva 的 mace)。5e 的“对非魔法攻击造成的钝击、穿刺和挥砍伤害具有抗性”写作 { "type": "slashing", "except": ["magical"] },另外两种也同样写,再在其魔法武器的标签上加上 magical,并在其法术以及 SRD 称为魔法的生物攻击上加上 "qualities": ["magical"]。

武器详情和 Game Master 看到的那一行会说明它的作用:attack (Action): Brawn to hit, 1d6 + Brawn cut, reach 2 paces, range 10 to 20 paces;Ember Roads 的野猪矛会带 1d8 with a hand free,Gravewatch 的铁锹旁会有 at 6。

弹药与装填

武器可以射出某种东西,也可以自己保留已装填的数量(Capability API 1.57)。Ember Roads 的猎弓射箭,Gravewatch 的守夜手枪装一颗弹丸,从守望者的弹丸和火药中装填:

"ammo": { "tag": "arrow", "recover": 0.5 }
"ammo": { "tag": "shot" },
"clip": { "max": 1, "reload": "act" }

战斗射出、装填和捡回的东西,会在每一步执行时写入物品栏,与队伍的生命值一样,冒险日志也会记下用掉了什么。如果某一步对应的那一叠已经不在,或数量少于战斗所预计的,这一步会被拒绝,就像战斗找不到已消耗的物品时一样。战斗日志记录每次射击、装填和捡回(“Hunting bow: 2 left to shoot.”、“Ada loads 1 into Watch pistol: 1 of 1 loaded.”),物品详情和 Game Master 看到的那一行会说明武器射出什么、装了多少:ammunition Arrow (1 an attack, 50% picked up after a won fight) 和 holds 1, reload (Act)。

模式、第二把武器、下限和命中时的状态

武器可以有其他攻击方式、副手中的搭档、造成伤害的下限,以及施加给被命中者的状态(Capability API 1.58)。Ember Roads 的猎弓可以齐射,Gravewatch 的银棺钉可以两手各持一枚,并标记被它深深刺中的目标:

"modes": [{ "id": "volley", "label": "Volley", "ammo": 2, "toHit": -2, "targets": 2 }]
"offHand": true,
"onHit": [{ "condition": "marked", "atLeast": 2, "rounds": 2 }]
  "offHand": { "budget": "quick", "ability": "full" }

持有者本回合用一件标为 offHand 的武器攻击过之后,其穿戴的其他每件此类武器都会提供一次消耗该额度的第二次攻击,在菜单上名为 “Silver coffin nail, off hand”。ability 为 full(默认) 或 penalty-only;后者只在伤害属性为减值时才加上它,与 5e 的双武器战斗相同。副手攻击只是一次打击,无论主攻击买了几次打击,也绝不会用于打击走开的人。标为 offHand 的武器需要战斗块的 offHand。fullWhen(Capability API 1.97) 是从战斗者人物卡读取的值:大于 0 时,无论 ability 怎么写,该战斗者的副手都保留完整的属性加值,就像 5e 的 Two-Weapon Fighting 战斗风格那样。

骰池战斗中吸收后的伤害,或求和战斗的伤害,会在抗性减半之前提高到这个值,日志也会说明。 消耗型打击掷出的是攻击者自身的数字,从不提高。

没有它时,持续到被某种东西移除。 伤害指吸收和抗性之后实际作用于目标的部分; 夺取型打击夺取的是先攻而不是造成伤害,因此不会施加状态。 每一项还可以带 save: { "save": <save id>, "difficulty": n },目标在状态即将施加时进行该豁免, 成功则不受该状态; 以及 saveEnds: { "save", "difficulty", "at": "turn-start" | "turn-end" | "damaged" },让状态持续到持有者在每个回合开始或结束时、 或在受到大于零的伤害时通过该豁免为止(此时它没有 rounds)。 两者都算作针对该状态的豁免,武器为魔法武器时还算作针对魔法的豁免(Capability API 1.169)。 5e 的 sword of wounding:{ "condition": "wounded", "atLeast": 1, "saveEnds": { "save": "con_save", "difficulty": 15, "at": "turn-start" } }。

save 指定其自身的 difficulty 和 onSuccess(half 或 none)。 targetIs 只对属于这些生物类型或标签的目标造成它(见战斗页面每个键下的“生物类型与目标测试”)。 when: "critical" 只在重击时造成它; 任何子项的骰子在重击时 都像武器的骰子一样翻倍。 javelin of lightning 写作 { "dice": "4d6", "type": "lightning" }; dragon slayer 写作 { "dice": "3d6", "type": "slashing", "targetIs": { "types": ["dragon"] } }; sword of sharpness 写作 { "flat": 14, "type": "slashing", "when": "critical" }。 预测只对子项能触及的目标计入它,且从不计入只在重击时生效的子项。 when: "toggled" 只在物品的开关打开时造成它(Capability API 1.170,见下文 toggle)。

武器详情和 Game Master 看到的那一行会说明全部内容:modes Volley (2 shots, -2 to hit, up to 2 targets)、off hand (Quick)、at least 1 on a hit before resistance、+3d6 slashing against Dragon 和 Marked for 2 rounds when a hit deals 2 or more。

战斗中的护甲与穿戴效果

物品在穿戴或携带时的作用也可以改变战斗(Capability API 1.56),作用于其持有者,与其状态和等级并列。两者都使用战斗所读取的那部分状态内容:

Gravewatch 受诅咒的寡妇戒指让每次攻击少一颗骰子,已绑定的 Dawn bell 让持有者不会陷入 rattled,而携带 Ember Roads 的路石能挡住灼热:

"worn": { "modifiers": [{ "to": "attacks", "flat": -1 }] }
"worn": { "modifiers": [{ "to": "checks", "skills": ["ward"], "flat": 1 }], "conditionImmunities": ["rattled"] }
"carried": { "modifiers": [{ "to": "checks", "skills": ["sway"], "flat": 1 }], "resist": ["burn"] }

与检定一样,战斗对每件物品只读取一次,并以那一叠的名称标注(日志中掷骰旁和防御上的 “Widow's ring”);未满足要求时的 otherwise 在战斗中同样计入,因此对穿戴者过重的护甲会降低速度。物品详情和 Game Master 看到的那一行会说明全部内容(“While worn: -1 on attacks”、“worn: +1 on checks (Ward), immune to Rattled”)。增加防御或吸收的护甲,是用 itemStat 读取的物品数值(见“人物卡上的物品”),就像 Ember Roads 的 Guard 读取所穿的外套一样。

硬度。 在先攻是会被攻击改变的数字时,combat.pool.hardness 是战斗者的硬度,在战斗开始时从其人物卡读取(通过 itemStat 读取其护甲的硬度),生物则给出自己的 hardness。骰子数低于硬度的消耗型打击虽然命中,却没有任何效果:攻击者的数字仍会回到基准值,日志会说明(“Ada's Grave spade lands on the warden with 5 dice, below a hardness of 6, and does nothing.”),菜单也不会为它预测伤害。只有带消耗型方式的规则集才能使用它,以人物卡编写的生物从人物卡获取它。

在战斗中使用物品

物品可以在战斗中使用(Capability API 1.59):按在伤口上的药膏、吞下的补剂、敲响的铃铛。它的 use 用目录条目 mechanics 的词汇说明使用效果(见战斗会从 mechanics 读取什么):kind(heal、attack、buff 或 debuff)、amount、damageType、plus、attackRoll、save、applies、temporary、range、area、targets、targetCount、friendlyFire,以及从 Capability API 1.174 起的 concentration 和 zone,再加上它消耗的 budget,或 free。Ember Roads 的药膏,以及 Gravewatch 的暖身补剂和 Dawn bell:

"use": { "kind": "heal", "budget": "act", "range": 0, "targets": "ally", "amount": { "dice": "1d4", "flat": 1 }, "consumes": true }
"use": { "kind": "heal", "budget": "quick", "targets": "self", "amount": { "flat": 1 }, "consumes": true }
"stack": 1,
"use": {
  "kind": "debuff",
  "budget": "act",
  "targets": "enemy",
  "save": { "save": "steel", "onSuccess": "negates" },
  "saveDifficulty": 7,
  "applies": [{ "condition": "rattled", "duration": { "rounds": 2 } }],
  "charges": 1
},
"charges": { "max": 3 }
  "charges": { "max": 3, "recharge": { "rests": ["vigil"], "amount": "max" }, "breaksOn": { "die": 20, "atMost": 1 } }
  "gate": { "check": { "skill": "ward" }, "difficulty": 2, "unless": { "value": { "abilityScore": "nerve" }, "atLeast": 3 } }

战斗用掉的物品和剩余的充能,会像武器的射击一样在每一步执行时写入物品栏,冒险日志也会记下用掉了什么。战斗日志记录每次使用(“Poultice: 1 of 2 left.”、“Dawn bell: 2 of 3 left.”)。Engine 扮演的队伍成员只对受伤的人使用治疗,也没有人会用物品打击走开的人。物品详情和 Game Master 看到的那一行会说明使用效果:“Use (Action): heals 1d4 + 1, range 0 paces, used up” 和 use (Act): Steel 7 save negates it, Rattled, 1 of 3 charges,详情还会显示剩余充能。Game Master 用 like= 你的某件物品自创的物品,会像那件物品一样使用,充能等一应俱全。

Classic 与 Tactical 战斗中的物品

不自行结算战斗的规则集,会把战斗交给 Game Mode 自己的 Classic 和 Tactical 战斗;在那里,战斗开始时会询问模型物品栏中的物品有什么作用。你的物品不靠猜测:每件带 use 的物品都按其描述、以 Engine 自己的数值生效,只有不属于你的物品才会请 Game Master 猜测(native: false 时一件也不会)。

Engine 自行计算每件物品的效果,因此画面发送的内容永远决定不了你的物品做什么。

战利品

在每个 Game Mode 游戏中,打赢的战斗都会掉落一次战利品,放进队伍的背包。没有规则集时,战利品来自 Game Mode 自己的表(难度越高越多、越稀有);未声明战利品表且保持 native 开启的规则集也是如此。声明了战利品表的规则集改为掉落自己的物品;设为 native: false 且没有表的规则集什么也不掉落。

items 块中的 lootTables(Capability API 1.63) 列出这些表,Gravewatch 的陪葬品就是这样写的:

"lootTables": [
  {
    "id": "grave_goods",
    "label": "Grave goods",
    "rolls": "1d2",
    "entries": [
      { "item": "kit/shot-and-powder", "weight": 4, "count": "1d4" },
      { "item": "kit/warming-tonic", "weight": 3 },
      { "item": "kit/litany-page", "weight": 2 },
      { "filter": { "category": "arm" }, "weight": 1 },
      { "coins": "shilling", "weight": 2, "count": "1d6" }
    ]
  }
]

金钱

你的 currencies 就是队伍的钱。钱币是背包里的物品,每种钱币和其他物品一样成一叠,以其 label 命名:

初始装备

items.startingGear(Capability API 1.78) 列出角色在开始时可以放进背包的装备:职业套装、背景套装、Calling 套装。它从不自行给出。物品栏会显示 Starting gear(初始装备) 一行,玩家选择一套装备、为其每个选择选一个选项、从每个列表选一件物品,然后把它放进玩家的背包或某个队伍成员的背包。角色人物卡 fits 的装备排在最前,然后是没有 fits 的装备(适合任何角色,例如背景套装);每套装备都会提供,因为角色的设定由玩家和 Game Master 共同商定。

"startingGear": [
  {
    "id": "fighter", "label": "Fighter", "group": "class",
    "fits": { "value": { "field": "level_fighter" }, "atLeast": 1 },
    "lines": [{ "item": "equipment/shield", "equip": true }],
    "choices": [
      {
        "label": "Armor",
        "options": [
          { "label": "Chain mail", "lines": [{ "item": "equipment/chain-mail", "equip": true }] },
          { "label": "Leather armor and a longbow", "lines": [
            { "item": "equipment/leather-armor", "equip": true },
            { "item": "equipment/longbow" }, { "item": "equipment/arrow", "count": 20 }
          ] }
        ]
      },
      { "label": "A martial weapon", "options": [
        { "label": "Pick one", "lines": [{ "oneOf": ["equipment/longsword", "equipment/battleaxe"] }] },
        { "label": "A greataxe", "lines": [{ "item": "equipment/greataxe" }] }
      ] }
    ]
  },
  { "id": "acolyte", "label": "Acolyte", "group": "background", "lines": [{ "coins": "gp", "count": 15 }, { "name": "Vestments" }] }
]

市场

items 块中的 market(Capability API 1.65) 说明一个地点卖什么、卖什么价,而不是每家店都按标价出售一切。下面是 Gravewatch 的市场,略有删减:

"market": {
  "prices": [
    { "id": "cheap", "label": "cheap", "times": 0.75 },
    { "id": "fair", "label": "fair", "times": 1, "default": true },
    { "id": "dear", "label": "dear", "times": 1.5 }
  ],
  "places": [
    { "id": "hamlet", "label": "hamlet" },
    { "id": "village", "label": "village" },
    { "id": "town", "label": "market town" },
    { "id": "city", "label": "city" }
  ],
  "sold": [
    { "filter": { "rarity": "rare" }, "place": "town" },
    { "filter": { "category": "arm" }, "place": "village" }
  ],
  "sellers": [
    { "id": "chandler", "label": "chandler", "sells": [{ "category": "coat" }, { "category": "tonic" }] },
    { "id": "smith", "label": "smith", "sells": [{ "category": "arm" }], "place": "village" },
    {
      "id": "chapel",
      "label": "chapel of the Vigil",
      "sells": [{ "category": "page" }],
      "place": "town",
      "only": { "value": { "abilityScore": "nerve" }, "atLeast": 3, "label": "wardens of Nerve 3 or more" }
    }
  ]
}

队伍在哪里。 Game Master 用 [place: name="Millbrook" size="market town"] 说明场景所在的地点及其规模,规模用 ID 或标签指定;没有市场的地方(道路、荒野)则省略规模。Engine 就地答复每个标签,拒绝你没有的规模;从最近一次对话开始算起,它在玩家可见的自身回复中最后答复的地点,就是当前生效的地点,直到另有说明。玩家输入的地点标签从不计入。重新生成的回复只读取它所替换的那次叙述之前的内容。

购买。 Game Master 用 [inventory: action="buy" item="Hand axe" count="1" level="dear" seller="smith" who="Ada"] 购买,level(没有时为默认档位) 和 seller(没有时为此地任何出售该物品的卖家) 可选。Engine 按回复结束时生效的地点定价,像付款一样从买家的钱袋(不带 who= 时为玩家的钱袋)中付款并找零,然后把物品放进其背包;如果是服务,则只付款。两者要么都发生,要么都不发生。答复会说明花了多少(price="12 shillings")、付了什么、找回什么,并显示通知。以下情况购买会被拒绝,且不作任何更改:未说明地点(no-place);你没有的档位、物品或卖家(unknown-level、unknown-item);没有价格(not-for-sale);地点太小,不卖该物品(not-here);此地没有出售它的卖家(no-seller);买家不满足卖家的 only(not-to-you);钱袋付不起(cannot-afford);或背包装不下。

Game Master 看到什么。 场景位于有市场的地点时,MARKET 块会写出地点及其规模、价格档位,以及此地的每个卖家,并按默认档位从便宜到贵列出各自出售的十来样东西;他们出售的任何东西都可以按名称购买。它的指令会教授 [place:] 和 buy,只有带市场的规则集才有这些指令。

集市日

集市日(Capability API 1.69)让一个地点的货架会变化、会售罄,并允许队伍把东西卖回去。下面是 Gravewatch 的集市日,略有删减:

"places": [
  { "id": "hamlet", "label": "hamlet", "purse": { "amount": 10, "unit": "shilling" } },
  { "id": "town", "label": "market town", "purse": { "amount": 100, "unit": "shilling" } }
],
"buyBack": 0.5,
"sold": [{ "filter": { "rarity": "rare" }, "place": "town", "limited": "1d2" }],
"sellers": [
  { "id": "smith", "label": "smith", "sells": [{ "category": "arm" }], "stock": { "table": "smiths_odd_lot" } }
]

诚实与不诚实的卖家

Capability API 1.79 允许物品有风险或是赝品,也允许卖家不诚实。

"items": { "market": { "sellers": [
  { "id": "fence", "label": "Fence", "sells": [{ "tag": "magical" }], "place": "town", "honest": false, "stock": { "table": "fences_odd_lot" } }
] } }
{ "id": "bag-of-devouring", "label": "Bag of Devouring", "item": { "category": "wondrous", "passesFor": "magic_items/bag-of-holding", "cost": { "amount": 5, "unit": "gp" } } }
{ "id": "wand-of-wonder", "label": "Wand of Wonder", "item": { "category": "wand", "risky": "every wave is a gamble; some effects turn on the one who waves it" } }

识破赝品

Capability API 1.802 让角色能通过自己进行的检定,或在任何人付款之前察觉,识破赝品的真面目。Engine 不认识任何检定名称:检定由规则集编写。

{
  "id": "potion-of-poison",
  "label": "Potion of Poison",
  "item": {
    "category": "potion",
    "passesFor": "magic_items/potion-of-healing",
    "tells": [
      {
        "check": { "value": { "derived": "poisoners_kit_check" } },
        "dc": 13,
        "carries": { "anyOf": ["gear/poisoners-kit"] },
        "says": "a faint bitterness under the sweetness"
      },
      { "check": { "skill": "arcana" }, "dc": 18, "says": "its magic does not feel like healing magic" }
    ],
    "foolsReveal": ["identify"]
  }
}
"items": {
  "namesItAt": 5,
  "revealsFakes": [{ "id": "identify", "label": "Identify" }, { "id": "detect-poison", "label": "Detect Poison and Disease", "items": ["magic_items/potion-of-poison"] }],
  "market": { "sellers": [
    { "id": "fence", "label": "Fence", "honest": false, "sells": [{ "tag": "magical" }],
      "manner": { "check": { "skill": "insight" }, "dc": 13, "advantageIf": [{ "value": { "derived": "knows_trade" }, "atLeast": 1 }], "says": "their eyes slide away when you ask about it" } }
  ] }
}

在战斗外使用物品

同一个 use 在战斗外也有效(restore 需要 Capability API 1.60;其余不需要新的声明)。对带 use 的物品,物品栏的 Use 按钮和 Game Master 的 [inventory: action="use" item="Poultice" who="Juno"] 都会用 Engine 的骰子,对携带者产生该物品的效果:

发生的事用一行说明:“Juno uses Poultice: heals 4 (Grit 6/11). 1 left.” Use 按钮会在 “I use my Poultice.” 之后,用 [item_used] 块把它发送给 Game Master,聊天会将其显示为徽章;Game Master 自己的标签也以它答复,与其他标签一样以回合开始时为基准,因此重新生成的回复绝不会把一件物品用两次。没有 use 的物品,或在没有规则集的游戏中,仍然会说出:“I use my rope.”