From 72e497b610147ad7b946771ebfbc4b318109e35e Mon Sep 17 00:00:00 2001 From: Alexander Yakovlev Date: Sat, 1 Aug 2020 00:56:28 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D1=80=D0=BC=D0=B0=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=20=D0=BE=D1=84=D0=BE=D1=80=D0=BC=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D0=BF=D0=B0=D1=80=D1=81=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 13 + .gitignore | 4 + index.html | 21 + protoparser.js | 841 ++++++++++++++++++++++++++++++++ resources/images/background.jpg | Bin 0 -> 106642 bytes story.js | 34 ++ style.css | 54 ++ 7 files changed, 967 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 index.html create mode 100644 protoparser.js create mode 100644 resources/images/background.jpg create mode 100644 story.js create mode 100644 style.css diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b8d36d8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[Makefile] +indent_style = tab +indent_size = 4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..43250e6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +game.z5 +game.ulx +interpreter/main.css +interpreter/main.css.map diff --git a/index.html b/index.html new file mode 100644 index 0000000..dfd1b62 --- /dev/null +++ b/index.html @@ -0,0 +1,21 @@ + + + + + Protoparser test + + + + +
+
+
+
+ +
+
+
+ + + + diff --git a/protoparser.js b/protoparser.js new file mode 100644 index 0000000..43bda18 --- /dev/null +++ b/protoparser.js @@ -0,0 +1,841 @@ +// protoparser.js, copyright (c) 2018, 2019 Alexey Galkin , licensed under the MIT license. +// version 7 + +// Системные значения по-умолчанию + +// окончания для краткой формы причастий +const PARTICIPLE_SUFFIX = {m: '', f: 'а', n: 'о', p: 'ы'} + +// окончания существительных по родам +const GEND_SUFFIX = { + m: /[^аьяоеыи]/, + f: /[аья]/, + n: /[ое]/, + p: /[ыи]/ +} + +// посещенные локации и находящиеся в них объекты, которые были осмотрены +var visitedLocs = {} + +// параметры команд +var gameCommands = { + examine: ['examine', ['осмотреться', 'осмотреть', 'изучить', 'смотреть', 'см', 'исследовать', 'рассмотреть', 'о', 'осм'], -1], + north: ['walk', ['север', 'с'], 0, 'n'], + south: ['walk', ['юг', 'ю'], 0, 's'], + west: ['walk', ['запад', 'з'], 0, 'w'], + east: ['walk', ['восток', 'в'], 0, 'e'], + up: ['walk', ['вверх', 'вв', 'наверх', 'подняться'], 0, 'u'], + down: ['walk', ['вниз', 'вн', 'спуститься', 'опуститься'], 0, 'd'], + northEast: ['walk', ['северо-восток', 'с-в', 'св'], 0, 'ne'], + northWest: ['walk', ['северо-запад', 'с-з', 'сз'], 0, 'nw'], + southEast: ['walk', ['юго-восток', 'ю-в', 'юв'], 0, 'se'], + southWest: ['walk', ['юго-запад', 'ю-з', 'юз'], 0,'sw'], + inventory: ['inventory', ['инвентарь', 'инв', 'и'], 0], + take: ['take', ['взять', 'поднять', 'забрать', 'подобрать'], 1], + drop: ['drop', ['бросить', 'выбросить', 'положить', 'оставить', 'выкинуть'], 1], + wait: ['wait', ['ждать', 'подождать'], 0], + read: ['read', ['читать', 'прочитать'], 1], + eat: ['eat', ['съесть', 'есть', 'кушать', 'скушать'], 1], + wear: ['wear', ['надеть'], 1], + disrobe: ['disrobe', ['снять'], 1], + open: ['open', ['открыть'], 1], + close: ['close', ['закрыть'], 1], + unlock: ['unlock', ['отпереть'], 1], + lock: ['lock', ['запереть'], 1], + jump: ['jump', ['прыгать', 'прыгнуть', 'подпрыгнуть'], 0], + attack: ['attack', ['ударить', 'пнуть', 'стукнуть', 'атаковать'], 1], + sleep: ['sleep', ['спать', 'поспать', 'заснуть'], 0], + say: ['say', ['сказать', 'произнести', 'ответить', 'спросить', 'говорить'], 2, 'noun'], + listen: ['listen', ['слушать', 'подслушать', 'послушать'], -1], + smell: ['smell', ['нюхать', 'понюхать'], -1], + sing: ['sing', ['петь', 'спеть', 'запеть'], 0], + show: ['show', ['показать', 'продемонстрировать', 'демонстрировать'], 1], + buy: ['buy', ['купить', 'приобрести'], 1], + sell: ['sell', ['продать', 'сбыть'], 1], + screw: ['screw', ['завинтить', 'закрутить', 'вкрутить', 'ввинтить', 'прикрутить'], 1], + unscrew: ['unscrew', ['открутить', 'выкрутить', 'вывинтить'], 1], + think: ['think', ['думать', 'подумать', 'размышлять', 'задуматься'], 0], + wake: ['wake', ['проснуться', 'пробудиться'], 0], + jumpOver: ['jumpOver', ['перепрыгнуть'], 1], + kiss: ['kiss', ['поцеловать', 'целовать', 'расцеловать'], 1], + rub: ['rub', ['тереть', 'протереть', 'натереть', 'начистить', 'потереть'], 1], + cut: ['cut', ['резать', 'разрезать', 'перерезать', 'отрезать', 'срезать', 'обрезать', 'пилить', 'отпилить', 'перепилить', 'рубить', 'срубить', 'отрубить', 'отсечь'], 1], + tie: ['tie', ['привязать', 'завязать', 'связать'], 1], + untie: ['untie', ['развязать', 'отвязать'], 1], + burn: ['burn', ['зажечь', 'поджечь', 'сжечь', 'жечь'], 1], + bow: ['bow', ['поклониться', 'кланяться'], -1], + clearScreen: ['clearScreen', ['очистка'], 0, 'sysCom'], + score: ['score', ['счет', 'счёт', 'сч', 'очки', 'ход', 'ходы'], 0, 'sysCom'], + restart: ['restart', ['заново', 'сначала'], 0, 'sysCom'], + about: ['about', ['версия'], 0, 'sysCom'], + saveGame: ['saveGame', ['сохранить'], 2, 'sysCom'], + loadGame: ['loadGame', ['загрузить', 'восстановить'], 2, 'sysCom'], + advice: ['advice', ['совет', 'подсказка', 'спойлер'], 0, 'sysCom'], + help: ['help', ['помощь', 'справка', '?'], 0, 'sysCom'], + history: ['history', ['история'], 0, 'sysCom'], + repeat: ['repeat', ['п', 'повтор', 'повторить'], 0, 'sysCom'], + log: ['log', ['лог', 'транскрипт'], 0, 'sysCom'], + places: ['places', ['места', 'локации', 'комнаты'], 0, 'sysCom'] +} + +var defSysVal = { + longCommandMsg: 'Команда должна состоять не более чем из двух слов.', + emptyCommandMsg: 'Простите?', + unknownCommandMsg: 'Команда непонятна.', + noScoreMsg: 'В этой игре не ведется счет.', + overburdenMsg: 'Вы несете слишком много вещей.', + confirmRestartMsg: 'Вы действительно хотите начать игру заново?', + cancelRestartMsg: 'Команда отменена.', + savedMsg: 'Игра сохранена.', + notSavedMsg: 'Ошибка сохранения.', + loadedMsg: 'Игра загружена.', + notLoadedMsg: 'Ошибка загрузки.', + noThingMsg: 'Здесь нет этого предмета.', + winMsg: '

