Files @ c03ce9916e98
Branch filter:

Location: games/Awakening/lse_alliance.lua

Silverwing
Huge cleanup
lse_join_drake = cutscene('Лсэрианотр', 'Лсэрианотр', [[Уильям улыбается и довольно потирает руки. "Отлично, сын", -- произносит он, -- "Вместе мы заставим Наэтвьирра и Лсэрианотр раскрыть нам свои тайны". ]], 'lse_jack_on_join');

lse_jack_on_join = dlg {
    nam = 'Джек Райт';
    disp = 'Джек Райт';
    enter = function(s)
        if ArrayUtils.indexOf(pl.party, 'wright') == 0 then
            walk('lse_walter_on_join');
        end;

        if have("item_naethvjirr_key") or lse_key then
            pon('have_key');
        end;
    end;
    entered = [[Джек Райт спрашивает вас: "Дрейк, ты уверен в том, что ты делаешь? Уильям безумец, он готов пренебречь любой опасностью ради призрачной надежды". ]];
    phr = {
        {tag="have_key", false, "У нас есть ключ. Он позволит нам управлять Наэтвьирром. ", [[Джек кивает: "Хорошо, я верю тебе, Дрейк". ^]], code [[walk("lse_walter_on_join");]]};
        {"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", function(s)
            if rel_jack >= 0 then
                pr [[Джек кивает: "Хорошо, я верю тебе, Дрейк".^]];
                walk("lse_walter_on_join");
            else
                for i = 1, #pl.party do
                    if pl.party[i] == 'wright' then
                        table.remove(pl.party, i);
                        break;
                    end;
                end;
                pr "Джек молча покидает зал. Никто его не останавливает.^";
                walk("lse_walter_on_join");
            end;
        end};
        {"Если тебе что-то не нравится -- уходи. ", "Джек кивает и покидает зал. Никто его не останавливает. ^", code [[
            for i = 1, #pl.party do
                if pl.party[i] == 'wright' then
                    table.remove(pl.party, i);
                    break;
                end;
            end;
            walk("lse_walter_on_join");
        ]]};
    }
}

lse_walter_on_join = dlg {
    var {
        state = 0
    };
    nam = 'Уолтер Рэдклифф';
    disp = 'Уолтер Рэдклифф';
    enter = function(s)
        if ArrayUtils.indexOf(pl.party, 'radcliffe') == 0 then
            walk('lse_learr_on_join');
        end;

        if have("item_naethvjirr_key") or lse_key then
            pon('have_key');
        end;
    end;
    entered = [[Уолтер Рэдклифф говорит вам: "Нам не стоит спешить. Наэтвьирр ждал нас тысячелетия, еще пару лет, пока мы исследуем все возможные исходы он тоже подождет". ]];
    phr = {
        {tag="have_key", false, "У нас есть ключ. Он позволит нам управлять Наэтвьирром. ", function(s)
            if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
                lse_walter_on_join.state = 1;
                pr "Уолтер молча смотрит на сестру.^";
                walk("lse_anna_on_join");
                return;
            end;
            pr [[Уолтер кивает: "Я бы предпочел провести более полное исследование, но пусть будет по твоему". ^]]
            walk("lse_learr_on_join");
        end};
        {"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", function(s)
            if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
                if rel_walter >= 0 then
                    lse_walter_on_join.state = 1;
                end;
                pr "Уолтер молча смотрит на сестру. ^";
                walk("lse_anna_on_join");
                return;
            end;
            if rel_walter >= 0 then
                pr [[ Уолтер кивает: "Я бы предпочел провести более полное исследование, но пусть будет по твоему". ^]];
            else
                for i = 1, #pl.party do
                    if pl.party[i] == 'radcliffe' then
                        table.remove(pl.party, i);
                        break;
                    end;
                end;
                pr "Уолтер молча покидает зал. Никто его не останавливает. ^";
            end;
            walk("lse_learr_on_join");
        end};
        {"Если тебе что-то не нравится -- уходи. ", function(s)
            if ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
                pr "Уолтер молча смотрит на сестру.";
                walk("lse_anna_on_join");
                return;
            end;
            for i = 1, #pl.party do
                if pl.party[i] == 'radcliffe' then
                    table.remove(pl.party, i);
                    break;
                end;
            end;
            pr "Уолтер молча покидает зал. Никто его не останавливает.^";
            walk('lse_learr_on_join');
        end};
    }
}

