1
0
Fork 0
mirror of https://gitlab.com/Oreolek/improv_forest.git synced 2024-04-25 21:59:41 +03:00

Код бота - пока что только для консольного вывода

This commit is contained in:
Alexander Yakovlev 2017-06-17 12:57:02 +07:00
parent d4d8addfac
commit efe0844b50
25 changed files with 782 additions and 1314 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/node_modules

32
data/action.cson Normal file
View file

@ -0,0 +1,32 @@
groups: [
tags: [
["weather", "cold"],
]
phrases: [
"Вы видите облачка вашего дыхания."
]
,
tags: [
['type', 'stones']
]
phrases: [
"По камням перед вами пробегает бурундук. Он скрывается в серых валунах."
"Вы чуть не потеряли равновесие на камне, который внезапно пошевелился под вашей ногой."
]
,
tags: [
['type', 'track']
]
phrases: [
"По деревьям над вами пробегает белка."
"Порыв ветра сбрасывает на тропу еловую шишку."
"В темноте вы не замечаете паутины между деревьями и вам приходится чистить лицо от природной пряжи."
"Вы оступаетесь, но тут же встаёте."
]
,
tags: []
phrases: [
"По небу пролетает ястреб."
"По земле пролетает тень ястреба."
]
]

View file

@ -1,4 +0,0 @@
phrases: [
"У меня на руках было только имя: [:name_male] [:surname_male]."
"У меня на руках было только имя: [:name_female] [:surname_female]."
]

16
data/dark_color.cson Normal file
View file

@ -0,0 +1,16 @@
phrases: [
"чёрный"
"тёмно-красный"
"пурпурный"
"бурый"
"тёмно-серый"
"серый"
"тёмный"
"бесцветный"
"багряный"
"червлёный"
"алый"
"малиновый"
"багровый"
"угольный"
]

View file

@ -0,0 +1,16 @@
phrases: [
"чёрные"
"тёмно-красные"
"пурпурные"
"бурые"
"тёмно-серые"
"серые"
"тёмные"
"бесцветные"
"багряные"
"червлёные"
"алые"
"малиновые"
"багровые"
"угольные"
]

30
data/description.cson Normal file
View file

@ -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]"
]

View file

@ -0,0 +1,6 @@
phrases: [
"севернее"
"южнее"
"восточнее"
"западнее"
]

View file

@ -0,0 +1,6 @@
phrases: [
"севере"
"юге"
"востоке"
"западе"
]

21
data/hallucination.cson Normal file
View file

@ -0,0 +1,21 @@
phrases: [
"чьё-то лицо"
"своё имя"
"какую-то надпись"
"чьё-то имя"
"чью-то улыбку"
"необычный узор"
"просто отражение"
"просто узор"
"просто особый камень"
"особый камень"
"что-то знакомое"
"что-то… хотя нет, это невозможно. Ведь правда"
"что-то нездешнее"
"кусочек яблока"
"песочный замок"
"песочный крестик"
"след лапы",
"след большой мохнатой лапы",
"след ноги, которая не совсем похожа на человеческую"
]

View file

@ -1,3 +0,0 @@
phrases: [
"Я начну свой рассказ с прошлого."
]

View file