*** Вы победили! ***

', + lostMsg: '

*** Вы проиграли! ***

', + saveForbiddenMsg: 'В этой игре сохранение запрещено.', + loadForbiddenMsg: 'В этой игре восстановление запрещено.', + noWayMsg: 'В этом направлении нельзя пойти.', + placedHereMsg: ' Здесь есть ', + playerHasNothingMsg: 'У вас с собой ничего нет.', + playerHasMsg: 'У вас с собой: ', + commandHistoryIsEmptyMsg: 'История команд пуста.', + commandHistoryOffMsg: 'В этой игре не ведется история команд.', + advice: 'В этой игре не предусмотрено подсказок.', + help: 'Для ввода команд используйте шаблон ГЛАГОЛ [СУЩЕСТВИТЕЛЬНОЕ]. Регистр и лишние пробелы не учитываются. Команда должна состоять не более чем из двух слов. Полный список стандартных команд, поддерживаемых протопарсером, указан в Руководстве автора, в Приложении 1.

Системные команды:
', + about: 'protoparser.js
Версия: 6(145)
protoparser.js is copyright (c) 2018 Alexey Galkin, released under the MIT license.
Актуальная версия protoparser.js, а также текст лицензии доступны на странице проекта https://johnbrown90210.gitlab.com/protoparser.js.', + think: 'Вы все время думаете.', + wake: 'Это не сон.', + kiss: 'Вы сдерживаете свой порыв.', + noVisitedMsg: 'Вы пока не посетили ни одной локации.', + wait: 'Проходит немного времени.', + jump: 'Вы подпрыгиваете.', + sleep: 'Сейчас не время для сна.', + listen: 'Вы не слышите ничего необычного.', + smell: 'Вы не чувствуете ничего необычного.', + sing: 'Вы запеваете подходящую случаю песню.', + points: 0, + turn: 0, + cursor: '|', + commandTemplate: '', + prompt: '> ', + comment: '.', + fireCursorInterval: 500, + shouldBlinkCursor: true, + commandHistoryLength: 10, + commandHistoryIndex: -1, + logRecord: '', + num7Key: 'северо-запад', + num8Key: 'север', + num9Key: 'северо-восток', + num4Key: 'запад', + num5Key: 'осмотреться', + num6Key: 'восток', + num1Key: 'юго-запад', + num2Key: 'юг', + num3Key: 'юго-восток', + num0Key: 'вниз', + numDecimalPointKey: 'вверх', + numDivideKey: 'инвентарь', + numMultiplyKey: 'счет', + numAddKey: 'повторить', + altSlashKey: 'помощь', + altVKey: 'версия', + altHKey: 'история', + altAKey: 'совет', + altJKey: 'лог', + altMKey: 'локации', + altCKey: 'очистка' +} + +// Если автор не переопределил системные сообщения определяем их +for (property in defSysVal) + if (!game.hasOwnProperty(property)) game[property] = defSysVal[property] + +class Terminal { + print(text) { + document.getElementById('content').innerHTML += '