lse_anna_on_join = dlg {
    nam = 'Анна Рэдклифф';
    disp = 'Анна Рэдклифф';
    enter = function(s)
        if ArrayUtils.indexOf(pl.party, 'anna') == 0 then
            walk('lse_learr_on_join');
        end;

        if have("item_naethvjirr_key") or lse_key then
            pon('have_key');
        end;
    end;
    entered = [[Анна Рэдклифф вопрошает: "Наэтвьирр даст нам многое. Но, в самом деле, стоит ли спешить?" ]];
    phr = {
        {tag='have_key', false, "У нас есть ключ. Он позволит нам управлять Наэтвьирром. ", function(s)
            if lse_walter_on_join.state == 1 then
                pr [[Анна кивает: "Пусть будет по-твоему". ^]];
            else
                for i = 1, #pl.party do
                    if pl.party[i] == 'radcliffe' then
                        table.remove(pl.party, i);
                        break;
                    end;
                end;
                for i = 1, #pl.party do
                    if pl.party[i] == 'anna' then
                        table.remove(pl.party, i);
                        break;
                    end;
                end;
                pr [[Уолтер говорит вам: "Мы уходим". Анна не спорит. Они молча покидают зал. Никто их не останавливает. ^]];
            end;
            walk('lse_learr_on_join');
        end};
        {"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", function(s)
            if lse_walter_on_join.state == 1 and rel_anna >= 0 then
                pr [[Анна кивает: "Пусть будет по-твоему". ^]];
            else
                for i = 1, #pl.party do
                    if pl.party[i] == 'radcliffe' then
                        table.remove(pl.party, i);
                        break;
                    end;
                end;
                for i = 1, #pl.party do
                    if pl.party[i] == 'anna' then
                        table.remove(pl.party, i);
                        break;
                    end;
                end;
                pr [[Уолтер говорит вам: "Мы уходим". Анна не спорит. Они молча покидают зал. Никто их не останавливает. ^]];
            end;
            walk('lse_learr_on_join');
        end};
        {"Если тебе что-то не нравится -- уходи. ", function(s)
            for i = 1, #pl.party do
                if pl.party[i] == 'radcliffe' then
                    table.remove(pl.party, i);
                    break;
                end;
            end;
            for i = 1, #pl.party do
                if pl.party[i] == 'anna' then
                    table.remove(pl.party, i);
                    break;
                end;
            end;
            pr [[Уолтер говорит вам: "Мы уходим". Анна не спорит. Они молча покидают зал. Никто их не останавливает. ^]];
            walk('lse_learr_on_join');
        end};
    }
}

lse_learr_on_join = dlg {
    nam = 'Леарр';
    disp = 'Леарр';
    enter = function(s)
        if ArrayUtils.indexOf(pl.party, 'learr') == 0 then
            walk('lse_join_drake_2');
        end;

        if have("item_naethvjirr_key") or lse_key then
            pon('have_key');
        end;
    end;
    entered = [[Леарр бросает взгляд на Фаэтларра, после чего обращается к вам: "Я Наэтвьирра-опасаюсь. Он откроет-нам-тайны, но Древние-предания гласят, он-несет-навьяров-погибель".]];
    phr = {
        {tag='have_key', false, "У нас есть ключ. Он не даст Наэтвьирру навредить кому-бы то ни было. ", [[Леарр молча кивает. ^]], code [[walk('lse_join_drake_2'); ]]};
        {"Мы не для того проделали этот путь, чтобы вернуться. Подумай о том, что может открыть нам Наэтвьирр. ", [[Леарр разворачивается и уходит. Фаэтларр выходит следом за ней. Никто их не останавливает. ^]], code [[ walk('lse_join_drake_2'); ]]};
        {"Если тебе что-то не нравится -- уходи. ", [[Леарр разворачивается и уходит. Фаэтларр выходит следом за ней. Никто их не останавливает. ^]], code [[ walk('lse_join_drake_2'); ]]};
    }
}

lse_join_drake_2 = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Уильям Дрейк провозглашает: "Все готово, Наэтвьирр вот-вот оживет". ]], 'lse_join_main_room');

lse_join_main_room = room {
    var {
        state = 5;
    };
    nosave = true;
    noautosave = true;
    nam = 'Лсэрианотр, зал Наэтвьирра';
    disp = 'Лсэрианотр, зал Наэтвьирра';
    dsc = [[Центральный зал ярко освещен исходящим из стен светом. По периметру зала установлены массивные металлические шкафы, издающие ровный низкий гул. По полу протянуты толстые провода, соединяющие их со статуей в центре зала. Металлическая статуя изображает навьяра, сидящего на троне. Рядом с троном стоят два пилона, высотой около метра. ]];
    entered = function(s)
        lifeon(s);
    end;
    left = function(s)
        lifeoff(s);
    end;
    life = function(s)
        if s.state == 0 then
            if lse_key then
                walk(lse_naethvjirr_drake_a);
            else
                walk(lse_naethvjirr_ask);
            end;
        else
            s.state = s.state - 1;
        end;
    end;
    obj = {
        'lse_a_drake';
        'lse_a_aedhyarr';
    }
}

