diff --git a/hope.lua b/hope.lua --- a/hope.lua +++ b/hope.lua @@ -1,16 +1,136 @@ --[[ - . , . +Субмарина Уильяма. Она серьезно пострадала, и врядли экипаж цел. ]] submarine_hope = obj { nam = "submarine_hope"; - disp = ""; + disp = "Надежда"; dsc = [[ - "{}" - , . , , . . + Вы видите "{Надежду}" - субмарину Уильяма Дрейка, первую построенную им. Она заметно пострадала в результате выстрелов из расположенной у входа турели, однако, экипаж в последний момент успел увести подлодку на безопасное расстояние. Люк субмарины разбит и вы сможете заплыть внутрь. ]]; - act = [[ , . - , . "00 - " ]]; + act = [[ Субмарина сильно повреждена, герметичность корпуса очевидно нарушена. Врядли в ней остался кто-то живой, однако не помешает это проверить. Надпись на борту гласит "А00 - Надежда" ]]; -- function() -- walk "leviathan_airlock"; - -- return " , "; + -- return "Оказавшись внутри, вы закрываете за собой люк"; --end; +}; + +hope_airlock = room { + nam = "hope_airlock"; + disp = "Надежда, шлюз"; + dsc = [[ + Вы находитесь в шлюзовой камере "Надежды". Она практически идентична шлюзовой камере Левиафана. Сейчас она не функционирует - камера заполнена водой и оба люка открыты. + ]]; + way = { + vroom("Наружу", "first_city_outer_north"); + vroom("В рубку", "hope_wheelhouse"); + }; +}; + +hope_cargo_door = obj { + nam = "hope_cargo_door"; + disp = "Люк в грузовой отсек"; + dsc = function(s) + if (s.state == 2) then + return [[ + {Люк} в грузовой отсек открыт. + ]]; + else + return [[ + {Люк} в грузовой отсек задраен. + ]]; + end; + end; + state = 0; + act = function(s) + if (s.state == 0) then + if (char_learr.follow) then + pn([[Вы пытаетесь открыть люк, однако, похоже, он заблокирован с другой стороны. В смотровом люке вы видите голову навьяра, смотрящего на вас. В темноте вы с трудом различаете цветные полосы на его головных плавниках. Полосы бегут нарочито медленно, чтобы вы успели его понять. Леарр мягко отодвигает вас от смотрового отверстия. тем же способом, она что-то говорит навьяру, находящемуся по ту сторону люка. Через несколько минут подобного общения Леарр кивает вам, показывая на дверь. ]]); + s.state = 1; + else + pn([[Вы пытаетесь открыть люк, однако, похоже, он заблокирован с другой стороны. В смотровом люке вы видите голову навьяра, смотрящего на вас. В темноте вы с трудом различаете цветные полосы на его головных плавниках. Полосы бегут нарочито медленно, чтобы вы успели его понять. Вы с трудом переводите цвета в символы: "Eyle'yhe'he'vji'a'rr vee'nn vtre'e'ran'rr" - он просит вас уйти ]]); + end; + elseif (s.state == 1) then + pn([[Вы начинаете открывать люк и огромное количество пузырей воздуха просачивается через образовавшуюся щель. Леарр жестом показывает вам, чтобы вы продолжали. Вы ждете, когда вода заполнит отсек, после чего открываете люк до конца. ]]); + hope_airlock_pass:enable(); + state = 2; + elseif (s.state == 2) then + pn("Люк уже открыт"); + end; + return true; + end; +}; + +hope_airlock_pass = vroom("В грузовой отсек", "hope_cargo_hold"); + +hope_wheelhouse = room { + nam = "hope_wheelhouse"; + disp = "Надежда, рубка"; + dsc = [[ + Вы находитесь в рубке "Надежды". По размерам она заметно больше, чем рубка на Левиафане. Помещение заполнено водой. Люки в машинное отделение и пассажирский отсек открыты. + ]]; + obj = { + hope_cargo_door + }; + way = { + vroom("В машинное отделение", "hope_engines"); + hope_airlock_pass:disable(); + vroom("В помещение экипажа", "hope_dormitory"); + }; +}; + +hope_engines = room { + nam = "hope_engines"; + disp = "Надежда, машинное отделение"; + dsc = [[ + Вы находитесь в машинном отделении "Надежды". Попадание воды вызвало короткое замыкание в электрической цепи субмарины. Вам нечего здесь делать. + ]]; + way = { + vroom("В рубку", "hope_wheelhouse"); + }; +}; + +hope_cargo_hold = room { + nam = "hope_cargo_hold"; + disp = "Надежда, грузовой отсек"; + dsc = [[ + Вы находитесь в грузовом отсеке "Надежды". Герметичные контейнеры сохранили большую часть груза в целости и сохранности, однако на "Левиафане" достаточно собственных припасов, так что вам придется оставить все это здесь. + ]]; + way = { + vroom("В рубку", "hope_wheelhouse"); + }; +}; + +hope_dormitory = room { + nam = "hope_dormitory"; + disp = "Надежда, помещение для экипажа"; + dsc = [[ + Шесть коек расположены вдоль трех стен помещения в два яруса. Вам нечего здесь делать. + ]]; + way = { + vroom("В рубку", "hope_wheelhouse"); + }; +}; + +char_phaetlarr_hope = obj { + nam = "char_phaetlarr_hope"; + disp = "Фаэтларр"; + dsc = "Рядом с люком, скрестив руки на груди, стоит {навьяр}. Он, кажется, серьезно напуган и удивлен вашим появлением. "; + act = function(s) + walkin(phaetlarr_hope_dlg); + end; +}; + +phaetlarr_hope_dlg = obj { + nam = "phaetlarr_hope_dlg"; + disp = "навьяр"; + entered = [[ + Навьяр выглядит удивленным и напуганным, однако, судя по всему, он готов вас выслушать. К сожалению, здесь с ним получится общаться только жестами. + ]]; + phr = { + {"Указать на навьяра правой рукой, левую опустить вниз", "Цветные полосы складываются в слово \"Pha'e'tla'rr\" - сияющий. "}; + {"Указать на навьяра левой рукой, правой указать на себя, затем на дверь", "Навьяр кивает головой. \"I'rr vee'nn\"", function() + -- Все втроем вы возвращаетесь на Левиафан + end;}; + }; }; \ No newline at end of file