@ -1,598 +0,0 @@
phrases: [
"Августа",
"Августина",
"Авдотья",
"Авигея",
"Аврора",
"Агапия",
"Агата",
"Агафья",
"Агнесса",
"Агния",
"Агунда",
"Ада",
"Аделаида",
"Аделина",
"Аделия",
"Адель",
"Адельфина",
"Адиля",
"Адриана",
"Аза",
"Азалия",
"Азиза",
"Аида",
"Аиша",
"Айгерим",
"Айгуль",
"Айлин",
"Айнагуль",
"Айнур",
"Айсель",
"Айсун",
"Айсылу",
"Аксинья",
"Алана",
"Алевтина",
"Александра",
"Александрина",
"Алеста",
"Алеся",
"Алика",
"Алина",
"Алира",
"Алиса",
"Алия",
"Алла",
"Алсу",
"Альба",
"Альберта",
"Альбина",
"Альвина",
"Альжбета",
"Альфия",
"Аля",
"Алёна",
"Амалия",
"Амелия",
"Амина",
"Амира",
"Анаит",
"Анастасия",
"Ангелина",
"Андриана",
"Анжела",
"Анжелика",
"Анжиолетта",
"Анисья",
"Анита",
"Анна",
"Антонина",
"Анфиса",
"Анэля",
"Аполлинария",
"Арабелла",
"Ариадна",
"Ариана",
"Арина",
"Артемида",
"Архелия",
"Арьяна",
"Асель",
"Асида",
"Асия",
"Астра",
"Астрид",
"Ася",
"Аурелия",
"Аэлита",
"Аюна",
"Бажена",
"Беатрис",
"Беатриса",
"Бела",
"Белинда",
"Белла",
"Береслава",
"Берта",
"Биргит",
"Богдана",
"Божена",
"Борислава",
"Бриллиант",
"Бронислава",
"Бэлла",
"Валентина",
"Валерия",
"Ванда",
"Ванесса",
"Варвара",
"Василина",
"Василиса",
"Венера",
"Вера",
"Верона",
"Вероника",
"Версавия",
"Веселина",
"Весняна",
"Веста",
"Вета",
"Ветта",
"Вида",
"Видана",
"Викторина",
"Виктория",
"Вилена",
"Вилора",
"Винетта",
"Виола",
"Виоланта",
"Виолетта",
"Виргиния",
"Вита",
"Виталина",
"Виталия",
"Влада",
"Владана",
"Владислава",
"Владлена",
"Властилина",
"Габи",
"Габриэлла",
"Галина",
"Галия",
"Гаянэ",
"Гелана",
"Гелена",
"Гелианна",
"Гелла",
"Генриетта",
"Георгина",
"Гера",
"Герда",
"Гертруда",
"Глафира",
"Глория",
"Гоар",
"Гражина",
"Грета",
"Гульзира",
"Гульмира",
"Гульназ",
"Гульнара",
"Гульшат",
"Гюзель",
"Далида",
"Дамира",
"Дана",
"Даниэла",
"Дания",
"Данна",
"Данута",
"Дара",
"Дарина",
"Дария",
"Дарья",
"Дарьяна",
"Даша",
"Даяна",
"Дебора",
"Джамиля",
"Джема",
"Дженна",
"Дженнифер",
"Джессика",
"Джиневра",
"Джулия",
"Джульетта",
"Диана",
"Дильназ",
"Дильнара",
"Диля",
"Дилярам",
"Дина",
"Динара",
"Диодора",
"Дионисия",
"Диша",
"Долорес",
"Доля",
"Доминика",
"Домна",
"Домника",
"Дэнна",
"Ева",
"Евангелина",
"Евгения",
"Евдокия",
"Екатерина",
"Елена",
"Елизавета",
"Есения",
"Жаклин",
"Жанна",
"Жансая",
"Жасмин",
"Женевьева",
"Жозефина",
"Жоржина",
"Жюли",
"Забава",
"Заира",
"Залина",
"Замира",
"Зара",
"Зарема",
"Зарина",
"Земфира",
"Зинаида",
"Зита",
"Злата",
"Златослава",
"Зоряна",
"Зоя",
"Зульфия",
"Зухра",
"Ивета",
"Иветта",
"Ивона",
"Изабелла",
"Изольда",
"Илена",
"Илзе",
"Иллирика",
"Илона",
"Ильзира",
"Илюза",
"Инара",
"Инга",
"Индира",
"Инесса",
"Инна",
"Иоанна",
"Иоланта",
"Ира",
"Ираида",
"Ирина",
"Ирма",
"Ирэн",
"Ирэна",
"Искра",
"Ия",
"Калерия",
"Камила",
"Камилла",
"Капитолина",
"Кара",
"Карина",
"Кармелитта",
"Каролина",
"Каторина",
"Келен",
"Кира",
"Клавдия",
"Клара",
"Кора",
"Корнелия",
"Крис",
"Кристина",
"Ксения",
"Лада",
"Лайма",
"Лали",
"Лана",
"Ландыш",
"Лара",
"Лариса",
"Лаура",
"Лейла",
"Леона",
"Лера",
"Леся",
"Лея",
"Лиана",
"Лигия",
"Лидия",
"Лиза",
"Лика",
"Лили",
"Лилиана",
"Лилия",
"Лилу",
"Лина",
"Линда",
"Лиора",
"Лира",
"Лия",
"Лола",
"Лолита",
"Лора",
"Луиза",
"Лукерья",
"Лукия",
"Лунара",
"Любава",
"Любовь",
"Людмила",
"Люсиль",
"Люсьена",
"Люция",
"Люче",
"Ляйсан",
"Ляля",
"Мавиле",
"Мавлюда",
"Магда",
"Магдалeна",
"Магдалина",
"Мадина",
"Мадлен",
"Майя",
"Макария",
"Малика",
"Мальта",
"Мара",
"Маргарита",
"Марианна",
"Марика",
"Марина",
"Мариша",
"Мария",
"Мариям",
"Марта",
"Мартина",
"Марфа",
"Марьяна",
"Мелания",
"Мелиана",
"Мелисса",
"Мелитта",
"Мериса",
"Мика",
"Мила",
"Милада",
"Милана",
"Милда",
"Милен",
"Милена",
"Милиса",
"Милица",
"Милолика",
"Милослава",
"Мира",
"Мирослава",
"Мирра",
"Мишель",
"Мия",
"Моник",
"Моника",
"Муза",
"Мэри",
"Надежда",
"Надя",
"Наиля",
"Наима",
"Нана",
"Нания",
"Наоми",
"Наргиза",
"Наталия",
"Наталья",
"Нева",
"Нега",
"Нелли",
"Неолина",
"Неонила",
"Нея",
"Ника",
"Никки",
"Николь",
"Нила",
"Нина",
"Нинель",
"Нинна",
"Номи",
"Номина",
"Нонна",
"Нора",
"Нурия",
"Одетта",
"Оксана",
"Октябрина",
"Олеся",
"Оливия",
"Ольга",
"Офелия",
"Павлина",
"Патрисия",
"Патриция",
"Паула",
"Пейтон",
"Пелагея",
"Перизат",
"Платонида",
"Полианна",
"Полина",
"Прасковья",
"Рада",
"Радмила",
"Радослава",
"Разина",
"Раиса",
"Ралина",
"Рамина",
"Рая",
"Регина",
"Резеда",
"Рена",
"Рената",
"Риана",
"Рианна",
"Рикарда",
"Римма",
"Рина",
"Рита",
"Рогнеда",
"Роза",
"Розалина",
"Розалия",
"Роксалана",
"Роксана",
"Романа",
"Рузалия",
"Рузанна",
"Русалина",
"Руслана",
"Руфина",
"Сабина",
"Сабрина",
"Сажида",
"Саида",
"Самира",
"Санда",
"Сандра",
"Сания",
"Санта",
"Сара",
"Сати",
"Сафина",
"Сафия",
"Сафура",
"Светлана",
"Святослава",
"Севара",
"Северина",
"Селена",
"Серафима",
"Сесилия",
"Сиара",
"Силика",
"Сильва",
"Сильвия",
"Сима",
"Симона",
"Снежана",
"Соня",
"София",
"Софья",
"Станислава",
"Стелла",
"Стефания",
"Сусанна",
"Таира",
"Таисия",
"Тала",
"Тамара",
"Тамила",
"Тара",
"Татьяна",
"Таяна",
"Тереза",
"Тина",
"Томила",
"Тора",
"Триана",
"Ульна",
"Ульяна",
"Уля",
"Урсула",
"Устинья",
"Фазиля",
"Фаиза",
"Фаина",
"Фанни",
"Фаня",
"Фарида",
"Фариза",
"Фатима",
"Фая",
"Фелиция",
"Феодосия",
"Феруза",
"Фируза",
"Фия",
"Флора",
"Флоренс",
"Флорентина",
"Флоренция",
"Флориана",
"Франсуаза",
"Фредерика",
"Фрида",
"Фёкла",
"Хадия",
"Хана",
"Харита",
"Харитина",
"Хельга",
"Хилари",
"Хильда",
"Хлоя",
"Христина",
"Цагана",
"Цветана",
"Цецилия",
"Циара",
"Челси",
"Чеслава",
"Чулпан",
"Шакира",
"Шарлотта",
"Шахина",
"Шейла",
"Шелли",
"Шерил",
"Эвелина",
"Эвита",
"Эдда",
"Эдилия",
"Эдита",
"Эдуарда",
"Эжени",
"Элеонора",
"Элиана",
"Элиза",
"Элизабет",
"Элина",
"Элла",
"Эллада",
"Эллина",
"Элоиза",
"Эльвина",
"Эльвира",
"Эльга",
"Эльза",
"Эльмира",
"Эльнара",
"Эля",
"Эмбер",
"Эмили",
"Эмилия",
"Эмма",
"Эрида",
"Эрика",
"Эрмина",
"Эсмеральда",
"Эсмира",
"Эстелла",
"Этель",
"Этери",
"Эшли",
"Юзефа",
"Юланта",
"Юлиана",
"Юлия",
"Юна",
"Юния",
"Юнона",
"Юстина",
"Юфеза",
"Ядвига",
"Яна",
"Янина",
"Янита",
"Ярина",
"Ярослава",
"Ясмина"
]

