atl_lev_first_sail = room { nam = "Левиафан"; hideinv = true; dsc = [[ Вы поднимаетесь на борт Левиафана и ждете, когда соберется команда. Меньше, чем через пятнадцать минут все поднимаются на борт и вы можете отправляться. ]]; obj = { vway("Продолжить", "{Продолжить}", "leviathan_captains_cabin"); }; }; char_aikerjarr_lev = obj { var { follow = true; }; nam = "aikerjarr"; disp = "Аикерьярр"; dsc = function(s) if (stead.nameof(where(s)) == s.home) then return [[{Аикерьярр} стоит перед иллюминатором. ]]; else return [[{Аикерьярр} смотрит на вас. ]]; end; end; home = "leviathan_wheelhouse"; accompany = function(s, value) s.follow = value; if (value) then lifeon(s); else move(s, s.home, where(s)); lifeoff(s); end; end; life = function(s) if (where(pl).leviathan) then if (stead.nameof(where(s)) ~= s.home) then move(s, s.home, where(s)); end; else move(s, where(pl), where(s)); end; end; act = function(s) if (not where(pl).leviathan) then return [[Вы не можете говорить с ним сейчас.]]; end; if (atl_iyh_shockfish_dead) then return [[Аикерьярр молчит. ]]; else return [[Аикерьярр недовольно рычит: "Ты-хевьяр что-нужно-делай". ]]; end; end; }; iyh_far_from_entrance_foot = room { nam = "Океан"; handwheel_room = "iyh_far_from_entrance"; underwater = true; no_exit = [[ Нет смысла покидать Левиафан здесь. ]]; dsc = [[ Вы видите вдалеке высокую скалу, простирающуюся на многие километры в обе стороны. Прямо перед вами, в скале вы видите массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. ]]; view = [[Через иллюминаторы вы видите вдалеке высокую скалу, простирающуюся на многие километры в обе стороны. Прямо перед вами, в скале вы видите массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. ]]; way = { kh_vroom("В Левиафан", "leviathan_airlock"); }; }; iyh_far_from_entrance = dlg { var { visited = false; }; no_exit = [[ Нет смысла покидать Левиафан здесь. ]]; nam = "Левиафан, рубка"; hideinv = true; leviathan = true; entered = function(s) make_snapshot(); if atl_iyh_shockfish_left then poff('wait'); end; if (not s.visited) then atl_iyh_state = 7; return [[Вы прибываете на место. ]]; end; end; dsc = function(s) if atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left then pr [[Через иллюминаторы вы видите высокую скалу, простирающуюся на многие километры в обе стороны. В скале вырезаны массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. Отсюда вы видите, как время от времени из дверей храма выплывает огромный скат. ]]; elseif atl_iyh_entrance_destroyed then pr [[Через иллюминаторы вы видите высокую скалу, простирающуюся на многие километры в обе стороны. В одном из мест скалы недавно произошел обвал, похоронив под собой вход в древний навьярский храм. ]]; else pr [[Через иллюминаторы вы видите высокую скалу, простирающуюся на многие километры в обе стороны. В скале вырезаны массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. ]]; end; if (not s.visited) then s.visited = true; if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then pr [[Леарр поднимается в рубку. При виде храма, она восклицает: "Мы должны-попасть туда!" ]]; end; end; end; phr = { {tag="advance", always=true, "[Подойти ближе]", [[Послушные вашей воле, двигатели Левиафана приводят субмарину в движение и вы плавно приближаетесь ко входу в храм. ]], code [[ move(submarine_leviathan, "iyh_near_temple_foot"); walk('iyh_near_temple'); ]]}; {tag="wait", "[Ждать]", [[Вы решаете подождать до наступления ночи и это правдывает себя. Как только последние лучи солнца перестают пробиваться сквозь толщу воды, скат выбирается из своего логова и отправляется на охоту. Без сомнения, он вернется утром, но у вас есть целая ночь, чтобы сделать все, что нужно. ]], code [[ lifeon(iyh_far_from_entrance); atl_iyh_shockfish_away = 30; ]]}; {tag="light_temple", always=true, "[Осветить вход в храм]", function(s) if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then iyh_fight.distance = 1000; walk('iyh_fight'); return [[Мощный луч света падает на вход в храм. Вы видите внутри какое-то движение и изнутри выплывает огромный скат. ]]; else return [[Мощный луч света падает на вход в храм. Ничего не происходит. ]]; end; end}; {tag="light_wall_r", "[Осветить скалы справа от храма]", [[Мощный луч света освещает скалы по правую сторону от храма. Он плавно скользит по поверхности скалы, пока вы не натыкаетесь на то, что отсюда кажется вам каким-то ущельем. Возможно следует изучить его? ]], code [[ iyh_near_temple:pon('ravine'); pon('ravine'); ]]}; {tag="light_wall_l", "[Осветить скалы слева от храма]", [[Мощный луч света освещает скалы по левую сторону от храма. Он плавно скользит по поверхности скалы, однако так и не натыкается ни на что интересное. ]]}; {tag="ravine", false, always=true, "[Подойти ко входу в ущелье]", [[Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье. ]], code [[ move(submarine_leviathan, "iyh_ravine_entry_foot"); walk('iyh_ravine_entry'); ]]}; {tag="away", always=true, "[Отойти от штурвала]", code = [[ walk('leviathan_wheelhouse'); ]]}; {tag="return", always=true, "[Покинуть храм]", code = [[ walk('leviathan_dlg'); ]]}; }; life = function(s) if (not atl_iyh_shockfish_left) then atl_iyh_shockfish_away = atl_iyh_shockfish_away - 1; if (atl_iyh_shockfish_away == 0) then lifeoff(iyh_far_from_entrance); if (where(pl) == iyh_temple_main_hall_entry or where(pl) == iyh_temple_main_hall_middle or where(pl) == iyh_temple_main_hall_end or where(pl) == iyh_near_temple_foot) and not have(iyh_item_amulet) then walk("game_over_shockfish"); elseif (where(pl).leviathan == true and (where(submarine_leviathan) == iyh_near_temple_foot)) then pr [[Скат возвращается и, заметив Левиафан, тут же нападает на субмарину. Вы поднимаетесь на мостик, чтобы принять управление. ]]; walk("iyh_fight"); end; elseif atl_iyh_shockfish_away < 5 and (where(pl).temple or where(pl).leviathan and where(submarine_leviathan) == iyh_near_temple_foot) then pr "Уже почти рассвело. Скат вот-вот вернется. "; elseif atl_iyh_shockfish_away < 10 and (where(pl).temple or (pl).leviathan and where(submarine_leviathan) == iyh_near_temple_foot) then pr "Приближается рассвет. Скат скоро вернется. "; end; end; end; }; iyh_fight = room { var { temple_distance = 0; distance = 0; shockfish_health = 100; timing = 0; }; nam = "Штурвал Левиафана"; entered = function(s) s.temple_distance = s.distance; s.shockfish_health = 100; end; hideinv = true; forcedsc = true; leviathan = true; nosave = true; noautosave = true; dsc = function(s) pr("Вы находитесь от ската на расстоянии около "..tostring(math.abs(s.distance)).." метров. "); pr("Храм находится примерно на расстоянии " .. tostring(math.abs(s.temple_distance)) .. " метров. "); pr("На приборной панели вы видите, что "); iyh_fight_torpedo:enable(); iyh_fight_recharge:disable(); if (submarine_leviathan.torpedoes == 2) then pr "оба торпедных аппапата заряжены и готовы к бою. "; elseif (submarine_leviathan.torpedoes == 1) then pr "только один из торпедных аппаратов заряжен. "; else iyh_fight_recharge:enable(); iyh_fight_torpedo:disable(); pr "у вас не осталось заряженных торпед. "; end; if (submarine_leviathan.electric_integrity < 30) then pr "Свет в рубке периодически моргает, чувствуется запах горелой проводки, часть проводов искрит. "; elseif (submarine_leviathan.electric_integrity < 70) then pr "Свет в рубке периодически моргает. "; end; if (submarine_leviathan.hull_integrity < 30) then pr "Обшивка Левиафана сильно повреждена. "; elseif (submarine_leviathan.hull_integrity < 70) then pr "Обшивка Левиафана повреждена. "; end; end; maketurn = function(s) if (s.distance > 1000 or s.distance < -1000) then if (s.shockfish_health < 20 or atl_iyh_entrance_destroyed) then pr "Скат уплывает и вы остаетесь одни. "; atl_iyh_shockfish_left = true; submarine_leviathan.hull_integrity = 100; submarine_leviathan.electric_integrity = 100; submarine_leviathan.torpedoes = 2; walk("iyh_far_from_entrance"); return; else pr "Вы удаляетесь достаточно далеко и скат возвращается к себе в жилище. "; s.shockfish_health = 100; submarine_leviathan.hull_integrity = 100; submarine_leviathan.electric_integrity = 100; submarine_leviathan.torpedoes = 2; walk("iyh_far_from_entrance"); return; end; end; if (s.shockfish_health < 20 or (atl_iyh_entrance_destroyed and s.shockfish_health < 70)) then if (s.distance < 0) then s.distance = s.distance - 75; else s.distance = s.distance + 75; end; pr "Скат пытается сбежать от вас. "; else if (math.abs(s.distance) <= 75) then if (math.abs(s.distance) > 0) then s.distance = 0; pr "Скат приближается к вам. "; end; if (s.timing <= 0) then s.timing = 5; pr "Скат атакует Левиафан электрическим разрядом. "; submarine_leviathan.electric_integrity = submarine_leviathan.electric_integrity - 10; if (submarine_leviathan.electric_integrity > 50) then pr "Атака не оказывает видимого эффекта на субмарину. "; elseif (submarine_leviathan.electric_integrity > 0) then pr "Свет моргает, проводка искрит. "; if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then pr "По телефону вы слышите встревоженный голос Райта: \"Мы так долго не протянем\". "; elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then pr "По телефону вы слышите встревоженный голос Рэдклиффа: \"Мы так долго не протянем\". "; end; else walk('game_over_powerless'); end; else s.timing = s.timing - 1; pr "Скат пытается пробить обшивку Левиафана хвостовым шипом"; submarine_leviathan.hull_integrity = submarine_leviathan.hull_integrity - 5; if (submarine_leviathan.hull_integrity > 50) then pr ", но не наносит ощутимого ущерба. "; elseif (submarine_leviathan.hull_integrity > 0) then pr ". Сильный удар повреждает внешнюю обшивку, в резервуары проникает вода. "; else walk('game_over_sunk'); end; end; else pr "Скат приближается к вам. "; if (s.distance < 0) then s.distance = s.distance + 75; else s.distance = s.distance - 75; end; end; end; end; obj = { 'iyh_fight_torpedo_temple', 'iyh_fight_torpedo', 'iyh_fight_sonic', 'iyh_fight_recharge', 'iyh_advance_full', 'iyh_advance_half', 'iyh_advance_quarter', 'iyh_retreat_full', 'iyh_retreat_half', 'iyh_retreat_quarter' }; }; iyh_fight_torpedo_temple = obj { nam = "iyh_fight_torpedo_temple"; dsc = "{Выстрелить торпедой в храм}^"; act = function(s) if (math.abs(iyh_fight.temple_distance) < 50) then return [[Цель слишком близко. ]]; elseif (math.abs(iyh_fight.temple_distance) > 200) then return [[Цель слишком далеко. ]]; else atl_iyh_entrance_destroyed = true; pr [[Торпеда попадает в аккурат над храмом и вход оказывается завален тяжелыми глыбами. ]]; if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then pr [[Леарр в ярости поднимается в рубку и кричит на вас: "Что ты делаешь?!"^Она с неприязнью смотрит на вас и удаляется к себе в каюту. ]]; rel_learr = rel_learr - 1; remove(char_learr, char_learr.home); char_learr.home = "leviathan_cabin_3"; put(char_learr, "leviathan_cabin_3"); leviathan_cabin_3.lock = true; end; s:disable(); end; end; }; iyh_fight_torpedo = obj { nam = "iyh_fight_torpedo"; dsc = "{Выстрелить торпедой в ската}^"; act = function(s) if (math.abs(iyh_fight.distance) < 50) then return [[Цель слишком близко. ]]; elseif (math.abs(iyh_fight.distance) > 200) then return [[Цель слишком далеко. ]]; else if (iyh_fight.shockfish_health > 70) then local meters = 25 * rnd(3) + 25; iyh_fight.shockfish_health = iyh_fight.shockfish_health - 70; if (iyh_fight.distance >= 0) then iyh_fight.distance = iyh_fight.distance + meters; else iyh_fight.distance = iyh_fight.distance - meters; end; pr("Вы стреляете торпедой в ската. Торпеда достигает цели. Ската отбрасывает назад на ".. tostring(meters) .. " метров. "); else iyh_fight.shockfish_health = 100; submarine_leviathan.hull_integrity = 100; submarine_leviathan.electric_integrity = 100; submarine_leviathan.torpedoes = 2; iyh_fight.shockfish_health = 0; atl_iyh_shockfish_dead = true; pr "Вы стреляете торпедой в ската. Торпеда взрывается достигнув цели и разрывает ската. Вода краснеет от крови, а вы теперь можете безопасно приблизиться к храму. "; if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then pr [[Леарр в ярости поднимается в рубку и кричит на вас: "Что ты делаешь ненавистный-a'rr?!"^После этого она убегает к себе в каюту. ]]; rel_learr = -99; remove(char_learr, char_learr.home); char_learr.home = "leviathan_cabin_3"; put(char_learr, "leviathan_cabin_3"); leviathan_cabin_3.lock = true; elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then pr [[Аикерьярр отворачивается от иллюминатора и со злобой смотрит на вас: "Ты за-это-ответишь he'rr". ]]; end; if (math.abs(iyh_fight.temple_distance) < 100) then walk("iyh_near_temple"); else walk("iyh_far_from_entrance"); end; return; end; return iyh_fight:maketurn(); end; end; }; iyh_fight_sonic = obj { nam = "iyh_fight_sonic"; dsc = "{Выстрелить из звуковой пушки}^"; act = function(s) if (math.abs(iyh_fight.distance) > 200) then return [[ Цель слишком далеко ]]; else if (iyh_fight.shockfish_health > 50) then iyh_fight.shockfish_health = iyh_fight.shockfish_health - 10; pr "Вы стреляете в ската из звуковой пушки. Это лишь слегка ранит его. "; else pr "Вы стреляете в ската из звуковой пушки. Это не наносит ему серьезного ущерба. "; end; return iyh_fight:maketurn(); end; end; }; iyh_fight_recharge = obj { nam = "iyh_fight_torpedo"; dsc = "{Перезарядить торпеды}^"; act = function(s) --Если в партии нет никого кроме Леарр/Аикерьярра, то игрок перезаряжает торопеды сам, иначе -- отдает приказ if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0 or ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then pr "Вы отдаете по телефону приказ перезарядить торпедные аппараты. "; else pr "Вы спускаетесь вниз, чтобы перезарядить торпедные аппараты. "; iyh_fight:maketurn(); iyh_fight:maketurn(); pr "Вы возвращаетесь в рубку, чтобы продолжить бой. " end; end; }; iyh_advance_full = obj { nam = "iyh_advance_full"; dsc = "{Полный вперед}^"; act = function(s) pr "Вы включаете двигатели на полную мощность. "; if (iyh_fight.distance >= 0) then iyh_fight.distance = iyh_fight.distance - 100; iyh_fight.temple_distance = iyh_fight.temple_distance - 100; if (iyh_fight.distance < 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; else iyh_fight.distance = iyh_fight.distance + 100; iyh_fight.temple_distance = iyh_fight.temple_distance + 100; if (iyh_fight.distance >= 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; end; iyh_fight:maketurn(); end; }; iyh_advance_half = obj { nam = "iyh_advance_half"; dsc = "{1/2 вперед}^"; act = function(s) pr "Вы включаете двигатели на половину мощности. "; if (iyh_fight.distance >= 0) then iyh_fight.distance = iyh_fight.distance - 50; iyh_fight.temple_distance = iyh_fight.temple_distance - 50; if (iyh_fight.distance < 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; else iyh_fight.distance = iyh_fight.distance + 50; iyh_fight.temple_distance = iyh_fight.temple_distance + 50; if (iyh_fight.distance >= 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; end; iyh_fight:maketurn(); end; }; iyh_advance_quarter = obj { nam = "iyh_advance_quarter"; dsc = "{1/4 вперед}^"; act = function(s) pr "Вы включаете двигатели на четверть мощности. "; if (iyh_fight.distance >= 0) then iyh_fight.distance = iyh_fight.distance - 25; iyh_fight.temple_distance = iyh_fight.temple_distance - 25; if (iyh_fight.distance < 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; else iyh_fight.distance = iyh_fight.distance + 25; iyh_fight.temple_distance = iyh_fight.temple_distance + 25; if (iyh_fight.distance >= 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; end; iyh_fight:maketurn(); end; }; iyh_retreat_full = obj { nam = "iyh_retreat_full"; dsc = "{Полный назад}^"; act = function(s) pr "Вы включаете двигатели на полную мощность. "; if (iyh_fight.distance >= 0) then iyh_fight.distance = iyh_fight.distance + 100; iyh_fight.temple_distance = iyh_fight.temple_distance + 100; if (iyh_fight.distance < 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; else iyh_fight.distance = iyh_fight.distance - 100; iyh_fight.temple_distance = iyh_fight.temple_distance - 100; if (iyh_fight.distance >= 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; end; iyh_fight:maketurn(); end; }; iyh_retreat_half = obj { nam = "iyh_retreat_half"; dsc = "{1/2 назад}^"; act = function(s) pr "Вы включаете двигатели на половину мощности. "; if (iyh_fight.distance >= 0) then iyh_fight.distance = iyh_fight.distance + 50; iyh_fight.temple_distance = iyh_fight.temple_distance + 50; if (iyh_fight.distance < 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; else iyh_fight.distance = iyh_fight.distance - 50; iyh_fight.temple_distance = iyh_fight.temple_distance - 50; if (iyh_fight.distance >= 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; end; iyh_fight:maketurn(); end; }; iyh_retreat_quarter = obj { nam = "iyh_retreat_quarter"; dsc = "{1/4 назад}^"; act = function(s) pr "Вы включаете двигатели на четверть мощности. "; if (iyh_fight.distance >= 0) then iyh_fight.distance = iyh_fight.distance + 25; iyh_fight.temple_distance = iyh_fight.temple_distance + 25; if (iyh_fight.distance < 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; else iyh_fight.distance = iyh_fight.distance - 25; iyh_fight.temple_distance = iyh_fight.temple_distance - 25; if (iyh_fight.distance >= 0) then pr "Вы проплываете мимо противника и разворачиваете субмарину. " end; end; iyh_fight:maketurn(); end; }; iyh_ravine_entry = dlg { nam = "Штурвал Левиафана"; no_exit = [[Нет смысла покидать Левиафан здесь. ]]; hideinv = true; leviathan = true; phr = { {always = true, "[Направить Левиафан в ущелье]", function(s) iyh_labyrinth.position = "1"; walk("iyh_labyrinth"); return false; end}; {always = true, "[Отвести Левиафан от ущелья]", function(s) move(submarine_leviathan, "iyh_far_from_entrance_foot"); walk("iyh_far_from_entrance"); return false; end}; {always = true, "[Подвести Левиафан ко входу в храм]", function(s) move(submarine_leviathan, "iyh_near_temple_foot"); walk("iyh_near_temple"); return false; end}; {always = true, "[Отойти от штурвала]", function(s) walk("leviathan_wheelhouse"); return false; end}; {tag="return", always=true, "[Покинуть храм]", code = [[ walk('leviathan_dlg'); ]]}; }; entered = function(s) move(submarine_leviathan, iyh_ravine_entry_foot); return [[Левиафан находится у входа в ущелье. Вдалеке по левому борту, на юго-западе, вы видите вход в навьярский храм. ]]; end; }; iyh_ravine_entry_foot = room { nam = "Ущелье"; no_exit = [[ Нет смысла покидать Левиафан здесь. ]]; view = [[Левиафан находится у входа в ущелье. Вдалеке по левому борту, на юго-западе, вы видите вход в навьярский храм. ]]; handwheel_room = 'iyh_ravine_entry'; }; iyh_labyrinth = labyrinth { var { position = "1"; }; nam = "Штурвал Левиафана"; no_exit = [[Нет смысла покидать Левиафан здесь. ]]; leviathan = true; dir = { 'На север'; 'На северо-восток'; 'На восток'; 'На юго-восток'; 'На юг'; 'На юго-запад'; 'На запад'; 'На северо-запад'; }; disp = "Штурвал Левиафана"; dsc = function(s) return [[Вы находитесь где-то в переплетении узких ущелий. Вверху скалы сужаются почти вплотную, не давая вам возможности подняться над ущельем и осмотреться. ]]; end; map = { ["1"] = { e8 = "2"; e7 = "32"; ex4 = "iyh_ravine_entry"; }; ["2"] = { e4 = "1"; e7 = "3"; }; ["3"] = { e7 = "5"; e8 = "4"; e3 = "2"; }; ["4"] = { e4 = "3"; }; ["5"] = { e3 = "3"; e5 = "37"; e6 = "6"; }; ["6"] = { e2 = "5"; e5 = "33"; e7 = "7"; }; ["7"] = { e3 = "6"; e6 = "12"; e7 = "11"; e8 = "8"; }; ["8"] = { e4 = "7"; e7 = "10"; e8 = "9"; }; ["9"] = { e4 = "8"; }; ["10"] = { e3 = "8"; e4 = "11"; }; ["11"] = { e3 = "7"; e8 = "10"; }; ["12"] = { e2 = "7"; e5 = "14"; e6 = "13"; }; ["13"] = { e2 = "12"; }; ["14"] = { e1 = "12"; e5 = "20"; e6 = "15"; }; ["15"] = { e2 = "14"; e5 = "17"; e6 = "16"; }; ["16"] = { e2 = "15"; }; ["17"] = { e1 = "15"; e4 = "19"; e5 = "18"; }; ["18"] = { e1 = "17"; }; ["19"] = { e8 = "19"; }; ["20"] = { e1 = "14"; e4 = "22"; e5 = "21"; }; ["21"] = { e1 = "20"; }; ["22"] = { e3 = "25"; e4 = "23"; e8 = "20"; }; ["23"] = { ex3 = "iyh_rear_entrance"; e4 = "24"; e8 = "22"; }; ["24"] = { e8 = "23"; }; ["25"] = { e2 = "27"; e3 = "26"; e7 = "22"; }; ["26"] = { e7 = "25"; }; ["27"] = { e1 = "30"; e2 = "29"; e4 = "28"; e6 = "25"; }; ["28"] = { e8 = "27"; }; ["29"] = { e6 = "27"; }; ["30"] = { e2 = "31"; e5 = "27"; e6 = "36"; }; ["31"] = { e2 = "32"; e6 = "30"; e7 = "35"; }; ["32"] = { e3 = "1"; e6 = "31"; e7 = "34"; }; ["33"] = { e1 = "6"; e2 = "37"; }; ["34"] = { e3 = "32"; }; ["35"] = { e3 = "31"; }; ["36"] = { e2 = "30"; }; ["37"] = { e1 = "5"; e6 = "33"; } } } iyh_rear_entrance = room { nam = "Левиафан"; leviathan = true; dsc = [[Вы находитесь в конце ущелья. Луч прожектора освещает небольшой проход в скале. ]]; way = { kh_vroom("В ущелье", function(s) iyh_labyrinth.position = "23"; return "iyh_labyrinth"; end); kh_vroom("Отойти от штурвала", "leviathan_wheelhouse"); }; entered = function(s) move(submarine_leviathan, iyh_rear_entrance_foot); end; }; iyh_rear_entrance_foot = room { nam = "Ущелье"; temple = true; dsc = [[Узкое глубокое ущелье. Вы находитесь в одном из его концов. В скале вы видите небольшой проход явно искусственного происхождения. ]]; view = [[Левиафан находится в одном из тупиков изкого глубокого ущелья. В скале перед субмариной виден небольшой проход искусственного происхождения. Практически неприметный проем сейчас освещен ярким лучом прожектора вашей субмарины. ]]; underwater = true; handwheel_room = "iyh_rear_entrance"; way = { kh_vroom("В Левиафан", "leviathan_airlock"); kh_vroom("В проход", "iyh_temple_rear_corridor_entry"); }; entered = function(s) if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and not char_learr.follow and where(submarine_leviathan) == here() and char_learr.home ~= "leviathan_cabin_3") then pr [[Леарр входит в шлюз вслед за вами: "Я вместе-с-тобой-пойду". ]]; char_learr:accompany(true); char_radcliffe:accompany(false); char_wright:accompany(false); char_anna:accompany(false); end; path("В Левиафан"):disable(); if (where(submarine_leviathan) == here()) then make_snapshot(); path("В Левиафан"):enable(); end; end; }; iyh_temple_rear_corridor_entry = room { nam = "Коридор"; temple = true; dsc = [[Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. ]]; underwater = true; way = { kh_vroom("Выйти", "iyh_rear_entrance_foot"); kh_vroom("В комнату слева", "iyh_left_room_1"); kh_vroom("В комнату справа", "iyh_right_room_1"); kh_vroom("Пройти дальше", "iyh_temple_rear_corridor_middle"); }; }; iyh_temple_rear_corridor_middle = room { nam = "Коридор"; temple = true; dsc = [[Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. ]]; underwater = true; way = { kh_vroom("К задней двери", "iyh_temple_rear_corridor_entry"); kh_vroom("В комнату слева", "iyh_left_room_2"); kh_vroom("В комнату справа", "iyh_right_room_2"); kh_vroom("К главному залу", "iyh_temple_rear_corridor_end"); }; }; iyh_temple_rear_corridor_end = room { nam = "Коридор"; temple = true; dsc = [[Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. Перед вами расположен проход, ведущий в основное помещение храма. ]]; underwater = true; way = { kh_vroom("К задней двери", "iyh_temple_rear_corridor_middle"); kh_vroom("В комнату слева", "iyh_left_room_3"); kh_vroom("В комнату справа", "iyh_right_room_3"); kh_vroom("В главный зал", "iyh_temple_main_hall_end"); }; }; iyh_left_room_1 = room { nam = "Комната"; temple = true; underwater = true; dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]]; way = { kh_vroom("В коридор", "iyh_temple_rear_corridor_entry"); }; }; iyh_right_room_1 = room { nam = "Комната"; temple = true; underwater = true; dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]]; way = { kh_vroom("В коридор", "iyh_temple_rear_corridor_entry"); }; obj = { "item_legend_of_hunter" }; }; iyh_left_room_2 = room { nam = "Комната"; temple = true; underwater = true; dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]]; way = { kh_vroom("В коридор", "iyh_temple_rear_corridor_middle"); }; }; iyh_right_room_2 = room { nam = "Комната"; temple = true; underwater = true; dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]]; way = { kh_vroom("В коридор", "iyh_temple_rear_corridor_middle"); }; obj = { "item_legend_of_first_city" }; }; iyh_left_room_3 = room { nam = "Комната"; temple = true; underwater = true; dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. ]]; way = { kh_vroom("В коридор", "iyh_temple_rear_corridor_end"); kh_vroom("В скрытый проход", "iyh_temple_hidden_room_1"):disable(); }; obj = { "iyh_old_navjiarr_body", "iyh_item_record", "iyh_room_wall", "iyh_room_wall_gap" }; }; iyh_old_navjiarr_body = obj { var { state = 0; }; nam = "iyh_old_navjiarr_body"; dsc = [[В одной из ниш справа от входа лежит старый {навьяр}. Серая чешуя давно поблекла, глаза закрыты. Руки сложены на груди. ]]; act = function(s) if (s.state == 0) then s.state = 1; put(iyh_item_amulet, pl); return [[Навьяр никак не реагирует на вас. Он мертв. В руках его вы замечаете небольшой металлический амулет, который вы забираете себе. ]]; else return [[Навьяр никак не реагирует на вас. Он мертв. ]]; end; end; }; iyh_item_record = obj { nam = "iyh_item_record"; disp = "Каменная табличка"; dsc = [[Рядом с ним лежит каменная {табличка} с письменами. ]]; tak = [[Вы забираете табличку. ]]; inv = function(s) --Написать исходный навьярский вариант таблички if (language_known) then return [[Табличка гласит: "Те, кто найдут это, пусть знают, что здесь покоится истинный глаз Дипатреанотра, служащий разгадкой этого храма. Знайте, читающие это, что реликвию я взял для способствования осуществления пророчества о спящем в глубине. Для открытия храма, взгляните истинным глазом напротив моего ложа. Другие фрагменты карты, ведущей к цели лежат в двух близлежащих городах. Еще два -- в далеких землях, в местах известных как Венаэданотр и Нлейисланотр". Чуть ниже дописано: "Если Вилрьярр еще здесь, отпустите его. Ему незачем оставаться здесь". ]]; else return [[Табличка содержит навьярские письмена, которые вы не понимаете. ]]; end; end; }; iyh_item_amulet = obj { nam = "iyh_item_amulet"; disp = "Амулет"; inv = [[Небольшой металлический додекаэдр на цепочке. На нем выгравирован причудливый орнамент, а на одной из граней изображен скат. Амулет слегка вибрирует в ваших руках, издавая низкий едва заметный гул. ]]; }; iyh_room_wall = obj { nam = "iyh_room_wall"; dsc = function(s) if disabled(iyh_room_wall_gap) then return [[Одна из стен комнаты раздвинулась в стороны, открывая проход в скрытое помещение храма. ]]; else return [[{Стена} слева от входа не содержит ниш, в отличие от стен в других комнатах. ]]; end; end; act = function(s) if disabled(iyh_room_wall_gap) then return [[Гладкая каменная стена раздвинулась в стороны, открывая проход в скрытое помещение храма. ]]; else return [[Гладкая каменная стена. Глубокая трещина от потолка до пола пересекает ее посередине. Вы не видите ничего необычного. ]]; end; end; }; iyh_room_wall_gap = obj { nam = "iyh_room_wall_gap"; dsc = [[Глубокая {трещина} от потолка до пола пересекает ее посередине. ]]; act = function(s) if (iyh_looking_glass.seen) then path('В скрытый проход'):enable(); s:disable(); return [[Вы осторожно нащупываете скрытую внутри трещины кнопку и нажимаете ее. Каменные плиты отодвигаются в стороны, образуя проход в скрытое помещение храма. ]]; else return [[Просто трещина, ничего интересного. ]]; end; end; }; iyh_looking_glass = obj { var { seen = false; }; nam = "iyh_looking_glass"; disp = "Подзорная труба"; dsc = [[]]; inv = [[Короткая подзорная труба из неизвестного вам металла, такого же, из какого сделаны многие другие старые артефакты навьяров. ]]; use = function(s, o) if (o == iyh_room_wall or o == iyh_room_wall_gap) then s.seen = true; return "Через трубу стена выглядит совсем иначе -- картинка странным образом искажается, позволяя видеть детали, скрытые от обычного взора. Стоя прямо напротив трещины и глядя внутрь, вы замечаете небольшой прямоугольный выступ, примерно на уровне шеи. "; end; end; }; iyh_right_room_3 = room { nam = "Комната"; temple = true; underwater = true; dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]]; way = { kh_vroom("В коридор", "iyh_temple_rear_corridor_end"); kh_vroom("В скрытое помещение", "iyh_temple_hidden_room_2"):disable(); }; obj = { "item_legend_of_temple" }; }; iyh_temple_hidden_room_1 = room { nam = "iyh_temple_hidden_room_1"; temple = true; underwater = true; disp = "Скрытая комната"; dsc = [[Небольшая комната, вытесанная в скале. Надежно спрятанная от посторонних глаз, она хранила свои тайны многие столетия, пока вы не открыли ее. Сейчас одна из стен ее раскрылась, открывая проход внутрь. ]]; way = { kh_vroom("К задним комнатам", "iyh_left_room_3"); kh_vroom("К главному залу", "iyh_temple_left_hall"):disable(); }; obj = { "iyh_temple_hidden_wall_1", "iyh_temple_lever_1" }; }; iyh_temple_lever_1 = obj { var { state = false; }; nam = "iyh_temple_lever_1"; dsc = [[У стены, напротив проема находится массивный {рычаг}. ]]; act = function(s) if (s.state) then return [[Вам больше незачем его трогать. ]]; else s.state = true; path("К главному залу"):enable(); path("В скрытое помещение", iyh_temple_left_hall):enable(); return [[Вы дергаете за рычаг и одна из плит в стене рядом с ним отодвигается, открывая проход. ]]; end; end; }; iyh_temple_hidden_wall_1 = obj { nam = "iyh_temple_hidden_wall_1"; dsc = [[Одна из стен комнаты покрыта навьярскими {письменами}, отлично сохранившимися. ]]; act = function(s) if (language_known) then iyh_temple_right_hall.question_seen = true; return [[Слова на стене складываются во фразу: "Многие покинули этот дом, чтобы поселиться рядом с ним и никогда более не вернуться. Многие другие навещают его регулярно, не оставляя надолго. Остальные же, так и остались там, не покидая его никогда". ]]; else return [[Вы не понимаете написанного. ]]; end; end; }; iyh_temple_hidden_room_2 = room { nam = "iyh_temple_hidden_room_2"; underwater = true; disp = "Скрытая комната"; dsc = [[Небольшая комната, вытесанная в скале. Надежно спрятанная от посторонних глаз, она хранила свои тайны многие столетия, пока вы не открыли ее. ]]; way = { kh_vroom("К задним комнатам", "iyh_right_room_3"):disable(); kh_vroom("К главному залу", "iyh_temple_right_hall") }; obj = { "iyh_temple_lever_2", "iyh_temple_lever_3" }; }; iyh_temple_stairs_l = obj { nam = "iyh_temple_stairs_l"; dsc = [[В стене, слева от входа вы видите темный проем, за которым начинается длинная каменная {лестница}, ведущая куда-то вниз, под храм. ]]; }; iyh_temple_stairs_r = obj { nam = "iyh_temple_stairs_r"; dsc = [[В стене, справа от входа вы видите темный проем, за которым начинается длинная каменная {лестница}, ведущая куда-то вниз, под храм. ]]; }; iyh_temple_lever_2 = obj { var { state = false; }; nam = "iyh_temple_lever_1"; dsc = [[У стены, напротив проема находится массивный {рычаг}. ]]; act = function(s) if (s.state) then return [[Вам больше незачем его трогать. ]]; else s.state = true; path("К задним комнатам"):enable(); path("В скрытое помещение", iyh_right_room_3):enable(); return [[Вы дергаете за рычаг и одна из плит в стене рядом с ним отодвигается, открывая проход. ]]; end; end; }; iyh_temple_lever_3 = obj { var { state = false; }; nam = "iyh_temple_lever_1"; dsc = [[В центре комнаты находится еще один, такой же, {рычаг}. ]]; act = function(s) if (s.state) then return [[Вам больше незачем его трогать. ]]; else s.state = true; iyh_temple_stairs_l:enable(); iyh_temple_stairs_r:enable(); path("Вниз по лестнице", iyh_temple_left_hall):enable(); path("Вниз по лестнице", iyh_temple_right_hall):enable(); return [[Вы дергаете за рычаг и слышите скрежет каменных плит где-то неподалеку. В комнате ничего не изменилось. ]]; end; end; }; iyh_shockfish = obj { nam = "iyh_shockfish"; dsc = [[В центре зала завис огромный {скат}. Громадная рыба спокойно наблюдает за вами и, кажется, не собирается нападать. ]]; noshoot = [[Вряд ли вы серьезно повредите гиганта своим выстрелом. ]]; act = [[Скат наблюдает за вами, однако не стремится нападать. Возможно, дело в вашем амулете?]]; used = function(s, o) if (o == iyh_item_amulet) then remove(iyh_item_amulet, pl); remove(iyh_shockfish, here()); atl_iyh_shockfish_left = true; return [[Вы бросаете амулет скату и гигантская рыба легко подхватывает его. Взмахнув хвостом, он выплывает из храма и устремляется куда-то вдаль. ]]; end; end; }; iyh_temple_main_hall_enter = function(s) remove(iyh_shockfish, here()); if (atl_iyh_shockfish_away == 0 and atl_iyh_shockfish_away and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then if have(iyh_item_amulet) then put(iyh_shockfish, here()); else walk("game_over_shockfish_2"); end; end; end; iyh_temple_main_hall_end = room { nam = "Храм"; temple = true; underwater = true; dsc = [[Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь в дальнем конце зала. Массивная дверь ведет в задние помещения храма. ]]; enter = iyh_temple_main_hall_enter; way = { kh_vroom("В центр зала", "iyh_temple_main_hall_middle"); kh_vroom("В заднюю дверь", "iyh_temple_rear_corridor_end"); }; }; iyh_temple_main_hall_middle = room { nam = "Храм"; temple = true; underwater = true; dsc = [[ Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Слева и справа от вас вы видите небольшие проемы, ведущие в боковые помещения. ]]; obj = { "iyh_pedestal" }; enter = iyh_temple_main_hall_enter; way = { kh_vroom("К выходу из храма", "iyh_temple_main_hall_entry"); kh_vroom("В конец зала", "iyh_temple_main_hall_end"); kh_vroom("Налево", "iyh_temple_left_hall"); kh_vroom("Направо", "iyh_temple_right_hall"); }; }; iyh_temple_main_hall_entry = room { nam = "Храм"; temple = true; underwater = true; dsc = [[ Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь у входа в зал. ]]; enter = iyh_temple_main_hall_enter; entered = function(s) if (atl_iyh_entrance_destroyed) then path("Выйти из храма"):disable(); end; end; way = { kh_vroom("Выйти из храма", "iyh_near_temple_foot"); kh_vroom("В центр зала", "iyh_temple_main_hall_middle"); }; obj = { "item_temple_disk" }; }; iyh_temple_left_hall = room { nam = "Храм"; temple = true; underwater = true; dsc = [[Вы находитесь в одной из боковых комнат храма. Небольшое помещение -- не более десятка метров в ширину. ]]; way = { kh_vroom("В главный зал", "iyh_temple_main_hall_middle"); kh_vroom("В скрытое помещение", "iyh_temple_hidden_room_1"):disable(); kh_vroom("Вниз по лестнице", "iyh_temple_descent_l"):disable(); }; obj = { "iyh_temple_rubble_left", "iyh_temple_niche_left", "iyh_temple_question_hall_plaque" }; }; iyh_temple_right_hall = room { var { question_seen = false; }; nam = "Храм"; temple = true; underwater = true; dsc = [[Вы находитесь в одной из боковых комнат храма. Небольшое помещение -- не более десятка метров в ширину. ]]; checkCoder = function(s, phrase) if (phrase == "aed'rr") then if s.question_seen then path('В скрытое помещение', s):enable(); return [[Стоит последней лампочке погаснуть, как одна из плит в стене комнаты сдвигается, открывая проход в скрытое помещение. ]]; else return [[Лампочки кодировщика зажигаются в заданной последовательности, но ничего не происходит. Нельзя ответить на незаданный вопрос. ]]; end; else return [[Лампочки кодировщика зажигаются в заданной последовательности, но ничего не происходит. ]]; end; end; way = { kh_vroom("В главный зал", "iyh_temple_main_hall_middle"); kh_vroom("В скрытое помещение", "iyh_temple_hidden_room_2"):disable(); kh_vroom("Вниз по лестнице", "iyh_temple_descent_r"):disable(); }; obj = { "iyh_temple_rubble_right", "iyh_temple_niche_right", "iyh_temple_answer_hall_plaque" }; }; iyh_temple_question_hall_plaque = obj { nam = "iyh_temple_question_hall_plaque"; dsc = [[На противоположной от входа стене зала висит небольшая {табличка} с нанесенными на нее цветными полосами. ]]; act = function(s) if (language_known) then return [[Надпись гласит: "Вопрос скрыт в этом храме, но не в этой комнате". ]]; else return [[К сожалению, вы не понимаете, что здесь написано. ]]; end; end; }; iyh_temple_answer_hall_plaque = obj { nam = "iyh_temple_answer_hall_plaque"; dsc = [[На противоположной от входа стене зала висит небольшая {табличка} с нанесенными на нее цветными полосами. ]]; act = function(s) if (language_known) then return [[Надпись гласит: "Ответь на вопрос и ты войдешь". ]]; else return [[К сожалению, вы не понимаете, что здесь написано. ]]; end; end; }; iyh_temple_descent_l = darkroom { nam = "Храм, спуск"; temple = true; underwater = true; dsc_halflit = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то в глубь земли, под храм. ]]; dsc_dark = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то в глубь земли, под храм. В темноте вы ничего не видите. ]]; way = { kh_vroom("Вверх", "iyh_temple_left_hall", 2); kh_vroom("Вниз", "iyh_temple_under_corridor_1", 1); }; }; iyh_temple_descent_r = darkroom { nam = "Храм, спуск"; temple = true; underwater = true; dsc_halflit = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то в глубь земли, под храм. ]]; dsc_dark = [[Вы идете по длинной крутой лестнице, вырезанной в толще скалы. Она уходит куда-то в глубь земли, под храм. В темноте вы ничего не видите. ]]; way = { kh_vroom("Вверх", "iyh_temple_right_hall", 2); kh_vroom("Вниз", "iyh_temple_under_corridor_1", 1); }; }; iyh_temple_under_corridor_1 = darkroom { nam = "Под храмом"; temple = true; underwater = true; dsc_halflit = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. Слева и справа вы видите проходы, ведущие к лестницам наверх. ]]; dsc_dark = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. В темноте вы различаете едва уловимое свечение откуда-то в конце коридора. ]]; way = { kh_vroom("На лестницу слева", "iyh_temple_descent_l", 1); kh_vroom("На лестницу справа", "iyh_temple_descent_r", 1); kh_vroom("Дальше по коридору", "iyh_temple_under_corridor_2", 2); }; }; iyh_temple_under_corridor_2 = darkroom { nam = "Под храмом"; temple = true; underwater = true; dsc_halflit = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. ]]; dsc_dark = [[Темный коридор, расположенный под храмом. Скрытый от посторонних глаз, он простоял нетронутым сотни, если не тысячи лет, храня древние тайны навьяров. ]]; obj = { 'iyh_temple_under_plaque' }; checkCoder = function(s, phrase) if (phrase == "i'yhe'he'vji'a'rr" or phrase == "he'vji'a'rr") then iyh_temple_under_plaque:disable(); path("В дверь", s):enable(); return [[Лампочки кодировщика зажигаются в заданной последовательности и каменная дверь медленно поднимается, открывая проход дальше. ]]; else return [[Лампочки кодировщика зажигаются в заданной последовательности, но ничего не происходит. ]]; end; end; way = { kh_vroom("Назад, к лестницам", "iyh_temple_under_corridor_1", 1); kh_vroom("В дверь", "iyh_temple_under_room", 1):disable(); }; }; iyh_temple_under_plaque = obj { nam = "iyh_temple_under_plaque"; seen_level = 2; dsc = function(s) if (me().has_light) then return [[Проход дальше закрывает массивная каменная дверь. Вы не видите никаких способов открыть ее. На двери расположена небольшая черная {табличка} из неизвестного материала. ]]; elseif (language_known) then return [[Проход дальше закрывает массивная каменная дверь. Вы не видите никаких способов открыть ее. На двери расположена небольшая {табличка} из неизвестного материала. В темноте вы видите на табличке едва заметные светящиеся полосы -- очевидно они утратили свою яркость от времени. Надпись гласит: "Назови себя и ты войдешь". ]]; else return [[Проход дальше закрывает массивная каменная дверь. Вы не видите никаких способов открыть ее. На двери расположена небольшая {табличка} из неизвестного материала. В темноте вы видите на табличке едва заметные светящиеся полосы -- очевидно они утратили свою яркость от времени. К сожалению, вы не понимаете, что они значат. ]]; end; end; act = function(s) if (me().has_light) then return [[Табличка из неизвестного материала. На ней нанесены едва заметные светящиеся полосы. Даже при слабом свете лампы их свечение еле заметно. ]]; else return [[Табличка из неизвестного материала. Cветящиеся полосы, нанесенные на нее достаточно различимы в темноте. ]]; end; end; }; iyh_temple_under_room = darkroom { nam = "iyh_temple_under_room"; temple = true; underwater = true; disp = "Под храмом"; dsc_halflit = [[Небольшая темная комната, скрытая в глубинах древнего навьярского храма. Вы первые, кто потревожил ее за долгие столетия. В центре находится каменный пьедестал. ]]; dsc_dark = [[Небольшая темная комната, скрытая в глубинах древнего навьярского храма. В темноте вы с трудом различаете очертания предметов. ]]; obj = { "item_lse_map"; }; way = { kh_vroom("Назад, в коридор", "iyh_temple_under_corridor_2", 1); }; }; iyh_temple_rubble_left = obj { nam = "iyh_temple_rubble"; dsc = [[ В углу валяется {груда обломков}. ]]; act = [[ Здесь ничего нет. ]]; }; iyh_temple_niche_left = obj { var { taken = false; }; nam = "iyh_temple_deep_niche_left"; dsc = [[ В одной из стен вы замечаете глубокую {нишу}. ]]; act = function(s) if (s.taken) then return [[ Здесь ничего нет. ]]; else s.taken = true; take(item_statuette); return [[ Внутри вы находите металлическую статуэтку, изображающую навьяра. ]]; end; end; }; iyh_temple_rubble_right = obj { var { taken = false; }; nam = "iyh_temple_rubble"; dsc = [[ В углу валяется {груда обломков}. ]]; act = function(s) if (s.taken) then return [[ Здесь ничего нет. ]]; else s.taken = true; take(item_legend_of_dark_source); return [[ В куче обломков вы находите металлическую табличку. ]]; end; end; }; iyh_temple_niche_right = obj { nam = "iyh_temple_deep_niche_left"; dsc = [[ В одной из стен вы замечаете глубокую {нишу}. ]]; act = [[ Здесь ничего нет. ]]; }; iyh_pedestal = obj { var { taken = false; }; nam = "iyh_pedestal"; dsc = function(s) if (s.taken) then return [[В центре комнаты расположен пустой {пьедестал}. ]]; else return [[В центре комнаты расположен {пьедестал}, на котором покоится самая обычная, на первый взгляд, подзорная труба. ]]; end; end; act = function(s) if (s.taken) then return [[Пьедестал пуст. ]]; else s.taken = true; take(iyh_looking_glass); p [[Вы поднимаете покоящуюся на пьедестале подзорную трубу. ]]; if ArrayUtils.indexOf(pl.party, 'learr') and where(char_learr) == here() then if language_known then p [[Когда вы берете трубу, по головным плавникам Леарр пробегают цветные полосы: "Это из храма в Дипатреанотре!" Вы решаете, что стоит осмотреть весь храм, пока есть возможность. ]]; else p [[По головным плавникам Леарр пробегают цветные полосы, но вы не понимаете, что они значат. Вы решаете, что стоит осмотреть весь храм, пока есть возможность. ]]; end; else p [[Она подходит под описание реликвии Дипатреанотра. Вы решаете, что стоит осмотреть весь храм, пока есть возможность. ]]; end; end; end; }; iyh_near_temple = dlg { nam = "Штурвал Левиафана"; dsc = function(s) if atl_iyh_entrance_destroyed then return [[Через иллюминаторы вы видите прямо перед собой обрушившуюся под воздействием мощного взрыва скалу. Мало что указывает, что здесь еще недавно был вход в древний храм навьяров ]]; else return [[Через иллюминаторы вы видите прямо перед собой массивные каменные двери, вытесанные в скале, возвышающейся далеко над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы. ]]; end; end; enter = function(s) if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then pr [[Как только вы приближаетесь, скат выплывает из свого жилища, чтобы прогнать посмевших приблизиться к нему. ]]; iyh_fight.temple_distance = 50; iyh_fight.distance = 50; walk(iyh_fight); end; end; entered = function(s) move(submarine_leviathan, iyh_near_temple_foot); end; phr = { {tag="ravine", false, always=true, "[Ко входу в ущелье]", [[ Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье. ]], code [[ move(submarine_leviathan, "iyh_ravine_entry_foot"); walk('iyh_ravine_entry'); ]]}; {tag="back", always=true, "[Вернуться к исходной позиции]", code = [[ move(submarine_leviathan, "iyh_far_from_entrance_foot"); walk('iyh_far_from_entrance'); ]]}; {tag="away", always=true, "[Отойти от штурвала]", code = [[ walk('leviathan_wheelhouse'); ]]}; {tag="return", always=true, "[Покинуть храм]", code = [[ walk('leviathan_dlg'); ]]}; }; }; iyh_near_temple_foot = room { nam = "Вход в храм"; temple = true; underwater = true; handwheel_room = 'iyh_near_temple'; dsc = function(s) if atl_iyh_entrance_destroyed then return [[Скала перед вами обрушилась под воздействием мощного взрыва. Мало что указывает, что здесь еще недавно был вход в древний храм навьяров. ]]; else return [[Прямо перед собой вы видите массивные каменные двери, вытесанные в скале, возвышающейся над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы. ]]; end; end; view = function(s) if atl_iyh_entrance_destroyed then return [[Скала перед вами обрушилась под воздействием мощного взрыва. Мало что указывает, что здесь еще недавно был вход в древний храм навьяров. ]]; else return [[Прямо перед собой вы видите массивные каменные двери, вытесанные в скале, возвышающейся над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы. ]]; end; end; entered = function(s) if (atl_iyh_entrance_destroyed) then path("В храм"):disable(); end; if (not atl_iyh_entrance_destroyed and ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and char_learr.follow) then if language_known then pr [[Леарр поднимает взгляд на место над входом храма, по ее головным плавникам бегут цветные полосы: "Здесь не указан город! Интересно, кто построил этот храм?"]]; else pr [[Леарр поднимает взгляд на место над входом храма, по ее головным плавникам бегут цветные полосы. ]]; end; end; if (not atl_iyh_entrance_destroyed and ArrayUtils.indexOf(pl.party, 'anna') ~= 0 and char_learr.follow) then pr [[Анна внимательно окидывает взглядом храм. В динамиках раздается ее голос: "Здесь не указано, какому городу принадлежит этот храм. Это необычно для навьяров. Интересно, для чего он был построен?"]]; end; path("В Левиафан"):disable(); if (where(submarine_leviathan) == here()) then path("В Левиафан"):enable(); end; end; way = { kh_vroom("В Левиафан", "leviathan_airlock"); kh_vroom("В храм", "iyh_temple_main_hall_entry"); }; }; iyh_outro_svetlova = room { nam = "Атлантида, док Левиафана"; dsc = function(s) pr [[При выходе из Левиафана, вас встречает Екатерина Светлова. Вы рассказываете ей обо всем произошедшем. ]]; if (atl_iyh_shockfish_dead) then pr [[Она забирает у вас артефакты для изучения, но крайне недовольна убийством ската: "Артефакты, конечно, будут полезны, но то что вы сделали ставит под угрозу дальнейшее существование станции. Хвала небесам, что рыбни об этом не знают и, надеюсь, не узнают никогда".^ ]]; elseif (atl_iyh_entrance_destroyed) then pr [[Она забирает у вас артефакты для изучения, но огорчена разрушением святилища: "Очень жаль, что пришлось разрушить храм -- там наверняка было еще много интересного".^ ]]; else pr [[Она забирает у вас артефакты для изучения и благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^ ]]; end; pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]]; end; entered = function(s) atl_iyh_artifacts_on_atlantis = true; remove(iyh_looking_glass, pl); remove(item_statuette, pl); remove(item_temple_disk, pl); remove(item_legend_of_temple, pl); remove(item_legend_of_dark_source, pl); remove(item_legend_of_first_city, pl); remove(item_legend_of_hunter, pl); end; obj = { vway("Продолжить", "{Продолжить}", "atl_luna_drake_room"); }; }; --[[Remove in 0.8.0]] iyh_outro_aikerrjarr = room { nam = "Атлантида, док Левиафана"; dsc = function(s) pr [[При выходе из Левиафана, вас встречает Екатерина Светлова. Аикерьярр сразу же требует: "Ты мне-отдашь взятое-тобой-в-храме-все". На что Светлова просит его: "Позвольте кратко взглянуть на все". Аикерьярр с явным недовольством соглашается. Пока Екатерина осматривает реликвии, вы рассказываете ей обо всем произошедшем. Как только вы заканчиваете рассказ, ]]; if (atl_iyh_shockfish_dead) then pr [[она лишь тяжело вздыхает глядя на вас, после чего уходит, махнув рукой.^ ]]; elseif (atl_iyh_entrance_destroyed) then pr [[она огорченно комментирует: "Очень жаль, что пришлось разрушить храм -- там наверняка было еще много интересного".^ ]]; else pr [[она благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^ ]]; end; pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]]; end; hideinv = true; entered = function(s) for i = 1, #pl.party do if pl.party[i] == 'aikerjarr' then table.remove(pl.party, i); break; end; end; remove(char_aikerjarr_lev, where(char_aikerjarr_lev)); remove(iyh_looking_glass, pl); remove(item_statuette, pl); remove(item_temple_disk, pl); remove(item_legend_of_temple, pl); remove(item_legend_of_dark_source, pl); remove(item_legend_of_first_city, pl); remove(item_legend_of_hunter, pl); end; obj = { vway("Продолжить", "{Продолжить}", "atl_luna_drake_room"); }; }; iyh_outro_learr_shockfish_dead = room { nam = "Атлантида, док Левиафана"; dsc = function(s) return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр, вышедшая за вами следом, объявляет: "Я забираю-артефакты-в-Ираафаанотр". Светлова спрашивает: "Вы не разрешите нам оставить их на несколько дней для изучения?"^ Леарр отрезает: "Нет", -- и выходит из дока. Светлова вопросительно смотрит на вас и вы пересказываете ей произошедшее. Она лишь тяжело вздыхает глядя на вас, после чего уходит, махнув рукой.^Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]]; end; hideinv = true; entered = function(s) for i = 1, #pl.party do if pl.party[i] == 'learr' then table.remove(pl.party, i); break; end; end; atl_rep_iraa = atl_rep_iraa - 1; atl_rep_dyp = atl_rep_dyp - 1; leviathan_cabin_3.lock = false; remove(char_learr, where(char_learr)); remove(iyh_looking_glass, pl); remove(item_statuette, pl); remove(item_temple_disk, pl); remove(item_legend_of_temple, pl); remove(item_legend_of_dark_source, pl); remove(item_legend_of_first_city, pl); remove(item_legend_of_hunter, pl); end; obj = { vway("Продолжить", "{Продолжить}", "atl_luna_drake_room"); }; }; iyh_outro_learr_temple_destroyed = room { nam = "Атлантида, док Левиафана"; dsc = function(s) return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр, вышедшая за вами следом, объявляет: "Я забираю-артефакты-в-Ираафаанотр". Светлова спрашивает: "Вы не разрешите нам оставить их на несколько дней для изучения?"^ Леарр отрезает: "Нет", -- и выходит из дока. Светлова вопросительно смотрит на вас и вы пересказываете ей произошедшее. Она задумчиво чешет подбородок и сообщает: "Я поговорю с Леарр, отправляйтесь в свою комнату. Думаю, мне удастся все уладить".^Вы следуете ее совету и отправляетесь к себе. Утром, она вызывает вас по телефону: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]]; end; hideinv = true; entered = function(s) for i = 1, #pl.party do if pl.party[i] == 'learr' then table.remove(pl.party, i); break; end; end; move(char_learr_atlantis, atl_oculus_lab_a); leviathan_cabin_3.lock = false; char_learr.home = "leviathan_wardroom"; remove(iyh_looking_glass, pl); remove(item_statuette, pl); remove(item_temple_disk, pl); remove(item_legend_of_temple, pl); remove(item_legend_of_dark_source, pl); remove(item_legend_of_first_city, pl); remove(item_legend_of_hunter, pl); end; obj = { vway("Продолжить", "{Продолжить}", "atl_luna_drake_room"); }; }; iyh_outro_learr = dlg { nam = "Атлантида, док Левиафана"; entered = function(s) if (rel_learr >= 0) then psub('rel_ok'); else psub('rel_not_ok'); end; remove(iyh_looking_glass, pl); remove(item_statuette, pl); remove(item_temple_disk, pl); remove(item_legend_of_temple, pl); remove(item_legend_of_dark_source, pl); remove(item_legend_of_first_city, pl); remove(item_legend_of_hunter, pl); return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр сразу же просит: "Ты мне-отдашь взятое-в-храме".^ В ответ Светлова просит ее: "Может, вы разрешите нам оставить реликвии на некоторое время?"^ Леарр не слишком уверенно отвечает: "Старейшина это-не-одобрит. Другой-выход есть?" ]]; end; phr = { {tag="rel_ok"}; {"Это очень поможет нам в поисках Уильяма.", [[Леарр все еще неуверенно: "Я что-смогу-сделаю. Вы пока-все-оставьте". ]], code [[ artifacts_returned = false; atl_iyh_artifacts_on_atlantis = true; atl_rep_svetlova = atl_rep_svetlova + 1; walk("iyh_outro_learr_2"); ]]}; {"Хорошо, забирайте реликвии.", [[Леарр благодарит вас: "Вы можете-наш-город-посетить и реликвии-смотреть". ]], code [[ rel_learr = rel_learr + 1; artifacts_returned = true; walk("iyh_outro_learr_2"); ]]}; {tag="rel_not_ok"}; {"Это очень поможет нам в поисках Уильяма.", [[Леарр отвечает: "Я не-позволю-реликвии-оставить. Вы не-надейтесь-даже". ]], code [[ artifacts_returned = true; walk("iyh_outro_learr_2"); ]]}; {"Хорошо, забирайте реликвии.", [[Леарр благодарит вас: "Вы можете-наш-город-посетить и реликвии-смотреть". ]], code [[ artifacts_returned = true; rel_learr = rel_learr + 1; walk("iyh_outro_learr_2"); ]]}; }; }; iyh_outro_learr_2 = room { nam = "Атлантида"; dsc = [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]]; obj = { vway("Продолжить", "{Продолжить}", "atl_luna_drake_room"); }; };