'+text+'

'; + } +} +var t = new Terminal(); + +// Старт игры +init(); + +// Функция ввода/вывода +function inp() { + document.getElementById("form").addEventListener("submit", function(event) { + event.preventDefault(); + if (game.stopped) return; + input = document.getElementById("input").value; + document.getElementById('content').innerHTML += '

> '+input+'

'; + parser(input); + return false; + }); +} + +// Парсер +// Определяет функцию, которая обработает команду пользователя, и возвращает результат, полученный от этой функции + +function parser(input) { + // переводим буквы в прописные и обрезаем game.prompt + input = input.toLowerCase().slice(game.prompt.length); + // удаляем боковые пробелы и делим строку по пробелу на глагол и существительное + var words = input.trim().split(/\s+/); + // если введен комментарий — прекращаем обработку + if (words[0] == game.comment) return; + // введено больше 2 слов + if (words.length > 2) return t.print(game.longCommandMsg) + // пользователь ввел пустую строку + if (words == '') return t.print(game.emptyCommandMsg) + var verb = words[0]; + var noun = words[1]; + // ищем команду по введенному глаголу и вызываем соответствующую функцию + for (var com in gameCommands) + if (gameCommands[com][1].indexOf(verb) != -1) return choiceHandler(gameCommands[com][0], gameCommands[com][2], noun, verb, gameCommands[com][3] == 'noun' ? noun : gameCommands[com][3] == 'verb' ? verb: gameCommands[com][3]) + // глагол не найден + t.print(game.unknownCommandMsg) +} + +// Вывод +function output(input) { + parser(input); +} + +// СТАНДАРТНЫЕ ГЛАГОЛЫ + +// Осмотреть +function examine(obj) { + var roomDesc; + // введена команда <осмотреть> + if (obj === undefined) { + // массив предметов в комнате + var objInRoom = getObjByKV('loc', player.loc); + // массив предметов со свойством sceneDesc и без свойства hidden: true + var objWithSceneDesc = objInRoom.filter(function(obj) { + return obj.sceneDesc && !obj.hidden + }) + // массив предметов (obj не связана с examine(obj)) без свойства sceneDesc и без hidden: true + var nonHiddenObj = objInRoom.filter(function(obj) { + return !obj.hidden && !obj.sceneDesc + }) + // строка, содержащая значения свойства sceneDesc объектов из массива objWithSceneDesc + var objDesc = '' + // добавляем значения свойства sceneDesc объектов objWithSceneDesc к objDesc + for (var i in objWithSceneDesc) + objDesc += ' ' + objWithSceneDesc[i].sceneDesc + // строка содержащая game.placedHereMsg + названия объектов + var objNames = '

