Files @ c03ce9916e98
Branch filter:

Location: games/Awakening/lse_alliance.lua - annotation

Silverwing
Huge cleanup
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
3ff1b9f4c780
779dc1881df4
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
779dc1881df4
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
defe714593e6
3ff1b9f4c780
4c9e39605fbc
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
defe714593e6
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
defe714593e6
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
defe714593e6
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
0be9bb2cbe6d
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
e9f3ddfdbbae
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
4c9e39605fbc
3ff1b9f4c780
eca528be4e54
eca528be4e54
eca528be4e54
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
f5be42372526
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
f1c6d28eefd0
3ff1b9f4c780
bd64e15b0cbc
bd64e15b0cbc
bd64e15b0cbc
bd64e15b0cbc
bd64e15b0cbc
3ff1b9f4c780
3ff1b9f4c780
bd64e15b0cbc
bd64e15b0cbc
bd64e15b0cbc
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
134499f70c95
134499f70c95
3ff1b9f4c780
3ff1b9f4c780
bd64e15b0cbc
bd64e15b0cbc
3ff1b9f4c780
134499f70c95
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
5f415cb98fab
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
7804afa784a8
3ff1b9f4c780
3ff1b9f4c780
17e9ef4f3ff3
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
93e848bb964c
0209fa7ba042
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
125f292fcb86
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
0209fa7ba042
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
c01f979c726c
93e848bb964c
93e848bb964c
93e848bb964c
3ff1b9f4c780
c01f979c726c
93e848bb964c
93e848bb964c
93e848bb964c
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
3ff1b9f4c780
c01f979c726c
93e848bb964c
93e848bb964c
93e848bb964c
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);