diff --git a/journey_zayslanotrr_temple.lua b/journey_zayslanotrr_temple.lua --- a/journey_zayslanotrr_temple.lua +++ b/journey_zayslanotrr_temple.lua @@ -0,0 +1,392 @@ +za_temple_entrance_foot = room { + nam = "Храм Заисланотра, вход"; + handwheel_room = "za_temple_entrance_foot"; + underwater = true; + no_exit = [[ + Нет смысла покидать Левиафан здесь. + ]]; + view = [[ + Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой. + ]]; +}; + +za_temple_entrance = dlg { + nam = "Левиафан, рубка"; + var { + state = 0; + }; + entered = function(s) + if (s.state == 0) then + s.state = 1; + return [[ + Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой. ^ + В рубку поднимается Фаэтларр и окидывает взглядом скалу перед вами. Медленно подойдя к иллюминатору он произносит: "Другой-вход в-храм-такой-есть. Он меньше-охраняться-должен. Ты смотри правее. У нас так построено, значит и у них так". + ]]; + else + return [[ + Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой. + ]]; + end; + end; + phr = { + {"[Двигаться налево вдоль скалы]", [[ + Вы двигаетесь довольно долго, но когда становится очевидно, что там ничего нет, вы возвращаетесь на исходную позицию. + ]]}; + {"[Двигаться направо вдоль скалы]", [[ + Фаэтларр оказался прав. Совсем скоро вы замечаете узкий проход в скале. Если второй вход в храм существует, то он здесь. + ]], code = [[ walk("za_temple_back_entrance");]]}; + {"[Отправиться в другое место]", code = [[ walk("leviathan_wheelhouse"); ]]}; + {"[Отойти от штурвала]", code = [[ walk("leviathan_wheelhouse");]]}; + }; +}; + +za_temple_back_entrance_foot = room { + nam = "Храм Заисланотра, задний вход"; + dsc = [[ + Вы стоите перед расщелиной в скале, освещенной мощным лучом прожектора вашей субмарины. + ]]; + underwater = true; + view = [[ + Через иллюминаторы вы видите расщелину в скале, освещенную мощным лучом прожектора Левиафана. + ]]; + way = { + kh_vroom("В Левиафан", function(s) + if (not have(item_navjiarr_chart_z)) then + return leviathan_airlock; + else + return "za_leviathan_fight"; + end; + end); + kh_vroom("В ущелье", "za_ravine_1"); + }; +}; + +za_temple_back_entrance = dlg { + nam = "Левиафан, рубка"; + entered = [[ + Через иллюминаторы вы видите расщелину в скале, освещенную мощным лучом прожектора. + ]]; + phr = { + {"[Вернуться к главному входу]", code = [[ walk("za_temple_entrance"); ]]}; + {"[Отправиться в другое место]", code = [[ walk("leviathan_wheelhouse"); ]]}; + {"[Отойти от штурвала]", code = [[ walk("leviathan_wheelhouse");]]}; + }; +}; + +za_ravine_1 = room { + nam = "za_ravine_1"; + disp = "Ущелье"; + dsc = [[ + Вы находитесь в узком темном ущелье. Вы с трудом можете передвигаться по нему не задевая стен. Впереди ущелье разветвляется. Левое ответвление достаточно широкое, чтобы вы могли спокойно пройти. Правое настолько узкое, что вы с трудом сможете протиснуться в него. + ]]; + way = { + kh_vroom("Выйти из ущелья", "za_temple_back_entrance_foot"); + kh_vroom("Налево", "za_ravine_2"); + kh_vroom("Направо", "za_ravine_3"); + }; +}; + +za_ravine_2 = room { + nam = "za_ravine_2"; + disp = "Ущелье, вход в храм"; + dsc = [[ + В конце ущелья вы видите массивую металлическую дверь. + ]]; + way = { + kh_vroom("Назад", "za_ravine_1"); + kh_vroom("В храм", function(s) + if (za_panel.state == 1) then + return "za_temple_chamber"; + else + pr [[ + Дверь заперта и вы не знаете как ее открыть. + ]]; + return false; + end; + end); + }; +}; + +za_ravine_3 = room { + nam = "za_ravine_3"; + disp = "Ущелье"; + dsc = [[ + Вы находитесь в конце одного из ответвлений ущелья. Здесь так тесно, что вы не можете даже развернуться. + ]]; + obj = { + "za_panel" + }; + way = { + kh_vroom("Назад", "za_ravine_1"); + }; +}; + +za_panel = obj { + var { + state = 0; + }; + nam = "za_panel"; + dsc = [[ + В скале вы видите небольшую каменную {панель}. + ]]; + act = function(s) + if (s.state == 0) then + s.state = 1; + return [[ + Вы нажимаете панель и слышите из глубин ущелья скрежет открывающейся двери. + ]]; + else + return [[ + Вам здесь больше нечего делать. + ]]; + end; + end; +}; + +za_temple_chamber = room { + var { + state = 0; + }; + nam = "za_temple_chamber"; + disp = "Храм Заисланотра, главный зал"; + dsc = [[ + Вы находитесь в главном помещении древнего храма. Металлические стены зала освещены сиянием люминесцентных водорослей на потолке и на полу. + ]]; + entered = function(s) + if (s.state == 0) then + s.state = 1; + return [[ + Дверь позади вас закрывается и вы оказываетесь заперты в помещении. + ]]; + end; + end; + obj = { + "za_pedestal", + "item_deep_key" + }; + way = { + kh_vroom("Выйти", function(s) + if (have(item_navjiarr_chart_z)) then + return "za_ravine_2"; + else + return "Дверь заперта"; + end; + end); + }; +}; + +za_temple_lower_level1 = room { + nam = "za_temple_lower_level1"; + disp = "Храм Заисланотра, нижний этаж, спуск"; + dsc = [[ + Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. Коридор плавно уходит вниз, в недра скалы. + ]]; + way = { + kh_vroom("Наверх", "za_temple_chamber"); + kh_vroom("Дальше по коридору", "za_temple_lower_level2"); + }; +}; + +za_temple_lower_level2 = room { + nam = "za_temple_lower_level2"; + disp = "Храм Заисланотра, нижний этаж"; + dsc = [[ + Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. + ]]; + way = { + kh_vroom("Назад", "za_temple_lower_level1"); + kh_vroom("Дальше по коридору", "za_temple_lower_level3"); + }; +}; + +za_temple_lower_level3 = room { + nam = "za_temple_lower_level3"; + disp = "Храм Заисланотра, нижний этаж, тупик"; + dsc = [[ + Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. В конце коридора находится массивная металлическая дверь. + ]]; + way = { + kh_vroom("Назад", "za_temple_lower_level2"); + kh_vroom("В дверь", "za_temple_lower_hall"); + }; +}; + +za_temple_room1 = room { + nam = "za_temple_room1"; + disp = "Храм Заисланотра, нижний этаж, комната"; + dsc = [[ + Вы находитесь в небольшой комнате. Так же, как и другие помещения храма, пол и потолок ее покрыты светящимися водорослями. + ]]; + obj = { + "za_temple_room1_walls", + "za_temple_room1_niche", + }; +}; + +za_temple_room2 = room { + nam = "za_temple_room2"; + disp = "Храм Заисланотра, нижний этаж, комната"; + dsc = [[ + Вы находитесь в небольшой комнате. Так же, как и другие помещения храма, пол и потолок ее покрыты светящимися водорослями. + ]]; + obj = { + "za_temple_room2_niche" + }; +}; + +za_temple_room1_walls = obj { + nam = "za_temple_room1_walls"; + dsc = [[ + На стенах комнаты нанесены навьярские {записи}. + ]]; + act = [[ + Записи гласят, что где-то в этом храме должен быть ключ от древнего храма, где сокрыт некий "тайный предмет". + ]]; +}; + +za_temple_room1_niche = obj { + nam = "za_temple_room1_niche"; + dsc = [[ + В одной из стен вы видите небольшую {выемку}. + ]]; + act = function(s) + if (seen(za_temple_room2_niche, za_temple_room2)) then + return [[ + Вам здесь больше нечего делать. + ]]; + else + za_temple_room2_niche:enable(); + return [[ + Внутри выемки вы нажимаете на что-то и слышите скрежет камня в соседней комнате. + ]]; + end; + end; +}; + +za_temple_room2_niche = obj { + var { + state = 0; + }; + nam = "za_temple_room2_niche"; + dsc = function(s) + if (s.state == 0) then + return [[ + В одной из стен вы видите небольшую выемку, в которой лежит {табличка}. + ]]; + else + return [[ + В одной из стен вы видите небольшую {выемку}. + ]]; + end; + end; + act = function(s) + if (s.state == 0) then + s.state = 1; + return [[ + Табличка оказывается фрагментом карты. Вы забираете ее, чтобы на Левиафане совместить с имеющимися у вас частями. + ]]; + else + return [[ + Здесь больше нет ничего интересного. + ]]; + end; + end; +}; + +za_temple_room2_niche:disable(); + +za_temple_lower_hall = room { + nam = "za_temple_lower_hall"; + disp = "Храм Заисланотра, нижний этаж, главный зал"; + dsc = [[ + Вы находитесь в просторном зале на нижнем этаже храма Заисланотра. + ]]; + obj = { + "za_temple_hall_walls"; + "za_hall_pedestal"; + "item_navjiarr_chart_z"; + }; + way = { + kh_vroom("В коридор", "za_temple_lower_level3"); + }; +}; + +za_temple_hall_walls = obj { + nam = "za_temple_hall_walls"; + dsc = [[ + На стенах зала нанесены навьярские {записи}. + ]]; + act = [[ + + ]]; +}; + +za_pedestal = obj { + nam = "za_pedestal"; + dsc = [[ + В центре зала установлен небольшой пьедестал. + ]]; +}; + +za_hall_pedestal = obj { + nam = "za_hall_pedestal"; + dsc = [[ + В центре зала установлен небольшой пьедестал. + ]]; +}; + +za_leviathan_fight = dlg { + var { + state = 0; + }; + nam = "za_leviathan_fight"; + disp = "Левиафан, рубка"; + entered = function(s) + pr [[ + Еще забираясь в люк, вы замечаете, как со стороны главного входа храма к вам движется вооруженный отряд навьяров. Вы быстро снимаете скафандр и отправляетесь в рубку. Фаэтларр уже стоит у иллюминатора и внимательно наблюдает за происходящим. Повернувшись к вам, навьяр говорит: "Ваш-корабль быстрее их-воинов. Мы легко-уйдем". + ]]; + if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then + pr [[ + Леарр, стоящая рядом соглашается с ним: "Я им-вредить-не-хочу. Если мы просто-уйти-можем, то мы просто-уйдем". + ]]; + end; + pr [[ + Встав за штурвал, вы оцениваете ситуацию: со стороны главного входа к вам приближаются несколько всадников на акулах и три ската. вслед за ними плывут около десятка воинов вооруженных копьями. Просто уйти вы не сможете - пока Левиафан будет разворачиваться, враги догонят вас. + ]]; + end; + phr = { + {tag="torpedo", "[Выпустить торпеду]", function(s) + rel_learr = rel_learr - 1; + rel_phaetlarr = rel_phaetlarr - 1; + + pr [[ + Мощный взрыв раскидывает ошарашенных навьяров. Вода окрашивается кровью и ваш путь оказывается свободен. Фаэтларр в ужасе прильнул к степклу иллюминатора. По его плавникам бегут цветные полосы: "Что ты наделал?" + ]]; + if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then + pr [[ + Леарр не говоря ни слова покидает рубку. + ]]; + end; + end, code [[ poff("sonic"); za_leviathan_fight.state = 2; ]]}; + {tag="sonic", "[Выстрелить из звуковой пушки]", [[ + Несколько выстрелов из звуковой пушки успешно дезориентируют противника. Теперь у вас есть достаточно времени, чтобы уйти. + ]], code [[ za_leviathan_fight.state = 1; ]]}; + {tag="away", "[Развернуть субмарину]", code = function(s) + if (za_leviathan_fight.state == 0) then + walk("game_over_za_temple_escape"); + elseif (za_leviathan_fight.state == 1) then + walk("za_temple_escape_sonic"); + else + walk("za_temple_escape_torpedo"); + end; + end}; + }; +}; + +za_temple_escape_sonic = cutscene("za_temple_escape_sonic", "Левиафан, рубка", [[ + Пользуясь смятением в рядах противника, вы разворачиваете субмарину и быстро набираете скорость. +]], "leviathan_wheelhouse"); + +za_temple_escape_torpedo = cutscene("za_temple_escape_sonic", "Левиафан, рубка", [[ + Вы разворачиваете субмарину и покидаете место бойни. Немногие выжившие противники в ужасе бегут. +]], "leviathan_wheelhouse");