--[[ Файл содержит локации навьярских поселений для главы Атлантида. ]] --[[ Ираафаанотр ]] --[[ Ираафаанотр.Город ]] iraa_entry = lcutscene("iraa_entry", "Левиафан, рубка", [[Ираафаанотр расположен на обширном плато к северу от Атлантиды. Вы без проблем добираетесь туда. Поселение представляет собой несколько домов, раскиданных по обе стороны от широкой мощеной улицы, протянувшейся с запада на восток. В центре ее возвышается обелиск, вокруг которого расположена центральная площадь. Там же расположены два самых больших здания города, разительно отличающиеся от небольших, грубо сложенных хижин, расположенных вокруг. ]], "Вы прибыли в Ираафаанотр ", leviathan_wheelhouse); iraa_near_city_west = room { nam = "iraa_near_city_west"; underwater = true; disp = [[Ираафаанотр, у города]]; dsc = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на западной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]]; view = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на западной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]]; obj = { "iraa_city_west_guard" }; way = { kh_vroom("В левиафан", "leviathan_airlock"); kh_vroom("На восток, к центру Ираафаанотра", "iraa_city_west"); }; }; iraa_city_west = room { nam = "iraa_city_west"; underwater = true; disp = "Ираафаанотр, улица"; dsc = [[Широкая мощеная улица, пересекающая город с востока на запад. К северу вы видите обширные поля, обрабатываемые десятками рук и дающие пищу жителям селения. К востоку вы видите каменный обелиск, возвышающийся над центральной площадью Ираафаанотра. ]]; way = { kh_vroom("На запад", "iraa_near_city_west"); kh_vroom("На восток, к центру Ираафаанотра", "iraa_city_center"); }; }; iraa_city_center = room { nam = "iraa_city_center"; underwater = true; disp = "Ираафаанотр, центральная площадь"; dsc = [[Центральная площадь Ираафаанотра практически пуста. Лишь несколько зевак с интересом разглядывает вас, осторожно выглядывая из дверей библиотеки -- крупного здания, расположенного к северу от вас. Напротив библиотеки расположен дом вождя, не уступающий размерами библиотеке. ]]; obj = { "iraa_obelisk"; }; way = { kh_vroom("На запад", "iraa_city_west"); kh_vroom("На восток", "iraa_city_east"); kh_vroom("В библиотеку", "iraa_city_library"); kh_vroom("В дом вождя", "iraa_city_chief_house"); }; }; iraa_obelisk = obj { nam = "iraa_obelisk"; dsc = [[В центре площади стоит большой каменный {обелиск}, с нанесенными на него символами. ]]; act = function(s) iraaphaanotrr_temple_found = true; return [[На обелиске, традиционно для навьяров, начертано название города и вырезана карта, указывающая путь к храму. ]]; end; }; iraa_city_east = room { var { state = 0; }; nam = "iraa_city_east"; underwater = true; disp = "Ираафаанотр, улица"; dsc = [[Широкая мощеная улица, пересекающая город с востока на запад. К северу вы видите обширные поля, обрабатываемые десятками рук и дающие пищу жителям селения. К западу вы видите каменный обелиск, возвышающийся над центральной площадью Ираафаанотра. ]]; entered = function(s) if (state == 0 and char_learr.follow) then path("На юг, к саду"):enable(); if language_known then return [[Здесь Леарр неожиданно останавливается. Она смотрит на юг, а по ее головным плавникам бегут цветные полосы -- она говорит, что здесь, за домом вождя есть небольшой сад, а сразу за ним находится ее дом. Она просит вас пойти туда вместе с ней. ]]; else return [[Здесь Леарр неожиданно останавливается. Она смотрит на юг, а по ее головным плавникам бегут цветные полосы. Вы не понимаете, что она пытается вам сказать, но она хватает вас за руку и пытается вести за собой на юг. ]]; end; end; end; way = { kh_vroom("На восток", "iraa_near_city_east"); kh_vroom("На юг, к саду", "iraa_garden"):disable(); kh_vroom("На запад, к центру Ираафаанотра", "iraa_city_center"); }; }; iraa_garden = room { nam = "iraa_garden"; underwater = true; disp = "Ираафаанотр, сад"; dsc = [[Небольшой сад, расположенный за домом вождя. ]]; way = { kh_vroom("На север, к главной улице", "iraa_near_city_east"); kh_vroom("На юг, к дому Леарр", "iraa_learr_house_near"); }; }; iraa_learr_house_near = room { nam = "iraa_learr_house_near"; underwater = true; disp = "Ираафаанотр, у дома Леарр"; }; iraa_near_city_east = room { nam = "iraa_near_city_east"; underwater = true; disp = [[Ираафаанотр, у города]]; dsc = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на восточной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]]; obj = { "iraa_city_east_guard"; }; way = { kh_vroom("На запад, к центру Ираафаанотра", "iraa_city_east"); }; }; iraa_city_west_guard = npc { nam = "iraa_city_west_guard"; dsc = [[По обе стороны дороги стоят двое навьярских {стражникиов}. ]]; phrases = function(s) if (language_known) then if (atl_rep_iraa >= 0) then return { "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы -- они просят вас говорить с вождем. ", "По головным плавникам стражников бегут цветные полосы -- они приветствуют вас. " }; else return { "Стражники указывают вам на дом вождя. По их головным плавникам бегут цветные полосы -- они просят вас говорить с вождем. " }; end; else return { "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы, но вы не понимаете, что они значат. " }; end; end; }; iraa_city_east_guard = npc { nam = "iraa_city_east_guard"; dsc = [[По обе стороны дороги стоят двое навьярских {стражникиов}. ]]; phrases = function(s) if (language_known) then if (atl_rep_iraa >= 0) then return { "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы -- они просят вас говорить с вождем. ", "По головным плавникам стражников бегут цветные полосы -- они приветствуют вас. " }; else return { "Стражники указывают вам на дом вождя. По их головным плавникам бегут цветные полосы -- они просят вас говорить с вождем. " }; end; else return { "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы, но вы не понимаете, что они значат. " }; end; end; }; iraa_city_chief_house = room { nam = "iraa_chief_house"; underwater = true; dsc = [[Приемная дома вождя представляет собой огромый зал. Несколько массивных колонн, не слишком искусно сделанных, поддерживают тяжелую каменную крышу здания. В дальнем конце зала установлен каменный трон. Перед троном установлен громадный, каменный же стол, вокруг которого расставлено множество стульев. ]]; way = { kh_vroom("На площадь", "iraa_city_center"); }; obj = { "iraa_chief" }; }; iraa_chief = npc { nam = "iraa_chief"; dsc = [[{Вождь Ираафаанотра} сидит на троне, внимательно наблюдая за вами своими серыми глазами. Руки его неподвижно лежат на подлокотниках. Серебристая чешуя, слегка синеватая, потускнела за долгие годы жизни. Одет он в плотный облегающий костюм из водорослей, не стесняющий движения, как принято у всех, даже самых высокопоставленных навьяров. ]]; dlg = "iraa_chief_dlg"; }; iraa_chief_dlg = dlg { var { ask_temple = false; }; nam = "iraa_chief_dlg"; disp = "Вождь Ираафаанотра"; entered = function(s) if (language_known) then psub("greet"); if (s.ask_temple) then s.ask_temple = false; pon("temple"); end; return [[Вы подходите к каменному столу, чтобы предстать перед вождем Ираафаанотра -- немолодым уже навьяром. Длинные руки, покрытые тусклой серебристой чешуей, с едва заметным синеватым отливом, покоятся на подлокотниках трона. Не поднимаясь, он начинает говорить. По головным плавникам вождя бегут цветные полосы -- вождь прииглашает вас сесть напротив него и открыть цель вашего визита. В скафандре у вас с трудом получается это сделать, но вы не решаетесь оскорбить вождя и остаться стоять перед ним. ]]; else psub("no_speech"); return [[Вы подходите к каменному столу, чтобы предстать перед вождем Ираафаанотра -- немолодым уже навьяром. Длинные руки, покрытые тусклой серебристой чешуей, с едва заметным синеватым отливом, покоятся на подлокотниках трона. Не поднимаясь, он начинает говорить. По головным плавникам вождя бегут цветные полосы -- вождь прииглашает вас сесть напротив него и открыть цель вашего визита. В скафандре у вас с трудом получается это сделать, но вы не решаетесь оскорбить вождя и остаться стоять перед ним. ]]; end; end; phr = { {tag="no_speech"}; {"[Уйти]", code [[ back(); ]]}; {tag="greet"}; {"[Кодировщик] Приветствую. Мы ищем фрагмент карты пути к Лсэрианотру, который находится у вас. ", [[Вождь задумчиво смотрит на вас. Через некоторое время он отвечает: "У нас нет ничего подобного. Я не знаю, о чем вы говорите". ]], code [[psub("more_info");]]}; {tag="temple", false, "[Кодировщик] Мы просим разрешения посетить храм Ираафаанотра. ", [[Вождь отрицательно качает головой: "Это исключено, хевьяр". ]], code [[ atl_ctt_iraa_refusal = true; ]]}; {"[Кодировщик] Мы ищем Венаэданотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра". ]]}; {"[Кодировщик] Мы ищем Нлейисланотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра". ]]}; {"[Уйти]", code [[ back(); ]]}; {tag="more_info"}; {"[Кодировщик] Один из фрагментов карты должен быть у вас. [Передать табличку, найденную в храме]", [[Вождь отвечает: "Я не знаю ни о чем подобном. вам стоит спросить у Ритларра в библиотеке". ]]}; {"[Уйти]", code [[ back(); ]]}; }; }; iraa_city_library = room { nam = "iraa_city_library"; disp = "Ираафаанотр, библиотека"; underwater = true; dsc = [[Огромный зал библиотеки Ираафаанотра практически пуст. ]]; obj = { "iraa_rytlarr", "iraa_shelves" }; way = { kh_vroom("На площадь", "iraa_city_center"); }; }; iraa_shelves = obj { nam = "iraa_shelves"; dsc = [[Вдоль стен стоят многочисленные {стеллажи} с древними и новыми записями. Большинство из них сделаны на металлических табличках и явно очень стары. Вперемешку с ними стоят и каменные -- более современные, и даже сделанные на водорослях -- те, что еще не успели переписать на что-то более долговечное. ]]; act = [[Вам потребуются десятилетия, чтобы изучить все находящиеся здесь записи. ]]; }; iraa_rytlarr = npc { nam = "iraa_rytlarr"; dsc = [[По залу неспешно расхаживает молодой {навьяр}. Зеленые глаза внимательно рассматривают полки. Зеленовато-серая чешуя поблескивает на свету. Время от времени он останавливается возле одной из полок, чтобы перенести те или иные записи с места на место]]; dlg = "iraa_rytlarr_dlg"; }; iraa_rytlarr_dlg = dlg { nam = "iraa_rytlarr_dlg"; disp = [[Ритларр]]; entered = function(s) if dyp_quest_state == 3 then pon("star_map"); end; if (language_known) then psub("generic"); return [[Навьяр обращается к вам: "Ритларр приветствует тебя, хевьяр". ]]; else psub("no_speech"); return [[По головным плавникам навьяра бегут цветные полосы, но вы не понимаете, что он пытается сказать вам. ]]; end; end; phr = { {tag="no_speech"}; {"[Уйти]", always=true, code [[ back(); ]]}; {tag="generic"}; {"[Кодировщик] Я ищу часть карты, ведущей в Лсэрианотр.", [[Навьяр некоторое время стоит, задумавшись. Потом он начинает ходить от полки к полке. Наконец, он сообщает: "Я не уверен, что она у нас есть. Но если вы уверены -- она должна быть в храме. Спросите у вождя. Быть может он позволит вам войти внутрь по такому случаю". ]], code [[ iraa_chief_dlg.ask_temple = true; ]]}; {tag="star_map", false, "[Кодировщик] Ты знаешь что-нибудь о карте небесных огней?", [[Навьяр кивает: "Наше сокровище. Аэдиенрр взял ее не так давно. Он сказал, что знает как найти место, указанное в ней. Но прошло много дней, а он не вернулся. Если ты сможешь найти его и вернуть карту, мы будем очень благодарны. Я не знаю точно конечную цель, но я знаю, что он вышел по направлению к Дипатреанотру". ]], code [[ dyp_quest_state = 4; ]]}; {"[Кодировщик] Ты знаешь, где находится Венаэданотр?", [[Навьяр кивает: "Мы знаем путь туда". Он ведет вас к одной из полок в дальнем конце зала. Ритларр достает одну из металлических пластин и перерисовывает ее на гибкий лист из водорослей. Работа занимает несколько часов. Наконец, Ритларр протягивает вам карту: "Держите". ]], code [[ take("item_venaedanotrr_map"); ]]}; {"[Кодировщик] Ты знаешь, где находится Нлейисланотр?", [[Навьяр отрицательно качает головой: "У нас нет карты пути к этому месту. Быть может, путь знают в Дипатреанотре. "]]}; {"[Уйти]", always=true, code [[ back(); ]]}; }; }; --[[ Ираафаанотр.Храм ]] iraa_temple_entry = lcutscene("dyp_entry", "Левиафан, рубка", [[После недолгого путешествия, вы оказываетесь у цели. Как и другие, виденные вами храмы, храм Ираафаанотра вырезан в толще скалы. Массивные ворота, вытесанные из камня заперты. Рисунок над ними указывает путь к Ираафаанотру. ]], "Вы прибыли в храм Ираафаанотра ", leviathan_wheelhouse); player_learr = player { nam = "player_learr"; has_light = true; obj = {}; }; iraa_learr_choice_dlg = dlg { nam = "iraa_learr_choice_dlg"; disp = "Леарр"; entered = [[Вы уже собираетесь покинуть Левиафан, как в шлюзовую камеру входит Леарр со словами: "Дрейк-ты здесь-оставайся. Я в-храм-пойду". ]]; phr = { {"Почему не отправиться вместе?", [[Леарр отрицательно качает головой: "Хевьярам нельзя-в-храм-входить, поэтому я внутрь-только-одна-войду". ]]}; {"Хорошо, ты справишься лучше. ", [[Леарр кивает: "Я вернусь-с-картой. Вы здесь-ждите". Вы покидаете шлюзовую камеру и Леарр выходит наружу. ]], code [[ rel_learr = rel_learr + 1; change_pl(player_learr); walk("iraa_temple_entrance"); ]]}; {"Я пойду сам. ", [[Леарр недовольно качает головой. Плавники окрашиваются синим. Со совами: "Ты ошибку-совершаешь", -- она выходит из шлюзовой камеры. ^^Вы выбираетесь из Левиафана. ]], code [[ rel_learr = rel_learr - 1; walk("iraa_temple_entrance"); ]]}; }; }; iraa_temple_entrance = room { var { state = 0; }; nam = "Храм Ираафаанотра, вход"; underwater = true; dsc = function(s) if me() == player_learr then return [[Леарр стоит перед массивными двустворчатыми воротами храма, вытесанными в скале, протянувшейся с севера на юг. Над ними расположена карта, указывающая путь к Ираафаанотру. Работники храма регулярно обновляли и восстанавливали карту в течение многих столетий. ]]; else return [[Перед вами возвышаются массивные двустворчатые ворота храма, вытесанные из камня. Над ними вы видите тщательно поддерживаемую в порядке карту, указывающую путь к Ираафаанотру. Скала тянется с севера на юг насколько хватает глаз. ]]; end; end; view = [[Через иллюминаторы видны массивные ворота вытесанного в скале храма. Над входом расположен символ храма -- карта пути к самому Ираафаанотру отсюда. ]]; enter = function(s) if s.state == 0 and ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then s.state = 1; walkin("iraa_learr_choice_dlg"); end; end; obj = { "iraa_temple_guardians"; }; way = { kh_vroom("Войти", function(s) if me() == player_learr then return "iraa_temple_main_1"; else pr [[Стражники не пропустят вас. ]]; return false; end; end); kh_vroom("Вдоль скалы на север", function(s) if me() == player_learr then pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]]; return false; else return "iraa_temple_north_1"; end; end); kh_vroom("Вдоль скалы на юг", function(s) if me() == player_learr then pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]]; return false; else return "iraa_temple_south"; end; end); kh_vroom("В Левиафан", function(s) print(pl); print(player_learr); print(player_drake); if me() == player_learr and iraa_temple_hidden_pedestal.state == 0 then pr [[В голове Леарр проносится мысль: "Я еще не сделала все, что нужно". ]]; return false; else change_pl(player_drake); remove(player_learr, where(player_learr)); return "leviathan_airlock"; end; end); }; }; iraa_temple_guardians = npc { nam = "iraa_temple_guardians"; dsc = [[У входа в храм стоят двое {стражников} -- обычный дозор. ]]; phrases = function(s) if me() == player_learr then return { "Один из стражников приветствует Леарр и приглашает войти в храм. "; "Стражники не обращают на Леарр внимания. "; }; elseif language_known then return { "В вашем присутствии стражники заметно нервничают. "; "Стражники осторожно переглядываются. "; "По головным плавникам одного из стражников бегут цветные полосы: \"Уходите, вам здесь не место\". "; }; else return { "В вашем присутствии стражники заметно нервничают. "; "Стражники осторожно переглядываются. "; "По головным плавникам одного из стражников бегут цветные полосы, но вы не понимаете, что он хочет вам сказать. "; }; end; end; }; iraa_temple_south = room { nam = "iraa_temple_south"; disp = "У скалы"; dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на севере вы видите Левиафан -- вашу субмарину и вход в храм Ираафаанотра, охраняемый двумя вооруженными навьярами. ]]; way = { kh_vroom("Вдоль скалы на север", "iraa_temple_entrance"); }; }; iraa_temple_north_1 = room { nam = "iraa_temple_north_1"; disp = "У скалы"; dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на юге вы видите Левиафан -- вашу субмарину и вход в храм Ираафаанотра, охраняемый двумя вооруженными навьярами. ]]; way = { kh_vroom("Вдоль скалы на север", "iraa_temple_north_2"); kh_vroom("Вдоль скалы на юг", "iraa_temple_entrance"); }; }; iraa_temple_north_2 = room { nam = "iraa_temple_north_2"; disp = "У скалы"; dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на юге вы едва различаете Левиафан -- вашу субмарину. ]]; way = { kh_vroom("Вдоль скалы на север", "iraa_temple_north_3"); kh_vroom("Вдоль скалы на юг", "iraa_temple_north_1"); }; }; iraa_temple_north_3 = room { nam = "iraa_temple_north_3"; disp = "У входа в ущелье"; dsc = [[К востоку от вас возвышается скала, протянувшаяся на многие километры ссевера на юг. Рядом с вами в скале имеется узкое ущелье -- настолько незаметное, что проплывай вы мимо на Левиафане, вы не обратили бы на него никакого внимания. ]]; way = { kh_vroom("В ущелье", "iraa_temple_ravine_1"); kh_vroom("Вдоль скалы на юг", "iraa_temple_north_2"); }; entered = function(s) lifeoff(iraa_temple_shark); end; }; iraa_temple_shark = room { var { alive = true; position = 1; wait = 0; }; map = { ["2"] = iraa_temple_ravine_2, ["3"] = iraa_temple_ravine_3, ["4"] = iraa_temple_ravine_4, ["6"] = iraa_temple_ravine_6, ["7"] = iraa_temple_ravine_7, ["8"] = iraa_temple_ravine_8, ["9"] = iraa_temple_ravine_9 }; cycle = {2,6,7,8,9,4.3}; nam = "iraa_temple_shark"; life = function(s) s.wait = s.wait + 1; if (s.wait < 3) then return; end; s.wait = 0; s.position = s.position + 1; if (s.position > #s.cycle) then s.position = 1; end; if s.position == here().index then walk("game_over_eaten_by_shark"); end; end; canshoot = true; onshoot = function(s) s.alive = false; lifeoff(s); s:disable(); move(item_shark_tooth, s.map[tostring(s.cycle[s.position])]); return [[Пронзенная метким выстрелом гарпуна, акула умирает. ]]; end; dsc = function(s) if s.alive then if here().index == 1 then if s.cycle[s.position] == 2 then return [[На востоке от вас вы видите {акулу}, она движется на север. ]]; end; elseif here().index == 5 then if s.cycle[s.position] == 4 then return [[На западе от вас вы видите {акулу}, она движется на запад. ]]; end; elseif here().index == 10 then if s.cycle[s.position] == 7 then return [[На юге от вас вы видите {акулу}, она движется на восток. ]]; end; elseif here().index == 2 then if s.cycle[s.position] == 3 then return [[С востока к вам приближается {акула}. ]]; elseif s.cycle[s.position] == 6 then return [[К северу от вас вы видите {акулу}. Она не видит вас и продолжает движение от вас. ]]; end; elseif here().index == 6 then if s.cycle[s.position] == 2 then return [[С юга к вам приближается {акула}. ]]; elseif s.cycle[s.position] == 7 then return [[К северу от вас вы видите {акулу}. Она не видит вас и продолжает движение от вас. ]]; end; elseif here().index == 7 then if s.cycle[s.position] == 6 then return [[С юга к вам приближается {акула}. ]]; elseif s.cycle[s.position] == 8 then return [[На востоке вы видите {акулу}, удаляющуюся от вас. ]]; end; elseif here().index == 8 then if s.cycle[s.position] == 7 then return [[С запада к вам приближается {акула}. ]]; elseif s.cycle[s.position] == 9 then return [[На востоке вы видите {акулу}, удаляющуюся от вас. ]]; end; elseif here().index == 9 then if s.cycle[s.position] == 8 then return [[С запада к вам приближается {акула}. ]]; elseif s.cycle[s.position] == 4 then return [[На юге вы видите {акулу}, удаляющуюся от вас. ]]; end; elseif here().index == 4 then if s.cycle[s.position] == 9 then return [[С севера к вам приближается {акула}. ]]; elseif s.cycle[s.position] == 3 then return [[На западе вы видите {акулу}, удаляющуюся от вас. ]]; end; elseif here().index == 3 then if s.cycle[s.position] == 4 then return [[С востока к вам приближается {акула}. ]]; elseif s.cycle[s.position] == 2 then return [[На западе вы видите {акулу}, удаляющуюся от вас. ]]; end; end; end; end; }; iraa_temple_ravine_1 = room { index = 1; nam = "iraa_temple_ravine_1"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На запад", "iraa_temple_north_3"); kh_vroom("На восток", "iraa_temple_ravine_2"); }; entered = function(s) if iraa_temple_shark.alive then lifeon(iraa_temple_shark); end; end; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_2 = room { index = 2; nam = "iraa_temple_ravine_2"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На запад", "iraa_temple_ravine_1"); kh_vroom("На север", "iraa_temple_ravine_6"); kh_vroom("На восток", "iraa_temple_ravine_3"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_3 = room { index = 3; nam = "iraa_temple_ravine_3"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На запад", "iraa_temple_ravine_2"); kh_vroom("На восток", "iraa_temple_ravine_4"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_4 = room { index = 4; nam = "iraa_temple_ravine_4"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На запад", "iraa_temple_ravine_3"); kh_vroom("На север", "iraa_temple_ravine_9"); kh_vroom("На восток", "iraa_temple_ravine_5"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_5 = room { index = 5; nam = "iraa_temple_ravine_5"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На запад", "iraa_temple_ravine_4"); kh_vroom("В трещину", "iraa_temple_crevice"); }; obj = { "iraa_temple_shark" }; entered = function(s) lifeoff(iraa_temple_guardian); end; }; iraa_temple_ravine_6 = room { index = 6; nam = "iraa_temple_ravine_6"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На юг", "iraa_temple_ravine_2"); kh_vroom("На север", "iraa_temple_ravine_7"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_7 = room { index = 7; nam = "iraa_temple_ravine_7"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На юг", "iraa_temple_ravine_6"); kh_vroom("На восток", "iraa_temple_ravine_8"); kh_vroom("На север", "iraa_temple_ravine_10"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_8 = room { index = 8; nam = "iraa_temple_ravine_8"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На запад", "iraa_temple_ravine_7"); kh_vroom("На север", "iraa_temple_ravine_10"); kh_vroom("На восток", "iraa_temple_ravine_9"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_9 = room { index = 9; nam = "iraa_temple_ravine_9"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На запад", "iraa_temple_ravine_8"); kh_vroom("На юг", "iraa_temple_ravine_4"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_10 = room { index = 10; nam = "iraa_temple_ravine_10"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На север", "iraa_temple_ravine_11"); kh_vroom("На восток", "iraa_temple_ravine_8"); kh_vroom("На юг", "iraa_temple_ravine_7"); }; obj = { "iraa_temple_shark" }; }; iraa_temple_ravine_11 = room { nam = "iraa_temple_ravine_11"; disp = "Ущелье"; dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]]; way = { kh_vroom("На север", "iraa_temple_ravine_11"); kh_vroom("На восток", "iraa_temple_ravine_8"); kh_vroom("На юг", "iraa_temple_ravine_7"); }; }; iraa_temple_crack = room { index = 7; nam = "iraa_temple_crack"; disp = "Трещина в скале"; dsc = [[Небольшая узкая трещина в скале. Вы с огромным трудом перемещаетесь внутри. С одной стороны вы видите ущелье, через которое вы проникли сюда. С другой стороны -- какой-то хорошо освещенный коридор. ]]; way = { kh_vroom("В коридор", "iraa_temple_corridor_6"); kh_vroom("В ущелье", "iraa_temple_ravine_5"); }; entered = function(s) lifeon(iraa_temple_guardian); end; }; iraa_temple_guardian = room { var { position = 1; direction = 1; wait = 0; }; nam = "iraa_temple_guardian"; life = function(s) s.wait = s.wait + 1; if (s.wait < 3) then return; end; s.wait = 0; if (s.direction == 1) then if (s.position < 3) then s.position = s.position + 1; if (here().index >= s.position) then pr [[Вы слышите шаги приближащегося стражника. ]]; else pr [[Вы слышите шаги удаляющегося стражника. ]]; end; else s.direction = 2; end; elseif (s.direction == 2) then if (s.position < 6) then s.position = s.position + 1; if (here().index >= s.position) then pr [[Вы слышите шаги приближащегося стражника. ]]; else pr [[Вы слышите шаги удаляющегося стражника. ]]; end; else s.direction = 2; end; elseif (s.direction == -2) then if (s.position > 3) then s.position = s.position - 1; if (here().index <= s.position) then pr [[Вы слышите шаги приближащегося стражника. ]]; else pr [[Вы слышите шаги удаляющегося стражника. ]]; end; else s.direction = -1; end; elseif (s.direction == -1) then if (s.position > 1) then s.position = s.position - 1; if (here().index <= s.position) then pr [[Вы слышите шаги приближащегося стражника. ]]; else pr [[Вы слышите шаги удаляющегося стражника. ]]; end; else s.direction = 1; end; end; if here().index > 6 or here().index < 1 then return; end; if s.direction == 1 and here().index < 4 and here().index >= s.position or s.direction == 2 and here().index >= s.position or s.direction == -2 and here().index > 2 and here().index <= s.position or s.direction == -1 and here().index <= s.position then walk("game_over_caught_iraa"); end; end; dsc = function(s) if me() == player_learr then return ""; end; if here().index > 6 or here().index < 1 then return [[]]; end; if s.direction == 1 then if here().index < s.position then return [[К востоку вы видите стражника. Он стоит спиной к вам. ]]; end; elseif s.direction == 2 then if here().index > 2 and here().index < s.position then return [[К северу вы видите стражника. Он стоит спиной к вам. ]]; end; elseif s.direction == -2 then if here().index > s.position then return [[К югу вы видите стражника. Он стоит спиной к вам. ]]; end; elseif s.direction == -1 then if here().index > s.position then return [[К западу вы видите стражника. Он стоит спиной к вам. ]]; end; end; end; }; iraa_temple_corridor_6 = room { index = 6; nam = "iraa_temple_corridor_6"; disp = "Храм Ираафаанотра, коридор"; dsc = function(s) if me() == player_learr then return [[Леарр находится в коридоре в храме Ираафаанотра. Каменные стены покрыты файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. Северную стену рассекает глубокая трещина, а в западной находится дверь, ведущая в одну из служебных комнат. ]]; else return [[Вы стоите в самом конце коридора в храме Ираафаанотра. Вокруг -- камееные стены, покрытые светящимися водорослями. В одной из них вы видите глубокую, трещину, через которую вы с трудом протиснулись сюда. В западной стене вы видите небольшой дверной проем, за которым скрывается маленькая комнатка. ]]; end; end; way = { kh_vroom("В трещину", function(s) if me() == player_learr then pr [[В голове Леарр мелькает мысль: "Мне нечего там делать". ]]; return false; else return "iraa_temple_crack"; end; end); kh_vroom("В комнату", "iraa_temple_room_0"); kh_vroom("По коридору, на юг", "iraa_temple_corridor_5"); }; obj = { "iraa_temple_guardian" }; }; iraa_temple_corridor_5 = room { index = 5; nam = "iraa_temple_corridor_5"; disp = "Храм Ираафаанотра, коридор"; dsc = function(s) if me() == player_learr then return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты файирром. В западной стене коридора имеется проем, ведущий в одну из служебных комнат. ]]; else return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В западной стене находится дверной проем, ведущий в небольшую комнату. ]]; end; end; way = { kh_vroom("В комнату", "iraa_temple_room_2"); kh_vroom("По коридору, на север", "iraa_temple_corridor_6"); kh_vroom("По коридору, на юг", "iraa_temple_corridor_4"); }; obj = { "iraa_temple_guardian" }; }; iraa_temple_corridor_4 = room { index = 4; nam = "iraa_temple_corridor_4"; disp = "Храм Ираафаанотра, коридор"; dsc = function(s) if me() == player_learr then return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты файирром. ]]; else return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. ]]; end; end; way = { kh_vroom("По коридору, на север", "iraa_temple_corridor_5"); kh_vroom("По коридору, на юг", "iraa_temple_corridor_3"); }; obj = { "iraa_temple_guardian" }; }; iraa_temple_corridor_3 = room { index = 3; nam = "iraa_temple_corridor_3"; disp = "Храм Ираафаанотра, коридор"; dsc = function(s) if me() == player_learr then return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты файирром. Коридор сворачивает под прямым углом к северу. В восточной стене расположена массивная каменная дверь -- задний вход в храм. Леарр никогда не понимала этой необходимости, но во всех известных ей храмах было ровно два входа. ]]; else return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. Здесь коридор сворачивает под прямым углом к северу. В конце коридора на западе вы видите массивную каменную дверь, которая сейчас открыта. На севере коридор заканчивается тупиком. К востоку от вас массивная каменная дверь, но она заперта. ]]; end; end; way = { kh_vroom("По коридору, на север", "iraa_temple_corridor_4"); kh_vroom("В комнату", "iraa_temple_room_5"); kh_vroom("По коридору, на запад", "iraa_temple_corridor_2"); }; obj = { "iraa_temple_guardian" }; }; iraa_temple_corridor_2 = room { index = 2; nam = "iraa_temple_corridor_2"; disp = "Храм Ираафаанотра, коридор"; dsc = function(s) if me() == player_learr then return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. ]]; else return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В стенах имеются дверные проемы, ведущие в небольшие комнаты. ]]; end; end; way = { kh_vroom("По коридору, на восток", "iraa_temple_corridor_3"); kh_vroom("В комнату в северной стене", "iraa_temple_room_3"); kh_vroom("В комнату в южной стене", "iraa_temple_room_6"); kh_vroom("По коридору, на запад", "iraa_temple_corridor_1"); }; obj = { "iraa_temple_guardian" }; }; iraa_temple_corridor_1 = room { index = 1; nam = "iraa_temple_corridor_1"; disp = "Храм Ираафаанотра, коридор"; dsc = function(s) if me() == player_learr then return [[Леарр впервые за долгие годы оказалась в задней части храма. Хотя проход сюда, в принципе, не запрещен, необходимости бывать здесь, как правило, нет -- все, что доступно пониманию горожан происходит в главном зале. Ровные каменные стены покрыты файирром -- светящимися водорослями, используемыми навьярами повсеместно. В западной стене находится дверь, ведущая в основное помещение храма, а в северной и южной -- проемы, ведущие в служебные комнаты. ]]; else return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены, покрытые светящимися водорослями. Прямо перед вами находится дверь, ведущая в основное помещение храма. Отсюда вы видите, что в нем никого нет. ]]; end; end; way = { kh_vroom("По коридору, на восток", "iraa_temple_corridor_2"); kh_vroom("В комнату в северной стене", "iraa_temple_room_7"); kh_vroom("В комнату в южной стене", "iraa_temple_room_1"); kh_vroom("В главный зал", "iraa_temple_main_3"); }; obj = { "iraa_temple_guardian" }; }; iraa_temple_main_3 = room { nam = "iraa_temple_main_3"; disp = "Храм Ираафаанотра, главный зал"; dsc = function(s) if me() == player_learr then return [[Леарр находится в главном зале Ираафаанотра. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. Рядом с Леарр расположена дверь, ведущая в задние помещения храма. Обычно там бывают лишь те, кто всю свою жизнь посвятил служению в этом храме. ]]; else return [[Вы находитесь в конце главного зала храма Ираафаанотра. В стенах проделаны многочисленые ниши, в которых покоятся священные реликвии навьяров. Массивная каменная дверь ведет в задние помещения. ]]; end; end; way = { kh_vroom("В дверь", "iraa_temple_corridor_1"); kh_vroom("К центру зала", "iraa_temple_main_2"); }; }; iraa_temple_main_2 = room { nam = "iraa_temple_main_2"; disp = "Храм Ираафаанотра, главный зал"; dsc = function(s) if me() == player_learr then return [[Леарр находится в центре главного зала храма Ираафаанотра. Рядом с ней находится пустой пьедестал, на котором должна находиться важнейшая реликвия храма, украденная ворами из Дипатреанотра. Слева и справа находятся залы, с незапамятных времен именуемые залом Вопроса и залом Ответа. ]]; else return [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами ответа и вопроса. ]]; end; end; way = { kh_vroom("В конец зала", "iraa_temple_main_3"); kh_vroom("В зал вопроса", "iraa_temple_qhall"); kh_vroom("В зал ответа", "iraa_temple_ahall"); kh_vroom("К главному входу", "iraa_temple_main_1"); }; obj = { "iraa_temple_lever_4" }; }; iraa_temple_main_1 = room { nam = "iraa_temple_main_1"; disp = "Храм Ираафаанотра, главный зал"; dsc = function(s) if me() == player_learr then return [[Леарр находится в главном зале храма Ираафаанотра, у центрального входа. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. ]]; else return [[Вы находитесь в главном зале храма Ираафаанотра. В многочисленных нишах в стенах покоятся древние реликвии. Перед вами возвышаются массивные ворота храма, за которыми наверняка стоит обычная стража -- двое вооруженных навьяров. ]]; end; end; way = { kh_vroom("В ворота", function(s) if me() == player_learr then return "iraa_temple_entrance"; else pr("Не стоит делать этого. Стража вас схватит. "); return false; end; end); kh_vroom("К центру зала", "iraa_temple_main_2"); }; }; iraa_temple_question = obj { nam = "iraa_temple_question"; dsc = function(s) if me() == player_learr then return [[Единственной достопримечательностью помещения была загадочная надпись "Ты ищешь число здесь", на стене напротив входа. ]]; else return [[На стене напротив входа нанесены какие-то {письмена}. Видно, что навьяры раз за разом тщательно обновляют их, сохраняя их в первозданном виде. ]]; end; end; act = [[Письмена гласят: "Ты число-здесь-ищешь". ]]; }; iraa_temple_qhall = room { nam = "iraa_temple_qhall"; disp = "Храм Ираафаанотра, зал вопроса"; dsc = function(s) if me() == player_learr then return [[Назначение небольшого по размерам зала вопроса, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]]; else return [[Зал вопроса представляет собой небольшое помещение, отделенное от основного зала высокой аркой. В отличие от центрального зала, стены здесь не имеют никаких ниш или полок -- здесь явно не должно храниться никаких реликвий. ]]; end; end; way = { kh_vroom("В главный зал", "iraa_temple_main_2"); }; obj = { "iraa_temple_question"; }; }; iraa_temple_answer = obj { nam = "iraa_temple_answer"; dsc = function(s) if me() == player_learr then return [[Вырезанное в камне стены изображение {спрута} всегда пугало Леарр, однако и притягивало -- есть в нем что-то необычное, интересное. ]]; else return [[Вы видите вырезанное в стене изображение {спрута}. ]]; end; end; act = function(s) if me() == player_learr then return [[В голове Леарр пробегает мысль: "Для чего он здесь?" В первый раз в жизни, Леарр обращает внимание на наличие шестнадцати щупалец у существа. ]]; else return [[Традиционное для навьяров схематичное изображение спрута. Вам бросается в глаза наличие у существа шестнадцати щупалец. ]]; end; end; }; iraa_temple_ahall = room { nam = "iraa_temple_ahall"; disp = "Храм Ираафаанотра, зал ответа"; dsc = function(s) if me() == player_learr then return [[Назначение небольшого по размерам зала ответа, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]]; else return [[Зал ответа представляет собой небольшое помещение, отделенное от основного зала высокой аркой. В отличие от центрального зала, стены здесь не имеют никаких ниш или полок -- здесь явно не должно храниться никаких реликвий. ]]; end; end; way = { kh_vroom("В главный зал", "iraa_temple_main_2"); }; obj = { "iraa_temple_answer"; }; }; iraa_temple_room_0 = room { var { state = false; }; index = 0; nam = "iraa_temple_room_0"; disp = "Храм Ираафаанотра, комната"; dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]]; way = { kh_vroom("В коридор", "iraa_temple_corridor_6"); kh_vroom("В скрытый проход", "iraa_temple_hidden_stairs"):disable(); }; obj = { "iraa_temple_lever_0" }; open = function(s) s.state = true; path("В скрытый проход", s):enable(); if here() == s then return "Вы видите, как одна из стен раздвигается, открывая скрытый проход куда-то в глубь скалы. "; else return "Вы слышите где-то поблизости скрежет каменных плит. "; end; end; close = function(s) if s.state then s.state = false; path("В скрытый проход", s):disable(); if here() == s then return "Вы видите, как одна из стен cдвигается, вновь закрывая потайной проход. "; else return "Вы слышите где-то поблизости скрежет каменных плит. "; end; end; return "Вы дергаете рычаг"; end; }; iraa_temple_room_1 = room { nam = "iraa_temple_room_1"; disp = "Храм Ираафаанотра, комната"; index = 0; dsc = function(s) if me() == player_learr then return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них, пустуют. ]]; else return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; end; end; way = { kh_vroom("В коридор", "iraa_temple_corridor_1"); }; obj = { "iraa_temple_lever_1" }; }; iraa_temple_room_2 = room { nam = "iraa_temple_room_2"; disp = "Храм Ираафаанотра, комната"; index = 0; dsc = function(s) if me() == player_learr then return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них, пустуют. ]]; else return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; end; end; way = { kh_vroom("В коридор", "iraa_temple_corridor_5"); }; obj = { "iraa_temple_lever_2" }; }; iraa_temple_room_3 = room { nam = "iraa_temple_room_3"; disp = "Храм Ираафаанотра, комната"; index = 0; dsc = function(s) if me() == player_learr then return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них, пустуют. ]]; else return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; end; end; way = { kh_vroom("В коридор", "iraa_temple_corridor_2"); }; obj = { "iraa_temple_lever_3" }; }; iraa_temple_room_5 = room { nam = "iraa_temple_room_5"; disp = "Храм Ираафаанотра, комната"; index = 0; dsc = function(s) if me() == player_learr then return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них, пустуют. ]]; else return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; end; end; way = { kh_vroom("В коридор", "iraa_temple_corridor_3"); }; obj = { "iraa_temple_lever_5" }; }; iraa_temple_room_6 = room { nam = "iraa_temple_room_6"; disp = "Храм Ираафаанотра, комната"; index = 0; dsc = function(s) if me() == player_learr then return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них, пустуют. ]]; else return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; end; end; way = { kh_vroom("В коридор", "iraa_temple_corridor_2"); }; }; iraa_temple_room_7 = room { nam = "iraa_temple_room_7"; disp = "Храм Ираафаанотра, комната"; index = 0; dsc = function(s) if me() == player_learr then return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них, пустуют. ]]; else return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]]; end; end; way = { kh_vroom("В коридор", "iraa_temple_corridor_1"); }; }; iraa_temple_switch = obj { nam = "iraa_temple_switch"; var { state = {false,false,false,false,false,false}; }; switch = function(s, index) if index < 7 and index > 0 then s.state[index] = not s.state[index]; end; if not s.state[1] and not s.state[2] and s.state[3] and not s.state[4] and s.state[5] and not s.state[6] then -- A valid state return iraa_temple_room_0:open(); else -- An invalid state return iraa_temple_room_0:close(); end; end; }; iraa_temple_lever_0 = obj { nam = "iraa_temple_lever_0"; dsc = function(s) local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой фиолетового цвета. ]]; if iraa_temple_switch.state[1] then r = r..[[Сейчас он опущен вниз. ]]; else r = r..[[Сейчас он поднят вверх. ]]; end; return r; end; act = function(s) return iraa_temple_switch:switch(1); end; }; iraa_temple_lever_1 = obj { nam = "iraa_temple_lever_0"; dsc = function(s) local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой синего цвета. ]]; if iraa_temple_switch.state[2] then r = r..[[Сейчас он опущен вниз. ]]; else r = r..[[Сейчас он поднят вверх. ]]; end; return r; end; act = function(s) return iraa_temple_switch:switch(2); end; }; iraa_temple_lever_2 = obj { nam = "iraa_temple_lever_0"; dsc = function(s) local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой зеленого цвета. ]]; if iraa_temple_switch.state[3] then r = r..[[Сейчас он опущен вниз. ]]; else r = r..[[Сейчас он поднят вверх. ]]; end; return r; end; act = function(s) return iraa_temple_switch:switch(3); end; }; iraa_temple_lever_3 = obj { nam = "iraa_temple_lever_0"; dsc = function(s) local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой желтого цвета. ]]; if iraa_temple_switch.state[4] then r = r..[[Сейчас он опущен вниз. ]]; else r = r..[[Сейчас он поднят вверх. ]]; end; return r; end; act = function(s) return iraa_temple_switch:switch(4); end; }; iraa_temple_lever_4 = obj { nam = "iraa_temple_lever_0"; dsc = function(s) local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой оранжевого цвета. ]]; if iraa_temple_switch.state[5] then r = r..[[Сейчас он опущен вниз. ]]; else r = r..[[Сейчас он поднят вверх. ]]; end; return r; end; act = function(s) return iraa_temple_switch:switch(5); end; }; iraa_temple_lever_5 = obj { nam = "iraa_temple_lever_0"; dsc = function(s) local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой красного цвета. ]]; if iraa_temple_switch.state[6] then r = r..[[Сейчас он опущен вниз. ]]; else r = r..[[Сейчас он поднят вверх. ]]; end; return r; end; act = function(s) return iraa_temple_switch:switch(6); end; }; iraa_temple_hidden_stairs = darkroom { nam = "iraa_temple_hidden_stairs"; disp = "Храм Ираафаанотра, потайной ход"; dsc_dark = [[Потайной спуск уходит далеко вниз, под храм. В темноте вы ничего не различаете. ]]; dsc_halflit = function(s) if me() == player_learr then return [[Потайной спуск уходит далеко вниз, под храм. Глаза Леарр хорошо различают плавно уходящий вниз коридор. ]]; else return [[Потайной спуск уходит далеко вниз, под храм. В слабом свете фонаря, встроенного в скафандр, вы различаете плавно уходящий вниз коридор. ]]; end; end; way = { kh_vroom("Наверх", "iraa_temple_room_0", 2); kh_vroom("Вниз", "iraa_temple_hidden_hall", 1); }; }; iraa_temple_button_ctr = function(nam, index) return obj { nam = nam; seen_level = 1; dsc = function(s) local im = "images/dyp_bg.png"; for i = 1, #iraa_temple_hidden_hall.buttons[index] do im = im .. ";images/dyp_" .. tostring(iraa_temple_hidden_hall.buttons[index][i]) .. ".png"; end; if (iraa_temple_hidden_hall.pressed_buttons[index]) then return "{Рычаг с символами " .. img(im) .."} включен.^"; else return "{Рычаг с символами " .. img(im) .."} выключен.^"; end; end; act = function(s) if iraa_temple_hidden_hall:check(index) then return [[Вы переключаете рычаг и узор на полу комнаты меняется. Металлические плиты в стенах комнаты поднимаются, открывая проходы вниз и наверх. ]]; else return [[Вы переключаете рычаг и узор на полу комнаты меняется. ]]; end; end; }; end; iraa_temple_hidden_hall = room { var { active_parts = {false, false, false, false, false, false, false, false, false, false, false, false}; pressed_buttons = {false, false, false, false, false, false, false, false}; solved = false; }; buttons = { {1, 5, 9, 11, 12}; {1, 2, 3, 4}; {4, 8, 10, 11, 12}; {2, 4, 5, 6}; {1, 5, 7, 9, 10, 11, 12}; {2, 6, 9, 10, 12}; {1, 3, 7, 8}; {3, 7, 9, 10, 11}; }; pic = function(s) local pic = 'images/dyp_bg.png'; local cnt = 0; for i = 1, #s.active_parts do if (s.active_parts[i]) then cnt = cnt + 1; pic = pic .. ";images/dyp_" .. tostring(i) .. ".png"; end; end; if (cnt > 0) then return pic; else return nil; end; end; nam = "Храм Ираафаанотра, потайной зал"; dsc = function(s) if me() == player_learr then return [[Леарр оказывается в огромном зале. Мягкий, едва заметный свет исходит из самих стен. В центре зала находятся восемь рычагов, рядом с которыми нанесены символы. ]]; else return [[Большой круглый зал. Мягкий, едва заметный свет исходит из самих стен. В центре зала расположено восемь рычагов, рядом с которыми нанесены какие-то символы. ]]; end; end; entered = function(s) if not s.solved then return [[Позади вас металлическая плита почти бесшумно сдвигается, закрывая вход. ]]; end; end; obj = { iraa_temple_button_ctr("iraa_temple_b1", 1); iraa_temple_button_ctr("iraa_temple_b2", 2); iraa_temple_button_ctr("iraa_temple_b3", 3); iraa_temple_button_ctr("iraa_temple_b4", 4); iraa_temple_button_ctr("iraa_temple_b5", 5); iraa_temple_button_ctr("iraa_temple_b6", 6); iraa_temple_button_ctr("iraa_temple_b7", 7); iraa_temple_button_ctr("iraa_temple_b8", 8); }; way = { kh_vroom("Наверх", "iraa_temple_hidden_stairs"):disable(); kh_vroom("Вниз", "iraa_temple_hidden_storage"):disable(); }; check = function(s, index) s.pressed_buttons[index] = not s.pressed_buttons[index]; for i = 1, #s.active_parts do s.active_parts[i] = false; end; for i = 1, #s.pressed_buttons do if (s.pressed_buttons[i]) then for j = 1, #s.buttons[i] do s.active_parts[s.buttons[i][j]] = not s.active_parts[s.buttons[i][j]]; end; end; end; s.solved = true; for i = 1, #s.active_parts do if (not s.active_parts[i]) then s.solved = false; break; end; end; if (s.solved) then path("Наверх"):enable(); path("Вниз"):enable(); end; return s.solved; end; }; iraa_temple_hidden_storage = room { nam = "iraa_temple_hidden_storage"; disp = [[Храм Ираафаанотра, хранилище]]; dsc = function(s) if me() == player_learr then return [[Леарр находится в небольшой круглой комнате. Стены комнаты, как и в других скрытых помещенях храма, излучают слабый свет. ]]; else return [[Стены этой небольшой комнаты излучают слабый свет. ]]; end; end; way = { kh_vroom("Наверх", "iraa_temple_hidden_hall"); }; obj = { "iraa_temple_hidden_pedestal" }; }; iraa_temple_hidden_pedestal = obj { var { state = 0; }; nam = "iraa_temple_hidden_pedestal"; dsc = function(s) if s.state == 0 then return [[В центре установлен металлический пьедестал, на котором лежит металлическая {табличка}. ]]; else return [[В центре установлен металлический {пьедестал}. ]]; end; end; act = function(s) if s.state == 0 then s.state = 1; item_lse_map.state = item_lse_map.state + 1; return [[Вы забираете металлическую табличку себе. ]]; else return [[Вьедестал пуст. ]]; end; end; };