View file

@ -1,336 +0,0 @@
phrases: [
"Абрам",
"Аваз",
"Августин",
"Авраам",
"Агап",
"Агапит",
"Агафон",
"Адам",
"Адриан",
"Азамат",
"Азат",
"Айдар",
"Айрат",
"Акакий",
"Аким",
"Алан",
"Александр",
"Алексей",
"Али",
"Алихан",
"Алмаз",
"Альберт",
"Амир",
"Анар",
"Анастасий",
"Анатолий",
"Ангел",
"Андрей",
"Антон",
"Анфим",
"Арам",
"Аристарх",
"Аркадий",
"Арман",
"Армен",
"Арсен",
"Арсений",
"Арслан",
"Артём",
"Артемий",
"Артур",
"Асхан",
"Ахмет",
"Ашот",
"Бахрам",
"Блез",
"Богдан",
"Борис",
"Борислав",
"Бронислав",
"Булат",
"Вадим",
"Валентин",
"Валерий",
"Вальдемар",
"Вардан",
"Василий",
"Вениамин",
"Виктор",
"Вильгельм",
"Вит",
"Виталий",
"Владимир",
"Владислав",
"Владлен",
"Влас",
"Всеволод",
"Вячеслав",
"Гавриил",
"Гамлет",
"Гарри",
"Геннадий",
"Генри",
"Генрих",
"Георгий",
"Герасим",
"Герман",
"Германн",
"Глеб",
"Гордей",
"Григорий",
"Густав",
"Давид",
"Давлат",
"Дамир",
"Дана",
"Даниил",
"Данислав",
"Данияр",
"Дарий",
"Демид",
"Демьян",
"Денис",
"Джамал",
"Джеймс",
"Джереми",
"Иеремия",
"Джозеф",
"Джонатан",
"Дик",
"Динар",
"Дино",
"Дмитрий",
"Добрыня",
"Доминик",
"Евгений",
"Евдоким",
"Евсей",
"Евстахий",
"Егор",
"Елисей",
"Емельян",
"Еремей",
"Ефим",
"Ефрем",
"Ждан",
"Жерар",
"Жигер",
"Закир",
"Заур",
"Захар",
"Зенон",
"Зигмунд",
"Зиновий",
"Зураб",
"Зуфар",
"Ибрагим",
"Иван",
"Игнат",
"Игнатий",
"Игорь",
"Иероним",
"Джером",
"Иисус",
"Ильгиз",
"Ильнур",
"Ильшат",
"Илья",
"Имран",
"Иннокентий",
"Ираклий",
"Исаак",
"Исаакий",
"Исидор",
"Искандер",
"Ислам",
"Исмаил",
"Итан",
"Казбек",
"Камиль",
"Карен",
"Карим",
"Карл",
"Ким",
"Кир",
"Кирилл",
"Клаус",
"Клим",
"Конрад",
"Константин",
"Корнелий",
"Кристиан",
"Кузьма",
"Лаврентий",
"Лев",
"Леон",
"Леонард",
"Леонид",
"Леопольд",
"Лоренс",
"Лука",
"Лукиллиан",
"Лукьян",
"Любомир",
"Людвиг",
"Людовик",
"Люций",
"Маджид",
"Майкл",
"Макар",
"Макарий",
"Максим",
"Максимилиан",
"Максуд",
"Мансур",
"Мар",
"Марат",
"Марк",
"Марсель",
"Мартин",
"Мартын",
"Матвей",
"Махмуд",
"Мика",
"Микула",
"Мирон",
"Мирослав",
"Михаил",
"Мстислав",
"Мурат",
"Муслим",
"Мухаммед",
"Мэтью",
"Назар",
"Наиль",
"Никита",
"Никодим",
"Никола",
"Николай",
"Нильс",
"Огюст",
"Олег",
"Оливер",
"Орест",
"Орландо",
"Осип",
"Иосиф",
"Оскар",
"Остап",
"Остин",
"Пётр",
"Павел",
"Патрик",
"Педро",
"Перри",
"Платон",
"Потап",
"Прохор",
"Равиль",
"Радий",
"Радик",
"Радомир",
"Радослав",
"Разиль",
"Райан",
"Раймонд",
"Рамазан",
"Рамиз",
"Рамиль",
"Рамон",
"Ранель",
"Расим",
"Расул",
"Ратмир",
"Рафаэль",
"Рафик",
"Рашид",
"Ринат",
"Ренат",
"Ричард",
"Роберт",
"Родион",
"Ролан",
"Роман",
"Ростислав",
"Рубен",
"Рудольф",
"Руслан",
"Рустам",
"Рэй",
"Савва",
"Савелий",
"Самат",
"Самвел",
"Самир",
"Самуил",
"Сани",
"Святослав",
"Севастьян",
"Семён",
"Серафим",
"Сергей",
"Сидор",
"Спартак",
"Станислав",
"Степан",
"Султан",
"Тагир",
"Тайлер",
"Тамаз",
"Тамерлан",
"Тарас",
"Тигран",
"Тимофей",
"Тимур",
"Тихон",
"Томас",
"Трофим",
"Уинслоу",
"Умар",
"Устин",
"Фёдор",
"Фазиль",
"Фарид",
"Федот",
"Феликс",
"Филипп",
"Флор",
"Фома",
"Фред",
"Фридрих",
"Хабиб",
"Хаким",
"Харитон",
"Цезарь",
"Цефас",
"Цецилий",
"Сесил",
"Цицерон",
"Чарльз",
"Чеслав",
"Чингиз",
"Шамиль",
"Шарль",
"Шерлок",
"Эдгар",
"Эдуард",
"Эльдар",
"Эмиль",
"Эмин",
"Эрик",
"Эркюль",
"Эрмин",
"Эузебио",
"Юлиан",
"Юлий",
"Юнус",
"Юрий",
"Юстиниан",
"Юстус",
"Яков",
"Ян",
"Яромир",
"Ярослав"
]

