--[[ Ваша подводная лодка - Левиафан Для начала вам придется починить ее Имеет два двигателя - электрический и паровой Для запуска машины потребуется починить и обеспечить энергией хотя бы один из них(уголь или батареи) Левиафан - достаточно большая подводная лодка. Хотя она может управляться одним человеком, рассчитана она на много большее. Имеется три доступных уровня освещения: Не освещено - ничего не видно, передвигаться по кораблю невозможно Плохо освещено - Описания минимальны, большинство действий недостпны Хорошо освещено - полные описания, все действия доступны На складе имеется три скафандра в хорошем состоянии. Без них невозможно покинуть корабль в подводных локациях. Скафандр может быть испорчен и потребует ремонта. Если оба скафандра выведены из строя их потребуется отремонтировать. ]] submarine_leviathan = obj { nam = "submarine_leviathan"; disp = "Левиафан"; -- dsc = [[ -- Вы видите огромную металлическую конструкцию, напоминающую рыбу. Большие стеклянные иллюминаторы по бортам еще больше усиливают впечатление. На бортах крупными буквами выведено "А12 Левиафан". В верхней части машины вы видите {люк}.^ --]]; dsc = [[ Вы видите "{Левиафан}" - вашу субмарину ]]; act = [[ Несмотря на проведенные в бездействии годы, субмарина сейчас в отличном состоянии. Из иллюминаторов льется яркий свет. На борту виднреется слегка пошарпанная, но читаемая надпись "А04 - Левиафан" ]]; -- function() -- walk "leviathan_airlock"; -- return "Оказавшись внутри, вы закрываете за собой люк"; --end; }; --leviathan_exit = obj { -- nam = "leviathan_exit"; -- dsc = [[ -- {Люк} в потолке закрыт. -- ]]; -- act = function(s) -- walk(where(submarine_leviathan)); -- return "Оказавшись снаружи, вы закрываете за собой люк"; -- end; --}; leviathan_airlock = room { nam = "leviathan_airlock"; disp = "Левиафан, шлюз"; dsc = [[ Вы находитесь в шлюзовом отсеке Левиафана. Яркий свет электрических ламп освещает помещение. ]]; way = { vroom("Кают-компания", "leviathan_wardroom"); vroom("Наружу", function() return where(submarine_leviathan); end); }; }; leviathan_captains_cabin = room { nam = "leviathan_captains_cabin"; disp = "Левиафан, каюта капитана"; dsc = [[ Вы находитесь в каюте, очевидно, предназначенной для капитана. Эта каюта немного больше остальных, в ней размещен стол и стул. В столе несколько ящичков, хитроумно закрытых, чтобы при качке они не открывались. ]]; way = { vroom("Каюты", "leviathan_cabins"); }; }; leviathan_cabins = room { nam = "leviathan_cabins"; disp = "Левиафан, каюты"; dsc =[[ Вы находитесь в длинном коридоре с множеством дверей, ведущих в каюты, расположенные по левому борту. ]]; way = { vroom("Каюта капитана", "leviathan_captains_cabin"); vroom("Кают-компания", "leviathan_wardroom"); }; }; leviathan_cargo_hold = room { nam = "leviathan_cargo_hold"; disp = "Левиафан, грузовой отсек"; dsc = [[ Вы находитесь в грузовом отсеке Левиафана ]]; way = { vroom("Кают-компания", "leviathan_wardroom"); }; }; leviathan_wardroom = room { nam = "leviathan_wardroom"; disp = "Левиафан, кают-компания"; dsc = [[ Вы находитесь в кают-компании Левиафана. Просторная комната, в центре которой укреплен массивный металлический стол. Из машинного отсека доносится гул двигателей. Яркий свет электрических ламп освещает помещение. ]]; way = { vroom("Машинный отсек", "leviathan_engines"); vroom("Рубка", "leviathan_dlg"); vroom("Шлюз", "leviathan_airlock"); vroom("Каюты", "leviathan_cabins"); vroom("Грузовой отсек", "leviathan_cargo_hold"); }; obj = { --vway("Машинный отсек", "Из {машинного отсека} доносится легкий гул.^", "leviathan_engines"); --vway("Рубка", "{В рубку}^", "leviathan_dlg"); --vway("Шлюз", "{В шлюз}^", "leviathan_airlock"); --vway("Каюты", "{В каюты экипажа}^", "leviathan_cabins"); --vway("Грузовой отсек", "{В грузовой отсек}^", "leviathan_cargo_hold"); "char_learr"; "char_phaetlarr"; "char_radcliffe"; "char_wright"; }; }; leviathan_engines = room { nam = "leviathan_engines"; disp = "Левиафан, машинное отделение"; dsc = [[ Вы находитесь в машинном отделении Левиафана. Равномерный гул электрических двигателей сообщает о полной готовности субмарины. ]]; way = { vroom("Кают-компания", "leviathan_wardroom"); }; }; leviathan_dlg = dlg { nam = "leviathan_dlg"; disp = "Штурвал Левиафана"; dsc = function() local view = ""; if (type(where(submarine_leviathan).view) == "function") then view = where(submarine_leviathan).view(where(submarine_leviathan)); else view = where(submarine_leviathan).view; end; return [[ Вы находитесь в рубке Левиафана перед штурвалом. Отсюда вы можете направиться куда-нибудь. Яркий свет электрических ламп освещает помещение. ^ ]] .. (view); end; update_options = function() leviathan_dlg:poff(10,11,12,13,14); if (where(submarine_leviathan).navigatable) then leviathan_dlg:poff(1,2,3,4,5); if (where(submarine_leviathan).south) then pon(10); end; if (where(submarine_leviathan).north) then pon(11); end; if (where(submarine_leviathan).east) then pon(12); end; if (where(submarine_leviathan).west) then pon(13); end; if (where(submarine_leviathan).gate) then pon(14); end; else leviathan_dlg:pon(1, 2, 3, 4); leviathan_dlg:poff(5); if (where(submarine_leviathan) == atlantis_dock) then leviathan_dlg:poff(1); end; if (where(submarine_leviathan) == navjiarr_settlement) then leviathan_dlg:poff(2); end; if (where(submarine_leviathan) == navjiarr_hostile_settlement) then leviathan_dlg:poff(3); end; if (where(submarine_leviathan) == first_city_entrance) then leviathan_dlg:poff(4); leviathan_dlg:pon(5); end; end; end; enter = function(s) leviathan_dlg.update_options(); end; phr = { {1, always = "true", "Атлантида", function() return "Вы прибыли в Атлантиду"; end, function() move(submarine_leviathan, "atlantis_dock"); leviathan_dlg:update_options(); end}, {2, always = "true", "Поселение Навьяр", function() return "Вы прибыли в Атлантиду"; end, function() move(submarine_leviathan, "navjiarr_settlement"); leviathan_dlg:update_options(); end}, {3, always = "true", "Враждебное поселение Навьяр", function() return "Вы прибыли в Атлантиду"; end, function() move(submarine_leviathan, "navjiarr_hostile_settlement"); leviathan_dlg:update_options(); end}, {4, always = "true", "Лсэрианотр, древний город Навьяр", function() return "Вы прибыли в Лсэрианотр"; end, function() move(submarine_leviathan, "first_city_entrance"); leviathan_dlg:update_options(); end}, {5, always = "true", "Вперед, в город", function() if (first_city_entrance.open) then return [[ Движимый вашей умелой рукой, Левиафан вплывает в ворота. Оказавшись среди светящихся стен древнего города, вы отключаете прожектор. ]]; else return [[ Вы не рискуете протаранить ворота, простоявшие не одно тысячелетие. ]]; end; end, function() if (first_city_entrance.open) then move(submarine_leviathan, "first_city_outer_south"); leviathan_dlg:update_options(); end; end; }, {10, always = "true", "На юг", "", function() move(submarine_leviathan, where(submarine_leviathan).south); leviathan_dlg:update_options(); end;}; {11, always = "true", "На север", "", function() move(submarine_leviathan, where(submarine_leviathan).north); leviathan_dlg:update_options(); end;}; {12, always = "true", "На восток", "", function() move(submarine_leviathan, where(submarine_leviathan).east); leviathan_dlg:update_options(); end;}; {13, always = "true", "На запад", "", function() move(submarine_leviathan, where(submarine_leviathan).west); leviathan_dlg:update_options(); end;}; {14, always = "true", "В ворота", "", function() move(submarine_leviathan, where(submarine_leviathan).gate); leviathan_dlg:update_options(); end;}; {255, always = "true", "Назад, в кают-компанию", "", function() back(); end} }; };