6.5 KiB
Items Base — предметы, инвентарь и то, как их применять
Items Base даёт игре предметы и сумку, чтобы их носить. Мод определяет, что такое предмет (имя, картинка, цена, тип и что происходит при использовании), показывает панель Инвентарь, сохраняет то, что несёт игрок, и позволяет сценариям выдавать, забирать и проверять предметы. Торговля, готовка, крафт, экипировка и RPG-карты строятся на нём.
Панель инвентаря
Открывается иконкой сумки на панели инструментов. Щёлкните предмет слева, чтобы справа увидеть его подробности.
- Вкладки сверху фильтруют по типу (Еда, Ресурсы, Рецепты, Задания); поле поиска и список сортировки сужают сетку.
- Подробности показывают имя, метки типа, цену, описание, размер стопки, id и собственные свойства предмета.
- Кнопка действия названа самим предметом: Использовать, Съесть для еды, Применить к цели, Выучить рецепт — или тем глаголом, который предмет задаёт (гриб говорит Съесть из-за своего
verb). - Направляемые предметы спрашивают, на кого их применить: выберите члена отряда или Отмена.
- Выбросить уничтожает стопку после подтверждения; ключевые предметы выбросить нельзя.
- В бою каждое использование или выбрасывание стоит активному персонажу одно очко действия; вне боя — бесплатно.
Если действие невозможно — например, у цели уже полное здоровье, — предмет не тратится, а панель объясняет почему.
Описание предмета
Предметы — это JSON-файлы вида item в папке items/ мода, рядом с ними лежит картинка. Вот гриб с картинок выше (из RPG Demo):
{
"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называет кнопку действия.
Предметы в сценариях
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 с количествами. Этот мод хранит, какие рецепты игрок уже знает; готовка и крафт пользуются ими.
Если что-то пошло не так
- Предмет показывает id вместо имени. Добавьте его ключ
Nameв файлыlocaleмода. - Нет кнопки действия. Предмету нужен тип
UsedилиTargetUsedвItemTypeиItemAction. - Применение ничего не делает, а предмет остаётся. Действие отказало: для лечения цель либо при полном здоровье, либо упала.
item.addничего не добавляет. Идентификатор неизвестен; сверьтеIdв файле предмета.