' + game.placedHereMsg; + // добавляем названия объектов к objNames + for (var i in nonHiddenObj) { + objNames += nonHiddenObj[i].nam[0]; + // добавляем знаки препинания + if (i == nonHiddenObj.length - 2) objNames += ' и ' + else if (i < nonHiddenObj.length - 1) objNames += ', ' + else objNames += '.' + } + // если все предметы в комнате со свойством hidden: true "обнуляем" objNames + if (nonHiddenObj.length == 0) objNames = '' + // Выводим полное описание локации + t.print(window[player.loc].desc + objDesc + objNames) + + // введена команда <осмотреть [предмет]> + } else { + // если у предмета нет examined устанавливаем его равным 1, иначе увеличиваем на 1 + (!obj.examined) ? obj.examined = 1 : obj.examined++ + t.print(obj.desc) + } +} + +// Инвентарь +function inventory() { + var inv = getObjByKV('loc', 'player'); + // если inv содержит объект со свойством hiddenPossession == true, исключаем его из него + inv = inv.filter(function(item) {return !item.hiddenPossession}) + + if (inv.length == 0) { + t.print(game.playerHasNothingMsg) + } else { + var invObj = game.playerHasMsg; + for (var i = 0; i < inv.length; i++) { + invObj += inv[i].nam[0]; + // если предмет из инвентаря надет добавляем эту информацию + if (inv[i].worn) invObj += ' (надет' + PARTICIPLE_SUFFIX[inv[i].gend] + ')'; + // добавляем знаки препинания + if (i == inv.length - 2) invObj += ' и ' + else if (i < inv. length - 1) invObj += ', ' + else invObj += '.' + } + t.print(invObj) + } +} + +// Взять +function take(obj) { + // объект можно взять + if (obj.takeable) { + // объекта нет в инвентаре + if (obj.loc.indexOf('player') == -1) { + //если move == true + move(obj, 'player') && t.print('Вы забираете ' + obj.nam[3] + '.') + // объект уже в инвентаре + } else { + t.print(capitalize(obj.nam[0]) + ' уже у вас.') + // takeable объекта не равно true + }} else { + t.print('Вы не можете взять ' + obj.nam[3] + '.') + } +} + +// Бросить +function drop(obj) { + // объекта нет в локации + if (obj.loc.indexOf(player.loc) == -1) { + // объект у игрока + if (obj.loc == 'player') { + // если объект надет снимаем его + if (obj.worn) disrobe(obj) + move(obj,player.loc); + t.print('Вы оставляете здесь ' + obj.nam[3] + '.') + }} else { + t.print(capitalize(obj.nam[0]) + ' уже здесь.') + } +} + +// Движение +// параметр obj нужен, чтобы получить второй аргумент direction +function walk(obj, direction) { + // проверяем, есть ли у текущей локации свойство-выход direction + if (direction in window[player.loc]) { + // если между комнатами есть дверь обрабатываем + // шаблон pattern: в строке (loc) есть 'текущая локация и локация назначения' + var pattern = new RegExp('(?=.*' + player.loc + ')' + '(?=.*' + window[player.loc][direction] + ')') + // из массива объектов со свойством door: true получаем отфильтрованный массив door в котором значение loc равно pattern + var door = getObjByKV('door', true).filter(function(o) { + if (pattern.test(o.loc)) return true + }) + // если на пути есть дверь и она закрыта выводим сообщение + if (door[0] && door[0].closed) return t.print('Путь прегражден ' + door[0].nam[4] + '.') + // путь свободен + move(player, window[player.loc][direction]); + } else { + t.print(game.noWayMsg) + } +} + +// Читать +function read(obj) { + // у объекта есть свойство text + if (obj.text) t.print(obj.text) + else t.print('На ' + obj.nam[5] + ' ничего не написано.') +} + +// Съесть +function eat(obj) { + // если свойство edible == true + if (obj.edible) { + remove(obj); + t.print('Вы съедаете ' + obj.nam[3] + '.') + // свойство edible != true + } else t.print(capitalize(obj.nam[3]) + ' нельзя употребить в пищу.') +} + +// Надеть +function wear(obj) { + // объект можно надеть + if (obj.hasOwnProperty('worn')) { + // объект не надет + if (!obj.worn) { + // если объект не в инвентаре, забираем его + if (obj.loc != 'player') take(obj) + // если объект в инвентаре одеваем его + if (obj.loc == 'player') { + obj.worn = true; + t.print('Вы надеваете ' + obj.nam[3] + '.') + } + //объект уже надет + } else t.print(capitalize(obj.nam[0]) + ' уже надет' + PARTICIPLE_SUFFIX[obj.gend] + '.') + // объект нельзя надеть + } else t.print(capitalize(obj.nam[3]) + ' нельзя надеть.') +} + +// Снять +function disrobe(obj) { + // если объект надет + if (obj.worn) { + obj.worn = false; + obj.loc = 'player'; + t.print('Вы снимаете ' + obj.nam[3] + '.') + // если объект не надет + } else t.print('На вас нет ' + obj.nam[1] +'.') +} + +// Открыть +function open(obj) { + // если есть свойство closed + if (obj.hasOwnProperty('closed')) { + // если объект закрыт + if (obj.closed) { + // если объект не заперт + if (!obj.locked) { + obj.closed = false; + t.print('Вы открываете ' + obj.nam[3] + '.') + } + // если объект заперт + else t.print(capitalize(obj.nam[0]) + ' заперт' + PARTICIPLE_SUFFIX[obj.gend] + '.') + // если объект открыт + } else t.print(capitalize(obj.nam[0]) + ' уже открыт' + PARTICIPLE_SUFFIX[obj.gend] + '.') + // если нет свойства closed + } else t.print(capitalize(obj.nam[3]) + ' невозможно открыть.') +} + +// Закрыть +function close(obj) { + // если есть свойство closed + if (obj.hasOwnProperty('closed')) { + // если объект открыт + if (!obj.closed) { + obj.closed = true; + t.print('Вы закрываете ' + obj.nam[3] + '.') + // если объект закрыт + } else t.print(capitalize(obj.nam[0]) + ' уже закрыт' + PARTICIPLE_SUFFIX[obj.gend] + '.') + // если нет свойства closed + } else t.print(capitalize(obj.nam[3]) + ' невозможно закрыть.') +} + +// Отпереть +function unlock(obj) { + // объект не заперается + if (!obj.hasOwnProperty('locked')) t.print(capitalize(obj.nam[3]) + ' невозможно отпереть.') + // объект может запираться + // объект не закрыт + else if (!obj.closed) t.print(capitalize(obj.nam[0]) + ' уже открыт' + PARTICIPLE_SUFFIX[obj.gend] + '.') + // объект закрыт + else { + // объект заперт + if (obj.locked) { + obj.locked = false; + t.print('Вы отпираете ' + obj.nam[3] + '.') + // объект не заперт + } else + t.print(capitalize(obj.nam[0]) + ' не заперт' + PARTICIPLE_SUFFIX[obj.gend] + '.') + } +} + +// Запереть +function lock(obj) { + // объект не заперается + if (!obj.hasOwnProperty('locked')) t.print(capitalize(obj.nam[3]) + ' невозможно запереть.') + // объект может запираться + // объект не закрыт + else if (!obj.closed) t.print(capitalize(obj.nam[0]) + ' не закрыт' + PARTICIPLE_SUFFIX[obj.gend] + '.') + // объект закрыт + else { + // объект не заперт + if (!obj.locked) { + obj.locked = true; + t.print('Вы запираете ' + obj.nam[3] + '.') + // объект заперт + } else + t.print(capitalize(obj.nam[0]) + ' уже заперт' + PARTICIPLE_SUFFIX[obj.gend] + '.') + } +} + +// Атаковать +function attack(obj, option, verb) { + t.print('Не стоит пытаться ' + verb + ' ' + obj.nam[3] + '.') +} + +// Сказать +function say(obj, citation) { + t.print('Вы говорите: \«' + capitalize(citation) + '\».') +} + +// Показать +function show(obj) { + if (obj.loc == 'player') + t.print('Вы показываете ' + obj.nam[3] + '.') + else t.print('Вы показываете на ' + obj.nam[3] + '.') +} + +// Купить +function buy(obj, option, verb) { + t.print('Вы не можете ' + verb + ' ' + obj.nam[3] + '.') +} + +// Продать +function sell(obj, option, verb) { + t.print('Вы не можете ' + verb + ' ' + obj.nam[3] + '.') +} + +// Закрутить +function screw(obj, option, verb) { + t.print('Не стоит пытаться ' + verb + ' ' + obj.nam[3] + '.') +} + +// Открутить +function unscrew(obj) { + t.print(capitalize(obj.nam[0]) + ' ни к чему не прикручен' + PARTICIPLE_SUFFIX[obj.gend] + '.') +} + +// Перепрыгнуть +function jumpOver(obj, option, verb) { + t.print('Не стоит пытаться ' + verb + ' ' + obj.nam[3] + '.') +} + +// Тереть +function rub(obj, option, verb) { + t.print('Не стоит пытаться ' + verb + ' ' + obj.nam[3] + '.') +} + +// Отрезать +function cut(obj, option, verb) { + t.print('Не стоит пытаться ' + verb + ' ' + obj.nam[3] + '.') +} + +// Привязать +function tie(obj, option, verb) { + t.print('Не стоит пытаться ' + verb + ' ' + obj.nam[3] + '.') +} + +// Развязать +function untie(obj) { + t.print(capitalize(obj.nam[0]) + ' ни к чему не привязан' + PARTICIPLE_SUFFIX[obj.gend] + '.') +} + +// Зажечь +function burn(obj, option, verb) { + t.print('Не стоит пытаться ' + verb + ' ' + obj.nam[3] + '.') +} + +// Поклониться +function bow(obj) { + t.print('Вы кланяетесь' + (obj ? ' ' + obj.nam[2] : '') + '.') +} + +// СЛУЖЕБНЫЕ ГЛАГОЛЫ + +// Очистить +function clearScreen() { + const content = document.getElementById('content'); + if (content) { + document.getElementById('content').innerHTML = ''; + } +} + +// Счет +function score() { + if (game.noScore) t.print(game.noScoreMsg) + else if (!game.maxScore) t.print('К ' + game.turn + ' ходу ваш счет равен ' + game.points + '.') + else t.print('К ' + game.turn + ' ходу ваш счет равен ' + game.points + ' из ' + game.maxScore + '.') +} + +// Перемещение объекта +function move(obj, loc) { + // перемещение предмета в инвентарь + if (loc == 'player' && obj.spec == 'thing') { + // число вещей в инвентаре максимально + if (getObjByKV('loc', 'player').length == player.maxCarried) { + t.print(game.overburdenMsg); + return false + } + } + obj.loc = loc + obj.moved ? obj.moved++ : obj.moved = 1 + // перемещение игрока в локацию + if (obj === player && window[loc].spec == 'room') { + // если у комнаты нет visits устанавливаем его равным 1, иначе увеличиваем на 1 + (!window[loc].visits) ? window[loc].visits = 1 : window[loc].visits++ + window[loc].head && t.print('
' + window[loc].head + '') + examine() + } + return true +} + +// Заново +function restart() { + game.stopped = true + t.confirm(game.confirmRestartMsg, function(confirmed) { + if (confirmed) { + // если объект localStorage не доступен перегружаем станицу + if (!window.localStorage) location.replace('index.html') + // если localStorage доступен загружаем initialState + if (load('initialState')) init() + // если нет - перезагружаем страницу + else location.replace('index.html') + } else { + game.stopped = false + t.print(game.cancelRestartMsg) + inp() + } + }) +} + +// Сохранить игру +function saveGame(obj, optional, verb, fileName) { + if (!game.noSaveLoad) save(fileName) ? t.print(game.savedMsg) : t.print(game.notSavedMsg) + else t.print(game.saveForbiddenMsg) +} + +// Загрузить игру +function loadGame(obj, optional, verb, fileName) { + if (!game.noSaveLoad) { + if (load(fileName)) { + t.print(game.loadedMsg) + window[player.loc].head && t.print('
'+window[player.loc].head+'') + examine() + } else + t.print(game.notLoadedMsg) + } else + t.print(game.loadForbiddenMsg) +} + +// Повторить +function repeat() { + if (game.commandHistory[0]) + output(game.prompt + game.commandHistory[0]) + else history() +} + +// История +function history() { + if (game.commandHistory[0]) { + for (var i = game.commandHistory.length - 1; i > -1; i--) + p(game.commandHistory.length - i + '. ' + game.commandHistory[i]) + } else { + game.commandHistoryLength == 0 ? p(game.commandHistoryOffMsg) : p(game.commandHistoryIsEmptyMsg) + } +} + +// Лог +function log() { + var logWindow = window.document.open('', 'log', 'width=500,height=800') // первый параметр оставляем пустым, чтобы окно *с логом* отображалось при повторном вызове команды, когда старое окно с логом открыто + logWindow.document.body.innerHTML = game.logRecord + logWindow.document.title = 'Лог игры' + (game.title ? ' «' + game.title + '»' : '') +} + +// Места +function places() { + // есть ли посещенные локации (локации с head в объекте visitedLocs) + if (Object.keys(visitedLocs) != '') { + t.print('Вы посетили:') + var n = 0 + for (var loc in visitedLocs) { + t.print(++n + '. ' + window[loc].head) + if (visitedLocs[loc] != '') t.print('Вы осмотрели: ' + visitedLocs[loc].join(', ') + '.') + } + } else t.print(game.noVisitedMsg) +} + +// УТИЛИТЫ + +// Удаляем объект +//Присваиваем переменной которой изначально был присвоен объект (в файле story.js) значение undefined. Ссылка на объект остается в аргументе obj, поэтому он все еще доступен в обрабатывающей функции +function remove(obj) { + for (o in window) { + if (window[o] && window[o].nam === obj.nam) { + window[o] = undefined; + break + } + } +} + +// Изменение счета +function reward(scores) { + if (!game.noScore) { + if (typeof scores == 'number') { + scores > 0 && t.print('Ваш счет увеличился на ' + scores + '.') + scores < 0 && t.print('Ваш счет уменьшился на ' + Math.abs(scores) + '.') + game.points += scores + score() + } + } +} + +// Сохранение +function save(fileName) { + if (window.localStorage) { + for (var objName in window) { + if (window[objName] && window[objName].spec) { + localStorage.setItem(objName + '___' + fileName + '___' + game.title, JSON.stringify(window[objName])) + } + } + return true + } +} + +// Загрузка +function load(fileName) { + // проверяем наличие доступа к localStorage + if (window.localStorage) { + var n = 0; + // перебираем объекты в localStorage + for (var locObj in localStorage) { + // если в localStorage есть искомый ключ + if (locObj.indexOf('___' + fileName + '___' + game.title) !== -1) { + // преобразуем его в объект + var obj = JSON.parse(localStorage.getItem(locObj)) + // перебираем свойства нашего объекта + for (localProperty in obj) { + // добавляем существующему объекту в window свойства из сохраненного объекта (obj). Если бы мы заменили существующий объект на сохраненный, то потеряли бы методы, поскольку они не сериализуются => не попадают в localStorage + window[locObj.slice(0, locObj.indexOf('___'))][localProperty] = obj[localProperty] + } + n++ + } + } + // в localStorage найдены искомые объекты + if (n != 0) return true // игра загружена + } +} + +// Окончание игры +function end(mode) { + mode == 1 && t.print(game.winMsg) + mode == 0 && t.print(game.lostMsg) + !game.noScore && score() + game.stopped = true +} + +// Функция вывода текста +function p(message) { + t.print(message) +} + +// Перевод первого символа в строке в верхний регистр +function capitalize(str) { + return str[0].toUpperCase() + str.substring(1) +} + +// Определение рода объекта +function gendDef() { + if (!this.gend) { + var lastChar = this.nam[0].slice(-1) + for (var prop in GEND_SUFFIX) { + if (GEND_SUFFIX[prop].test(lastChar)) + { + this.gend = prop + break + } + } + } +} + +// Получаем массив объектов по свойству и значению +function getObjByKV(key,value) { + var objArray = []; + for (var objName in window) { + // для элементов массива (например, свойства nam) делаем нечувствительный к регистру поиск. Для случаев, если элемент(ы) начинаются с заглавных букв, а пользователь вводит строчные + if (window[objName] && (( window[objName][key] instanceof Array && window[objName][key].join(' ').match(new RegExp(value, 'i'))) || (window[objName][key] == value))) objArray.push(window[objName]) + } + return objArray +} + +// Можно ли взаимодействовать с предметом +function isNounValid(noun) { + // (если предмет введен пользователем и есть в игре) и (либо в текущей локации, либо в инвентаре), то возвращаем true + if ((noun !== undefined && getObjByKV('nam', noun).length > 0) && (getObjByKV('nam', noun)[0].loc.indexOf(player.loc) != -1 || getObjByKV('nam', noun)[0].loc.indexOf('player') != -1)) return true +} + +/* Выбираем обработчик команды: глобальный, локальный или стандартный +Параметры: +* com - имя функции- обработчика команды +* comMode - 'режим команды': -1 - существительное (объект) опционально, 0 - только глагол, 1 - существительное (объект) обязательно, 2 существительное (объект или произвольная строка) обязательно +* noun - введенное существительное +* verb введенный глагол +* optional передает доп. параметр (направление, в команде walk) +*/ +function choiceHandler(com, comMode, noun, verb, optional) { + // Существительное не введено + if (comMode > 0 && noun == undefined) return t.print('Что вы хотите ' + verb + '?') + // Ожидается только глагол, но дополнительно введено существительное + if (comMode == 0 && noun != undefined) return t.print('Понятна только команда \«' + verb + '\».') + + var handled = false // по-умолчанию, команда не обработана + + // если noun доступен присваиваем его obj для передачи в качестве аргумента функции-обработчику + if (isNounValid(noun)) var obj = getObjByKV('nam', noun)[0]; + + // если предмета нет или он доступен или comMode == 2 + if (noun === undefined || isNounValid(noun) || comMode == 2) { + // увеличиваем счетчик ходов, если не была вызвана системная команда + optional != 'sysCom' && game.turn++ + // добавляем команду в историю команд (кроме команды 'повторить', 'история' или если команда уже в истории команд) + (game.commandHistory.indexOf(noun ? verb + ' ' + noun : verb) == -1 && com != 'repeat' && com != 'history') && game.commandHistory.unshift(noun ? verb + ' ' + noun : verb) + if (game.commandHistory.length > game.commandHistoryLength) game.commandHistory.pop() + // если у локации есть свойство head добавляем локацию и осмотренные в ней предметы в объект visitedLocs + if (window[player.loc].head) visitedLocs[player.loc] = getObjByKV('spec', 'thing').filter(function(thing) {return thing.examined && thing.loc.indexOf(player.loc) != -1}).map(function(obj){return obj.nam[3]}) + // если метод beforeAll присутствует - вызываем его + if (typeof events.beforeAll === 'function') handled = events.beforeAll(com, obj, optional, verb, noun) + // команда не обработана + if (!handled) { + // если comMode != 2 и команда состоит из глагола и существительного и есть локальный обработчик в предмете + if (comMode != 2 && noun !== undefined && com in getObjByKV('nam', noun)[0]) handled = getObjByKV('nam', noun)[0][com](obj, optional, verb, noun); + // если есть обработчик в локации + else if (com in window[player.loc]) handled = window[player.loc][com](obj, optional, verb, noun) + // если есть объект globalVerbs и глобальный обработчик в нем, выполняем его + else if (window.globalVerbs && com in globalVerbs) handled = globalVerbs[com](obj, optional, verb, noun) + // если пользовательских обработчиков нет или команда не обработана до конца (!handled): если в объекте game есть свойство с именем вызываемой функции выводим значение свойства, иначе вызываем стандартный обработчик команды + if (!handled) game[com] ? t.print(game[com]) : window[com](obj, optional, verb, noun) + } + // если метод afterAll присутствует вызываем его + if (typeof events.afterAll === 'function') events.afterAll(com, obj, optional, verb, noun); + } else + t.print(game.noThingMsg) +} + +// Инициализация переменных и старт игры +function init() { + clearScreen(); + // Выводим информацию об игре и вступление + game.title && t.print('' + game.title + ''); + game.author && t.print('Автор: ' + game.author); + game.version && t.print('Версия: ' + game.version); + game.year && t.print('Год: ' + game.year); + game.license && t.print('Лицензия: ' + game.license); + if (game.ifid) { + t.print('IFID: ' + game.ifid) + t.print('') + } + game.ageRating && t.print('Возрастные ограничения: ' + game.ageRating); + game.info && t.print('
' + game.info + ''); + t.print('
') + + // устанавливаем служебные переменные + game.stopped = false // остановка вызова inp() + + // Инициализируем массив истории команд + game.commandHistory = [] + + // Для корректного сохранения и загрузки добавляем стандартным объектам свойство spec + player.spec = 'player' + game.spec = 'game' + // Если автор не создал объекты events и globalVerbs создаем их + if (!window.events) window['events'] = {} + if (!window.globalVerbs) window['globalVerbs'] = {} + events.spec = 'events' + globalVerbs.spec = 'globalVerbs' + + var things = getObjByKV('spec', 'thing') + // определяем свойство gend для объектов у которых оно не определено + for (var i in things) + gendDef.call(things[i]) + gendDef.call(player) + + // Сохраняем начальное состояние игры + save('initialState') + + // Устанавливаем в качестве заголовка окна название игры + document.getElementsByTagName('title')[0].textContent = game.title + + // Если у объекта events есть метод init вызываем его + if (typeof events.init === 'function') events.init() + // «перемещаем» игрока в стартовую локацию для вывода ее описания + move(player, player.loc) + player.moved-- + + // Запускаем тесты, если они включены в настройках игры + if (game.tests) tests(); + + // Ввод/вывод + inp(); +} diff --git a/resources/images/background.jpg b/resources/images/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9c6b50f56892a00b9baaeebed4037faa440f9163 GIT binary patch literal 106642 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'; + margin-right: 0.5em; +} +#form { + display: inline-block; +} +#input { + background: transparent; + border: none; + color: white; + font-family: monospace, Monaco, Courier; + border-bottom: 1px solid white; +}