219
data/object.cson Normal file
View file

@ -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].'
]
]

32
data/smell.cson Normal file
View file

@ -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]."
]
]

35
data/smell_genitive.cson Normal file
View file

@ -0,0 +1,35 @@
# обычный запах, родительный падеж
phrases: [
'хвои'
'сирени'
'грязи'
'животных'
'старого мха'
'земли'
'дождя'
'травы'
'лапника'
'грибов'
'лишайника'
'растений'
'цветов'
'дряни'
'гадости'
'пакости'
'нечистот'
'противности'
'тошноты'
'разложения'
'зверя'
'скота'
'проливного дождя'
'неприятностей'
'слякоти'
'проливня'
'ливня'
'хляби'
'непогоды'
'чернозёма'
'грозы'
'горячей травы'
]

View file

@ -0,0 +1,35 @@
# обычный запах, творительный падеж
phrases: [
'хвоёй'
'сиренью'
'грязью'
'животными'
'старым мхом'
'землёй'
'дождём'
'травой'
'лапником'
'грибами'
'лишайником'
'растениями'
'цветами'
'дрянью'
'гадостью'
'пакостью'
'нечистотами'
'противностью'
'тошнотой'
'разложением'
'зверем'
'скотом'
'проливным дождём'
'неприятностями'
'слякотью'
'проливнем'
'ливнем'
'хлябью'
'непогодой'
'чернозёмом'
'грозой'
'горячей травой'
]

