Add mod documentation in seven languages

This commit is contained in:
cthangover committed 2026-10-29 09:25:58 +01:00
1 parent c9f1ce4cf1
commit bf52bafd9a
17 files changed
+519 -8

No files matched your search

+73
View File
@@ -0,0 +1,73 @@
# Items Base — предметы, инвентарь и то, как их применять
Items Base даёт игре предметы и сумку, чтобы их носить. Мод определяет, что такое предмет (имя, картинка, цена, тип и что происходит при использовании), показывает панель **Инвентарь**, сохраняет то, что несёт игрок, и позволяет сценариям выдавать, забирать и проверять предметы. Торговля, готовка, крафт, экипировка и RPG-карты строятся на нём.
## Панель инвентаря
Открывается иконкой сумки на панели инструментов. Щёлкните предмет слева, чтобы справа увидеть его подробности.
![Использование лесного гриба в RPG Plus: гриб (×2) выбран в сетке, справа его подробности — метки «Целевое» и «Еда», описание «Восстанавливает 5 здоровья», действие action/heal со свойством heal 5, а после «Съесть» — список целей, где Герой с 10/24 здоровья.](assets/use-mushroom.jpg)
- **Вкладки** сверху фильтруют по типу (Еда, Ресурсы, Рецепты, Задания); поле поиска и список сортировки сужают сетку.
- **Подробности** показывают имя, метки типа, цену, описание, размер стопки, id и собственные свойства предмета.
- **Кнопка действия** названа самим предметом: **Использовать**, **Съесть** для еды, **Применить к цели**, **Выучить рецепт** — или тем глаголом, который предмет задаёт (гриб говорит **Съесть** из-за своего `verb`).
- **Направляемые предметы** спрашивают, на кого их применить: выберите члена отряда или **Отмена**.
- **Выбросить** уничтожает стопку после подтверждения; ключевые предметы выбросить нельзя.
- В бою каждое использование или выбрасывание стоит активному персонажу одно очко действия; вне боя — бесплатно.
![После выбора Героя: стопка уменьшилась до ×1, а панель сообщает «Применено: Лесной гриб → Герой».](assets/after-use.jpg)
Если действие невозможно — например, у цели уже полное здоровье, — предмет не тратится, а панель объясняет почему.
## Описание предмета
Предметы — это JSON-файлы вида `item` в папке `items/` мода, рядом с ними лежит картинка. Вот гриб с картинок выше (из RPG Demo):
```json
{
"Kind": "item",
"Items": [
{
"Id": "rpg_demo/mushroom",
"Name": "rpg_demo/item/mushroom/name",
"Description": "rpg_demo/item/mushroom/desc",
"Cost": 2,
"Sprite": "rpg_demo/forest_mushroom",
"ItemType": "Food,TargetUsed",
"ItemAction": "action/heal",
"heal": 5,
"verb": "ui/inventory/verb_eat"
}
]
}
```
- `Name`, `Description` — ключи перевода, показываются в подробностях.
- `Cost` — цена; её используют магазины.
- `Sprite` — картинка `items/rpg_demo/forest_mushroom.png`.
- `ItemType` — один или несколько типов через запятую: `Food`, `Resource`, `Quest`, `Recipe`, `Used` (применяется без цели), `TargetUsed` (применяется к члену отряда), `CantDrop`.
- `ItemAction` — что делает применение. `action/heal` восстанавливает здоровье на значение `heal` предмета — не выше максимума и никогда не поднимает упавшего. Другие моды добавляют свои действия, например `action/equip` экипировки.
- Любой другой ключ (`heal`, `verb`) — свойство предмета: действия его читают, а подробности его показывают. `verb` называет кнопку действия.
## Предметы в сценариях
```scenario
action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
```
- `item.add` кладёт предметы в сумку (сундук, подарок, подбор на карте); `count` по умолчанию равен 1.
- `item('id')` сравнивает, сколько предметов у игрока; работает в `when`, в условиях ответов, в заданиях и событиях карты.
- `item.remove` забирает предметы; если их меньше, отказывается — поэтому сначала проверьте через `item('id')`.
## Рецепты
Рецепты (вид `recipe`) перечисляют предметы `Input` и `Output` с количествами. Этот мод хранит, какие рецепты игрок уже знает; готовка и крафт пользуются ими.
## Если что-то пошло не так
1. **Предмет показывает id вместо имени.** Добавьте его ключ `Name` в файлы `locale` мода.
2. **Нет кнопки действия.** Предмету нужен тип `Used` или `TargetUsed` в `ItemType` и `ItemAction`.
3. **Применение ничего не делает, а предмет остаётся.** Действие отказало: для лечения цель либо при полном здоровье, либо упала.
4. **`item.add` ничего не добавляет.** Идентификатор неизвестен; сверьте `Id` в файле предмета.