Changeset - 1bcc1f13e830
[Not reviewed]
default
0 1 0
Silverwing - 8 years ago 2016-11-27 11:21:32

Lseryanotrr service tonnels 1 done
1 file changed with 203 insertions and 1 deletions:
0 comments (0 inline, 0 general)
lseryanotrr_locations.lua
Show inline comments
 
@@ -98,385 +98,587 @@ lse_leviathan_wardroom = room {
 
            pr [["Там я ничего не смогу сделать", - промелькнула мысль в голове Фаэтларра. ]];
 
            return false;
 
        end);
 
        kh_vroom("В шлюз", "lse_leviathan_airlock");
 
        kh_vroom("В коридор", "lse_leviathan_corridor");
 
    };
 
    obj = {
 
        "lse_phone_wardroom";
 
    };
 
};
 

	
 
lse_phone_wardroom = obj {
 
    nam = "lse_phone_wardroom";
 
    disp = "Телефон";
 
    dsc = [[На столе, рядом с креслом Дрейка установлен {телефонный аппарат}. ^]];
 
    act = [[Фаэтларр не умеет этим пользоваться. ]];
 
};
 

	
 
lse_leviathan_airlock = room {
 
    nam = "lse_leviathan_airlock";
 
    disp = "Левиафан, шлюз";
 
    dsc = [[Фаэтларр находится в шлюзовом отсеке Левиафана. Люк не задраен. ]];
 
    way = {
 
        kh_vroom("В кают-компанию", "lse_leviathan_wardroom");
 
        kh_vroom("Наверх", "lse_leviathan_airlock_up");
 
    };
 
};
 

	
 
lse_leviathan_airlock_up = room {
 
    nam = "lse_leviathan_airlock_up";
 
    disp = "Левиафан, люк";
 
    dsc = function(s)
 
        return [[Фаэтларр выглядывает из люка Левиафана. Субмарина находится все там же - в доке, у ворот Лсэрианотра. ]];
 
    end;
 
    obj = {
 
        "lse_lev_guard"
 
    };
 
    way = {
 
        kh_vroom("Вниз", "lse_leviathan_airlock");
 
        kh_vroom("Наружу", function(s)
 
            if (lse_lev_guard.state == 0) then
 
                return "game_over_phaetlarr_caught";
 
            else
 
                return "lse_dock_pier";
 
            end;
 
        end);
 
    };
 
};
 

	
 
lse_lev_guard = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "lse_lev_guard";
 
    dsc = function(s)
 
        if (s.state == 0) then
 
            return "У пирса рядом с Левиафаном стоит {группа стражников}";
 
        else
 
            return "Стражники отошли в дальний конец дока. Фаэтларр сможет незаметно пробежать мимо. ";
 
        end;
 
    end;
 
    use = function(s,o)
 
        if (o == lse_item_toolbox) then
 
            s.state = 1;
 
            return [[
 
                Фаэтларр достает из ящика первый попавшийся предмет и кидает его в воду, подальше от Левиафана. Стражники, услышав всплеск, дружно направились туда. 
 
            ]];
 
        end;
 
    end;
 
};
 

	
 
lse_dock_pier = room {
 
    nam = "lse_dock_pier";
 
    disp = "Лсэрианотр, док, у Левиафана";
 
    dsc = [[
 
        Фаэтларр стоит на пирсе рядом с Левиафаном. Несколько стражников что-то ищут В другом конце дока. 
 
    ]];
 
    way = {
 
        kh_vroom("К выходу", "lse_dock");
 
    };
 
};
 

	
 
lse_dock = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "lse_dock";
 
    disp = "Лсэрианотр, док, у входа";
 
    dsc = function(s)
 
        if (s.state == 0) then
 
            return [[
 
                Фаэтларр стоит у выхода из дока. Массивные металлические двери плотно закрыты и приоткрыть их не представляется возможным.
 
            ]];
 
        else
 
            return [[
 
                Фаэтларр стоит у выхода из дока. Массивные металлические двери слегка приоткрыты и вы можете спокойной проскользнуть внутрь. 
 
            ]];
 
        end;
 
    end;
 
    obj = {
 
        "lse_dock_panel"
 
    };
 
    way = {
 
        kh_vroom("В дверь", function(s)
 
            if (lse_dock.state == 0) then
 
                pr [[Дверь заперта]];
 
                return false;
 
            else
 
                return "lse_outer_1";
 
            end;
 
        end);
 
    };
 
};
 

	
 
