Комната Salet
Класс SaletRoom
- это основной класс комнат Salet.
2.0 Также см. класс Контейнер, который наследует Комната.
Свойства CoffeeScript
visited
Количество раз, которое игрок посетил эту комнату. У новых комнат, конечно, равно 0
.
name
ID комнаты. По этому уникальному ID движок может найти эту комнату. Обязательное свойство.
title
Название комнаты. Используется при генерации списка путей ("вы можете пройти в: …") и, возможно, при управлении историей браузера (зависит от браузера). Нужно, если вы используете свойство ways
.
canView
Флаг, который показывает, будет ли комната отображаться в автогенерируемом списке вариантов выбора. По умолчанию true
.
canChoose
Флаг, который показывает, будет ли текст optionText
комнаты преобразовываться в ссылку в автогенерируемом списке вариантов выбора. По умолчанию true
.
priority
Приоритет; используется для сортировки вариантов выбора до того, как они будут отфильтрованы по maxChoices
. Сортировка идёт по убыванию, поэтому комната с наибольшим приоритетом останется в списке.
displayOrder
Порядок; используется для сортировки вариантов выбора после того, как они отфильтрованы по maxChoices
.
canSave
Флаг, который показывает, может ли игрок сохраниться в этой комнате. Если salet.autosave
включён, то этот же флаг определяет, будет ли игра автоматически сохраняться в этой комнате. По умолчанию true
.
ways
Массив ID комнат, в которые можно выйти из этой комнаты. Связи односторонние, т.е. если выйти куда-то из этой комнаты, то вы не обязательно сможете вернуться тем же путём. По этому массиву игра автоматически делает список связанных комнат, который показывается отдельным блоком. Используйте функции link
и bilink
, чтобы управлять связями.
choices
Перечисление тегов или комнат, по которому генерируется автоматический список вариантов выбора. Теги задаются в формате #тег
; Salet уже ищет все комнаты, где в массиве tags
есть тег
. Комнаты задаются по ID без префиксов.
Пример: choices = '#капуста'
maxChoices
Если это свойство задано, то оно ограничивает длину автоматического списка вариантов выбора.
То есть, если maxChoices = 4
, то в автосписке этой комнаты будет не больше четырёх вариантов.
tags
Массив тегов, которые ассоциированы с этой комнатой, см. choices
. Теги перечисляются без дополнительных модификаторов, т.е. не #тег
, а тег
Пример: tags = ['жуть', 'ответ', 'капуста']
optionText
Текст ссылки, которая выводится в автоматическом списке вариантов выбора. Ссылка ведёт на эту комнату. Текст обрабатывается Markdown и может быть любым HTML.
(если функция) Аргумент: имя текущей комнаты
dsc
Описание комнаты. Выводится каждый раз при входе в комнату.
extendSection
Флаг, который показывает, нужно ли продолжать предыдущую секцию при входе в комнату. Если false
, то переход будет незаметным в транскрипте игры. По умолчанию true
.
clear
Флаг, который показывает, нужно ли очищать экран при входе в эту комнату. По умолчанию true
.
writers
Объект, который хранит обработчики ссылок вида _writer_*
, _replacer_*
, _inserter_*
.
Ссылка вида _writer_<id>
вызывает функцию writers.<id>
, вывод которой записывается в конец транскрипта.
Ссылка вида _replacer_<id>
вызывает функцию writers.<id>
, которая заменяют текст транскрипта в блоке #<id>
на свой вывод.
Ссылка вида _inserter_<id>
вызывает функцию writers.<id>
, вывод которых записывается в блок транскрипта #<id>
(не в конце текста).
unitDelimiter
Строка, которая разделяет описания элементов при выводе. По умолчанию - одиночный пробел.
Методы CoffeeScript
canExit
Функция вызывается каждый раз, когда игрок покидает комнату.
Если она возвращает false
, то выход из комнаты считается запрещённым, и игрока тут же возвращают обратно. При этом переход в новую комнату заканчивается и происходит форсированный переход в старую комнату из новой.
По умолчанию возвращает true
. Может быть булевым значением, а не функцией.
Аргумент: ID комнаты, в которую вышел игрок
entering
Системная функция, которая обрабатывает вход в комнату.
Аргумент 1: ID комнаты, из которой вышел игрок
Аргумент 2: флаг форсированного входа; если true
, то canExit
не проверяется. По умолчанию false
act
Системная функция, обработчик всех ссылок в этой комнате.
Аргумент: цель ссылки.
register
Системная функция, регистрирует комнату в списке комнат Salet.
link
bilink
Связывает эту комнату с указанной и указанную с этой, устанавливая двустороннюю связь. См. ways
Аргумент: ID (name
) комнаты.
beforeChoices
Вызывается перед выводом вариантов выбора в указанной комнате.
Возвращённое значение выводится в текст игры в формате Markdown.
afterChoices
Вызывается перед выводом вариантов выбора в указанной комнате.
Возвращённое значение выводится в текст игры в формате Markdown.