Permalink
Cannot retrieve contributors at this time
Constant Story "СРЕДИ РУИН"; | |
Constant Headline "^Интерактивный пример^ | |
Copyright (c) 1999 by Angela M. Horns.^"; | |
! ---------------------------------------------------------------------------- ! | |
! Эту версию собрал Роджер Фирт (Май 2001) из множества фрагментов игры, | |
! которые можно найти в Версии 4/1 Inform Designer's Manual. | |
! | |
! Русская версия: Гаев Д.Г. (август 2004) | |
! | |
! PC | |
! лампа,словарь,карта | |
! | |
! ШИРОКОЕ ПЛАТО | |
! | гриб,ящик,фотокамера,газета,ступени | |
! | | |
! | | |
! КВАДРАТНАЯ КАМЕРА -------------------- СЕТЬ | |
! | надписи,луч света,(ключ) кокон | |
! | | |
! | | |
! НЕРОВНЫЙ КОРИДОР | |
! | статуэтка,дверь | |
! | | |
! | | |
! ВЕРХНИЙ КАНЬОН УСЫПАЛЬНИЦА | |
! | шар / \ рисунки,алтарь,маска,(жрец) | |
! | ---------- ---------- | |
! | / \ | |
! ШИБАЛЬБА ПРЕДДВЕРЬЕ | |
! | стелла | клетка,скелеты,(вепрь) | |
! | | | |
! | | | |
! НИЖНИЙ КАНЬОН ПОГРЕБАЛЬНЫЙ КОЛОДЕЦ | |
! | бездонная пропасть соты с медом | |
! | | |
! | | |
! КАМЕННЫЙ МОСТ | |
! кость | |
! | |
! ---------------------------------------------------------------------------- ! | |
Constant MAX_CARRIED = 7; ! Определено в DM4 §22 | |
Constant MAX_SCORE = 30; ! Определено в DM4 §22 | |
Include "Parser"; | |
Include "VerbLib"; | |
Constant CANTGO_SHOWROOMS; | |
Constant CANTGO_EXITS; | |
Include "SmartCantGo"; | |
! ---------------------------------------------------------------------------- ! | |
! TREASURE: базовый класс для всех сокровищ | |
! | |
! Определено в DM4 §5, изменено в §23 | |
! ---------------------------------------------------------------------------- ! | |
Class Treasure | |
with before [; | |
Take, Remove: | |
if (self in packing_case) | |
"С распаковкой столь бесценного артефакта | |
стоит подождать возвращения в Институт."; | |
if (self.photographed_in_situ == false) | |
"На дворе тридцатые годы -- старые недобрые времена прошли. | |
Прежде, чем взять артефакт, надо запечатлеть для науки его | |
оригинальное местонахожение -- иначе это просто воровство!"; | |
Photograph: | |
if (self has moved) | |
"И состряпать липовое археологическое ~свидетельство~?!"; | |
if (self.photographed_in_situ) "Одного раза вполне достаточно."; | |
], | |
after [; | |
Insert: | |
if (second == packing_case) { | |
score = score + self.cultural_value; | |
if (score == MAX_SCORE) { | |
deadflag = 2; | |
"Когда Вы тщательно упаковали ", (cAcc) noun, " в ящик, | |
большой краснохвостый ара поднялся в небо с верхушки дерева, | |
вновь оглушая Вас шумом своих тяжелых крыльев, | |
напоминающим грохот далекого камнепада... | |
После этого ночное небо прояснилось, | |
а высоко над тихими джунглями поднялся серп луны. | |
Март 1938 года подошел к концу, | |
а для Вас настало время вернуться домой."; | |
} | |
print_ret (CCNom) noun, " теперь надежно упакован", (SAEnd) noun, "."; | |
} | |
Photograph: | |
self.photographed_in_situ = true; | |
], | |
cultural_value 5, | |
photographed_in_situ false; | |
! ---------------------------------------------------------------------------- ! | |
! ~ШИРОКОЕ ПЛАТО~ -- начало игры. | |
! | |
! Определено в DM4 §4, изменено в §8, §9 и §23 | |
! ---------------------------------------------------------------------------- ! | |
Object Forest "~Широкое Плато~" | |
with description | |
"Именно так в Ваших записях названо это невысокое известняковое плато, | |
затерянное где-то в дебрях дождевого леса. Со всех сторон его окружает | |
оливковая зелень деревьев; после недавно прошедшего теплого дождя | |
воздух полон влажного тумана и назойливой мошкары. | |
~Структура номер 10~ -- это хаотическое нагромождение каменных обломков, | |
некогда бывших погребальной пирамидой. От нее уцелело очень немногое -- | |
лишь высеченные в камни грубые ступени, ведущие куда-то вниз, | |
в непроглядную тьму.", | |
d_to steps, | |
in_to steps, | |
u_to "Стволы деревьев усеяны множеством острых шипов. | |
Невозможно забраться по ним, не изрезав себе руки в клочья.", | |
cant_go | |
"Путь назад преграждает почти непроходимый дождевой лес, | |
и Вы прорубались сквозь него много дней подряд не для того, | |
чтобы оставить свое открытие и уйти с пустыми руками. | |
Вам надо сделать хотя бы несколько интересных находок, | |
прежде чем вернуться к цивилизации.", | |
before [; | |
Listen: "Обезьяны-ревуны, летучие мыши, попугаи..."; | |
], | |
has light; | |
! Определено в DM4 §4, изменено в Упр. 1 и §23 | |
Object -> mushroom "пятнист/ый гриб/" | |
with name 'пятнист' | |
'гриб' 'грибок' 'грибочек' 'поганк', | |
initial | |
"Покрытый темными пятнами гриб на длинной тонкой ножке | |
торчит из влажной мягкой земли.", | |
description | |
"Шляпка гриба покрыта темными пятнами неприятного вида, | |
усиливающими подозрение в его ядовитости.", | |
after [; | |
Take: | |
if (self.mushroom_picked) | |
"Вы подняли медленно разлагающийся гриб."; | |
self.mushroom_picked = true; | |
"Вы взяли гриб, аккуратно расщепив тонкую ножку."; | |
Drop: | |
"Слегка потрепанный гриб упал на землю."; | |
Eat: | |
steps.rubble_filled = false; | |
"Вы осторожно откусили от шляпки маленький кусочек... | |
Едкий, неприятный вкус как будто заполнил весь окружающий мир... | |
Полет попугая над головой оглушил Вас, шум его крыльев | |
удивительно напоминает грохот медленно осыпающихся камней..."; | |
], | |
mushroom_picked false, | |
has edible male; | |
! Определено в DM4 §12 | |
Object -> packing_case "упаковочн/ый ящик/" | |
with name 'упаковочн' 'коробк' 'ящик' 'тар', | |
initial | |
"На земле стоит большой упаковочный ящик, | |
предназначенный для найденных Вами предметов древней культуры, | |
представляющих научный интерес.", | |
before [; | |
Take, Remove, PushDir: | |
"Ящик слишком тяжел и громоздок, чтобы с ним возиться -- | |
по крайней мере, до полного завершения экспедиции."; | |
], | |
has static container open openable male; | |
! Определено в DM4 §6 | |
Object -> -> camera "фотокамер/а" | |
with name 'камер' 'фото' 'фотокамер' 'аппарат', | |
description | |
"Громоздкая, массивная, неповоротливая фотокамера, | |
рассчитанная на мокроколлодионные пластинки. | |
Как и у большинства археологов, Ваши чувства | |
к ней колеблются между любовью и ненавистью." | |
has female; | |
! Определено в DM4 §23 | |
Object -> -> newspaper "газет/а месячной давности" | |
with name 'газет' 'стар' 'месячн' 'номер' 'таймс', | |
description | |
"Старый номер ~Таймс~ от 26 февраля 1938 г., одновременно | |
сырой и ломкий после месячного воздействия здешнего климата -- | |
Вы сами чувствуете себя примерно так же. | |
В Лондоне, как обычно, туман." | |
has female; | |
! Определено в DM4 §4, изменено в §5 и §23 | |
Object -> steps "каменн/ые ступен/и" | |
with name 'каменн' 'ступен' 'лестниц' 'спуск' | |
'похоронн' 'пирамид' 'структур' 'десять' '10', | |
description [; | |
if (self.rubble_filled) | |
"После первых ступеней путь преграждает груда камней."; | |
print "Потрескавшиеся, стертые каменные ступени ведут в темную глубину. | |
Вы "; | |
if (Square_Chamber hasnt visited) | |
print "-- первый, кто спускается"; | |
else | |
print "были первым, кто спустился"; | |
" по ним за последние пятьсот лет. | |
На верхней ступени изображен знак ~Q1~ (см. словарь)."; | |
], | |
door_to [; | |
if (self.rubble_filled) | |
"Непроходимый каменный завал не дает спуститься вниз."; | |
return Square_Chamber; | |
], | |
door_dir d_to, | |
rubble_filled true, | |
has scenery door open pluralname; | |
! ---------------------------------------------------------------------------- ! | |
! КВАДРАТНАЯ КАМЕРА. | |
! | |
! Определено в DM4 Упр. 2, изменено в $8 и $9 | |
! ---------------------------------------------------------------------------- ! | |
Object Square_Chamber "Квадратная камера" | |
with description | |
"Глубокое и мрачное каменное подземелье, примерно десять на десять ярдов. | |
Со ступеней, ведущих на поверхность, пробивается яркий луч | |
солнечного света, освещая подземелье рассеянным светом. | |
За низкими дверными проходами, открывающимися на юг и на восток, | |
лежит непроглядная тьма.", | |
u_to Forest, | |
e_to Wormcast, | |
s_to Corridor, | |
before [; | |
Insert: | |
if (noun == eggsac && second == sunlight) { | |
remove eggsac; | |
move stone_key to self; | |
"Вы положили кокон на пол в пятно яркого солнечного света. | |
Он словно вскипел, раздулся и через мгновение взорвался | |
сотнями крошечным насекомых, бросившихся в разные стороны | |
в поисках темноты. На каменном полу осталась лишь лужица слизи, | |
а в ней -- любопытный каменный ключ."; | |
} | |
], | |
has light; | |
! Определено в DM4 §8 | |
Object -> "надпис/ь в камне" | |
with name 'каменн' 'высеченн' 'знак' 'символ' 'надпис', | |
initial | |
"Стены, пол и потолок покрыты знаками, глубоко высеченными в камне.", | |
description | |
"Каждый раз, когда Вы смотрите на непонятные знаки, они неподвижны. | |
Но трудно избавиться от ощущения, что как только Вы отводите взгляд, | |
они оживают и начинают ползать по стенам. | |
Два символа явно преобладают: Стрела и Круг.", | |
has static female; | |
! Определено в DM4 §8 | |
Object -> sunlight "луч/ света" | |
with name 'свет' 'луч' 'зайчик' 'пятн' 'пыл' 'пылинк', | |
description | |
"Мириады крошечных пылинок, пляшущих в луче света, | |
делают его не только видимым, но и почти осязаемым.", | |
before [; | |
Examine, Search: ; | |
default: | |
"Это всего лишь нематериальный луч света."; | |
], | |
has scenery male; | |
! ---------------------------------------------------------------------------- ! | |
! НЕРОВНЫЙ КОРИДОР. | |
! | |
! Определено в DM4 §13 | |
! ---------------------------------------------------------------------------- ! | |
Object Corridor "Неровный коридор" | |
with description | |
"Низкий, квадратный в сечении неровный коридор ведет с севера на юг.", | |
n_to Square_Chamber, | |
s_to StoneDoor; | |
! Определено в DM4 §5 | |
Treasure -> statuette "маленьк/ая ценн/ая статуэтк/а" | |
with name 'маленьк' 'ценн' 'статуэтк' 'стату' 'нимф' 'зме', | |
initial | |
"Здесь находится маленькая, но ценная статуэтка!", | |
description | |
"Статуэтка изображает что-то вроде нимфы со змеей, | |
обвившейся вокруг шеи." | |
has female; | |
! Определено в DM4 §13 | |
Object -> StoneDoor "желт/ая каменн/ая двер/ь" | |
with name 'массивн' 'желт' 'каменн' 'двер', | |
description | |
"Массивная желтая каменная дверь.", | |
when_open | |
"Желтая каменная дверь теперь открыта!", | |
when_closed | |
"Дальнейший путь преграждает закрытая дверь из желтого камня.", | |
door_to [; if (self in Corridor) return Shrine; return Corridor; ], | |
door_dir [; if (self in Shrine) return n_to; return s_to; ], | |
with_key stone_key, | |
found_in Corridor Shrine, | |
has static door openable lockable locked female; | |
! ---------------------------------------------------------------------------- ! | |
! УСЫПАЛЬНИЦА. | |
! | |
! Определено в DM4 §23 | |
! ----------------------------------------------------------------------------- | |
Object Shrine "Усыпальница" | |
with description | |
"Величественная гробница, основой для создания которой | |
предположительно стала естественная известняковая пещера. | |
Это особенно хорошо заметно по двум ее ответвлениям, | |
лежащим к юго-западу и юго-востоку от Вас.", | |
n_to StoneDoor, | |
se_to Antechamber, | |
sw_to | |
"Дальнейший путь в этом направлении пролегает сквозь узкую трещину, | |
пройти которую мешает бесчисленное множество сосулек, | |
свисающих с потолка. Сквозь толщу льда на стене с трудом, | |
но можно разглядеть символ: ~Полумесяц~."; | |
! Определено в DM4 §23 | |
Object -> paintings "настенн/ые рисунк/и" | |
with name 'рисунок' 'рисунк' 'властител' 'соперник' 'изображен' 'граффити', | |
initial | |
"Очень яркое и живое изображение, похожее на настенное граффити -- | |
могущественный Властитель, попирающий ногами | |
поверженного соперника.", | |
description | |
"Тела на рисунках кроваво-красные. | |
Знаки указывают дату события по календарю майя -- | |
~10 бактун 4 катун 0 тун 0 уинал 0 кин~ -- своеобразная годовщина, | |
когда Властитель наконец обезглавливал своего плененного соперника | |
после нескольких лет ритуальных пыток, | |
как было заведено в городах-государствах майя.", | |
has static pluralname; | |
! Определено в DM4 §12 и §15 | |
Object -> stone_table "каменн/ый алтар/ь" | |
with name 'больш' 'каменн' 'плит' 'алтар', | |
initial | |
"Алтарь -- большая каменная плита -- несомненно является | |
важнейшей деталью интерьера Усыпальницы.", | |
has enterable supporter static male; | |
! Определено в DM4 §11 | |
Treasure -> -> mask "нефритов/ая лицев/ая маск/а" | |
with name 'мозаичн' 'нефритов' 'лицев' 'маск', | |
initial | |
"На алтаре покоится мозаичная маска для лица из нефрита.", | |
description | |
"За стеклом музейной витрины она будет выглядеть впечатляюще!", | |
after [; | |
Wear: | |
move priest to Shrine; | |
if (location == Shrine) | |
"Бросив взгляд сквозь затянутые обсидианом глазные прорези, | |
Вы обнаружили, что не одиноки! | |
Рядом с алтарем стоит призрак мумифицированного жреца, | |
безмолвно и безразлично ожидающий Ваших слов."; | |
Disrobe: | |
remove priest; | |
], | |
cultural_value 10, | |
has clothing female; | |
! ---------------------------------------------------------------------------- ! | |
! ВЕРХНИЙ/СЕВЕРНЫЙ КОНЕЦ КАНЬОНА. | |
! ---------------------------------------------------------------------------- ! | |
! Определено в DM4 §23 | |
Object Canyon_N "Верхний конец каньона" | |
with description | |
"Верхний (и более широкий) северный конец каньона | |
кончается неровной стеной карстовой пещеры.", | |
s_to Junction, | |
d_to Junction, | |
has light; | |
! Определено в DM4 §15, изменено в Упр. 24 и §23 | |
Object -> huge_ball "больш/ой шар/ из пемзы" | |
with name 'больш' 'каменн' 'порист' 'пемзов' 'шар' 'сфер', | |
initial | |
"Здесь покоится шар из пористого камня восьмифутового диаметра.", | |
description | |
"Он диаметром около восьми футов -- но, поскольку камень пористый, | |
сравнительно легок.", | |
before [; | |
PushDir: | |
if (location == Junction && second == ne_obj) | |
"Вход в Усыпальницу намного уже восьми футов."; | |
AllowPushDir(); | |
rtrue; | |
Pull, Push, Turn: | |
"Похоже, что Вам вполне под силу катить его -- | |
надо только указать, куда именно."; | |
Take, Remove: | |
"Для этого восьмифутовая каменная сфера явно тяжеловата."; | |
], | |
after [; | |
PushDir: | |
if (second == n_obj) "Напрягая силы, Вы вкатили шар вверх по склону."; | |
if (second == u_obj) <<PushDir self n_obj>>; | |
if (second == s_obj) "Вам еле удалось затормозить катящийся вниз шар."; | |
if (second == d_obj) <<PushDir self s_obj>>; | |
], | |
has static male; | |
! ---------------------------------------------------------------------------- ! | |
! ШИБАЛЬБА/ПЕРЕКРЕСТОК. | |
! ---------------------------------------------------------------------------- ! | |
! Определено в DM4 §23 | |
Object Junction "~Шибальба~" | |
with description | |
"Вы в пятидесяти метрах под дождевым лесом, и звук капающей воды | |
слышится повсюду: эти глубокие, проеденные подземными водами | |
известняковые пещеры ветвятся наподобие колоссальных корней. | |
Узкая щель ведет назад на северо-восток в Усыпальницу | |
мимо широкой рухнувшей колонны из обледеневшего камня. | |
Что-то вроде каньона, с белесыми стенами цвета акульих зубов, | |
тускло поблескивающими в свете Вашей натриевой лампы, | |
проходит рядом вверх на север и вниз на юг.", | |
ne_to Shrine, | |
n_to Canyon_N, | |
u_to Canyon_N, | |
s_to Canyon_S, | |
d_to Canyon_S, | |
has light; | |
! Определено в DM4 §23 | |
Treasure -> stela "пограничн/ая стелл/а" | |
with name 'стелл' 'камен' 'знак' 'указател', | |
initial | |
"Небольшая каменная стелла возвышается подобно пограничному столбу | |
на краю пропасти.", | |
description | |
"Высеченные на стелле знаки, похоже, должны предупреждать, | |
что здесь проходит граница Шибальбы -- Мира Смерти. | |
Знак ~Птица~ встречается намного чаще других." | |
has female; | |
! ---------------------------------------------------------------------------- ! | |
! НИЖНИЙ/ЮЖНЫЙ КОНЕЦ КАНЬОНА. | |
! ---------------------------------------------------------------------------- ! | |
! Определено в DM4 §23 | |
Object Canyon_S "Нижний конец каньона" | |
with description | |
"В своем нижнем (и самом узком) южном конце каньон завершается | |
бездонной пропастью. | |
Там кромешная, вызывающая головокружение тьма, | |
из которой не доносится ни единого звука.", | |
n_to Junction, | |
u_to Junction, | |
s_to "Прямо в пропасть?", | |
d_to nothing, | |
has light; | |
! Определено в DM4 §12, изменено в §21 и §23 | |
Object -> chasm "бездонн/ая пропаст/ь" | |
with name 'пугающ' 'глубок' 'бездонн' 'пропаст' 'тьм', | |
before [; | |
Enter: | |
deadflag = 3; | |
"Вы не рассуждая бросились в бездонную тьму, | |
раздробив на лету череп об один из каменных уступов. | |
За миг до смерти перед Вами промелькнуло видение -- | |
Божество с совиной головой..."; | |
JumpOver: | |
"Намного шире, чем Вы способны перепрыгнуть."; | |
], | |
after [; | |
Receive: | |
remove noun; | |
print_ret (CCNom) noun, " беззвучно канул", (SAEnd) noun, | |
" в кромешную темноту пропасти."; | |
Search: | |
"Пропасть глубока и до самых краев заполнена тьмой."; | |
], | |
react_before [; | |
Jump: | |
<<Enter self>>; | |
Go: | |
if (noun == d_obj) <<Enter self>>; | |
], | |
each_turn [; | |
if (huge_ball in parent(self)) { | |
remove huge_ball; | |
Canyon_S.s_to = On_Ball; | |
Canyon_S.description = | |
"Теперь теперь южный конец каньона продолжается | |
большим каменным шаром, намертво застрявшим между | |
стенами пропасти."; | |
"^Выскользнув из Ваших рук, огромный каменный шар скатился прямо | |
в раскрытые челюсти пропасти -- и, подскочив назад, нанес Вам | |
скользящий удар по лбу. Обливаясь кровью, Вы упали на него и...^ | |
То ли каменный шар внезапно уменьшился в размерах, | |
то ли Ваша рука резко увеличилась -- | |
но теперь шар у Вас в руке, а прямо перед Вами стоит ~Аллигатор~, | |
~Сын семи ара~, на площадке для игры в шары, | |
окруженный насаженными на копья головами своих прежних соперников, | |
и челядью, жадно требующей Вашей крови, | |
и единственное, что Вам остается -- метнуть шар прямо в него...^ | |
Но вдруг все это кончилось, и осталась | |
лишь чудовищная головная боль."; | |
} | |
], | |
has scenery open container female; | |
! ---------------------------------------------------------------------------- ! | |
! КАМЕННЫЙ МОСТ. | |
! | |
! Определено в DM4 §23 | |
! ---------------------------------------------------------------------------- ! | |
Object On_Ball "Каменный мост" | |
with description | |
"Импровизированный мост, образованный большим шаром из пемзы, | |
плотно зажатым между краями пропасти. Так или иначе, | |
но путь по каньону здесь завершается.", | |
n_to Canyon_S, | |
d_to Canyon_S, | |
u_to Canyon_S, | |
has light; | |
! Определено в DM4 §23 | |
Treasure -> "кост/ь с резьбой" | |
with name 'украшенн' 'кост' 'резьб', | |
initial | |
"От жертвенных даров, брошенных когда-то в эту пропасть, | |
чудом уцелело лишь одно: покрытая тонкой резьбой кость | |
(очень легкая на вид), застрявшая в узкой трещине в стене каньона.", | |
description | |
"Рука, держащая кисть для рисования, зажата в челюстях Итцамны, | |
изобретателя письма (в его змеином обличье)." | |
has female; | |
! ---------------------------------------------------------------------------- ! | |
! ПРЕДДВЕРЬЕ. | |
! | |
! Определено в DM4 §23 | |
! ---------------------------------------------------------------------------- ! | |
Object Antechamber "Преддверье" | |
with description | |
"Юго-восточная оконечность Гробницы образует довольно интересное место.", | |
nw_to Shrine; | |
! Определено в DM4 Упр. 22, изменено в Упр. 55 | |
Object -> cage "железн/ая клетк/а" | |
with name 'железн' 'клетк' 'прут' 'решетк' 'знак', | |
description | |
"Символы на клетке таковы: Птица, Стрела, Вепрь.", | |
inside_description [; | |
if (self.floor_open) | |
"Узкая нора в земляном полу клетки открывает путь вниз, | |
в погребальный колодец."; | |
"Толстые прутья железной решетки окружают вас со всех сторон."; | |
], | |
when_open | |
"Здесь воздвигнута железная клетка -- открытая и достаточно большая | |
для того, чтобы Вы могли в нее войти. На ее раме заметны | |
какие-то символы.", | |
when_closed | |
"Железная клетка сейчас закрыта.", | |
after [; | |
Enter: | |
print "Обитающие в клетке скелеты внезапно ожили, | |
заключив Вас в свои костяные объятия и медленно выдавливая | |
из Вас душу! | |
Вы быстро потеряли сознание -- а когда пришли в себя, | |
немедленно пожалели об этом, увидев, что произошло...^"; | |
move warthog to Antechamber; | |
remove skeletons; | |
give self ~open; | |
give warthog light; | |
self.after = 0; | |
ChangePlayer(warthog, 1); | |
<<Look>>; | |
], | |
react_before [; | |
Go: | |
if (noun == d_obj && self.floor_open) { | |
PlayerTo(Burial_Shaft); | |
rtrue; | |
} | |
], | |
floor_open false, | |
has enterable transparent container openable open static female; | |
! Определено в Упр. 55 | |
Object -> -> skeletons "скелет/ы" | |
with name 'скелет' 'череп' 'ребр' 'кост' 'останк', | |
description "Малоприятное зрелище." | |
has pluralname static; | |
! ---------------------------------------------------------------------------- ! | |
! ПОГРЕБАЛЬНЫЙ КОЛОДЕЦ. | |
! | |
! Определено в Упр. 55 | |
! ---------------------------------------------------------------------------- ! | |
Object Burial_Shaft "Погребальный колодец" | |
with description | |
"Когда-нибудь после, в своих рабочих заметках, Вы напишите следующее: | |
~Это была сводчатая колодцеобразная гробница, запечатанная сверху | |
осыпавшейся землей. Нарисованные на стенах фигуры, предположительно, | |
изображали Девятерых Властителей Ночи. Разбросанные повсюду кости, | |
скорее всего, принадлежали принесенным в жертву (одному старику | |
и нескольким детям); из других остатков похоронных ритуалов | |
можно было видеть лапы ягуара.~^ | |
(Хорошо, что в дневнике не останется следа того безумного ужаса, | |
который Вы сейчас испытываете.)", | |
n_to Wormcast, | |
u_to [; | |
cage.floor_open = true; | |
self.u_to = self.opened_u_to; | |
move selfobj to self; | |
"В мощном кабаньем прыжке Вы пробили башкой земляную пробку | |
над погребальным колодцем. Что-то безжизненное и очень тяжелое | |
обрушилось на Вас сверху вместе с грудами земли -- и, когда Вы | |
пришли в себя, Вы поняли, что нечто гротескное и необъяснимое | |
произошло вновь...^"; | |
ChangePlayer(selfobj); | |
give warthog ~light; | |
<<Look>>; | |
], | |
cant_go | |
"Древние архитекторы этого подземелья не предполагали, | |
что кому-либо придется выходить отсюда. Хорошо, | |
что некий вепрь умудрился прорыться сюда с севера.", | |
before [; Jump: <<Go u_obj>>; ], | |
opened_u_to [; PlayerTo(cage); rtrue; ], | |
has light; | |
! Определено в DM4 §5 | |
Treasure -> honeycomb "древн/ие сот/ы" | |
with name 'древн' 'сот' 'мед', | |
initial | |
"Здесь Вы видите древние, но отлично сохранившиеся соты с медом!", | |
description | |
"Наверное, еще один из вотивных даров Усопшему.", | |
after [; | |
Eat: | |
"Может быть, это был самый дорогостоящий обед в вашей жизни. | |
Конечно, вкус у меда странноватый (возможно потому, | |
что к нему подмешан прах погребенного здесь Владыки) -- | |
но все равно, мед остается медом."; | |
], | |
has edible pluralname; | |
! ---------------------------------------------------------------------------- ! | |
! СЕТЬ ЧЕРВОТОЧИН. | |
! ---------------------------------------------------------------------------- ! | |
! Определено в DM4 Упр. 7 и 8, изменено в Упр. 54 | |
Object Wormcast "Сеть ~червоточин~" | |
with description | |
"Здесь каменный пол пещеры изъеден паутиной узких проходов, | |
похожих на червоточины. Те из них, сквозь которые можно пролезть, | |
ведут на северо-восток, на юг и вверх.", | |
w_to Square_Chamber, | |
s_to [; | |
print "Узкий проход вокруг Вас стал скользким, | |
когда тепло Вашего тела растопило лед. | |
Судорожно зажмурившись, Вы заскользили куда-то | |
вниз сквозь темноту.^"; | |
if (eggsac in player) return Square_Chamber; | |
return random(Square_Chamber, Corridor, Forest); | |
], | |
ne_to [; return self.s_to(); ], | |
u_to [; return self.s_to(); ], | |
cant_go [; | |
if (player ~= warthog) | |
"Хотя интуиция подсказывает Вам, что за сетью проходов может быть | |
что-то интересное, пролезть сквозь большинство из них | |
способно лишь животное. Для располневшего от кабинетной работы | |
археолога эти норы явно слишком узки."; | |
print "Тело вепря быстро растопило лед. | |
Вы услышали собственный непроизвольный визг, когда, | |
проваливаясь сквозь темноту, свалились прямо в...^"; | |
PlayerTo(Burial_Shaft); | |
rtrue; | |
], | |
after [; | |
Drop: | |
move noun to Square_Chamber; | |
print_ret (CCNom) noun, | |
" проскальзыва", (V1bEnd) noun, " в одну из узких нор и исчеза", | |
(V1bEnd) noun, " из виду."; | |
], | |
has light; | |
! Определено в DM4 §23 | |
Object -> eggsac "блестящ/ий бел/ый кокон/", | |
with name 'блестящ' 'бел' 'кокон' 'сгусток' 'лагушач' 'икр', | |
initial | |
"Блестящий склизкий белый кокон, похожий на сгусток лягушачей икры, | |
полный яиц насекомых, прилепился в узкой расщелине одной из стен.", | |
after [; Take: "Бррр."; ], | |
react_before [; | |
Go: | |
if (location == Square_Chamber && noun == u_obj) { | |
deadflag = true; | |
"В тот момент, когда луч дневного света упал на кокон, | |
он буквально вскипел и распался на части. Прежде, чем | |
Вы его успели отшвырнуть, он превратился в рой маленьких, | |
но жадных насекомых, которые набросились на Вас..."; | |
} | |
] | |
has male; | |
! ---------------------------------------------------------------------------- ! | |
! Объекты, которые перемещаются по ходу игры. | |
! ---------------------------------------------------------------------------- ! | |
! Определено в DM4 §14, изменено в §23 | |
Object sodium_lamp "натриев/ая ламп/а" | |
with name 'тяжел' 'натриев' 'ламп', | |
describe [; | |
if (self has on) | |
"^Заженная натриевая лампа стоит на земле."; | |
"^Натриевая лампа стоит на земле."; | |
], | |
before [; | |
Examine: | |
print "Мощная археологическая натриевая лампа"; | |
if (self hasnt on) " (в данный момент выключенная)."; | |
if (self.battery_power < 10) ", горящая тусклым желтым светом."; | |
"горящая ярким желтым светом."; | |
Burn: | |
<<SwitchOn self>>; | |
SwitchOn: | |
if (self.battery_power <= 0) | |
"К сожалению, энергия батареи иссякла."; | |
if (parent(self) hasnt supporter && self notin location) | |
"Прежде, чем зажечь лампу, ее необходимо поставить на землю."; | |
Take, Remove: | |
if (self has on) | |
"Лампа слишком хрупка, а ее металлическая ручка слишком горяча, | |
чтобы ее можно было переносить в зажженном виде."; | |
PushDir: | |
if (location == Shrine && second == sw_obj) | |
"Лучшее, что Вы можете сделать -- пододвинуть лампу ближе | |
к краю Гробницы, где пол пещеры резко обрывается вниз."; | |
AllowPushDir(); | |
rtrue; | |
], | |
after [; | |
SwitchOn: | |
give self light; | |
SwitchOff: | |
give self ~light; | |
], | |
daemon [; | |
if (self hasnt on) return; | |
if (--self.battery_power == 0) give self ~light ~on; | |
if (self in location) { | |
switch (self.battery_power) { | |
10: "^Свет лампы заметно потускнел!"; | |
5: "^Лампа почти полностью погасла."; | |
0: "^Лампа внезапно погасла."; | |
} | |
} | |
], | |
battery_power 100, | |
has switchable female; | |
! Определено в DM4 §16 | |
Object dictionary "словар/ь глифов Вальдека" | |
with name 'словар' 'книг' 'справочник' 'вальдек', | |
description | |
"Основанный на ненадежных литографиях легендарного путешественника | |
и искателя приключений ~Графа~ Жана Фредерика Максимилиана Вальдека | |
(1766??-1875), этот словарь содержит в себе то очень немногое, | |
что известно о символах местной разновидности письменности Майя.", | |
before [ w1 w2 glyph; | |
Consult: | |
wn = consult_from; | |
w1 = NextWord(); | |
w2 = NextWord(); | |
if (consult_words==1 && | |
w1 ~= 'знак' or 'знаки' or 'символ' or 'символы') | |
glyph = w1; | |
else if (consult_words==2 && w1=='знак' or 'символ') glyph = w2; | |
else if (consult_words==2 && w2=='знак' or 'символ') glyph = w1; | |
else "Попробуйте ~поискать <символ> в словаре~."; | |
switch (glyph) { | |
'q1': | |
"(Единственный символ, который запал Вам в память!)^^ | |
Q1: ~священное место~."; | |
'месяц', | |
'полумесяц', | |
'луна': | |
"ПОЛУМЕСЯЦ: предположительно, произносится ~шибальба~, | |
точное значение неизвестно."; | |
'стрела': | |
"СТРЕЛА: ~путешествие; становиться~."; | |
'череп': | |
"ЧЕРЕП: ~смерть, судьба, рок (не обязательно злой)~."; | |
'круг': | |
"КРУГ: ~Солнце; также жизнь, время жизни~."; | |
'ягуар': | |
"ЯГУАР: ~властитель~."; | |
'обезьяна': | |
"ОБЕЗЬЯНА: ~жрец?~."; | |
'птица': | |
if (self.correct) "ПТИЦА: ~мертвый, как камень~!"; | |
"ПТИЦА: ~богатый, изобильный?~."; | |
default: | |
"Про этот символ в словаре ничего не сказано."; | |
} | |
], | |
correct false, | |
has proper male; | |
! Определено в DM4 §23 | |
Object map "карт/а Квинтаны-Ру" | |
with name 'карт' 'скетч' 'рисунок' 'квинтан' 'ру', | |
description | |
"На эту карту нанесен Ваш путь сквозь дебри дождевого леса | |
по руслу ручья от юго-восточных границ Мексико, | |
завершившийся на этом высоком плато." | |
has female; | |
! Определено в DM4 §23 | |
Object stone_key "каменн/ый ключ/" | |
with name 'каменн' 'ключ', | |
description "Странной формы ключ из желтого камня." | |
has male; | |
! Определено в DM4 §17, изменено в §18 и §23 | |
Object priest "мумифицированн/ый жрец/" | |
with name 'муми' 'мумифицированн' 'жрец' 'священник', | |
initial | |
"За каменным алтарем в безмолвном ожидании стоит жрец, | |
призрачный, но внушающий почтение одним своим видом.", | |
description | |
"Частично расчлененный, он держится воедино лишь силой собственной воли. | |
И, хотя его родным языком несомненно является местный диалект Майя, | |
у Вас откуда-то появилась уверенность, что Вашу речь он также поймет.", | |
life [; | |
Answer: | |
"Жрец закашлялся, отчего едва не распался на части."; | |
Ask: switch (second) { | |
'словарь', 'книга': | |
if (dictionary.correct == false) | |
"~Знак ~птица~... это просто смешно!~"; | |
"~Словарь? Я вижу.~"; | |
'глиф', 'символ', 'диалект': | |
"~Да, в нашей культуре жрецы тоже способны читать.~"; | |
'властелин', 'гробница', 'храм', 'усыпальница': | |
"~Нет, я не могу говорить об этом с чужеземцами.~"; | |
'рисунки', 'изображения': | |
"Жрец нахмурился. ~10 бактун, 4 катун -- | |
иными словами 1 468 800 дней с начала времен. | |
Это 19 января 909 года по вашему календарю, | |
если я не ошибаюсь.~"; | |
'руины', 'подземелье': | |
"~Эти руины всегда побеждали грабителей. | |
А в потустороннем мире грабителей и мародеров | |
ожидают вечные мучения.~ | |
Помолчав, жрец добавил: | |
~Это относится и к тем, которых вы зовете ~археологами~.~"; | |
'сеть', 'паутина', 'червоточина': | |
"~Ни один человек не сможет пройти сквозь нее!~"; | |
'шибальба': | |
if (Shrine.sw_to == Junction) | |
"Жрец лишь медленно покачал своим костяным пальцем."; | |
Shrine.sw_to = Junction; | |
"Жрец протянул свой костяной палец по направлению к сосулькам, | |
и они мгновенно растаяли, исчезнув без следа! | |
~Там лежит Шибальба -- Мир Мертвых.~"; | |
} | |
"~На это тебе придется найти свой ответ.~"; | |
Tell: | |
"Жреца не интересует Ваша бренная жизнь."; | |
Attack, Kiss: | |
remove self; | |
"От легкого прикосновения жрец буквально рассыпался в пыль -- | |
от него не осталось и следа."; | |
ThrowAt: | |
move noun to location; | |
<<Attack self>>; | |
Show, Give: | |
if (noun == dictionary && dictionary.correct == false) { | |
dictionary.correct = true; | |
"Жрец просмотрел несколько страниц книги | |
и издал тихий смешок, больше похожий на шепот. | |
Видно не удержавшись, он что-то исправил в словаре, | |
прежде чем вернуть его Вам."; | |
} | |
if (noun == newspaper) | |
"Жрец бросил взгляд на дату под заголовком. | |
~12 бактун 16 катун 4 тун 1 уинал 12 кин~, | |
заметил он. ~Прогресс, как я посмотрю.~"; | |
"Похоже, что его не интересуют вещи материального мира."; | |
], | |
orders [; | |
Go: | |
"~Нет, мне нельзя покидать Гробницу.~"; | |
NotUnderstood: | |
"~Говоришь загадками?~"; | |
default: | |
"~Не твоим приказам я служу, пришелец.~"; | |
], | |
has animate male; | |
! Определено в DM4 Упр. 53 | |
Object warthog "вепр/ь" | |
with name 'вепр' 'кабан' 'свин' 'свинь' 'боров' 'бородавочник', | |
initial | |
"Большой вепрь шумно сопит и похрюкивает на грязном полу.", | |
description | |
"Здоровенный, грязный, хрюкающий.", | |
orders [; | |
Go, Look, Examine, Smell, Taste, Touch, Search, Jump, Enter: | |
rfalse; | |
Eat: | |
"Развитое обоняние подсказывает, что этот предмет несъедобен."; | |
default: | |
"Свиным копытцам такое вряд ли под силу. | |
Помимо ночного зрения и меньшего веса, | |
никаких преимуществ у свиного обличья не заметно -- | |
только недостатки."; | |
], | |
has animate proper male; | |
! Определено в DM4 §8 | |
Object low_mist "густ/ой туман/" | |
with name 'густ' 'туман' 'мгл', | |
description | |
"Туман имеет своеобразный аромат, | |
напоминающих о запахе кукурузных лепешек.", | |
before [; | |
Examine, Search: | |
; | |
Smell: | |
<<Examine self>>; | |
default: | |
"Для этого туман слишком нематериален."; | |
], | |
react_before [; Smell: if (noun == nothing) <<Smell self>>; ], | |
found_in Square_Chamber Forest, | |
has scenery male; | |
! Определено в DM4 Упр. 46 | |
Object tiny_claws "звук/ крошечных когтей" thedark | |
with name 'звук' 'скрип' 'хруст' 'крошечн' 'когт' 'насеком', | |
initial | |
"Где-то в темноте отчетливо слышится | |
тихое поскрипывание крошечных когтей.", | |
before [; | |
Listen: | |
"Для маленьких насекомых звук очень громкий!"; | |
Touch, Taste: | |
"Как-то не тянет. Честное слово."; | |
Smell: | |
"Вы явственно ощущаете только один запах -- собственного страха."; | |
Attack: | |
"Кто бы они не были, они без труда избегают Ваших неуклюжих рук"; | |
default: | |
"Крошечные создания без труда уворачиваются от Вас, | |
продолжая шуршать и тихо поскрипывать."; | |
], | |
each_turn [; StartDaemon(self); ], | |
daemon [; | |
if (location ~= thedark) { | |
self.turns_active = 0; | |
StopDaemon(self); | |
rtrue; | |
} | |
switch (++(self.turns_active)) { | |
1: "^Шорох и поскрипывание явно приближаются, | |
и Ваше дыхание учащается помимо воли."; | |
2: "^Вы чувствуете капли холодного пота у себя на лбу. | |
Похоже, что эти твари уже почти здесь!"; | |
3: "^Вы почувствовали, как нечто щекочет Вашу ногу, | |
и судорожным движением стряхнули с нее что-то хитиновое. | |
Вокруг слышится тихий, но угрожающий треск."; | |
4: deadflag = true; | |
"^Внезапно появилась легкая боль -- тонкое, как игла шприца, | |
жало вонзилось Вам в икру. Почти сразу Ваше тело | |
начало содрогаться от спазмов, | |
плечи и колени выгнуло жестокой судорогой, | |
язык начал стремительно раздуваться..."; | |
} | |
], | |
turns_active 0 | |
has male; | |
! ---------------------------------------------------------------------------- ! | |
! Вспомогательные подпрограммы. | |
! ---------------------------------------------------------------------------- ! | |
! Определено в DM4 §4, изменено в §21 и §23 | |
[ Initialise; | |
TitlePage(); | |
location = Forest; | |
move map to player; | |
move sodium_lamp to player; | |
move dictionary to player; | |
StartDaemon(sodium_lamp); | |
thedark.description = | |
"Тьма бессчетных веков тяжело давит на Вас, | |
усиливая чувство клаустрофобии."; | |
"^^^...Позади осталось много дней бесплодных поисков | |
и мучительного пути сквозь колючие лесные дебри... | |
Но теперь, кажется, Ваше терпение и упорство получили награду. | |
Это -- открытие, и какое!^"; | |
]; | |
! Определено в DM4 Упр. 123 | |
[ TitlePage i; | |
i = 15; | |
style bold; font off; | |
print "^^^^^^^^^^^^^^^"; | |
spaces(i); | |
print " СРЕДИ РУИН^"; | |
print "^^"; | |
spaces(i); | |
print "Но Аллигатор не выроет нору^"; | |
spaces(i); | |
print "Что станет могилой ему,^"; | |
spaces(i); | |
print "Но выроет он нору^"; | |
spaces(i); | |
print "Как убежище себе.^"; | |
spaces(i); | |
print "^"; | |
spaces(i); | |
print "-- из ~Пополь Вух~^^^^^"; | |
print "[Нажмите на пробел.]^"; | |
style roman; | |
font on; | |
KeyCharPrimitive(); | |
ClearScreen(); | |
]; | |
! Определено в DM4 §22 | |
[ PrintRank; | |
print ", что дает Вам звание "; | |
if (score == 30) "директора Института Карнеги."; | |
if (score >= 20) "археолога-профессионала."; | |
if (score >= 10) "исследователя."; | |
if (score >= 5) "любопытствующего."; | |
"случайного туриста."; | |
]; | |
! Определено в DM4 §21 | |
[ DeathMessage; | |
if (deadflag == 3) print "Вы в плену до скончания времен."; | |
]; | |
! ---------------------------------------------------------------------------- ! | |
Include "RussiaG"; | |
! Определено в DM4 §6 | |
[ PhotographSub; | |
if (camera notin player) "Без фотокамеры это вряд ли можно сделать."; | |
if (noun == player) "Не стоит. Вы ни разу не брились с самого Мексико."; | |
if (children(player) > 1) | |
"Фотографирование -- сложный процесс, требующий пару свободных рук. | |
Наверное, придется положить все лишнее."; | |
if (location == Forest) | |
"В насквозь промокшем дождевом лесу делать это не рекомендуется."; | |
if (location == thedark) "Но здесь слишком темно!"; | |
if (AfterRoutines()) return; | |
"Вы тщательно установили неуклюжую монстроподобную фотокамеру, | |
направили свет лампы на цель, и терпеливо дождались, | |
пока экспонирование ", (cGen) noun, " не завершится."; | |
]; | |
Verb 'фото' 'фотографир' 'фотографиров' | |
* cAcc_noun -> Photograph; | |
! ---------------------------------------------------------------------------- ! |