Files
mod_equipment/docs/ru.md
T

5.7 KiB
Raw Blame History

Equipment — снаряжение, которое меняет характеристики персонажа

Equipment позволяет персонажам носить вещи: оружие, броню, талисман — а в визуальной новелле наряд и украшения. Пока предмет надет, его бонусы входят в характеристики персонажа, поэтому лист персонажа, бои, проверки характеристик и условия меняются сразу. Снятая вещь возвращается в сумку.

Моду нужны Stats Engine и Items Base. Слоты и снаряжение RPG Plus берутся из набора Classic RPG Rules; другая игра опишет свои.

Как что-то надеть

Откройте сумку, выберите предмет и нажмите Equip, затем укажите, кто его наденет:

Инвентарь в RPG Plus: выбрана Leather armour, её детали (Targeted, тип снаряжения armor, черты def +2 и hp +6, кнопка Equip), кнопка Equip и список целей, где герой 42/42.

Предмет уходит из сумки и появляется в блоке Equipment листа персонажа. До и после:

Боевая часть листа и блок Equipment. До: Health 42/42, Armour 4, Body пусто. После: Health 48/48 (+10), Armour 6 (+2), Body — Leather armour, DEF +2 HP +6, рядом кнопка Take off.

Броня выросла с 4 до 6 — это def брони +2. Здоровье выросло с 42 до 48: база 38 плюс hp брони +6 даёт 44, а 10% бонус воина к здоровью доводит до 48.

  • Take off на листе возвращает предмет в сумку.
  • Если надеть вещь в занятый слот, прежний предмет вернётся в сумку.
  • Выбирать можно только членов отряда.

Как сделать предмет надеваемым

Два ключа в собственном JSON предмета делают его снаряжением; моду предметов знать о них не нужно. Кожаная броня из Classic RPG Rules:

{
  "Id": "classic/leather_armor",
  "Name": "classic/item/leather_armor/name",
  "ItemType": "TargetUsed",
  "ItemAction": "action/equip",
  "verb": "equipment/verb_equip",
  "Equip": "armor",
  "Traits": [ { "Stat": "def", "Add": 2 }, { "Stat": "hp", "Add": 6 } ]
}
  • Equip — тип снаряжения предмета; он и выбирает слот.
  • Traits — что предмет даёт, пока надет, в формате черт Stats Engine (Add, Percent или Formula).
  • Archetypes (необязательно) — кто может это надеть, например ["classic/mage"] у дубового посоха.
  • ItemType: TargetUsed вместе с ItemAction: action/equip дают предмету кнопку Equip и список целей; verb задаёт надпись на кнопке.

Слоты

Слоты — это сущности вида equip_slot. Каждый перечисляет принимаемые типы снаряжения:

{
  "Kind": "equip_slot",
  "Items": [
    { "Id": "weapon", "Name": "classic/slot/weapon", "Order": 1, "Accepts": ["sword", "staff", "dagger"] },
    { "Id": "body", "Name": "classic/slot/body", "Order": 2, "Accepts": ["armor", "robe"] },
    { "Id": "accessory", "Name": "classic/slot/accessory", "Order": 3, "Accepts": ["charm", "ring"] }
  ]
}

Слот без Accepts принимает предметы, чей Equip равен id самого слота.

Предметы, навсегда повышающие характеристики

\"ItemAction\": \"action/stat_up\" с ключом StatUp — например {"str": 1} — навсегда меняет характеристики члена отряда, на котором использован предмет, как тоник или книга. Предмет расходуется.

В сценариях

action equip.put who=rpg_hero item=classic/wood_sword give=1
action equip.remove who=rpg_hero slot=weapon
when "equipped(rpg_hero, 'classic/wood_sword')" -> :armed
  • equip.put надевает предмет из сумки; с give=1 предмет вместо этого выдаётся и может в сумке отсутствовать. Так RPG Plus выдаёт каждому классу стартовое оружие. slot= выбирает слот, если подходят несколько.
  • equip.remove снимает надетое в слоте — обратно в сумку.
  • equipped(who, 'item') истинно, пока предмет надет.

Надетое сохраняется вместе с игрой.

Если что-то пошло не так

  1. После Equip некого выбирать. В списке целей только члены отряда; в RPG Plus герой вступает в отряд при входе в деревню, после пролога.
  2. Предмет не надевается. Ни один слот не принимает его тип Equip, либо Archetypes не включает класс персонажа.
  3. Лист не меняется. В Traits предмета названы характеристики, которых игра не определяет.