!% !============================================================================= Include "CyrDef"; Constant Story "Перекрёсток миров"; Constant Headline "^Мистическая текстовая игра за один день. Вжж-8!^Авторы: Антон Артамонов (Apollo) и Всеволод Зубарев (y4n), 2011 (см. также ИНФО).^"; !Constant DEBUG 1; Attribute legible; Include "Parser"; ! Флаги-статусы Global knocking = 0; Global bookrcvd = 0; !Global lyingcliffs = 1; Global grotknown = 0; Object LibraryMessages with before [; Answer, Ask, No, Sorry, Tell, Yes: print_ret (emphstring) "Чтобы пообщаться, просто введите ГОВОРИТЬ С [...]."; ]; Include "VerbLib"; !============================================================================ ! Entry point routines [ Initialise; location = study; lookmode = 2; player.description = PlayerDesc; StartDaemon(study); ]; [ PlayerDesc; print "На тебе надеты коричневые брюки, рубашка, а поверх неё жилетка."; ]; [ emphstring str; style underline; print (string) str; style roman; ]; ! Pauses for a keystroke [ Pause k; @read_char 1 -> k; rtrue; ]; [ ReadSub; <>; ]; [ AmorphusSub; if (bookrcvd == 0) { "Этот глагол непонятен."; } if (location ~= study or floor1 or armchair) { "Ты вновь произносишь AMORPHUS TELEPORCIUS, но ничего особенного не происходит."; } print "Ты произносишь таинственные слова, AMORPHUS TELEPORCIUS, и понимаешь, что что-то изменилось, что-то не так.^^ Что это? Ты что-то чувствуешь и вдруг понимаешь, что сходишь с ума: всё пространство вокруг тебя начала окутывать пустота, тьма... ты даже не можешь правильно описать происходящее.^^"; Pause(); print "Через считанные секунды ты оказываешься уже в кромешной тьме, но ты знаешь, что ты не ослеп. Ещё через мгновение ты ощущаешь, как будто бы тебя куда-то засасывает. Это очень странно и по-настоящему пугающе, когда в полной темноте тебя куда-то стремительно несёт, и ты думаешь, что тебе конец.^^"; Pause(); print "Ты не успеваешь закончить свою мысль, как вдруг резко тьма вокруг тебя сменяется сине-фиолетовым цветом и ты оказываешься внутри, своего рода, невероятного вихря, который выглядит так завораживающе, что ты боишься даже моргнуть.^^"; print "Затем также быстро, как ты попал сюда, тебя выталкивает куда-то дальше, ты оказываешься в каком-то совершенно новом месте, падаешь на землю и теряешь сознание...^^"; Pause(); remove thebook; remove package; PlayerTo(fakecliffs); ]; [ TalkToSub; "Ты не получаешь ответа."; ]; [ XyzzySub; print_ret (emphstring) "Я так устал, что не сделал XYZZY!"; ]; [ HelpSub; "Эта игра была написана за один день, специально для конкурса Вжж-8.^^ Хотим вас заверить, что история, с которой вы познакомитесь, окажется маленьким вступлением к эпосу, который родился в наших умах, но столь короткие сроки и мизерный бюджет ограничили нас в возможности показать всё это в развёрнутом виде. Но возможно, что всё ещё впереди...^^ Сайт: https://rinform.org/^Пишите письма на: yandexx[at]gmail.com."; ]; !============================================================================ ! Описание игровых объектов Object study "Кабинет" with description [; if (self hasnt general) { give self general; print "Вот ты и остался в этом доме совсем один. Родители уехали в Люблин к родственникам -- сейчас Вроцлав не самое безопасное место.^^"; } "Это твоя комната, твой кабинет, где ты часто проводишь время за чтением книг. На письменном столе лежит отрывной календарь.^^ Деревянные ступеньки ведут вниз на первый этаж дома."; ], daemon [; if (turns == 10) { knocking = 1; "^Ты слышишь, как кто-то стучится во входную дверь. Должно быть, тот самый почтальон, который должен был доставить книгу."; } if (turns == 13 or 16 or 19) { "^Кто бы ни пришёл ко входной двери, он снова стучится в неё."; } ], before [; Exit: if (player in armchair && thebook.reading == 1 or 2) "Тебе интересно узнать, что будет дальше в этой книге, поэтому тебе не хочется прерывать чтение."; if (player in armchair) { move player to study; "Ты встаёшь со своего мягкого кресла."; } ], d_to floor1, has light; Object -> table "календар/ь" with name 'стол' 'календарь', description [; if (table hasnt general) { give self general; "Твой письменный стол, на котором лежит календарь. На нём -- 30 августа 1939 года. Ты отрываешь этот листок и открываешь день сегодняшний -- 31 августа."; } else { "Твой письменный стол, на котором лежит календарь. На нём -- 31 августа 1939 года."; } ], before [; Take: "Стол и календарь стоят там, где им положено."; ], has scenery male; Object -> armchair "кресл/о" with name 'кресл', description "Твоё любимое кресло.", describe "^Здесь также стоит твоё любимое кресло.", !before [; ! Exit: print "ASDF"; !], after [; Enter: if (thebook in player) "Ты усаживаешься в своё кресло со своей новой книгой в руках."; "Ты усаживаешься в своё кресло."; ], has static supporter neuter enterable; Object floor1 "На первом этаже" with description "Здесь расположена прихожая, кухня и гостиная комната. ^^Можно подняться вверх по деревянной лестнице. Входная дверь ведёт на север.", u_to study, n_to [; <>; ], has light; Object -> maindoor "входн/ая двер/ь" with name 'двер' 'входн' 'деревянн', description "Толстая входная дверь из качественного дерева.", before [; Open: if (knocking) { knocking = 0; bookrcvd = 1; StopDaemon(study); move package to player; "Ты открываешь входную дверь и видишь местного почтальона Томаша, с зонтом в руках, но тем не менее промокшего.^^ @<<День добрый@>>, -- говоришь ты, -- @<<Ну и погодка сегодня...@>>^^ @<<Добрый... да уж, погода в этом году нас не балует. Вот вам обещанная посылка@>>, -- отвечает он и вручает тебе средних размеров свёрток.^^ @<<Спасибо большое! И не лень вам было идти в такой дождь, пан?@>>^^ @<<Да вот, работа такая, стараемся@>>, -- улыбается он. @<<Ладно, я пойду, до свидания!@>>^^ Ты прощаешься с ним и закрываешь входную дверь."; } else { if (bookrcvd) "Почтальон уже ушёл, а выходить на улицу в такой дождь не хочется."; else "На улице идёт проливной дождь, лучше переждать его дома."; } ], has scenery openable concealed female; Object package "свёрт/о/к/" with name 'сверток' 'свертк' 'бумажн', casegen [ beg end csID; return ICVowel (csID, beg, end, 'о', 0); ], description [; if (thebook in package) "Бумажный свёрток с чем-то прямоугольным внутри. Наверняка это книга."; else "Внутри больше ничего нет, это просто бумажный свёрток."; ], before [; Open: if (thebook in package) { move thebook to player; !remove self; "Ты разворачиваешь упаковку и обнаруживаешь внутри книгу. Видимо это то, что обещал тебе библиотекарь."; } else { "Внутри свёртка больше ничего нет."; } Search: <>; ], has container male; Object -> thebook "приключенческ/ая книг/а" with name 'приключенческ' 'книг' 'том' 'страниц' 'уголк', description "Толстый томик, с кожаным переплётом и уже пожелтевшими страницами. Переплёт украшен металлическими уголками; на обложке нет названия, но на ней изображены необычные руны.", reading 0, before [; Open, Read: if (player notin armchair) { "Читать книги стоя не очень удобно. Ты привык делать это сидя в своём кресле."; } switch (self.reading) { 0: print "Ты внимательно изучаешь руны на первой странице обложки и затем открываешь книгу.^^Книга начинается с серии красивых иллюстраций, с подписями на каком-то неизвестном тебе языке. На рисунках изображены деревья, материки, океаны.^"; 1: print "Ты продолжаешь перелистывать страницы: рисунки попадаются всё реже, начался какой-то основной текст, но тем не менее тебе он непонятен -- кажется, он написан на латыни.^"; 2: print "Листая дальше, ты доходишь до середины книги и обнаруживаешь, что на центральном развороте тёмно-красными каллиграфическими буквами выведены два слова: AMORPHUS TELEPORCIUS.^^Ты пролистываешь до конца книги и не находишь в ней больше ничего интересного.^"; default: print "Ты вновь листаешь книгу, но не находишь в ней ничего нового. Внимание привлекает лишь пара слов, выведенная жирным каллиграфическим почерком на развороте посередине книги: AMORPHUS TELEPORCIUS.^"; } self.reading++; rtrue; Smell: "Ммм, чувствуется предвкушение интересной истории!"; ], has legible female; Object fakecliffs "На утёсе" with description [; !if (lyingcliffs) { !lyingcliffs = 0; print "Ты лежишь в непонятном месте где-то на природе. Здесь тепло и солнечно, на небе ни облачка. Но первое что ты замечаешь это то, что к тебе подбегает какая-то девушка в оборванном платье.^"; !CutScene(); print "Вы смотрите друг на друга, полные удивления, и она спрашивает: @<<Кто ты?.. Как ты здесь оказался?@>>^^"; print "@<<Я... не знаю, я бы хотел узнать то же самое про тебя@>> -- отвечаешь ты, по-прежнему не понимая, что происходит.^^"; Pause(); print "@<<Меня зовут Габриэла, я живу на этом острове уже два месяца, и здесь нет ни единой души@>>, -- говорит девушка, -- @<<Но как ", (emphstring) "ты" ," сюда попал?@>>.^^"; print "@<<Меня зовут Ян, очень приятно... Но ты думаешь, я сам что-то понял? Давай по порядку, дай мне хотя бы подняться на ноги, и я расскажу тебе, как всё произошло@>>, -- говоришь ты в недоумении и, пошатываясь, встаёшь с каменистой земли.^"; Pause(); !PlayerTo(cliffs); !move player to cliffs; !rtrue; !<>; ], each_turn [; PlayerTo(cliffs); ], after [; Look: PlayerTo(cliffs); rtrue; ], has light; Object cliffs "На утёсе" with description [; "Ты стоишь на утёсе, на который тебя выбросило из портала. С южной стороны до самого горизонта простирается голубой океан, здесь довольно высоко -- до воды около 20 метров.^^Тропинка ведёт с утёса на север к какой-то статуе и сплошным джунглям."; ], n_to pied, d_to [; if (grotknown && tree has general) { print "Ты осторожно смотришь вниз вдоль крутого обрыва и замечаешь десятью метрами ниже вход в искусственную пещеру. Ты острожно хватаешься за лиану и спускаешься по ней вниз.^"; return grot1; } else if (grotknown) { "Ты осторожно смотришь вниз вдоль крутого обрыва и замечаешь десятью метрами ниже вход в искусственную пещеру. Но как туда спуститься?"; } else { "Спрыгнуть вниз?"; } ], has light; Object -> tree "стар/ое дерев/о" with name 'дерев' 'стар', description [; print "Старое дерево с облезлой корой. Его ствол толстый и наверняка крепкий."; if (self has general) print " К одной из ветвей привязана лиана."; print "^"; rtrue; ], describe [; "^На самом краю, возле обрыва, возвышается старое дерево."; ], has static neuter; ! general -- привязана лиана Object -> gabriela "Габриэл/а" with name 'девушк' 'габриэл', !nameknown 0, topics 0, description [; print_ret "Габриэла одета в простое, изношенное, местами порванное, летнее платье."; ], describe [; if (gabriela in pied) "^Габриэла выжидающе смотрит на тебя."; if (self.topics > 5) { "^Габриэла стоит здесь и смотрит на море, её волосы развеваются на ветру."; } else { "^Габриэла стоит рядом и с интересом смотрит на тебя."; } ], before [; TalkTo: if (exitportal in pied) { deadflag = 2; print "Ты уверенно берёшь Габриэлу за руку и подводишь к порталу: @<<После вас, мадам@>>, -- улыбаешься ты.^^ @<<Ты знаешь, что не будет никакого ~после~, ведь когда я зайду, то портал закроется@>>.^^ @<<Я знаю, что из нас двоих зайти туда должна ты, и теперь я понимаю, что я был направлен сюда намеренно, а ты -- случайная жертва обстоятельств. Пожалуйста, просто пройди через врата и ни о чём не волнуйся. Всё... Иди@>>.^^ И Габриэла ушла... ты даже не успел заметить, как быстро закрылся проход...^^^"; print_ret (emphstring) "Меня зовут Ян Зеленский, я нахожусь на острове уже несколько месяцев, я знаю что я оказался тут неспроста, так же как и Габриэла... она была моим испытанием, и я прошёл его. За время, проведённое здесь, я понял, что не так с этим местом... оно мертво, и я уверен что подобное происходит с другими мирами, с которыми оно связано, и скоро это случится и с моим миром... и мне надо постараться не допустить этого."; } else { switch (self.topics) { 0: print "@<<Габриэла, расскажи о себе@>>, -- решил поинтересоваться ты, -- @<<как ты сюда попала?@>>^^ @<<Меня зовут Габриэла Камински, я студентка@>>, -- она на мгновение замялась, -- @<<Была студенткой, теперь я всё вижу в прошедшем времени, вот такой вот оптимизм@>>, -- попыталась пошутить Габриэла.^"; 1: print "@<<Не падай духом, расскажи мне, что произошло@>>, -- повторил ты.^^ @<<В Католическом университете Люблина я изучала латынь@>>, -- начала она, -- @<<В начале июня этого года я пошла в библиотеку чтобы взять книги, которые нам задали изучить, там всё и произошло@>>.^^ @<<Я думаю у меня состоится серьёзный разговор с библиотекарем, когда я выберусь отсюда@>>, -- вставил ты. Габриэла уставилась на тебя.^^ @<<Прости что перебил, прошу продолжай@>>.^^ @<<Взяв несколько книг, я уже возвращалась чтобы оформить читательский билет, как обратила внимание на открытую секцию старинных книг@>>, -- продолжила она, -- @<<Любопытство взяло верх, я подошла к стеллажу, и мне практически сразу бросилась в глаза книга без названия на корешке, я аккуратно сняла её с полки и раскрыла, там я и наткнулась на страницу с заклинанием. Я поначалу приняла всё это как шутку, но я ошибалась...@>> -- Габриэла не смогла сдержать слёз.^"; 2: print "@<<Что ты знаешь об этом месте?@>> -- решил продолжить разговор ты.^^ @<<Как я поняла, книга рассказывает о нескольких мирах. В самом начале говорится о перекрёстке миров и использовании врат, и я уверена что речь шла об этом месте. Дальше шло описание нашего мира, и в конце было написано заклинание ~возврата~, его я и прочла@>>.^"; 3: print "@<<Ты знаешь как нам выбраться отсюда?@>> -- ты не перестаёшь задавать ей вопросы.^^ @<<Я не уверена, но там есть некое... устройство@>>, -- Габриэла указала в сторону странных каменных сооружений, -- @<<В книге упоминалось о нём, о том что для каждого мира свои врата@>>.^^ @<<Что-нибудь ещё?@>> -- с надеждой спрашиваешь ты.^^ @<<Да, в самом начале описания нашего мира говорилось о том, что последний Камень Путей спрятан в башне, и использовать его можно только в крайнем случае@>>.^"; 4: print "@<<А где эта башня?@>>^^ @<<Вон она, ты можешь увидеть отсюда её вершину@>>, -- она указала в сторону джунглей, -- @<<Только это не имеет значения, я не знаю как в неё попасть, десятки раз я обходила её вокруг, но там нет ни дверей, ни окон. Если там что-то и спрятано, отсюда этого не достать@>>.^^ @<<Оставайся здесь -- может, я что-нибудь придумаю@>>. @<<Прошу тебя@>>, -- слёзы вновь появились на её глазах, -- @<<Я больше не выдержу здесь, мне надо обратно, я хочу домой@>>^"; 5: print "@<<Может, на этом острове есть что-нибудь ещё примечательное?@>> -- спрашиваешь ты.^^ @<<Да... здесь внизу есть грот, но я никак не смогла придумать способ туда спуститься@>>, -- говорит Габриэла.^"; grotknown = 1; 6: print "@<<А как ты здесь живёшь?@>> -- интересуешься ты.^^ @<<Здесь нет никакой живности, но очень много вкусных и спелых фруктов, так что еды хватает. Да и тут недалеко есть ручей@>>, -- отвечает она.^"; default: print "Ты больше не знаешь, о чём расспросить Габриэлу.^"; } self.topics++; rtrue; } ], life [; Give: if (noun == flower) { move flower to gabriela; "Ты даришь ей найденный у грота цветок: @<<Это тебе@>>.^^ @<<Спасибо. Очень приятно. Но не стоило@>>.^^ @<<Я знаю. Но мне почему-то кажется что это было необходимо сделать... уверен что-то подобное было необходимо тебе, после долгого одиночества@>>."; } Kiss: "Ты бы не хотел портить отношения в начале знакомства."; ], has female animate; Object pied "У пьедестала" with description "Ты стоишь возле некого каменного пьедестала с шестью углублениями. По сторонам возле пьедестала стоят каменные ворота в количестве 6 штук. Вокруг с запада и востока растут джунгли и зелёная трава.^^Отсюда можно вернуться на юг на утёс или пойти на север сквозь джунгли.", n_to construct, s_to cliffs, has light; Object -> pedestal "пьедестал/" with name 'пьедестал', description "Каменный диск на опоре, с полностью покрытой знаками поверхностью. На нём отчётливо видны 6 пустых углублений.", before [; LetGo: if (noun == thestone) { "Тебе не нужно брать камень -- портал уже открыт."; } Receive: if (noun == thestone && self hasnt general) { give self general; "@<<Ян...@>>, -- Габриэла обратила твоё внимание, -- @<<Подожди, не устанавливай камень@>>.^^ @<<Что такое?@>>, -- взволновала тебя её просьба.^^ @<<Я... я была не до конца искренне с тобой@>>, -- она остановилась и перевела дыхание, -- @<<В книге было чётко сказано, что через портал может пройти только один человек, я считаю что ты обязан знать это@>>.^^ @<<И что нам делать?@>>, -- в замешательстве спрашиваешь ты.^^ @<<Я не знаю... у нас есть только два варианта. Если ты позволишь мне вернуться домой, просто поставь камень на пьедестал и скажи мне -- этот выбор за тобой@>>."; } ], after [; Receive: if (noun == thestone) { move exitportal to pied; move gabriela to pied; "Ты устанавливаешь Камень Путей на одно из углублений, происходит вспышка света и открывается портал.^^Габриэла с удивлением смотрит на то, что произошло."; } ], has scenery supporter male; Object -> gates "ворот/а" with name 'ворота' 'ворот', description "Они выглядят как обычные каменные ворота.", has scenery neuter; Object exitportal "портал/" with name 'портал', description "Большой яркий фиолетовый портал, ведущий неизвестно куда.", describe "Возле пьедестала открылся крупный фиолетовый портал.", before [; Enter: deadflag = 2; print "Ты шагаешь в портал, оставляя Габриэлу позади. Ты знаешь, что не хочешь такой участи для себя, ты свой выбор сделал, ты использовал свой единственный шанс выбраться с этого, Вселенной забытого места.^^^"; print_ret (emphstring) "Такова история человека по имени Ян. Точно сказать нельзя, вернулся ли он домой или застрял где-то на полпути, но одно известно точно: на следующий день, 1 сентября 1939 года, Немцы вторглись в Польшу, и когда отряд противника вошёл в дом Яна Зеленского, дом был пуст, а на втором этаже возле кресла лежала старая книга с таинственными символами..."; ], has static male enterable; Object construct "Возле сооружения" with description "Перед тобой предстаёт необычное гладкое сооружение, как будто бы вкопанное в землю. Из его верхушки возвышается башня. Здесь всё окружают сплошные джунгли, и отсюда можно вернуться только обратно на юг к пьедесталу.", s_to pied, has light; Object -> building "сооружение/" with name 'сооружение' 'башн', description "Можно представить, как будто бы это большой шар, который вкопан в землю, но на поверхности торчит едва ли его половина. Он сделан из очень гладкого камня. Наверх из этого шара поднимается каменная башня, испещрённая щелями. Башня заканчивается расширением, напоминающим очень маленькую комнатку с оконцем.", has scenery neuter; Object -> liana "лиан/а" with name 'лиан' 'веревк', description "Прочная лиана с одного из деревьев.", describe "^Здесь лежит длинная и с виду прочная лиана.", before [; Tie: if (second == tree) { give tree general; remove self; "Ты привязываешь лиану к дереву и сбрасываешь другой конец вниз с обрыва."; } if (second == gabriela) { "@<<Ты что, из меня рабыню захотел сделать?..@>>"; } ], after [; Take: "Ты подбираешь лиану с земли."; Drop: "Ты бросаешь лиану обратно на землю."; ], has female; Object tower "Внутри башни" with description "Теперь ты находишься внутри башни, которую видел снаружи. ^^Винтовая лестница ведёт вниз, а маленькое окно ведёт на юг, наружу.", out_to [; if (thestone notin player) "Ты забыл забрать отсюда что-то важное."; if (window hasnt open) print "Ты вылазишь через открытое окно наружу.^"; else { give window open; print "Ты открываешь окно и вылазишь через него наружу.^"; } return construct; ], s_to [; <>; ], has light; Object -> window "окн/о" with name 'окн' 'окошк', description "Маленькое окно ведёт наружу на юг. Через него видны джунгли и часть строения, в котором ты находишься.", before [; Search: <>; Enter: <>; ], has scenery openable ~open neuter; Object -> stand "постамент/" with name 'постамент', description [; print "Каменный постамент высотой по пояс. "; if (thestone in stand) { print "На нём лежит плоский круглый камень."; } print "^"; rtrue; ], describe "^Возле северной стены комнаты возвышается каменный постамент.", before [; ], has static container open male; Object -> -> thestone "камен/ь Путей" with name 'камен' 'путей', description "Гладкий плоский камень, как в игре го, только крупный. Это должен быть тот самый Камень Путей.", after [; Take: move gabriela to pied; rfalse; ], has male; Object grot1 "Грот" with description "Вход в грот находится в десяти метрах от воды. Стены каменные, но кем-то хорошо обработанные. Грот тянется вглубь острова на север. Лиана свисает сверху с обрыва.^^Здесь солнечный свет освещает небольшую площадь у входа, заросшую травой.", u_to "Ты цепляешься за лиану, но силы подводят тебя, и ты уже не можешь забраться обратно наверх.", n_to grot2, has light; Object -> smallgrass "трава" with name 'площад' 'трав', description "На входе в грот на площади, освещаемой солнцем, растёт трава. Ты замечаешь, что среди травы также растёт и необычный жёлтый цветок.", before [; Examine: give flower ~concealed; rfalse; ], has scenery female; Object -> flower "цвет/о/к/" with name 'цветок' 'цветк' 'желт', casegen [ beg end csID; return ICVowel (csID, beg, end, 'о', 0); ], description "Прекрасный экзотический жёлтый цветок.", describe "^В траве растёт красивый цветок. Удивительно, как он мог вырасти среди этой травы.", before [; Smell: "Какой чудесный запах! Наверняка, цветок понравится Габриэле."; ], after [; Take: if (self hasnt general) { give self general; "Ты осторожно срываешь цветок и берёшь его с собой."; } ], has concealed male; ! general - сорван Object grot2 "Внутри грота" with description "Каменные стены сближаются и здесь становится довольно тесно. На север ведёт кованая металлическая дверь, а также отсюда можно вернуться на юг ко входу в грот.", n_to grotdoor, s_to grot1, has light; Object grotdoor "двер/ь" with name 'прочн' 'двер' 'кован' 'металлическ', description "Прочная кованая металлическая дверь с разнообразными узорами на ней.", when_open "Металлическая дверь открыта.", when_closed "Металлическая дверь закрыта.", door_to [; if (self in grot2) return grot3; return grot2; ], door_dir[; if (self in grot2) return n_to; return s_to; ], found_in grot2 grot3, after [; Open: "Ты прикладываешь усилие и открываешь дверь."; Close: "Ты с усилием закрываешь металлическую дверь."; ], has static door openable female; Object grot3 "Внутри грота" with description "Здесь грот заканчивается тупиком, единственная особенность этого места -- винтовая лестница, ведущая наверх. На юг ведёт металлическая дверь.", u_to tower, !s_to grot2, has light; Object jungle "джунгл/и" with name 'джунгл' 'лес' 'зелен', description "Здесь повсюду яркие зелёные джунгли, которые закрывают доступ к остальной части острова.", found_in cliffs construct pied tower, has scenery pluralname; !============================================================================ ! Stanard and extended grammar Include "RussiaG"; !============================================================================ Extend 'чит' first * legible -> Read; Verb meta 'xyzzy' * -> Xyzzy; Verb 'сорвать' * cNom_noun -> Take; Verb 'AMORPHUS' * 'TELEPORCIUS' -> Amorphus; Verb 'говорить' 'г' * 'с' cIns_noun -> TalkTo * noun -> TalkTo; Verb meta 'справка' 'хелп' 'помощь' 'help' 'info' 'инфо' * -> Help; Object "справка" VerbDepot with name 'справка' 'хелп' 'инфо' 'помощь' 'help' 'info';