====== Ядро Salet ====== Класс ''Salet''; единственный экземпляр этого класса автоматически доступен как ''window.salet''. ===== Свойства CoffeeScript ===== ==== character ==== Экземпляр класса ''[[ru:api:character|Character]]'', персонаж игры. Все свойства в этом классе, которые могут быть сериализованы (т.е. не функции), попадают в сохранение. ==== game_id ==== **Уникальное** ID игры, произвольная строка. Отвечает за слот сохранения. Вы **должны** переопределить это свойство в своей игре, или вы будете делить сохранения с другими играми (что сломает все игры) ==== game_version ==== Версия игры, произвольная строка. Также отвечает за слот сохранения (каждой версии - отдельный слот). ==== autosave ==== Флаг автосохранения. Если ''true'', то Salet будет сохранять игру при входе в каждую комнату, в которой не выставлено ''canSave = false''. По умолчанию ''true''. ==== autoload ==== Флаг автозагрузки. Если ''true'', то Salet будет автоматически загружать сохранённую игру при загрузке страницы. Если вы выставляете это в ''false'', то предполагается что у вас есть свой интерфейс для загрузки игры, также см. ''loadGame''. ==== verbs ==== 2.0 Список доступных глаголов. Формат: ID - текст, например: ''"examine": "Examine"'' Salet входит в режим глаголов, есть массив ''salet.verbs'' не пуст, а в текущей комнате нет доступных вариантов выбора. ==== rnd ==== Экземпляр класса ''[[ru:api:random|Random]]''. ==== time ==== Время в секундах, которое прошло с момента начала игры. Дробное число. ==== startTime ==== Дата в секундах, когда началась игра. Дробное число, считается как Unix time. ==== current ==== ID текущей комнаты, в которой находится игрок. ==== interactive ==== Флаг, который показывает, в каком режиме находится Salet. Если ''true'', то идёт игра; если ''false'', то идёт загрузка игры (неинтерактивный режим). ==== linkStack ==== Системный объект; стек ссылок, которые ещё не разобраны. ==== progress ==== Системный объект; данные сохранения, которые будут сохранены. Содержит зерно ГСЧ ''seed'', последовательность пройденных ссылок ''sequence'', последовательность посещённых комнат ''path'' и время сохранения ''saveTime''. ==== view ==== Системный объект; экземпляр класса ''[[ru:api:view|SaletView]]'' ==== start ==== ID начальной комнаты, по умолчанию ''start'' ==== rooms ==== Системный объект; хранит все комнаты игры. ==== timers ==== Системное свойство, которое хранит все таймеры игры. ===== Методы CoffeeScript ===== ==== init ==== Функция, которая вызывается при начале игры. Её удобно переопределить в игре, чтобы выставить начальное состояние. (Это также можно делать в обработчиках входа ''enter'' начальной комнаты) ==== enter ==== Функция, которая вызывается каждый раз при входе в какую-либо комнату перед тем, как вызывается обработчик ''enter'' новой комнаты. **Аргумент 1:** ID старой комнаты **Аргумент 2:** ID новой комнаты ==== afterEnter ==== Функция, которая вызывается каждый раз при входе в какую-либо комнату после того, как вход произошёл и текст уже выведен. **Аргумент 1:** ID старой комнаты **Аргумент 2:** ID новой комнаты ==== beforeAction ==== Функция, которая вызывается каждый раз перед выполнением какого-либо действия в комнате. Если она возвращает ''true'', то действие считается поглощённым, и обработчик действия в комнате не вызывается. **Аргумент 1:** ID комнаты **Аргумент 2:** ID действия ==== afterAction ==== Функция, которая вызывается каждый раз после выполнения какого-либо действия в комнате. **Аргумент 1:** ID комнаты **Аргумент 2:** ID действия ==== exit ==== Функция, которая вызывается каждый раз при выходе из какой-либо комнаты перед тем, как вызывается обработчик ''exit'' старой комнаты. **Аргумент 1:** ID старой комнаты **Аргумент 2:** ID новой комнаты ==== getSituationIdChoices ==== Системная функция, которая собирает список комнат по указанному тегу и фильтрует его по размеру. Вызывается при создании автосписков неявного выбора. **Аргумент 1:** тег для фильтра **Аргумент 2:** максимальная длина списка на выходе ==== getCurrentRoom ==== Возвращает комнату, в которой находится игрок. ==== getSaveId ==== Возвращает ID сохранения. ==== goTo ==== Перемещает игрока в другую комнату. Синоним для ''processClick''. **Аргумент:** ID комнаты ==== processClick ==== Системная функция; обработчик одной ссылки. Вызывается как реакция на клик извне. Сохраняет время клика и добавляет шаг в историю (которую можно отматывать и которая используется при загрузке сейвов). **Аргумент 1:** адрес ссылки ==== processLink ==== Системная функция; обработчик ссылок. Следующий шаг после ''processClick''. Добавляет ссылку в стек выполнения, вызывает на каждой ссылке стека ''processOneLink'', мотает экран до нового текста. **Аргумент 1:** адрес ссылки ==== processOneLink ==== Системная функция; обработчик одной ссылки. Ровно выполнение перехода, ничего лишнего. **Аргумент 1:** адрес ссылки ==== goBack ==== Возврат на N комнат назад. Это не отмена, а именно движение назад по истории. ''N = 1'' — это текущая комната. **Аргумент:** количество комнат для отмотки, по умолчанию ''2'' ==== doTransitionTo ==== Системная функция; перемещение между комнатами. **Аргумент 1:** ID новой комнаты **Аргумент 2:** флаг форсированного перемешения (передаётся обработчикам), по умолчанию ''false'' ==== eraseSave ==== Показывает предупреждение "вы точно хотите очистить сохранение?". Если пользователь соглашается, то очищает сохранение. **Аргумент:** флаг форсированной очистки (не показывает предупреждение), по умолчанию ''false'' ==== getRoomsTagged ==== Возвращает массив комнат с указанным тегом. **Аргумент:** тег для поиска ==== saveGame ==== Сохранение игры. ==== loadGame ==== Загрузка игры из данных сохранения. **Аргумент:** данные сохранения ==== getSave ==== Функция, которая возвращает данные сохранения. ==== beginGame ==== СИстемная функция; инициализирует Salet и начинает игру. Выполняет функцию ''init'', загружает игру если найдено сохранение и выставлен флаг ''autoload''. ==== here ==== Синоним для ''getCurrentRoom'' ==== isVisited ==== Возвращает ''true'', если игрок уже посетил указанную комнату. **Аргумент:** ID комнаты ==== addTimer ==== Функция добавляет таймер в игру. Таймер - это текст или функция, которая выполнится через несколько ходов. Ход - это каждый клик мышкой (действие в игре). Таймер может быть повторяемым (выполняется каждый ход номер ''step'') или одноразовым (удаляется после первого срабатывания). **Аргумент 1:** имя таймера. Обязательный. **Аргумент 2:** действие таймера. Обязательный. Может быть строкой или функцией. Возвращаемое значение функции дописывается в главное окно игры. **Аргумент 3:** флаг повторения. По умолчанию ''false''. **Аргумент 4:** количество ходов. По умолчанию ''1''. ==== dropTimer ==== Функция необратимо удаляет указанный таймер. **Аргумент:** имя таймера ==== resetTimer ==== Функция сбрасывает указанный таймер. **Аргумент:** имя таймера ==== checkTimer ==== Системная функция, проверяет и вызывает все установленные таймеры. Вызывается после каждого клика в игре. {{tag>api}}