lse_dock_panel = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "lse_dock_panel";
 
    dsc = function(s)
 
        if (s.state == 0) then
 
            return [[Рядом с дверью расположена небольшая {панель}. ]];
 
        else
 
            return [[Под открытой {панелью} находятся какие-то провода. Скорее всего, они используются для управления дверью. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if (s.state == 0) then
 
            return [[Фаэтларр пытается открыть панель руками, но ничего не получается. ]];
 
        else
 
            walkin("lse_dock_in_panel");
 
        end;
 
    end;
 
};
 

	
 
lse_dock_in_panel = room {
 
    var {
 
        state = 0;
 
        index = 0;
 
        cut = nil;
 
    };
 
    nam = "lse_dock_in_panel";
 
    disp = "Лсэрианотр, док, панель управления дверью";
 
    entered = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            s.index = rnd(7) - 1;
 
        end;
 
    end;
 
    pic = function(s)
 
        local pic = "images/lse_door_bcg.gif;images/lse_door_marker.png@496," .. tostring(3 + 38 * s.index);
 
        
 
        return pic;
 
    end;
 
    dsc = [[За панелью скрывается множество проводов. Фаэтларр легко определяет, какой из них задействован в управлении дверью.]];
 
    obj = {
 
        'lse_dock_cut1',
 
        'lse_dock_cut2',
 
        'lse_dock_cut3',
 
        'lse_dock_cut4',
 
        'lse_dock_cut5',
 
        'lse_dock_cut6',
 
        'lse_dock_cut7',
 
        'lse_dock_back'
 
    };
 
};
 

	
 
lse_dock_cut1 = obj {
 
    nam = "lse_dock_cut1";
 
    dsc = "{Обрезать фиолетово-синий провод}^";
 
    act = function(s)
 
        if (lse_dock_in_panel.index == 3) then
 
            lse_dock.state = 1;
 
            pr [[Фаэтларр перерезает провод и дверь открывается. ]];
 
            walk("lse_dock");
 
        elseif (lse_dock_in_panel.cut == nil) then
 
            lse_dock_in_panel.cut = 3;
 
            pr [[Фаэтларр перерезает провод. Свет в помещении моргает. Рядом с панелью начинает мигать красная лампочка. ]];
 
        elseif (lse_dock_in_panel.cut == 3) then
 
            pr [[Этот провод уже перерезан. ]];
 
        else
 
            walk("game_over_phaetlarr_wrong_wire");
 
        end;
 
    end;
 
};
 

	
 
lse_dock_cut2 = obj {
 
    nam = "lse_dock_cut2";
 
    dsc = "{Обрезать фиолетово-зеленый провод}^";
 
    act = function(s)
 
        if (lse_dock_in_panel.index == 0) then
 
            lse_dock.state = 1;
 
            pr [[Фаэтларр перерезает провод и дверь открывается. ]];
 
            walk("lse_dock");
 
        elseif (lse_dock_in_panel.cut == nil) then
 
            lse_dock_in_panel.cut = 0;
 
            pr [[Фаэтларр перерезает провод. Свет в помещении моргает. Рядом с панелью начинает мигать красная лампочка. ]];
 
        elseif (lse_dock_in_panel.cut == 0) then
 
            pr [[Этот провод уже перерезан. ]];
 
        else
 
            walk("game_over_phaetlarr_wrong_wire");
 
        end;
 
    end;
 
};
 

	
 
lse_dock_cut3 = obj {
 
    nam = "lse_dock_cut3";
 
    dsc = "{Обрезать фиолетово-желтый провод}^";
 
    act = function(s)
 
        if (lse_dock_in_panel.index == 4) then
 
            lse_dock.state = 1;
 
            pr [[Фаэтларр перерезает провод и дверь открывается. ]];
 
            walk("lse_dock");
 
        elseif (lse_dock_in_panel.cut == nil) then
 
            lse_dock_in_panel.cut = 4;
 
            pr [[Фаэтларр перерезает провод. Свет в помещении моргает. Рядом с панелью начинает мигать красная лампочка. ]];
 
        elseif (lse_dock_in_panel.cut == 4) then
 
            pr [[Этот провод уже перерезан. ]];
 
        else
 
            walk("game_over_phaetlarr_wrong_wire");
 
        end;
 
    end;
 
};
 

	
 
lse_dock_cut4 = obj {
 
    nam = "lse_dock_cut4";
 
    dsc = "{Обрезать фиолетово-оранжевый провод}^";
 
    act = function(s)
 
        if (lse_dock_in_panel.index == 1) then
 
            lse_dock.state = 1;
 
            pr [[Фаэтларр перерезает провод и дверь открывается. ]];
 
            walk("lse_dock");
 
        elseif (lse_dock_in_panel.cut == nil) then
 
            lse_dock_in_panel.cut = 1;
 
            pr [[Фаэтларр перерезает провод. Свет в помещении моргает. Рядом с панелью начинает мигать красная лампочка. ]];
 
        elseif (lse_dock_in_panel.cut == 1) then
 
            pr [[Этот провод уже перерезан. ]];
 
        else
 
            walk("game_over_phaetlarr_wrong_wire");
 
        end;
 
    end;
 
};
 

	
 
lse_dock_cut5 = obj {
 
    nam = "lse_dock_cut5";
 
    dsc = "{Обрезать фиолетово-красный провод}^";
 
    act = function(s)
 
        if (lse_dock_in_panel.index == 2) then
 
            lse_dock.state = 1;
 
            pr [[Фаэтларр перерезает провод и дверь открывается. ]];
 
            walk("lse_dock");
 
        elseif (lse_dock_in_panel.cut == nil) then
 
            lse_dock_in_panel.cut = 2;
 
            pr [[Фаэтларр перерезает провод. Свет в помещении моргает. Рядом с панелью начинает мигать красная лампочка. ]];
 
        elseif (lse_dock_in_panel.cut == 2) then
 
            pr [[Этот провод уже перерезан. ]];
 
        else
 
            walk("game_over_phaetlarr_wrong_wire");
 
        end;
 
    end;
 
};
 

	
 

	
 
lse_dock_cut6 = obj {
 
    nam = "lse_dock_cut6";
 
    dsc = "{Обрезать сине-зеленый провод}^";
 
    act = function(s)
 
        if (lse_dock_in_panel.index == 6) then
 
            lse_dock.state = 1;
 
            pr [[Фаэтларр перерезает провод и дверь открывается. ]];
 
            walk("lse_dock");
 
        elseif (lse_dock_in_panel.cut == nil) then
 
            lse_dock_in_panel.cut = 6;
 
            pr [[Фаэтларр перерезает провод. Свет в помещении моргает. Рядом с панелью начинает мигать красная лампочка. ]];
 
        elseif (lse_dock_in_panel.cut == 6) then
 
            pr [[Этот провод уже перерезан. ]];
 
        else
 
            walk("game_over_phaetlarr_wrong_wire");
 
        end;
 
    end;
 
};
 

	
 
lse_dock_cut7 = obj {
 
    nam = "lse_dock_cut7";
 
    dsc = "{Обрезать сине-желтый провод}^";
 
    act = function(s)
 
        if (lse_dock_in_panel.index == 5) then
 
            lse_dock.state = 1;
 
            pr [[Фаэтларр перерезает провод и дверь открывается. ]];
 
            walk("lse_dock");
 
        elseif (lse_dock_in_panel.cut == nil) then
 
            lse_dock_in_panel.cut = 5;
 
            pr [[Фаэтларр перерезает провод. Свет в помещении моргает. Рядом с панелью начинает мигать красная лампочка. ]];
 
        elseif (lse_dock_in_panel.cut == 5) then
 
            pr [[Этот провод уже перерезан. ]];
 
        else
 
            walk("game_over_phaetlarr_wrong_wire");
 
        end;
 
    end;
 
};
 

	
 
lse_dock_back = obj {
 
    nam = "lse_dock_back";
 
    dsc = "{Отойти от панели}^";
 
    act = function(s)
 
        walk("lse_dock");
 
    end;
 
};
 

	
 
lse_outer_1 = room {
 
    nam = "lse_outer_1";
 
    disp = "Лсэрианотр, внешнее кольцо";
 
    dsc = [[Во внешнем кольце Лсэрианотра нет никого, кто мог бы помешать планам Фаэтларра. К неудовольствию навьяра, улица полностью пуста - нет ни ящиков, ни скамеек, ни камней ни даже какой-нибудь растительности, чтобы можно было хоть как-то укрыться. По левому и правому краю - сплошные металлические стены с закрытыми дверьми. Над городом виднелся громадный купол, на который сверху давит океанская толща. Фаэтларр огляделся - слева вдалеке он заметил группу прогуливающихся навьяров. ]];
 
    way = {
 
        kh_vroom("Против часовой стрелки", function(s)
 
            pr [[
 
                "Я не хочу попадаться никому на глаза. Лучше туда не ходить", - подумал Фаэтларр. 
 
            ]];
 
            return false;
 
        end);
 
        kh_vroom("По часовой стрелке", "lse_outer_2");
 
    };
 
};
 

	
 
lse_outer_2 = room {
 
    nam = "lse_outer_2";
 
    disp = "Лсэрианотр, внешнее кольцо";
 
    dsc = [[Внешнее кольцо Лсэрианотра поражает своей пустотой и безжизненностью. Лишь одинаковые двери на равном расстоянии друг от друга во внешней и внутренней стороне привлекают внимание. Над городом виднелся громадный купол, на который сверху давит океанская толща. ]];
 
    way = {
 
        kh_vroom("Против часовой стрелки", "lse_outer_1");
 
        kh_vroom("По часовой стрелке", "lse_outer_3");
 
    };
 
};
 

	
 
lse_outer_3 = room {
 
    nam = "lse_outer_3";
 
    disp = "Лсэрианотр, внешнее кольцо";
 
    dsc = [[Внешнее кольцо Лсэрианотра поражает своей пустотой и безжизненностью. Лишь одинаковые двери на равном расстоянии друг от друга во внешней и внутренней стороне привлекают внимание. Над городом виднелся громадный купол, на который сверху давит океанская толща. ]];
 
    obj = {
 
        'lse_outer_service_entrance'
 
    };
 
    way = {
 
        kh_vroom("Против часовой стрелки", "lse_outer_2");
 
        kh_vroom("По часовой стрелке", "lse_outer_4");
 
        kh_vroom("В сервисный тоннель", "lse_outer_service_entrance"):disable();
 
    };
 
};
 

	
 
lse_outer_service_entrance = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "lse_outer_service_entrance";
 
    dsc = function(s)
 
        if (s.state == 0) then
 
            return [[Во внутренней стене Фаэтларр замечает отверстие закрытое {решеткой}. Через него вполне мог бы пролезть человек или навьяр. ]];
 
        else
 
            return [[Решетка, закрывающая проход убрана, теперь Фаэтларр вполне может пролезть в него. ]];
 
        end;
 
    end;
 
    use = function(s, o)
 
        if (o == lse_item_toolbox and s.state == 0) then
 
            s.state = 1;
 
            path('В сервисный тоннель'):enable();
 
            return [[
 
                Недолго думая, Фаэтларр с помощью ломика выковыривает решетку. 
 
            ]];
 
        end;
 
    end;
 
};
 

	
 
