Nightfall StoriesМеханики
Предметы и ресурсы
Инвентарь, расход, платные выборы и валюта.
Инвентарь — флаг типа set, предмет — элемент
этого набора. Правила и проверки те же, что у любого флага.
@set inventory = 0
@item_get "candle"
@if inventory -> lit
@item_get кладёт, @item_lose убирает, @item_use расходует, @inventory_show открывает список.
@craft собирает предмет из частей.
Предмет как ключ
Предмет открывает дорогу, закрытую иначе:
@set has_key = 0
* choice "Отпереть" @if has_key
-> inside
* choice "Постучать"
-> knock
Опция под условием становится недоступной; показать её серой или спрятать решает приложение. Читатель обычно видит, что дорога есть и что он до неё не дорос.
Расход и цена
@cost делает опцию платной — валютой или ресурсом:
* choice "Заплатить сторожу" @cost 5 candles
-> bribe
* choice "Уйти"
-> away
Цена работает, только если ресурса не хватает на всё. Свечей, которых достаточно на все двери, читатель тратит не думая. Ресурс, которого не хватает ни на что, превращается в стену.
Тупик по ресурсу
Читатель потратил единственную свечу не там, и дальше история не проходится: ни одна доступная опция не ведёт вперёд.
По структуре это может выглядеть исправным — узел с опциями есть, просто все они под условием, которое ложно. Валидатор поймает это как пустой выбор, но только если ситуация достижима, поэтому проверяйте бот-обходом: он проходит все траты и показывает маршруты, на которых ресурса не хватило.
Два способа не допустить: всегда оставлять бесплатную дорогу — медленнее и хуже, но проходимо — или делать ресурс восполнимым.
Валюта мира
@currency — валюта внутри истории: монеты, патроны, доверие. К реальным покупкам она отношения не
имеет и в одной шкале с ними не считается.
Практика
Предметов мало. Пять запоминаемых лучше двадцати, из которых читатель не помнит ни одного.
Название предмета — часть текста. «Свеча Аниты» весит больше, чем «свеча», и стоит того же.
Предмет должен быть виден до того, как понадобится. Дверь, для которой нужен лом, найденный два часа назад, — это удовольствие. Дверь, для которой нужен лом, который был на несуществующей развилке, — это раздражение.
Директивы этой темы
Собрано из реестра движка: каждая директива этих категорий ведёт сюда из справочника.
@craftКрафт: собрать предмет из частей@currencyВнутриигровая валюта (мир, не монетизация §07)@inventory_showОткрыть инвентарь@item_getПолучить предмет в инвентарь@item_loseУбрать предмет из инвентаря@item_useПрименить/израсходовать предмет