View file

@ -0,0 +1,44 @@
# странный запах
phrases: [
'мокрой листвы'
'крыжовника'
'болотной воды'
'лаванды'
'розы'
'пластика'
'пыли'
'шоколада'
'патоки'
'картошки'
'бумаги'
'борща'
'вареников'
'востока'
'чистоты'
'свежей бумаги'
'чёрного чая'
'ржавчины'
'супа'
'манной каши'
'молока'
'пушистых кошек'
'мороза'
'пороха'
'машинного масла'
'свежей краски'
'свежей золы'
'бананов'
'скошенного сена'
'сухофруктов'
'строительного клея'
'уксуса'
'чёрного терпкого чая'
'пыли'
'лака для ногтей'
'лака для волос'
'вашего дезодоранта'
'волос вашей матери'
'духов вашей матери'
'парфюма'
'кукурузы'
]

85
data/sound.cson Normal file
View file

@ -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]…».'
]
]

View file

@ -1,107 +0,0 @@
phrases: [
"Ковалёва"
"Ильина"
"Гусева"
"Титова"
"Кузьмина"
"Кудрявцева"
"Баранова"
"Куликова"
"Алексеева"
"Степанова"
"Яковалева"
"Сорокина"
"Сергеева"
"Романова"
"Захарова"
"Борисова"
"Королева"
"Герасимова"
"Пономарева"
"Григорьева"
"Лазарева"
"Медведева"
"Ершова"
"Никитина"
"Соболева"
"Рябова"
"Полякова"
"Цветкова"
"Данилова"
"Жукова"
"Фролова"
"Журавлева"
"Николаева"
"Путина"
"Молчанова"
"Крылова"
"Максимова"
"Сидорова"
"Осипова"
"Белоусова"
"Федотова"
"Дорофеева"
"Егорова"
"Панина"
"Матвеева"
"Боброва"
"Дмитриева"
"Калинина"
"Анисимова"
"Петухова"
"Пугачева"
"Антонова"
"Тимофеева"
"Никифорова"
"Веселова"
"Филиппова"
"Романова"
"Маркова"
"Большакова"
"Суханова"
"Миронова"
"Александрова"
"Коновалова"
"Шестакова"
"Казакова"
"Ефимова"
"Денисова"
"Громова"
"Фомина"
"Андреева"
"Давыдова"
"Мельникова"
"Щербакова"
"Блинова"
"Колесникова"
"Иванова"
"Смирнова"
"Кузнецова"
"Попова"
"Соколова"
"Лебедева"
"Козлова"
"Новикова"
"Морозова"
"Петрова"
"Волкова"
"Соловаьева"
"Васильева"
"Зайцева"
"Павлова"
"Семенова"
"Голубева"
"Виноградова"
"Богданова"
"Воробьева"
"Федорова"
"Михайлова"
"Беляева"
"Тарасова"
"Белова"
"Комарова"
"Орлова"
"Киселева"
"Макарова"
"Андреева"
]