lse_outer_4 = room {
 
    nam = "lse_outer_4";
 
    disp = "Лсэрианотр, внешнее кольцо";
 
    dsc = [[Внешнее кольцо Лсэрианотра поражает своей пустотой и безжизненностью. Лишь одинаковые двери на равном расстоянии друг от друга во внешней и внутренней стороне привлекают внимание. Над городом виднелся громадный купол, на который сверху давит океанская толща. Дальше безжизненность города становится еще более полной - в той части города даже не горит свет. ]];
 
    way = {
 
        kh_vroom("Против часовой стрелки", "lse_outer_3");
 
        kh_vroom("По часовой стрелке", function(s)
 
            pr [[
 
                "Нет смысла туда идти", - мелькнула мысль в голове Фаэтларра. 
 
            ]];
 
            return false;
 
        end);
 
    };
 
};
 
\ No newline at end of file
 
};
 

	
 
service_tunnels_1 = labyrinth {
 
    var {
 
        position = "05";
 
    };
 
    dir1 = "#";
 
    dir2 = "O";
 
    dir3 = "^";
 
    dir4 = "|";
 
    ex = "Из туннеля";
 
    nam = "service_tunnels_1";
 
    disp = "Венаэданотр, служебный тоннель";
 
    dsc = function(s)
 
        return [[Фаэтларр находится где-то в служебных тоннелях Лсэрианотра. Множество труб различной толщины тянутся во всех направлениях, образуя запутанный лабиринт. К счастью, секции и направления промаркированы определенным образом, позволяя попавшему в эти хитросплетения труб ориентироваться в них. Рядом с Фаэтларром висит табличка, на которую нанесены ]] .. s.map[s.posiition].name .. ". ";
 
    end;
 
    map = {
 
        ["00"] = {
 
            name = "две фиолетовые полосы";
 
            e1 = "10";
 
            ex = "lse_outer_3";
 
        };
 
        ["01"] = {
 
            name = "фиолетовая и синяя полосы";
 
            e1 = "11";
 
            e4 = "02";
 
        };
 
        ["02"] = {
 
            name = "фиолетовая и зеленая полосы";
 
            e3 = "03";
 
            e4 = "01";
 
        };
 
        ["03"] = {
 
            name = "фиолетовая и желтая полосы";
 
            e1 = "13";
 
            e3 = "02";
 
        };
 
        ["04"] = {
 
            name = "фиолетовая и оранжевая полосы";
 
            e3 = "05";
 
        };
 
        ["05"] = {
 
            name = "фиолетовая и красная полосы";
 
            e1 = "15";
 
            e3 = "04";
 
        };
 
        
 
        ["10"] = {
 
            name = "синяя и фиолетовая полосы";
 
            e1 = "00";
 
            o2 = "20";
 
            o3 = "11";
 
        };
 
        ["11"] = {
 
            name = "две синие полосы";
 
            e1 = "01";
 
            e3 = "10";
 
            e4 = "12";
 
        };
 
        ["12"] = {
 
            name = "синяя и зеленая полосы";
 
            e4 = "11";
 
        };
 
        ["13"] = {
 
            name = "синяя и желтая полосы";
 
            e1 = "03";
 
            e4 = "14";
 
        };
 
        ["14"] = {
 
            name = "синяя и оранжевая полосы";
 
            e3 = "15";
 
            e4 = "13";
 
        };
 
        ["15"] = {
 
            name = "синяя и красная полосы";
 
            e1 = "05";
 
            e2 = "25";
 
            e3 = "14";
 
        };
 
        ["20"] = {
 
            name = "зеленая и фиолетовая полосы";
 
            e1 = "30";
 
            e2 = "10";
 
            e3 = "21";
 
        };
 
        ["21"] = {
 
            name = "зеленая и синяя полосы";
 
            e3 = "20";
 
            e4 = "22";
 
        };
 
        ["22"] = {
 
            name = "две зеленые полосы";
 
            e3 = "23";
 
            e4 = "21";
 
        };
 
        ["23"] = {
 
            name = "зеленая и желтая полосы";
 
            e1 = "33";
 
            e3 = "22":
 
            e4 = "24";
 
        };
 
        ["24"] = {
 
            name = "зеленая и оранжевая полосы";
 
            e1 = "34";
 
            e4 = "23";
 
        };
 
        ["25"] = {
 
            name = "зеленая и красная полосы";
 
            e1 = "35";
 
            e2 = "15";
 
            ex = "lse_sub_1";
 
        };
 
        ["30"] = {
 
            name = "желтая и фиолетовая полосы";
 
            e1 = "20";
 
            e2 = "40";
 
        };
 
        ["31"] = {
 
            name = "желтая и синяя полосы";
 
            e2 = "41";
 
            e4 = "32";
 
        };
 
        ["32"] = {
 
            name = "желтая и зеленая полосы";
 
            e3 = "33";
 
            e4 = "31";
 
        };
 
        ["33"] = {
 
            name = "две желтые полосы";
 
            e1 = "23";
 
            e3 = "32";
 
        };
 
        ["34"] = {
 
            name = "желтая и оранжевая полосы";
 
            e1 = "24";
 
            e2 = "44";
 
        };
 
        ["35"] = {
 
            name = "желтая и красная полосы";
 
            e1 = "25";
 
        };
 
        ["40"] = {
 
            name = "оранжевая и фиолетовая полосы";
 
            e1 = "50";
 
            e2 = "30";
 
            e3 = "41";
 
        };
 
        ["41"] = {
 
            name = "оранжевая и синяя полосы";
 
            e1 = "51";
 
            e2 = "31";
 
            e3 = "40";
 
        };
 
        ["42"] = {
 
            name = "оранжевая и зеленая полосы";
 
            e1 = "52";
 
            e3 = "43";
 
        };
 
        ["43"] = {
 
            name = "оранжевая и желтая полосы";
 
            e3 = "42";
 
        };
 
        ["44"] = {
 
            name = "две оранжевые полосы";
 
            e1 = "54";
 
            e2 = "34";
 
        };
 
        ["45"] = {
 
            name = "оранжевая и красная полосы";
 
            e1 = "55":
 
        };
 
        ["50"] = {
 
            name = "красная и фиолетовая полосы";
 
            e1 = "40";
 
        };
 
        ["51"] = {
 
            name = "красная и синяя полосы";
 
            e1 = "41";
 
            e4 = "52";
 
        };
 
        ["52"] = {
 
            name = "красная и зеленая полосы";
 
            e1 = "42";
 
            e4 = "51";
 
        };
 
        ["53"] = {
 
            name = "красная и желтая полосы";
 
            e4 = "54";
 
            ex = "lse_prison_overseer_room";
 
        };
 
        ["54"] = {
 
            name = "красная и оранжевая полосы";
 
            e1 = "44";
 
            e3 = "55";
 
            e4 = "53":
 
        };
 
        ["55"] = {
 
            name = "две красные полосы";
 
            e1 = "45";
 
            e3 = "54";
 
        };
 
    };
 
};
0 comments (0 inline, 0 general)