lse_a_drake = obj {
    nam = "lse_a_drake";
    dsc = [[В дальнем конце комнаты, перед небольшим экраном стоит {Уильям Дрейк}. Он не обращает на вас внимания. ]];
    used = function(s, o)
        if o == item_naethvjirr_key then
            walk(lse_naethvjirr_drake_a);
            return [[Вы передаете найденный в древнем храме предмет Уильяму, чтобы он использовал его. ]];
        end;
    end;
    act = [[Уильям Дрейк сообщает: "Скоро все будет готово". ]];
};

lse_a_aedhyarr = obj {
    nam = "lse_a_aedhyarr";
    dsc = [[Рядом со статуей Наэтвьирра стоит {Аэдхиарр}, внимательно наблюдающий за действиями своего "властителя". ]];
    act = [[Аэдхиарр не отвлекаясь наблюдает за действиями Уильяма. ]];
};

lse_naethvjirr_ask = dlg {
    nam = 'Наэтвьирр';
    disp = 'Наэтвьирр';
    entered = function(s)
        make_snapshot();
        if have(item_naethvjirr_key) then
            pon('use_key_self', 'use_key_william');
        end;
        return [[Глаза статуи, стоящей в центре зала зажигаются белым светом. Его рот открывается и он начинает говорить на непонятных вам языках. Наконец, он говорит на чистом английском: "Кто звал меня?"]];
    end;
    phr = {
        {tag="use_key_self", false, "[Отдать Наэтвьирру ключ] Я тебя звал.", code [[ walk(lse_naethvjirr_self); ]]};
        {tag="use_key_self", false, "[Передать ключ Уильяму]", code [[walk(lse_naethvjirr_drake_b); ]]};
        {"Я тебя звал.", [[Наэтвьирр замирает на некоторое время, после чего требует: "Подчиняйтесь мне". ]], code [[ psub("join_or_die"); ]]};
        {"[Позволить Уильяму говорить]", [[Наэтвьирр замирает на некоторое время, после чего требует: "Подчиняйтесь мне". ]], code [[ psub("join_or_die"); ]]};
        {tag="join_or_die"};
        {"Слушаю и повинуюсь.", code [[walk(prepare_ending(5));]]};
        {"Ни за что.", code [[ lse_ending_state=1; walk(lse_a_pre_final_battle);]]};
    };
}

lse_a_pre_final_battle = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Наэтвьирр произносит: "Тогда, мне придется вас уничтожить". Вы достаете револьвер, а в зал врывается Фаэтларр. Не раздумывая, Фаэтларр бросается к ближайшему пилону и разрушает его. Мощный электрический разряд вырывается из руки Наэтвьирра и попадает в навьяра. Фаэтларр падает на пол и остается неподвижно лежать. ]], function(s)
    lse_pylon1.hp = 0;
    if ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
        return 'lse_pre_fb_learr';
    elseif ArrayUtils.indexOf(pl.party, 'wright') ~= 0 then
        return 'lse_pre_fb_jack';
    elseif ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
        return 'lse_pre_fb_anna';
    else
        return 'lse_pre_fb_walter';
    end;
end);

--[[
    Ending 1: Drake controls Naethvjirr
]]

lse_naethvjirr_drake_a = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Глаза статуи, стоящей в центре зала зажигаются белым светом. Его рот открывается и он начинает говорить на непонятных вам языках. Наконец, он говорит на чистом английском: "Кто звал меня?" ^Уильям поднимает перед собой металлическую пластину, взятую у вас, произнося: "Я твой хозяин, слушай меня". Наэтвьирр подходит у Уильяму и забирает предмет из его рук. Он на некоторое время замирает, после чего сообщает: "Принято". ]], function(s)
    --'lse_naethvjirr_prevails_william'
    return prepare_ending(2);
end);

lse_naethvjirr_drake_b = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Уильям поднимает перед собой металлическую пластину, взятую у вас, произнося: "Я твой хозяин, слушай меня". Наэтвьирр подходит у Уильяму и забирает предмет из его рук. Он на некоторое время замирает, после чего сообщает: "Принято". ]], function(s)
    --'lse_naethvjirr_prevails_william'
    return prepare_ending(2);
end);

--[[
    Ending 2: You control naethvjirr
 ]]

lse_naethvjirr_self = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', [[Наэтвьирр подходит к вам и забирает ключ из ваших рук. Он на некоторое время замирает, после чего сообщает: "Принято". ]], function(s)
    --'ending_naethvjirr_prevails_david'
    return prepare_ending(1);
end);