View file

@ -1,254 +0,0 @@
phrases: [
"Абрамов"
"Авдеев"
"Агафонов"
"Аксёнов"
"Александров"
"Алексеев"
"Андреев"
"Анисимов"
"Антонов"
"Артемьев"
"Архипов"
"Афанасьев"
"Баранов"
"Белов"
"Белозёров"
"Белоусов"
"Беляев"
"Беляков"
"Беспалов"
"Бирюков"
"Блинов"
"Блохин"
"Бобров"
"Бобылёв"
"Богданов"
"Большаков"
"Борисов"
"Брагин"
"Буров"
"Быков"
"Васильев"
"Веселов"
"Виноградов"
"Вишняков"
"Владимиров"
"Власов"
"Волков"
"Воробьёв"
"Воронов"
"Воронцов"
"Гаврилов"
"Галкин"
"Герасимов"
"Голубев"
"Горбачёв"
"Горбунов"
"Гордеев"
"Горшков"
"Григорьев"
"Гришин"
"Громов"
"Гуляев"
"Гурьев"
"Гусев"
"Гущин"
"Давыдов"
"Данилов"
"Дементьев"
"Денисов"
"Дмитриев"
"Доронин"
"Дорофеев"
"Дроздов"
"Дьячков"
"Евдокимов"
"Евсеев"
"Егоров"
"Елисеев"
"Емельянов"
"Ермаков"
"Ершов"
"Ефимов"
"Ефремов"
"Жданов"
"Жуков"
"Журавлёв"
"Зайцев"
"Захаров"
"Зимин"
"Зиновьев"
"Зуев"
"Зыков"
"Иванков"
"Иванов"
"Игнатов"
"Игнатьев"
"Ильин"
"Исаев"
"Исаков"
"Кабанов"
"Казаков"
"Калашников"
"Калинин"
"Капустин"
"Карпов"
"Кириллов"
"Киселёв"
"Князев"
"Ковалёв"
"Козлов"
"Колесников"
"Колобов"
"Комаров"
"Комиссаров"
"Кондратьев"
"Коновалов"
"Кононов"
"Константинов"
"Копылов"
"Корнилов"
"Королёв"
"Костин"
"Котов"
"Кошелев"
"Красильников"
"Крылов"
"Крюков"
"Кудрявцев"
"Кудряшов"
"Кузнецов"
"Кузьмин"
"Кулагин"
"Кулаков"
"Куликов"
"Лаврентьев"
"Лазарев"
"Лапин"
"Ларионов"
"Лебедев"
"Лихачёв"
"Лобанов"
"Логинов"
"Лукин"
"Лыткин"
"Макаров"
"Максимов"
"Мамонтов"
"Марков"
"Мартынов"
"Маслов"
"Матвеев"
"Медведев"
"Мельников"
"Меркушев"
"Миронов"
"Михайлов"
"Михеев"
"Мишин"
"Моисеев"
"Молчанов"
"Морозов"
"Муравьёв"
"Мухин"
"Мышкин"
"Мясников"
"Назаров"
"Наумов"
"Некрасов"
"Нестеров"
"Никитин"
"Никифоров"
"Николаев"
"Никонов"
"Новиков"
"Носков"
"Носов"
"Овчинников"
"Одинцов"
"Орехов"
"Орлов"
"Осипов"
"Павлов"
"Панов"
"Панфилов"
"Пахомов"
"Пестов"
"Петров"
"Петухов"
"Поляков"
"Пономарёв"
"Попов"
"Потапов"
"Прохоров"
"Рогов"
"Родионов"
"Рожков"
"Романов"
"Русаков"
"Рыбаков"
"Рябов"
"Савельев"
"Савин"
"Сазонов"
"Самойлов"
"Самсонов"
"Сафонов"
"Селезнёв"
"Селиверстов"
"Семёнов"
"Сергеев"
"Сидоров"
"Силин"
"Симонов"
"Ситников"
"Соболев"
"Соколов"
"Соловьёв"
"Сорокин"
"Степанов"
"Стрелков"
"Субботин"
"Суворов"
"Суханов"
"Сысоев"
"Тарасов"
"Терентьев"
"Тетерин"
"Тимофеев"
"Титов"
"Тихонов"
"Третьяков"
"Трофимов"
"Туров"
"Уваров"
"Устинов"
"Фадеев"
"Фёдоров"
"Федосеев"
"Федотов"
"Филатов"
"Филиппов"
"Фокин"
"Фомин"
"Фомичёв"
"Фролов"
"Харитонов"
"Хохлов"
"Цветков"
"Чернов"
"Шарапов"
"Шаров"
"Шашков"
"Шестаков"
"Шилов"
"Ширяев"
"Шубин"
"Щербаков"
"Щукин"
"Юдин"
"Яковлев"
"Якушев"
"Смирнов"
]

161
data/transition.cson Normal file
View file

@ -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: [
"""
Вы находите ручей.
Вы решаете пойти по течению, пока что.
"""
"Ручей переливается и бурлит прозрачной водой по тёмным камням."
"Вы выходите к горному ручью, холодному и быстрому."
]
]

30
data/voice.cson Normal file
View file

@ -0,0 +1,30 @@
phrases: [
"моё имя"
"иди на север"
"иди на юг"
"иди на восток"
"иди на запад"
"посмотри на небо"
"жить"
"рассвет нескоро"
"живи"
"любить"
"передай белкам"
"шишки"
"реки"
"ищи шишки"
"найди куст роз"
"куст"
"гора"
"ручей"
"мысль"
"ммм"
"человек"
"вкусно"
"одиночка"
"иди к нам"
"навсегда"
"никогда"
"съесть"
"теперь вы наши"
]

View file

@ -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()

7
model.coffee Normal file
View file

@ -0,0 +1,7 @@
class ImprovModel
constructor: () ->
@tags = []
# склонение существительных в родительный падеж
genitive: (word) ->
module.exports = ImprovModel

View file

@ -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
}