diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07e6e47 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/node_modules diff --git a/data/action.cson b/data/action.cson new file mode 100644 index 0000000..468d8d3 --- /dev/null +++ b/data/action.cson @@ -0,0 +1,32 @@ +groups: [ + tags: [ + ["weather", "cold"], + ] + phrases: [ + "Вы видите облачка вашего дыхания." + ] + , + tags: [ + ['type', 'stones'] + ] + phrases: [ + "По камням перед вами пробегает бурундук. Он скрывается в серых валунах." + "Вы чуть не потеряли равновесие на камне, который внезапно пошевелился под вашей ногой." + ] + , + tags: [ + ['type', 'track'] + ] + phrases: [ + "По деревьям над вами пробегает белка." + "Порыв ветра сбрасывает на тропу еловую шишку." + "В темноте вы не замечаете паутины между деревьями и вам приходится чистить лицо от природной пряжи." + "Вы оступаетесь, но тут же встаёте." + ] + , + tags: [] + phrases: [ + "По небу пролетает ястреб." + "По земле пролетает тень ястреба." + ] +] diff --git a/data/chapter.cson b/data/chapter.cson deleted file mode 100644 index 41559cb..0000000 --- a/data/chapter.cson +++ /dev/null @@ -1,4 +0,0 @@ -phrases: [ - "У меня на руках было только имя: [:name_male] [:surname_male]." - "У меня на руках было только имя: [:name_female] [:surname_female]." -] diff --git a/data/dark_color.cson b/data/dark_color.cson new file mode 100644 index 0000000..f0fdaab --- /dev/null +++ b/data/dark_color.cson @@ -0,0 +1,16 @@ +phrases: [ + "чёрный" + "тёмно-красный" + "пурпурный" + "бурый" + "тёмно-серый" + "серый" + "тёмный" + "бесцветный" + "багряный" + "червлёный" + "алый" + "малиновый" + "багровый" + "угольный" +] diff --git a/data/dark_color_plural.cson b/data/dark_color_plural.cson new file mode 100644 index 0000000..6dbbba2 --- /dev/null +++ b/data/dark_color_plural.cson @@ -0,0 +1,16 @@ +phrases: [ + "чёрные" + "тёмно-красные" + "пурпурные" + "бурые" + "тёмно-серые" + "серые" + "тёмные" + "бесцветные" + "багряные" + "червлёные" + "алые" + "малиновые" + "багровые" + "угольные" +] diff --git a/data/description.cson b/data/description.cson new file mode 100644 index 0000000..84038e7 --- /dev/null +++ b/data/description.cson @@ -0,0 +1,30 @@ +phrases: [ + """ + [:object] + + [:smell] [:sound] + """ + """ + [:action] + + [:smell] [:sound] + """ + """ + [:object] + + [:sound] [:smell] + """ + """ + [:action] + + [:sound] [:smell] + """ + "[:object] [:sound]" + "[:object] [:action]" + "[:action] [:object]" + "[:action] [:sound]" + "[:action] [:smell]" + "[:sound] [:object]" + "[:object] [:smell]" + "[:smell] [:sound]" +] diff --git a/data/direction_adverb.cson b/data/direction_adverb.cson new file mode 100644 index 0000000..6ba8dd7 --- /dev/null +++ b/data/direction_adverb.cson @@ -0,0 +1,6 @@ +phrases: [ + "севернее" + "южнее" + "восточнее" + "западнее" +] diff --git a/data/direction_vocative.cson b/data/direction_vocative.cson new file mode 100644 index 0000000..a266b3b --- /dev/null +++ b/data/direction_vocative.cson @@ -0,0 +1,6 @@ +phrases: [ + "севере" + "юге" + "востоке" + "западе" +] diff --git a/data/hallucination.cson b/data/hallucination.cson new file mode 100644 index 0000000..78da024 --- /dev/null +++ b/data/hallucination.cson @@ -0,0 +1,21 @@ +phrases: [ + "чьё-то лицо" + "своё имя" + "какую-то надпись" + "чьё-то имя" + "чью-то улыбку" + "необычный узор" + "просто отражение" + "просто узор" + "просто особый камень" + "особый камень" + "что-то знакомое" + "что-то… хотя нет, это невозможно. Ведь правда" + "что-то нездешнее" + "кусочек яблока" + "песочный замок" + "песочный крестик" + "след лапы", + "след большой мохнатой лапы", + "след ноги, которая не совсем похожа на человеческую" +] diff --git a/data/intro.cson b/data/intro.cson deleted file mode 100644 index a931023..0000000 --- a/data/intro.cson +++ /dev/null @@ -1,3 +0,0 @@ -phrases: [ - "Я начну свой рассказ с прошлого." -] diff --git a/data/name_female.cson b/data/name_female.cson deleted file mode 100644 index bcd8543..0000000 --- a/data/name_female.cson +++ /dev/null @@ -1,598 +0,0 @@ -phrases: [ - "Августа", - "Августина", - "Авдотья", - "Авигея", - "Аврора", - "Агапия", - "Агата", - "Агафья", - "Агнесса", - "Агния", - "Агунда", - "Ада", - "Аделаида", - "Аделина", - "Аделия", - "Адель", - "Адельфина", - "Адиля", - "Адриана", - "Аза", - "Азалия", - "Азиза", - "Аида", - "Аиша", - "Айгерим", - "Айгуль", - "Айлин", - "Айнагуль", - "Айнур", - "Айсель", - "Айсун", - "Айсылу", - "Аксинья", - "Алана", - "Алевтина", - "Александра", - "Александрина", - "Алеста", - "Алеся", - "Алика", - "Алина", - "Алира", - "Алиса", - "Алия", - "Алла", - "Алсу", - "Альба", - "Альберта", - "Альбина", - "Альвина", - "Альжбета", - "Альфия", - "Аля", - "Алёна", - "Амалия", - "Амелия", - "Амина", - "Амира", - "Анаит", - "Анастасия", - "Ангелина", - "Андриана", - "Анжела", - "Анжелика", - "Анжиолетта", - "Анисья", - "Анита", - "Анна", - "Антонина", - "Анфиса", - "Анэля", - "Аполлинария", - "Арабелла", - "Ариадна", - "Ариана", - "Арина", - "Артемида", - "Архелия", - "Арьяна", - "Асель", - "Асида", - "Асия", - "Астра", - "Астрид", - "Ася", - "Аурелия", - "Аэлита", - "Аюна", - "Бажена", - "Беатрис", - "Беатриса", - "Бела", - "Белинда", - "Белла", - "Береслава", - "Берта", - "Биргит", - "Богдана", - "Божена", - "Борислава", - "Бриллиант", - "Бронислава", - "Бэлла", - "Валентина", - "Валерия", - "Ванда", - "Ванесса", - "Варвара", - "Василина", - "Василиса", - "Венера", - "Вера", - "Верона", - "Вероника", - "Версавия", - "Веселина", - "Весняна", - "Веста", - "Вета", - "Ветта", - "Вида", - "Видана", - "Викторина", - "Виктория", - "Вилена", - "Вилора", - "Винетта", - "Виола", - "Виоланта", - "Виолетта", - "Виргиния", - "Вита", - "Виталина", - "Виталия", - "Влада", - "Владана", - "Владислава", - "Владлена", - "Властилина", - "Габи", - "Габриэлла", - "Галина", - "Галия", - "Гаянэ", - "Гелана", - "Гелена", - "Гелианна", - "Гелла", - "Генриетта", - "Георгина", - "Гера", - "Герда", - "Гертруда", - "Глафира", - "Глория", - "Гоар", - "Гражина", - "Грета", - "Гульзира", - "Гульмира", - "Гульназ", - "Гульнара", - "Гульшат", - "Гюзель", - "Далида", - "Дамира", - "Дана", - "Даниэла", - "Дания", - "Данна", - "Данута", - "Дара", - "Дарина", - "Дария", - "Дарья", - "Дарьяна", - "Даша", - "Даяна", - "Дебора", - "Джамиля", - "Джема", - "Дженна", - "Дженнифер", - "Джессика", - "Джиневра", - "Джулия", - "Джульетта", - "Диана", - "Дильназ", - "Дильнара", - "Диля", - "Дилярам", - "Дина", - "Динара", - "Диодора", - "Дионисия", - "Диша", - "Долорес", - "Доля", - "Доминика", - "Домна", - "Домника", - "Дэнна", - "Ева", - "Евангелина", - "Евгения", - "Евдокия", - "Екатерина", - "Елена", - "Елизавета", - "Есения", - "Жаклин", - "Жанна", - "Жансая", - "Жасмин", - "Женевьева", - "Жозефина", - "Жоржина", - "Жюли", - "Забава", - "Заира", - "Залина", - "Замира", - "Зара", - "Зарема", - "Зарина", - "Земфира", - "Зинаида", - "Зита", - "Злата", - "Златослава", - "Зоряна", - "Зоя", - "Зульфия", - "Зухра", - "Ивета", - "Иветта", - "Ивона", - "Изабелла", - "Изольда", - "Илена", - "Илзе", - "Иллирика", - "Илона", - "Ильзира", - "Илюза", - "Инара", - "Инга", - "Индира", - "Инесса", - "Инна", - "Иоанна", - "Иоланта", - "Ира", - "Ираида", - "Ирина", - "Ирма", - "Ирэн", - "Ирэна", - "Искра", - "Ия", - "Калерия", - "Камила", - "Камилла", - "Капитолина", - "Кара", - "Карина", - "Кармелитта", - "Каролина", - "Каторина", - "Келен", - "Кира", - "Клавдия", - "Клара", - "Кора", - "Корнелия", - "Крис", - "Кристина", - "Ксения", - "Лада", - "Лайма", - "Лали", - "Лана", - "Ландыш", - "Лара", - "Лариса", - "Лаура", - "Лейла", - "Леона", - "Лера", - "Леся", - "Лея", - "Лиана", - "Лигия", - "Лидия", - "Лиза", - "Лика", - "Лили", - "Лилиана", - "Лилия", - "Лилу", - "Лина", - "Линда", - "Лиора", - "Лира", - "Лия", - "Лола", - "Лолита", - "Лора", - "Луиза", - "Лукерья", - "Лукия", - "Лунара", - "Любава", - "Любовь", - "Людмила", - "Люсиль", - "Люсьена", - "Люция", - "Люче", - "Ляйсан", - "Ляля", - "Мавиле", - "Мавлюда", - "Магда", - "Магдалeна", - "Магдалина", - "Мадина", - "Мадлен", - "Майя", - "Макария", - "Малика", - "Мальта", - "Мара", - "Маргарита", - "Марианна", - "Марика", - "Марина", - "Мариша", - "Мария", - "Мариям", - "Марта", - "Мартина", - "Марфа", - "Марьяна", - "Мелания", - "Мелиана", - "Мелисса", - "Мелитта", - "Мериса", - "Мика", - "Мила", - "Милада", - "Милана", - "Милда", - "Милен", - "Милена", - "Милиса", - "Милица", - "Милолика", - "Милослава", - "Мира", - "Мирослава", - "Мирра", - "Мишель", - "Мия", - "Моник", - "Моника", - "Муза", - "Мэри", - "Надежда", - "Надя", - "Наиля", - "Наима", - "Нана", - "Нания", - "Наоми", - "Наргиза", - "Наталия", - "Наталья", - "Нева", - "Нега", - "Нелли", - "Неолина", - "Неонила", - "Нея", - "Ника", - "Никки", - "Николь", - "Нила", - "Нина", - "Нинель", - "Нинна", - "Номи", - "Номина", - "Нонна", - "Нора", - "Нурия", - "Одетта", - "Оксана", - "Октябрина", - "Олеся", - "Оливия", - "Ольга", - "Офелия", - "Павлина", - "Патрисия", - "Патриция", - "Паула", - "Пейтон", - "Пелагея", - "Перизат", - "Платонида", - "Полианна", - "Полина", - "Прасковья", - "Рада", - "Радмила", - "Радослава", - "Разина", - "Раиса", - "Ралина", - "Рамина", - "Рая", - "Регина", - "Резеда", - "Рена", - "Рената", - "Риана", - "Рианна", - "Рикарда", - "Римма", - "Рина", - "Рита", - "Рогнеда", - "Роза", - "Розалина", - "Розалия", - "Роксалана", - "Роксана", - "Романа", - "Рузалия", - "Рузанна", - "Русалина", - "Руслана", - "Руфина", - "Сабина", - "Сабрина", - "Сажида", - "Саида", - "Самира", - "Санда", - "Сандра", - "Сания", - "Санта", - "Сара", - "Сати", - "Сафина", - "Сафия", - "Сафура", - "Светлана", - "Святослава", - "Севара", - "Северина", - "Селена", - "Серафима", - "Сесилия", - "Сиара", - "Силика", - "Сильва", - "Сильвия", - "Сима", - "Симона", - "Снежана", - "Соня", - "София", - "Софья", - "Станислава", - "Стелла", - "Стефания", - "Сусанна", - "Таира", - "Таисия", - "Тала", - "Тамара", - "Тамила", - "Тара", - "Татьяна", - "Таяна", - "Тереза", - "Тина", - "Томила", - "Тора", - "Триана", - "Ульна", - "Ульяна", - "Уля", - "Урсула", - "Устинья", - "Фазиля", - "Фаиза", - "Фаина", - "Фанни", - "Фаня", - "Фарида", - "Фариза", - "Фатима", - "Фая", - "Фелиция", - "Феодосия", - "Феруза", - "Фируза", - "Фия", - "Флора", - "Флоренс", - "Флорентина", - "Флоренция", - "Флориана", - "Франсуаза", - "Фредерика", - "Фрида", - "Фёкла", - "Хадия", - "Хана", - "Харита", - "Харитина", - "Хельга", - "Хилари", - "Хильда", - "Хлоя", - "Христина", - "Цагана", - "Цветана", - "Цецилия", - "Циара", - "Челси", - "Чеслава", - "Чулпан", - "Шакира", - "Шарлотта", - "Шахина", - "Шейла", - "Шелли", - "Шерил", - "Эвелина", - "Эвита", - "Эдда", - "Эдилия", - "Эдита", - "Эдуарда", - "Эжени", - "Элеонора", - "Элиана", - "Элиза", - "Элизабет", - "Элина", - "Элла", - "Эллада", - "Эллина", - "Элоиза", - "Эльвина", - "Эльвира", - "Эльга", - "Эльза", - "Эльмира", - "Эльнара", - "Эля", - "Эмбер", - "Эмили", - "Эмилия", - "Эмма", - "Эрида", - "Эрика", - "Эрмина", - "Эсмеральда", - "Эсмира", - "Эстелла", - "Этель", - "Этери", - "Эшли", - "Юзефа", - "Юланта", - "Юлиана", - "Юлия", - "Юна", - "Юния", - "Юнона", - "Юстина", - "Юфеза", - "Ядвига", - "Яна", - "Янина", - "Янита", - "Ярина", - "Ярослава", - "Ясмина" -] diff --git a/data/name_male.cson b/data/name_male.cson deleted file mode 100644 index bb56964..0000000 --- a/data/name_male.cson +++ /dev/null @@ -1,336 +0,0 @@ -phrases: [ - "Абрам", - "Аваз", - "Августин", - "Авраам", - "Агап", - "Агапит", - "Агафон", - "Адам", - "Адриан", - "Азамат", - "Азат", - "Айдар", - "Айрат", - "Акакий", - "Аким", - "Алан", - "Александр", - "Алексей", - "Али", - "Алихан", - "Алмаз", - "Альберт", - "Амир", - "Анар", - "Анастасий", - "Анатолий", - "Ангел", - "Андрей", - "Антон", - "Анфим", - "Арам", - "Аристарх", - "Аркадий", - "Арман", - "Армен", - "Арсен", - "Арсений", - "Арслан", - "Артём", - "Артемий", - "Артур", - "Асхан", - "Ахмет", - "Ашот", - "Бахрам", - "Блез", - "Богдан", - "Борис", - "Борислав", - "Бронислав", - "Булат", - "Вадим", - "Валентин", - "Валерий", - "Вальдемар", - "Вардан", - "Василий", - "Вениамин", - "Виктор", - "Вильгельм", - "Вит", - "Виталий", - "Владимир", - "Владислав", - "Владлен", - "Влас", - "Всеволод", - "Вячеслав", - "Гавриил", - "Гамлет", - "Гарри", - "Геннадий", - "Генри", - "Генрих", - "Георгий", - "Герасим", - "Герман", - "Германн", - "Глеб", - "Гордей", - "Григорий", - "Густав", - "Давид", - "Давлат", - "Дамир", - "Дана", - "Даниил", - "Данислав", - "Данияр", - "Дарий", - "Демид", - "Демьян", - "Денис", - "Джамал", - "Джеймс", - "Джереми", - "Иеремия", - "Джозеф", - "Джонатан", - "Дик", - "Динар", - "Дино", - "Дмитрий", - "Добрыня", - "Доминик", - "Евгений", - "Евдоким", - "Евсей", - "Евстахий", - "Егор", - "Елисей", - "Емельян", - "Еремей", - "Ефим", - "Ефрем", - "Ждан", - "Жерар", - "Жигер", - "Закир", - "Заур", - "Захар", - "Зенон", - "Зигмунд", - "Зиновий", - "Зураб", - "Зуфар", - "Ибрагим", - "Иван", - "Игнат", - "Игнатий", - "Игорь", - "Иероним", - "Джером", - "Иисус", - "Ильгиз", - "Ильнур", - "Ильшат", - "Илья", - "Имран", - "Иннокентий", - "Ираклий", - "Исаак", - "Исаакий", - "Исидор", - "Искандер", - "Ислам", - "Исмаил", - "Итан", - "Казбек", - "Камиль", - "Карен", - "Карим", - "Карл", - "Ким", - "Кир", - "Кирилл", - "Клаус", - "Клим", - "Конрад", - "Константин", - "Корнелий", - "Кристиан", - "Кузьма", - "Лаврентий", - "Лев", - "Леон", - "Леонард", - "Леонид", - "Леопольд", - "Лоренс", - "Лука", - "Лукиллиан", - "Лукьян", - "Любомир", - "Людвиг", - "Людовик", - "Люций", - "Маджид", - "Майкл", - "Макар", - "Макарий", - "Максим", - "Максимилиан", - "Максуд", - "Мансур", - "Мар", - "Марат", - "Марк", - "Марсель", - "Мартин", - "Мартын", - "Матвей", - "Махмуд", - "Мика", - "Микула", - "Мирон", - "Мирослав", - "Михаил", - "Мстислав", - "Мурат", - "Муслим", - "Мухаммед", - "Мэтью", - "Назар", - "Наиль", - "Никита", - "Никодим", - "Никола", - "Николай", - "Нильс", - "Огюст", - "Олег", - "Оливер", - "Орест", - "Орландо", - "Осип", - "Иосиф", - "Оскар", - "Остап", - "Остин", - "Пётр", - "Павел", - "Патрик", - "Педро", - "Перри", - "Платон", - "Потап", - "Прохор", - "Равиль", - "Радий", - "Радик", - "Радомир", - "Радослав", - "Разиль", - "Райан", - "Раймонд", - "Рамазан", - "Рамиз", - "Рамиль", - "Рамон", - "Ранель", - "Расим", - "Расул", - "Ратмир", - "Рафаэль", - "Рафик", - "Рашид", - "Ринат", - "Ренат", - "Ричард", - "Роберт", - "Родион", - "Ролан", - "Роман", - "Ростислав", - "Рубен", - "Рудольф", - "Руслан", - "Рустам", - "Рэй", - "Савва", - "Савелий", - "Самат", - "Самвел", - "Самир", - "Самуил", - "Сани", - "Святослав", - "Севастьян", - "Семён", - "Серафим", - "Сергей", - "Сидор", - "Спартак", - "Станислав", - "Степан", - "Султан", - "Тагир", - "Тайлер", - "Тамаз", - "Тамерлан", - "Тарас", - "Тигран", - "Тимофей", - "Тимур", - "Тихон", - "Томас", - "Трофим", - "Уинслоу", - "Умар", - "Устин", - "Фёдор", - "Фазиль", - "Фарид", - "Федот", - "Феликс", - "Филипп", - "Флор", - "Фома", - "Фред", - "Фридрих", - "Хабиб", - "Хаким", - "Харитон", - "Цезарь", - "Цефас", - "Цецилий", - "Сесил", - "Цицерон", - "Чарльз", - "Чеслав", - "Чингиз", - "Шамиль", - "Шарль", - "Шерлок", - "Эдгар", - "Эдуард", - "Эльдар", - "Эмиль", - "Эмин", - "Эрик", - "Эркюль", - "Эрмин", - "Эузебио", - "Юлиан", - "Юлий", - "Юнус", - "Юрий", - "Юстиниан", - "Юстус", - "Яков", - "Ян", - "Яромир", - "Ярослав" -] diff --git a/data/object.cson b/data/object.cson new file mode 100644 index 0000000..7fc165a --- /dev/null +++ b/data/object.cson @@ -0,0 +1,219 @@ +### +В этом файле описывается объект или описание на ячейке. +Описание сохраняется, то есть, здесь не должно быть движения или действий. + +Возможные типы ячеек: + +lowstones - камни лёгкого наклона +medstones - камни среднего наклона +histones - камни крутого наклона +rareforest - редкий лес +thickforest - густой лес +deepforest - дремучий лес +thickshrub - густой кустарник +openfield - открытое поле +swamp - болото +jungle - густые джунгли кустарника +calmstream - тихая заводь ручья +lake - озеро +stream - ручей +rock - скалы +cave - пещера +ucavei - вход в подводную пещеру +ucavee - выход из подводной пещеры +### +bind: true +groups: [ + tags: [ + ['type', 'openfield'] + ] + phrases: [ + "Поляна покрыта зелёным мхом. Вам кажется, что мох дышит." + "Трава переливается серебряным." + "Трава слабо качается." + "Поляна затянута сильным туманом." + ] + , + tags: [ + ['type', 'shore'] + ] + phrases: [ + "Бурая мокрая земля блестит на солнце." + "Вы стоите на крупном камне возле самого края озера." + "Тёмные камни блестят на солнце." + """ + По озеру стелется плотный туман. + Вам трудно различить, где кончается берег. + """ + """ + Озеро тихо. + Пурпурные волны гладят [:dark_color] корни травяного берега. + """ + "По озеру пробегает лёгкая рябь." + """ + В озёрной ряби вам кажется чей-то силуэт. + Но разве бывают настолько большие животные? + """ + """ + Вода выбросила на берег несколько серых веток. + """ + """ + Вы всматриваетесь в [:dark_color_plural] камешки на берегу. + Вам показалось, что вы увидели что-то. + Может быть, [:hallucination]? + """ + """ + На другом берегу озера вы замечаете блеск. + Что бы там ни было, оно быстро исчезает. + """ + """ + Вы видите какое-то серебряное облако на середине озера. + Оно просто плавает там, качается над волнами. + """ + """ + Вы видите кусок льда, который плывёт мимо вас по озеру. + Над водой возвышается только небольшой бугорок, но под ним есть + что-то большое и белое. + """ + ] + , + tags: [ + ['type', 'lowstones'] + ] + phrases: [ + """ + Камни вокруг вас совершенно гладкие, как будто вы идёте по руслу + высохшей реки. + """ + ] + , + tags: [ + ['type', ['lowstones', 'medstones', 'histones']] + ] + phrases: [ + "Камни затянуты сильным туманом." + """ + Камни скрыты в тумане. + Если вы вытянете руку, вы не увидите кончиков пальцев. + Вы серьёзно рискуете оступиться и сломать ногу, но вам надо идти дальше. + """ + "Камни переливаются серебром." + "Мох на камнях блестит росой." + "Тёмные капли на камнях тускло блестят." + "Свет. Повсюду белый свет." + "Вы с трудом прокладываете путь по тёмным камням." + """ + Камни вокруг кажутся живыми. + Вы не хотите проверять это. + """ + ] + , + tags: [ + ['type', 'snow'] + ] + phrases: [ + "Снег блестит на свету, как будто вы идёте по стеклу." + "Здесь снег перемешан с чёрной грязью - светлее грязи, но серее обычного снежника." + ] + , + tags: [ + ['type', 'stream'] + ] + phrases: [ + "Ручей переливается и бурлит прозрачной водой по тёмным камням." + "Сквозь прозрачную быстротечную воду ручья вы видите гладкие камни." + """ + Здесь ручей мельчает и растекается шире. + Посередине течения в песке застряла большая несуразная коряга. + """ + """ + Берег ручья резко обрывается. + Прямо под вами быстрина. + """ + "Ветки деревьев свисают над ручьём, почти касаются воды." + """ + Ручей пробегает в густом кустарнике. + Вы не видите, где кончается берег и не хотите прощупывать его ногами. + """ + ] + , + tags: [ + ['type', 'thickshrub'] + ] + phrases: [ + """ + Вы стоите в густом кустарнике. + Сухие тонкие ветки сплетаются над вашей головой. + """ + "Вам кажется, что вы попали в большое гнездо." + "Вы оставляете глубокие следы в мокрой грязи." + ] + , + tags: [ + ['type', 'swamp'] + ] + phrases: [ + """ + Вы утопаете в мокрой смеси песка и земли. + """ + """ + Вы утопаете в грязи. + """ + ] + , + tags: [ + ['type', 'rareforest'] + ] + phrases: [ + "Между редкими деревьями дует пронизывающий ветер." + ] + , + tags: [ + ['type', 'thickforest'] + ] + phrases: [ + ] + , + tags: [ + ['type', 'deepforest'] + ] + phrases: [ + """ + Вы случайно забрели в бурелом. + Вокруг лежат поваленные деревья, и тёмные ветви высоких елей закрывают вам солнце. + """ + "В глубокой лесной чаще вам трудно найти путь. Вы не совсем уверены, откуда вы пришли." + ] + , + tags: [ + ['type', ['rareforest', 'thickforest', 'deepforest']] + ] + phrases: [ + "Туман стелется по земле, скрывая тропу." + "Лес тонет в тумане. Вы с трудом различаете тропу." + "Туман густеет и скользит по земле." + "Пелена тумана скрывает тропу от ваших глаз." + "От дерева к дереву тянутся тонкие серебристые нити паутины." + "По этой тропе до вас ещё не ходил ни один человек." + "На тропе много оленьих следов." + "Вы замечаете, что тропа медвежья." + "Вы замечаете, что ваш путь протоптал волк." + ] + , + tags: [] + phrases: [ + "Отсюда видно чистое глубокое небо." + "Отсюда видно чистое голубое небо." + "Сверху на вас смотрит тяжёлая синь неба." + "Горы вокруг вас поднимаются в небо, как будто поддерживают его на пиках." + "Высокие горы протыкают небо снежными пиками." + ] + , + tags: [ + ['type', ['rareforest', 'thickforest', 'deepforest']] + ['adjacent', 'shore'] + ] + phrases: [ + 'Вы видите просвет в деревьях на [:direction_vocative].' + ] +] diff --git a/data/smell.cson b/data/smell.cson new file mode 100644 index 0000000..30c21e5 --- /dev/null +++ b/data/smell.cson @@ -0,0 +1,32 @@ +bind: true +groups: [ + tags: [ + ['element', 'fire'] + ['distance','close'] + ], + phrases: [ + 'Вы чувствуете запах серы.' + "Вам чудится запах дыма." + 'В воздухе чувствуется сильный запах серы.' + 'Здесь всё пропитано серой.' + ] + , + tags: [], + phrases: [ + 'Этот воздух настолько чист, что вы можете ощутить его прозрачность на нюх.' + "Лес душно пахнет [:smell_instrumental]." + "Вы чувствуете слабый запах [:smell_weird_genitive]." + "Слабый запах [:smell_genitive]." + "Слабый животный запах." + "Слабый рыбный запах." + "Здесь всё пахнет [:smell_instrumental]." + "Воздух пахнет [:smell_instrumental]." + "Запах [:smell_instrumental]." + "Вам чудится запах дома: [:smell_weird_genitive] и почему-то [:smell_weird_genitive]." + "Вам кажется странный запах, ни на что не похожий." + "Вам чудится запах [:smell_genitive] и, как ни странно, [:smell_weird_genitive]." + "Вы чувствуете запах осени. Даже несмотря на то, что сейчас лето." + "В спокойном воздухе вы чувствуете запах [:smell_genitive]." + "До вас доносится запах [:smell_genitive]." + ] +] diff --git a/data/smell_genitive.cson b/data/smell_genitive.cson new file mode 100644 index 0000000..1ec6e01 --- /dev/null +++ b/data/smell_genitive.cson @@ -0,0 +1,35 @@ +# обычный запах, родительный падеж +phrases: [ + 'хвои' + 'сирени' + 'грязи' + 'животных' + 'старого мха' + 'земли' + 'дождя' + 'травы' + 'лапника' + 'грибов' + 'лишайника' + 'растений' + 'цветов' + 'дряни' + 'гадости' + 'пакости' + 'нечистот' + 'противности' + 'тошноты' + 'разложения' + 'зверя' + 'скота' + 'проливного дождя' + 'неприятностей' + 'слякоти' + 'проливня' + 'ливня' + 'хляби' + 'непогоды' + 'чернозёма' + 'грозы' + 'горячей травы' +] diff --git a/data/smell_instrumental.cson b/data/smell_instrumental.cson new file mode 100644 index 0000000..5f50ee2 --- /dev/null +++ b/data/smell_instrumental.cson @@ -0,0 +1,35 @@ +# обычный запах, творительный падеж +phrases: [ + 'хвоёй' + 'сиренью' + 'грязью' + 'животными' + 'старым мхом' + 'землёй' + 'дождём' + 'травой' + 'лапником' + 'грибами' + 'лишайником' + 'растениями' + 'цветами' + 'дрянью' + 'гадостью' + 'пакостью' + 'нечистотами' + 'противностью' + 'тошнотой' + 'разложением' + 'зверем' + 'скотом' + 'проливным дождём' + 'неприятностями' + 'слякотью' + 'проливнем' + 'ливнем' + 'хлябью' + 'непогодой' + 'чернозёмом' + 'грозой' + 'горячей травой' +] diff --git a/data/smell_weird_genitive.cson b/data/smell_weird_genitive.cson new file mode 100644 index 0000000..2bd8147 --- /dev/null +++ b/data/smell_weird_genitive.cson @@ -0,0 +1,44 @@ +# странный запах +phrases: [ + 'мокрой листвы' + 'крыжовника' + 'болотной воды' + 'лаванды' + 'розы' + 'пластика' + 'пыли' + 'шоколада' + 'патоки' + 'картошки' + 'бумаги' + 'борща' + 'вареников' + 'востока' + 'чистоты' + 'свежей бумаги' + 'чёрного чая' + 'ржавчины' + 'супа' + 'манной каши' + 'молока' + 'пушистых кошек' + 'мороза' + 'пороха' + 'машинного масла' + 'свежей краски' + 'свежей золы' + 'бананов' + 'скошенного сена' + 'сухофруктов' + 'строительного клея' + 'уксуса' + 'чёрного терпкого чая' + 'пыли' + 'лака для ногтей' + 'лака для волос' + 'вашего дезодоранта' + 'волос вашей матери' + 'духов вашей матери' + 'парфюма' + 'кукурузы' +] diff --git a/data/sound.cson b/data/sound.cson new file mode 100644 index 0000000..9d2c8da --- /dev/null +++ b/data/sound.cson @@ -0,0 +1,85 @@ +groups: [ + tags: [] + phrases: [ + "Ни звука." + "Лес подозрительно тих." + """ + Ветер доносит до вас слабые звуки. Они не похожи ни на что, вам знакомое. + """ + """ + Где-то вдалеке прогремел гром. Идёт гроза. + """ + """ + Туман разом съедает все звуки. Вы стоите в полной тишине. + """ + "Вы слышите далёкое ржание лошадей." + # а теперь меня потянуло на гекзаметр + "Ветер шумит и гуляет по горной долине." + # и я тут же его сломал + "Тихо туманы клубятся меж елей и сосен." + "Горные склоны молча стоят недвижимы." + "Горы молча наблюдают за вами." + ] + , + tags: [ + ['type', 'field'] + ] + phrases: [ + 'Вы слышите слабый шёпот травы: «…[:voice]…»' + """ + Свист рябчика. + + Обернувшись, вы видите птицу, которая тут же скрывается за деревьями. + """ + """ + Вы слышите шипение змеи в траве. Она где-то рядом, но шипела не на вас. + """ + ] + , + tags: [ + ['type', 'track'] + ] + phrases: [ + 'Вы слышите слабый шёпот деревьев: «…[:voice]…»' + "Деревья сонно шепчутся кронами." + "Деревья шепчут вам: «…[:voice]…»." + "Тихо шуршит под ногами опавшая хвоя." + "Вы слышите свист рябчика, откуда-то из глубины леса." + "Деревья мягко шушукаются вокруг вас." + "Слабый ветер тянет верхушки деревьев." + "Над кем-то смеётся синица." + "Вам показалось, или где-то не спит дятел?" + "Деревья тихо шумят на ветру." + "Ветер качает деревья, шум поднимая." + ] + , + tags: [ + ['type', 'stones'] + ] + phrases: [ + 'Вы слышите слабый шёпот камней: «…[:voice]…»' + "Слышно, как камешек где-то с горы покатился." + "Камни вокруг вас шепчут: «…[:voice]…»" + "Где-то в камнях журчит мелкий ручеёк." + "Между камнями пролетел писк бурундучка." + "Где-то под каменной рекой с писком прошмыгнул грызун." + "Слабый тёплый ветерок неведомо откуда небрежно пошевелил мелкие камни." + "Внезапный сильный порыв ветра чуть не опрокинул вас." + ] + , + tags: [ + ['adjacent', 'lake'] + ] + phrases: [ + 'Вы слышите шум воды на [:direction_vocative].' + 'Вы слышите шум воды [:direction_adverb] от вас.' + ] + , + tags: [ + ['adjacent', ['deepforest']] + ] + phrases: [ + 'Из глубокой чащи на [:direction_vocative] раздаются странные звуки.' + 'Деревья непроходимого леса [:direction_adverb] от вас шепчут вам: «…[:voice]…».' + ] +] diff --git a/data/surname_female.cson b/data/surname_female.cson deleted file mode 100644 index 8a28e80..0000000 --- a/data/surname_female.cson +++ /dev/null @@ -1,107 +0,0 @@ -phrases: [ - "Ковалёва" - "Ильина" - "Гусева" - "Титова" - "Кузьмина" - "Кудрявцева" - "Баранова" - "Куликова" - "Алексеева" - "Степанова" - "Яковалева" - "Сорокина" - "Сергеева" - "Романова" - "Захарова" - "Борисова" - "Королева" - "Герасимова" - "Пономарева" - "Григорьева" - "Лазарева" - "Медведева" - "Ершова" - "Никитина" - "Соболева" - "Рябова" - "Полякова" - "Цветкова" - "Данилова" - "Жукова" - "Фролова" - "Журавлева" - "Николаева" - "Путина" - "Молчанова" - "Крылова" - "Максимова" - "Сидорова" - "Осипова" - "Белоусова" - "Федотова" - "Дорофеева" - "Егорова" - "Панина" - "Матвеева" - "Боброва" - "Дмитриева" - "Калинина" - "Анисимова" - "Петухова" - "Пугачева" - "Антонова" - "Тимофеева" - "Никифорова" - "Веселова" - "Филиппова" - "Романова" - "Маркова" - "Большакова" - "Суханова" - "Миронова" - "Александрова" - "Коновалова" - "Шестакова" - "Казакова" - "Ефимова" - "Денисова" - "Громова" - "Фомина" - "Андреева" - "Давыдова" - "Мельникова" - "Щербакова" - "Блинова" - "Колесникова" - "Иванова" - "Смирнова" - "Кузнецова" - "Попова" - "Соколова" - "Лебедева" - "Козлова" - "Новикова" - "Морозова" - "Петрова" - "Волкова" - "Соловаьева" - "Васильева" - "Зайцева" - "Павлова" - "Семенова" - "Голубева" - "Виноградова" - "Богданова" - "Воробьева" - "Федорова" - "Михайлова" - "Беляева" - "Тарасова" - "Белова" - "Комарова" - "Орлова" - "Киселева" - "Макарова" - "Андреева" -] diff --git a/data/surname_male.cson b/data/surname_male.cson deleted file mode 100644 index e85e297..0000000 --- a/data/surname_male.cson +++ /dev/null @@ -1,254 +0,0 @@ -phrases: [ - "Абрамов" - "Авдеев" - "Агафонов" - "Аксёнов" - "Александров" - "Алексеев" - "Андреев" - "Анисимов" - "Антонов" - "Артемьев" - "Архипов" - "Афанасьев" - "Баранов" - "Белов" - "Белозёров" - "Белоусов" - "Беляев" - "Беляков" - "Беспалов" - "Бирюков" - "Блинов" - "Блохин" - "Бобров" - "Бобылёв" - "Богданов" - "Большаков" - "Борисов" - "Брагин" - "Буров" - "Быков" - "Васильев" - "Веселов" - "Виноградов" - "Вишняков" - "Владимиров" - "Власов" - "Волков" - "Воробьёв" - "Воронов" - "Воронцов" - "Гаврилов" - "Галкин" - "Герасимов" - "Голубев" - "Горбачёв" - "Горбунов" - "Гордеев" - "Горшков" - "Григорьев" - "Гришин" - "Громов" - "Гуляев" - "Гурьев" - "Гусев" - "Гущин" - "Давыдов" - "Данилов" - "Дементьев" - "Денисов" - "Дмитриев" - "Доронин" - "Дорофеев" - "Дроздов" - "Дьячков" - "Евдокимов" - "Евсеев" - "Егоров" - "Елисеев" - "Емельянов" - "Ермаков" - "Ершов" - "Ефимов" - "Ефремов" - "Жданов" - "Жуков" - "Журавлёв" - "Зайцев" - "Захаров" - "Зимин" - "Зиновьев" - "Зуев" - "Зыков" - "Иванков" - "Иванов" - "Игнатов" - "Игнатьев" - "Ильин" - "Исаев" - "Исаков" - "Кабанов" - "Казаков" - "Калашников" - "Калинин" - "Капустин" - "Карпов" - "Кириллов" - "Киселёв" - "Князев" - "Ковалёв" - "Козлов" - "Колесников" - "Колобов" - "Комаров" - "Комиссаров" - "Кондратьев" - "Коновалов" - "Кононов" - "Константинов" - "Копылов" - "Корнилов" - "Королёв" - "Костин" - "Котов" - "Кошелев" - "Красильников" - "Крылов" - "Крюков" - "Кудрявцев" - "Кудряшов" - "Кузнецов" - "Кузьмин" - "Кулагин" - "Кулаков" - "Куликов" - "Лаврентьев" - "Лазарев" - "Лапин" - "Ларионов" - "Лебедев" - "Лихачёв" - "Лобанов" - "Логинов" - "Лукин" - "Лыткин" - "Макаров" - "Максимов" - "Мамонтов" - "Марков" - "Мартынов" - "Маслов" - "Матвеев" - "Медведев" - "Мельников" - "Меркушев" - "Миронов" - "Михайлов" - "Михеев" - "Мишин" - "Моисеев" - "Молчанов" - "Морозов" - "Муравьёв" - "Мухин" - "Мышкин" - "Мясников" - "Назаров" - "Наумов" - "Некрасов" - "Нестеров" - "Никитин" - "Никифоров" - "Николаев" - "Никонов" - "Новиков" - "Носков" - "Носов" - "Овчинников" - "Одинцов" - "Орехов" - "Орлов" - "Осипов" - "Павлов" - "Панов" - "Панфилов" - "Пахомов" - "Пестов" - "Петров" - "Петухов" - "Поляков" - "Пономарёв" - "Попов" - "Потапов" - "Прохоров" - "Рогов" - "Родионов" - "Рожков" - "Романов" - "Русаков" - "Рыбаков" - "Рябов" - "Савельев" - "Савин" - "Сазонов" - "Самойлов" - "Самсонов" - "Сафонов" - "Селезнёв" - "Селиверстов" - "Семёнов" - "Сергеев" - "Сидоров" - "Силин" - "Симонов" - "Ситников" - "Соболев" - "Соколов" - "Соловьёв" - "Сорокин" - "Степанов" - "Стрелков" - "Субботин" - "Суворов" - "Суханов" - "Сысоев" - "Тарасов" - "Терентьев" - "Тетерин" - "Тимофеев" - "Титов" - "Тихонов" - "Третьяков" - "Трофимов" - "Туров" - "Уваров" - "Устинов" - "Фадеев" - "Фёдоров" - "Федосеев" - "Федотов" - "Филатов" - "Филиппов" - "Фокин" - "Фомин" - "Фомичёв" - "Фролов" - "Харитонов" - "Хохлов" - "Цветков" - "Чернов" - "Шарапов" - "Шаров" - "Шашков" - "Шестаков" - "Шилов" - "Ширяев" - "Шубин" - "Щербаков" - "Щукин" - "Юдин" - "Яковлев" - "Якушев" - "Смирнов" -] diff --git a/data/transition.cson b/data/transition.cson new file mode 100644 index 0000000..3ee7a7b --- /dev/null +++ b/data/transition.cson @@ -0,0 +1,161 @@ +### +В этом файле описывается переход между двумя ячейками. + +Возможные типы ячеек: + +outside - вход извне, начало игры + +lowstones - камни лёгкого наклона +medstones - камни среднего наклона +histones - камни крутого наклона +rareforest - редкий лес +thickforest - густой лес +deepforest - дремучий лес +thickshrub - густой кустарник +openfield - открытое поле +swamp - болото +jungle - густые джунгли кустарника +calmstream - тихая заводь ручья +lake - озеро +stream - ручей +rock - скалы +cave - пещера +ucavei - вход в подводную пещеру +ucavee - выход из подводной пещеры +### + +groups: [ + tags: [ + ['to', ['thickforest', 'rareforest', 'deepforest']] + ] + phrases: [ + """ + Вы выходите на тропу. К сожалению, вы не можете сказать, откуда она + начинается, но хотя бы видите, куда она ведёт. + """ + "Вы выходите на животные тропы." + "Вы находите животную тропу. Она петляет и теряется, но всё-таки куда-то ведёт." + "Вы находите слабую тропу, которая петляет и теряется." + "Тропа провожает вас через старый бурелом в измороси." + ] + , + tags: [ + ['to', 'thickshrub'] + ] + phrases: [ + "Тропа провожает вас в чащу голых промёрзших кустарников." + ] + , + tags: [ + ['from', 'shore'] + ['to', 'shore'] + ] + phrases: [ + "Вы идёте дальше по берегу." + "Вы идёте дальше по берегу озера." + "Вы идёте по камням вдоль озера." + "Вы идёте вдоль озера по чистой траве." + "Вы идёте вдоль озера, прыгая по прибрежным камням." + "Вы идёте по скалистому берегу озера." + ] + , + tags: [ + ['to', 'shore'] + ] + phrases: [ + "Вы выходите на берег озера." + "Вы идёте к озеру." + ] + , + tags: [ + ['from', 'outside'] + ] + phrases: [ + 'Вы входите по животным тропам.' + "Вы выходите через открытую поляну." + "Вы проходите через каменную реку и спрыгиваете по камням." + ] + , + tags: [ + ['from', 'thickforest'] + ['to', 'openfield'] + ] + phrases: [ + 'Тропа выводит вас на открытую поляну.' + 'Тропа открывается на широкую поляну.' + ] + , + tags: [ + ['to', 'openfield'] + ] + phrases: [ + 'Вы выходите на просторную поляну.' + ] + , + tags: [ + ['to', 'field'] + ] + phrases: [ + "Вы выходите на открытую поляну." + "Вы выходите на ясную поляну." + ] + , + tags: [ + ['to', 'field'] + ['weather', 'cold'] + ] + phrases: [ + "Вы выходите на поляну, которая покрыта тонким инеем." + ] + , + tags: [ + ['to', ['medstones', 'lowstones', 'histones']] + ] + phrases: [ + "Вы забираетесь на камни." + """ + Вы осторожно заползаете на ближайший камень и передвигаетесь вперёд + на руках и ногах, чтобы не подскользнуться. + """ + "Вы запрыгиваете на камень и бодро шагаете вперёд по каменной реке." + """ + Вы запрыгиваете на камень, но он шатается под вашей ногой. + Вы осторожно идёте вперёд, проверяя камни перед тем, как перенести вес на них. + """ + ] + , + tags: [ + ['from', ['medstones', 'lowstones', 'histones']] + ['to', ['medstones', 'lowstones', 'histones']] + ] + phrases: [ + "Вы идёте дальше по каменной реке." + "На вас находит прилив безрассудства. Вы прыгаете с камня на камень без опаски оступиться." + "Вы бодро шагаете вперёд по каменной реке." + "Вы осторожно идёте вперёд, проверяя камни перед тем, как перенести вес на них." + ] + , + tags: [ + ['from', ['medstones', 'lowstones', 'histones']] + ['to', ['thickforest', 'rareforest', 'deepforest']] + ] + phrases: [ + "Вы подходите к лесу и спрыгиваете на слабо различимую тропинку." + "Вы замечаете тропинку и спрыгиваете на неё." + "Вы находите тропку и следуете по ней." + "Здесь камни заканчиваются, и теперь вы идёте по какой-то тропе." + ] + , + tags: [ + ['to', 'stream'] + ] + phrases: [ + """ + Вы находите ручей. + Вы решаете пойти по течению, пока что. + """ + "Ручей переливается и бурлит прозрачной водой по тёмным камням." + "Вы выходите к горному ручью, холодному и быстрому." + ] +] + diff --git a/data/voice.cson b/data/voice.cson new file mode 100644 index 0000000..44d2538 --- /dev/null +++ b/data/voice.cson @@ -0,0 +1,30 @@ +phrases: [ + "моё имя" + "иди на север" + "иди на юг" + "иди на восток" + "иди на запад" + "посмотри на небо" + "жить" + "рассвет нескоро" + "живи" + "любить" + "передай белкам" + "шишки" + "реки" + "ищи шишки" + "найди куст роз" + "куст" + "гора" + "ручей" + "мысль" + "ммм" + "человек" + "вкусно" + "одиночка" + "иди к нам" + "навсегда" + "никогда" + "съесть" + "теперь вы наши" +] diff --git a/main.coffee b/main.coffee index 5c0a11b..679497b 100644 --- a/main.coffee +++ b/main.coffee @@ -1,13 +1,9 @@ ImprovEngine = require "improv" -marked = require "marked" +ImprovModel = require "./model" fs = require 'fs' CSON = require 'cson' glob = require 'glob' -class ImprovModel - constructor: () -> - @tags = [] - files = glob.sync('data/*.cson') spec = {} for file in files @@ -32,6 +28,4 @@ improv = new ImprovEngine(spec, { }) model = new ImprovModel -console.log marked(improv.gen('intro', model)) -for i in [1..2] - console.log marked(improv.gen('chapter', model)) +console.log improv.gen('description', model).trim() diff --git a/model.coffee b/model.coffee new file mode 100644 index 0000000..5dc1eb6 --- /dev/null +++ b/model.coffee @@ -0,0 +1,7 @@ +class ImprovModel + constructor: () -> + @tags = [] + # склонение существительных в родительный падеж + genitive: (word) -> + +module.exports = ImprovModel diff --git a/package.json b/package.json index 48923cd..848259b 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "dependencies": { - "coffee-script": "^1.12.0", - "cson": "^4.0.0", - "glob": "^7.1.1", + "coffee-script": "^1.12.6", + "cson": "^4.1.0", + "glob": "^7.1.2", "improv": "^0.8.0", - "marked": "^0.3.6" + "mastodon": "^1.2.0" }, "private": true }