--[[ Игрок может попасть сюда только после диалога с Майклом. Верфь заброшена, многие механизмы придется ремонтировать. Здесь игрок найдет подводную лодку, которую нужно будет восстановить. ]] dock_2 = room { nam = "dock_2"; disp = "Док 2, вход"; dsc = [[ Вы стоите перед старым железный забором. ]]; enter = function(s) move(char_coachman, here()); end; way = { vroom("Войти", "dock_inside"):disable(); }; obj = { "dock_gate" }; }; dock_gate = obj { nam = "dock_gate"; disp = "Ворота"; dsc = function(s) if (s.open) then return "Ржавые {ворота} слегка приоткрыты. "; else return "На проржавевших воротах висит {амбарный замок}. "; end; end; act = function (s) if (s.open) then return [[Ворота приоткрыты достаточно, чтобы вы могли войти внутрь. ]]; else return [[ Массивный старый замок уже изрядно проржавел. Даже если бы у вас был ключ, вы врядли смогли бы открыть его. ]]; end; end; used = function(s,o) if (s.open) then return "Я больше ничего не могу здесь сделать. "; end; if (o == item_toolbox) then s.open = true; path("Войти"):enable(); return "Пользуясь ломиком, найденным в ящике, вы снимаете замок с ворот. С жутким скрипом вам удается приоткрыть их. Теперь вы можете войти внутрь. "; else return "Врядли это поможет. "; end; end; }; dock_inside = room { nam = "dock_inside"; disp = "Док"; dsc = [[ Вы находитесь на территории дока, принадлежавшего компании Вестхейвен Транс Оушен, о чем свидетельствует обшарпанная табличка над входом. ]]; view = [[ Левиафан находится в доке ]]; way = { vroom("Выйти", "dock_2"); vroom("К причалу", "dock_mooring"); }; obj = { "dock_boxes" }; }; dock_boxes = obj { nam = "dock_boxes"; disp = "Ящики"; dsc = "Ровными рядами вокруг расположены грузовые {контейнеры}. "; act = "Старые контейнеры. Скорее всего, большинство из них пусты. "; }; dock_mooring = room { nam = "dock_inside"; disp = "Причал"; dsc = [[ Вы находитесь у причала дока 2. Повсюду вокруг стоят грузовые контейнеры с логотипом Вестхейвен Транс Оушен. ]]; way = { vroom("К пульту управления краном", "dock_crane_control"); vroom("В люк", "leviathan_disabled_airlock"):disable(); }; obj = { "dock_leviathan", "dock_crane" }; }; dock_leviathan = obj { nam = "dock_leviathan"; disp = "Левиафан"; submerged = true; dsc = function(s) if (s.submerged) then return "Под поверхностью воды виден какой-то большой металлический {предмет}. "; else return "На тросах подвешена странная машина. Торпедообразный корпус, в верхней части которого виден наглухо задраенный {люк}, а в задней видно несколько гребных винтов. Иллюминаторы, частично показавшиеся на поверхности покрыты грязью, не позволяя заглянуть внутрь. В передней части на борту прикреплена слегка поржавевшая табличка \"А04 - Левиафан\". " end; end; act = function(s) if (s.submerged) then return "В мутной воде вы не можете понять, что это. "; elseif (s.open) then --TODO s.open = false; path("В люк"):disable(); return "Вы задраиваете люк"; else --TODO s.open = true; path("В люк"):enable(); return "Вы отдраиваете люк"; end; end; }; dock_crane = obj { nam = "dock_crane"; disp = "Подъемник"; state = 0; dsc = function(s) if (s.state == 0) then return "Огромный металлический кран нависает над водой. {Тросы} сейчас подняты. "; elseif (s.state == 1) then return "Огромный металлический кран нависает над водой. {Тросы} опущены насколько это возможно - они почти полностью погружены в грязную воду. "; elseif (s.state == 2) then return "Огромный металлический кран нависает над водой. {Тросы} подцеплены к предмету, скрывающемуся под водой. "; else return "Огромный металлический кран нависает над водой. " -- На крюках подвешена странная машина. Торпедообразный корпус, в верхней части которого виден наглухо задраенный люк, а в задней видно несколько гребных винтов. Иллюминаторы, частично показавшиеся на поверхности покрыты грязью, не позволяя заглянуть внутрь. В передней части на борту прикреплена слегка поржавевшая табличка "А04 - Левиафан". end; end; act = function(s) if (s.state == 0) then return "Нужно опустить тросы"; elseif (s.state == 1) then s.state = 2; return "Вы подцепляете тросы к скрывающемуся под водой предмету. "; elseif (s.state == 2) then s.state = 1; return "Вы отцепляете тросы от скрывающегося под водой предмета. "; elseif (s.state == 3) then return "Вы больше ничего не можете сделать здесь"; end; end; }; dock_crane_control = room { nam = "dock_crane_control"; disp = "Панель управления краном"; dsc = [[ Вы стоите на небольшой огороженной площадке перед панелью управления подъемником. На ней расположено два рычага. ]]; obj = { "crane_lever_vertical", "crane_lever_rail", "crane_service_access_panel" }; way = { vroom("Назад", "dock_mooring"); }; }; crane_lever_vertical = obj { nam = "crane_lever_vertical"; dsc = "{Один из них} установлен вертикально и имеет несколько промежуточных положений. Сбоку от него нарисованы стрелки вверх и вниз. "; act = function(s) print "fuck"; if (dock_crane.broken) then return "Как ни дергаете вы рычаг, ничего не происходит"; else -- TODO refactor -- TODO texts! if (dock_crane.state == 0) then dock_crane.state = 1; return [[Вы сдвигаете рычаг в крайнее нижнее положение. С громким скрежетом тросы опускаются. ]]; elseif (dock_crane.state == 3) then dock_crane.state = 2; dock_leviathan.submerged = true; return [[Вы сдвигаете рычаг в крайнее нижнее положение. С громким скрежетом тросы опускаются и поднятый предмет скрывается под водой. ]]; elseif (dock_crane.state == 2) then dock_crane.state = 3 dock_leviathan.submerged = false; return [[Вы сдвигаете рычаг в крайнее верхнее положение. С громким скрежетом тросы поднимаются вместе с подцепленным к ним предметом. ]]; elseif (dock_crane.state == 1) then dock_crane.state = 0; return [[Вы сдвигаете рычаг в крайнее верхнее положение. С громким скрежетом тросы поднимаются. ]]; end; end; end; }; crane_lever_rail = obj { nam = "crane_level_rail"; dsc = "{Второй рычаг} установлен горизотельно и имеет три положения. Над ним нарисованы стрелки влево и вправо."; act = "Рычаг не поддается. "; }; crane_service_access_panel = obj { nam = "crane_service_access_panel"; };