Files

84 lines
5.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.](assets/bag-equip.jpg)
Предмет уходит из сумки и появляется в блоке **Equipment** листа персонажа. До и после:
![Боевая часть листа и блок Equipment. До: Health 42/42, Armour 4, Body пусто. После: Health 48/48 (+10), Armour 6 (+2), Body — Leather armour, DEF +2 HP +6, рядом кнопка Take off.](assets/sheet-before-after.jpg)
Броня выросла с 4 до 6 — это `def` брони +2. Здоровье выросло с 42 до 48: база 38 плюс `hp` брони +6 даёт 44, а 10% бонус воина к здоровью доводит до 48.
- **Take off** на листе возвращает предмет в сумку.
- Если надеть вещь в занятый слот, прежний предмет вернётся в сумку.
- Выбирать можно только членов отряда.
## Как сделать предмет надеваемым
Два ключа в собственном JSON предмета делают его снаряжением; моду предметов знать о них не нужно. Кожаная броня из Classic RPG Rules:
```json
{
"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`. Каждый перечисляет принимаемые типы снаряжения:
```json
{
"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}` — навсегда меняет характеристики члена отряда, на котором использован предмет, как тоник или книга. Предмет расходуется.
## В сценариях
```scenario
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` предмета названы характеристики, которых игра не определяет.