|
new file 100644
|
|
|
--[[
|
|
|
Ваша подводная лодка - Левиафан
|
|
|
Для начала вам придется починить ее
|
|
|
Имеет два двигателя - электрический и паровой
|
|
|
Для запуска машины потребуется починить и обеспечить энергией хотя бы один из них(уголь или батареи)
|
|
|
Левиафан - достаточно большая подводная лодка. Хотя она может управляться одним человеком, рассчитана она на много большее.
|
|
|
|
|
|
Имеется три доступных уровня освещения:
|
|
|
Не освещено - ничего не видно, передвигаться по кораблю невозможно
|
|
|
Плохо освещено - Описания минимальны, большинство действий недостпны
|
|
|
Хорошо освещено - полные описания, все действия доступны
|
|
|
|
|
|
На складе имеется три скафандра в хорошем состоянии. Без них невозможно покинуть корабль в подводных локациях. Скафандр может быть испорчен и потребует ремонта. Если оба скафандра выведены из строя их потребуется отремонтировать.
|
|
|
]]
|
|
|
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}
|
|
|
};
|
|
|
};
|
|
\ No newline at end of file
|