Changeset - 257f0b23a44b
[Not reviewed]
default
0 3 0
Silverwing - 7 years ago 2017-11-25 15:50:16

LFC court
3 files changed with 283 insertions and 4 deletions:
0 comments (0 inline, 0 general)
atlantis_dlg.lua
Show inline comments
 
@@ -116,10 +116,11 @@ char_darkstar_dlg = dlg {
 
        {tag="leroy_and_goldman", false, always = true, "Какое наказание ждет подсудимых?", [[Даркстар отвечает: "Я бы расстрелял их на месте, но я не могу принимать решения единолично". ]]};
 
        {tag="leroy_only", false, always = true, "Какое наказание ждет подсудимого?", [[Даркстар отвечает: "Я бы расстрелял его на месте, но я не могу принимать решения единолично". ]]};
 
        {always = true, "Я готов.", function(s)
 
            walk("atl_lfc_court");
 
            if atl_lfc_goldman_exposed then
 
                return [[Даркстар поднимает трубку, поворачивает наборный диск, ждет немного и сообщает: "Моро, Светлова, Райт. Жду вас в своем кабинете". Потом он нажимает на рычаг и делает еще один звонок: "Приведите Леруа и Голдмана". ]];
 
                return [[Даркстар поднимает трубку, поворачивает наборный диск, ждет немного и сообщает: "Моро, Светлова, Райт. Жду вас в своем кабинете". ]];
 
            else
 
                return [[Даркстар поднимает трубку, поворачивает наборный диск, ждет немного и сообщает: "Моро, Светлова, Райт. Жду вас в своем кабинете". Потом он нажимает на рычаг и делает еще один звонок: "Приведите Леруа". ]];
 
                return [[Даркстар поднимает трубку, поворачивает наборный диск, ждет немного и сообщает: "Моро, Светлова, Райт. Жду вас в своем кабинете". ]];
 
            end;
 
        end};
 
        {tag="lfc_warning"};
atlantis_looking_for_clues.lua
Show inline comments
 
@@ -627,7 +627,7 @@ atl_lfc_dock_end_barreled = room {
 
 
atl_lfc_dock_end_ko = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[Вы оглушаете саботажника и ждете, когда в помещение придут охранники. ^Они приходят через несколько минут вместе с Винсентом Даркстером. Охранники уносят неподвижного Леруа, а Даркстар обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним". ^Вы возвращаетесь в свою комнату и сразу же засыпаете. ^Вы просыпаетесь от телефонного звонка. Подняв трубку вы слышите голос Даркстара: "Дрейк, зайдите ко мне". ]];
 
	dsc = [[Вы оглушаете саботажника и ждете, когда в помещение придут охранники. ^Они приходят через несколько минут вместе с Винсентом Даркстаром. Охранники уносят неподвижного Леруа, а Даркстар обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним". ^Вы возвращаетесь в свою комнату и сразу же засыпаете. ^Вы просыпаетесь от телефонного звонка. Подняв трубку вы слышите голос Даркстара: "Дрейк, зайдите ко мне". ]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_luna_drake_room");
 
	};
 
@@ -649,4 +649,281 @@ atl_lfc_outro_expose = cutscene("Атлантида", "Атлантида", [[Даркстар поднимает трубку телефона и отдает приказ: "Приведите ко мне Леруа и Голдмана". Вас он просит отойти в угол комнаты и ждать там. ^Допрос продолжался недолго. Сперва Леруа упирался, но подельник сдал его с потрохами и в итоге ему осталось только признать свою вину. ^Подозреваемых заперли в их комнатах, а вас Даркстар отпустил отдыхать. Придя в свою комнату, вы тут же ложитесь спать. ^Вы просыпаетесь от телефонного звонка. Подняв трубку вы слышите голос Даркстара: "Дрейк, зайдите ко мне". ]], "atl_luna_drake_room", function(s)
 
    rel_walter = rel_walter + 1;
 
    remove(char_leroy, where('char_leroy'));
 
    remove(char_goldman, where('char_goldman'));
 
end);
 
 
atl_lfc_court = dlg {
 
    var {
 
        goldman = 0;
 
        leroy = 0;
 
    };
 
    nam = "Атлантида";
 
    entered = function(s)
 
        if atl_lfc_goldman_exposed then
 
            p([[В комнату входят руководители станции. Даркстар встает из-за стола и сообщает: "Дорогие друзья, сегодня мы обсуждаем важный вопрос. Как вы все знаете, мы поймали саботажников -- ими оказались Леонард Голдман и Мишель Леруа. Мы будем следовать обычной процедуры, однако, решено, что в этом заседании будет участвовать Дэвид Дрейк, оказавший неоценимую помощь в поимке преступников. ]]);
 
        else
 
            p([[В комнату входят руководители станции. Даркстар встает из-за стола и сообщает: "Дорогие друзья, сегодня мы обсуждаем важный вопрос. Как вы все знаете, мы поймали саботажника -- им оказался Мишель Леруа. Мы будем следовать обычной процедуры, однако, решено, что в этом заседании будет участвовать Дэвид Дрейк, оказавший неоценимую помощь в поимке преступников. ]]);
 
        end;
 
        p([[Фредерик Моро, вам слово". ^Фредерик Моро начинает говорить: "Ситуация экстраординарная и требует экстраординарных мер]]);
 
        --[[
 
            lfc_goldman_execute = 0;
 
            lfc_goldman_imprison = 0;
 
            lfc_goldman_banish = 1;
 
            lfc_leroy_execute = 0;
 
            lfc_leroy_imprison = 0;
 
            lfc_leroy_banish = 1;
 
        ]]
 
        if atl_lfc_goldman_exposed then
 
            if char_moreau_dlg.lfc_goldman_imprison > 0 then
 
                p([[, к которым мы пока не готовы. Я считаю, что Леонарда Голдмана следует посадить под арест, как минимум до того времени, как не вернется экспедиция Уильяма. ]]);
 
                if char_moreau_dlg.lfc_leroy_imprison > 0 then
 
                    p([[Что касается Мишеля Леруа, то его так же следует взять под стражу. ]]);
 
                else
 
                    p([[Мишеля Леруа же слишком опасно держать здесь. Стоит высадить его где-нибудь на побережье Северной Америки. ]]);
 
                end;
 
            else
 
                p([[. Единственным разумным решением, на мой взгляд, будет изгнать Леонарда Голдмана с Атлантиды. Высадить его где-нибудь неподалеку от какого-нибудь городка. ]]);
 
                if char_moreau_dlg.lfc_leroy_imprison > 0 then
 
                    p([[Что касается Мишеля Леруа, то его следует взять под стражу. Такого как он отпускать на поверхность слишком опасно. ]]);
 
                else
 
                    p([[Мишеля Леруа следует отправить вместе с ним. Преступникам не место на станции. ]]);
 
                end;
 
            end;
 
        else
 
            if char_moreau_dlg.lfc_leroy_imprison > 0 then
 
                p([[, к которым мы пока не готовы. Я считаю, что Мишеля Леруа следует посадить под арест, как минимум до того времени, как не вернется экспедиция Уильяма.]]);
 
            else
 
                p([[. Мишеля Леруа же слишком опасно держать здесь. Стоит высадить его где-нибудь на побережье Северной Америки. ]]);
 
            end;
 
        end;
 
        p([[ У меня все". ^Даркстар передает слово Екатерине Светловой и она предлагает свое решение:"]]);
 
        if atl_lfc_goldman_exposed then
 
            if char_moreau_dlg.lfc_goldman_banish > 0 then
 
                if char_moreau_dlg.lfc_leroy_banish > 0 then
 
                    p([[Я считаю, что обоих стоит выслать отсюда. Увезти куда подальше, только и всего. ]]);
 
                else
 
                    p([[Голдмана можно просто выслать на поверхность, но Леруа слишком опасен. Этот пусть остается здесь, под надзором. ]]);
 
                end;
 
            else
 
                if char_moreau_dlg.lfc_leroy_banish > 0 then
 
                    p([[Голдману стоит посидеть немного взаперти и подумать. Думаю, он не до конца потерян. А вот Леруа не место на Атлантиде. ]]);
 
                else
 
                    p([[Я считаю, что обоих нужно запереть и держать так, пока они не поймут свою ошибку. ]]);
 
                end;
 
            end;
 
        else
 
            if char_moreau_dlg.lfc_leroy_banish > 0 then
 
                p([[Леруа не место на Атлантиде. ]]);
 
            else
 
                p([[Пусть Леруа немного посидит взаперти, а потом посмотрим. ]]);
 
            end;
 
        end;
 
        p([[Это все". ^Даркстар передает слово Майклу Райту и он говорит следующее: "]]);
 
        if atl_lfc_goldman_exposed then
 
            if char_moreau_dlg.lfc_goldman_banish > 0 then
 
                if char_moreau_dlg.lfc_leroy_banish > 0 then
 
                    p([[Им не место на Атлантиде. ]]);
 
                else
 
                    p([[Голдману не место на Атлантиде, а Леруа следует изолировать. ]]);
 
                end;
 
            else
 
                if char_moreau_dlg.lfc_leroy_banish > 0 then
 
                    p([[Голдмана следует изолировать, а вот Леруа не место на Атлантиде. ]]);
 
                else
 
                    p([[Их следует изолировать. ]]);
 
                end;
 
            end;
 
        else
 
            if char_moreau_dlg.lfc_leroy_banish > 0 then
 
                p([[Леруа не место на Атлантиде. ]]);
 
            else
 
                p([[Леруа следует изолировать. ]]);
 
            end;
 
        end;
 
        p([[Я закончил". ^Теперь Даркстар передает слово вам. ]]);
 
        if atl_lfc_goldman_exposed then
 
            psub("goldman");
 
        else
 
            psub("leroy");
 
        end;
 
    end;
 
    decision = function(s)
 
        local banish_g = 0;
 
        local execut_g = 1;
 
        local prison_g = 0;
 
        local banish_l = 0;
 
        local execut_l = 1;
 
        local prison_l = 0;
 
        
 
        if atl_lfc_court.goldman == 1 then
 
            execut_g = execut_g + 1;
 
        elseif atl_lfc_court.goldman == 2 then
 
            banish_g = banish_g + 1;
 
        elseif atl_lfc_court.goldman == 3 then
 
            prison_g = prison_g + 1;
 
        end;
 
        
 
        if atl_lfc_court.leroy == 1 then
 
            execut_l = execut_l + 1;
 
        elseif atl_lfc_court.leroy == 2 then
 
            execut_l = execut_l + 1;
 
        elseif atl_lfc_court.leroy == 3 then
 
            execut_l = execut_l + 1;
 
        end;
 
        
 
        if char_moreau_dlg.lfc_goldman_banish >= char_moreau_dlg.lfc_goldman_prison then
 
            banish_g = banish_g + 1;
 
        else
 
            prison_g = prison_g + 1;
 
        end;
 
        
 
        if atl_lfc_court.goldman == 1 or atl_lfc_court.leroy == 1 then
 
                atl_rep_moreau = atl_rep_moreau - 1;
 
            end;        
 
        
 
        if char_svetlova_dlg.lfc_goldman_banish >= char_svetlova_dlg.lfc_goldman_prison and char_svetlova_dlg.lfc_goldman_banish >= char_svetlova_dlg.lfc_goldman_execute then
 
            banish_g = banish_g + 1;
 
        elseif char_svetlova_dlg.lfc_goldman_prison >= char_svetlova_dlg.lfc_goldman_execute then
 
            prison_g = prison_g + 1;
 
        else
 
            execut_g = execut_g + 1;
 
        end;
 
        
 
        if char_michael_wright_dlg.lfc_goldman_banish >= char_michael_wright_dlg.lfc_goldman_prison and char_michael_wright_dlg.lfc_goldman_banish >= char_michael_wright_dlg.lfc_goldman_execute then
 
            banish_g = banish_g + 1;
 
        elseif char_michael_wright_dlg.lfc_goldman_prison >= char_michael_wright_dlg.lfc_goldman_execute then
 
            prison_g = prison_g + 1;
 
        else
 
            execut_g = execut_g + 1;
 
        end;
 
        
 
        if char_moreau_dlg.lfc_leroy_banish >= char_moreau_dlg.lfc_leroy_prison then
 
            banish_l = banish_l + 1;
 
        else
 
            prison_l = prison_l + 1;
 
        end;
 
        
 
        if char_svetlova_dlg.lfc_leroy_banish >= char_svetlova_dlg.lfc_leroy_prison and char_svetlova_dlg.lfc_leroy_banish >= char_svetlova_dlg.lfc_leroy_execute then
 
            banish_l = banish_l + 1;
 
        elseif char_svetlova_dlg.lfc_leroy_prison >= char_svetlova_dlg.lfc_leroy_execute then
 
            prison_l = prison_l + 1;
 
        else
 
            execut_l = execut_l + 1;
 
        end;
 
        
 
        if char_michael_wright_dlg.lfc_leroy_banish >= char_michael_wright_dlg.lfc_leroy_prison and char_michael_wright_dlg.lfc_leroy_banish >= char_michael_wright_dlg.lfc_leroy_execute then
 
            banish_l = banish_l + 1;
 
        elseif char_michael_wright_dlg.lfc_leroy_prison >= char_michael_wright_dlg.lfc_leroy_execute then
 
            prison_l = prison_l + 1;
 
        else
 
            execut_l = execut_l + 1;
 
        end;
 
        
 
        local r = [[Даркстар забирает листы с решениями всех участников совета и, просмотрев их, оглашает вердикт: "]];
 
        
 
        if atl_lfc_goldman_exposed then
 
            if banish_g >= prison_g and banish_g >=execut_g then
 
                goldman_state = 3;
 
                r = r .. [[Леонард Голдман будет изгнан с Атлантиды. ]];
 
            elseif prison_g >= execut_g then
 
                goldman_state = 2;
 
                r = r .. [[Леонард Голдман будет содержаться в заключении. ]];
 
            else
 
                goldman_state = 1;
 
                r = r .. [[Леонард Голдман будет казнен. ]];
 
            end;
 
        end;
 
        
 
        if banish_l >= prison_lg and banish_l >=execut_l then
 
            leroy_state = 3;
 
            r = r .. [[Мишель Леруа будет изгнан с Атлантиды. ]];
 
        elseif prison_g >= execut_g then
 
            leroy_state = 2;
 
            r = r .. [[Мишель Леруа будет содержаться в заключении. ]];
 
        else
 
            leroy_state = 1;
 
            r = r .. [[Мишель Леруа будет казнен. ]];
 
        end;
 
        psub("leave");
 
        return r .. [[Решение принято, все свободны". ]];
 
    end;
 
    phr = {
 
        {tag="goldman"};
 
        {"Голдман -- просто жертва. Леруа задурил ему мозги. Пусть посидить в камере и подумает. ", function(s)
 
            char_moreau_dlg.lfc_goldman_imprison = char_moreau_dlg.lfc_goldman_imprison + 1;
 
            char_svetlova_dlg.lfc_goldman_imprison = char_svetlova_dlg.lfc_goldman_imprison + 1;
 
            char_michael_wright_dlg.lfc_goldman_imprison = char_michael_wright_dlg.lfc_goldman_imprison + 1;
 
            psub("leroy");
 
            return "";
 
        end};
 
        {"Голдману не место на Атлантиде. ", function(s)
 
            char_moreau_dlg.lfc_goldman_banish = char_moreau_dlg.lfc_goldman_banish + 1;
 
            char_svetlova_dlg.lfc_goldman_banish = char_svetlova_dlg.lfc_goldman_banish + 1;
 
            char_michael_wright_dlg.lfc_goldman_banish = char_michael_wright_dlg.lfc_goldman_banish + 1;
 
            psub("leroy");
 
            return "";
 
        end};
 
        {"Голдман подверг опасности всю станцию. Его следует казнить. ", function(s)
 
            char_svetlova_dlg.lfc_goldman_execute = char_svetlova_dlg.lfc_goldman_execute + 1;
 
            char_michael_wright_dlg.lfc_goldman_execute = char_michael_wright_dlg.lfc_goldman_execute + 1;        
 
            psub("leroy");
 
            return "";
 
        end};
 
        {tag="leroy"};
 
        {"Нельзя давать Леруа то, ради чего он затеял все это. Держать его на станции также слишком опасно. Остается единственный способ избавиться от него. ", function(s)
 
            char_svetlova_dlg.lfc_leroy_execute = char_svetlova_dlg.lfc_leroy_execute + 1;
 
            char_michael_wright_dlg.lfc_leroy_execute = char_michael_wright_dlg.lfc_leroy_execute + 1;
 
            if atl_lfc_goldman_exposed then
 
                psub("final_goldman");
 
            else
 
                psub("final_leroy");
 
            end;
 
            return [[Даркстар продолжает: "Теперь каждый напишет свое решение, после чего я посчитаю и оглашу результат". ]];
 
        end};
 
        {"Лучшим решением будет отослать Леруа. У нас нет возможности содержать его на станции, не говоря уж о повышенной опасности этого. ", function(s)
 
            char_moreau_dlg.lfc_leroy_banish = char_moreau_dlg.lfc_leroy_banish + 1;
 
            char_svetlova_dlg.lfc_leroy_banish = char_svetlova_dlg.lfc_leroy_banish + 1;
 
            char_michael_wright_dlg.lfc_leroy_banish = char_michael_wright_dlg.lfc_leroy_banish + 1;
 
            return atl_lfc_court:decision();
 
        end};
 
        {"Нельзя давать Леруа то, ради чего он затеял все это. Нужно изолировать его. ", function(s)
 
            char_moreau_dlg.lfc_leroy_imprison = char_moreau_dlg.lfc_leroy_imprison + 1;
 
            char_svetlova_dlg.lfc_leroy_imprison = char_svetlova_dlg.lfc_leroy_imprison + 1;
 
            char_michael_wright_dlg.lfc_leroy_imprison = char_michael_wright_dlg.lfc_leroy_imprison + 1;
 
            return atl_lfc_court:decision();
 
        end};
 
        {tag="final_goldman"};
 
        {"[Казнить Голдмана]", function(s)
 
            atl_lfc_court.goldman = 1;
 
            psub("final_leroy");
 
        end};
 
        {"[Изгнать Голдмана]", function(s)
 
            atl_lfc_court.goldman = 2;
 
            psub("final_leroy");
 
        end};
 
        {"[Заключить Голдмана]", function(s)
 
            atl_lfc_court.goldman = 3;
 
            psub("final_leroy");
 
        end};
 
        {tag="final_leroy"};
 
        {"[Казнить Леруа]", function(s)
 
            atl_lfc_court.leroy = 1;
 
            return atl_lfc_court:decision();
 
        end};
 
        {"[Изгнать Леруа]", function(s)
 
            atl_lfc_court.leroy = 2;
 
            return atl_lfc_court:decision();
 
        end};
 
        {"[Заключить Леруа]", function(s)
 
            atl_lfc_court.leroy = 3;
 
            return atl_lfc_court:decision();
 
        end};
 
        {tag="leave"};
 
        {"[Уйти]", function(s)
 
            walkin("atl_lfc_outro_court");
 
        end};
 
    };
 
};
 
 
atl_lfc_outro_court = cutscene("atl_lfc_outro_court", "Атлантида", [[Вы возвращаетесь в свою комнату. Вскоре, раздается звонок телефона. вы поднимаете трубку и слышите голос Моро: "Дрейк, зайдите ко мне". ]], "atl_luna_drake_room", function(s)
 
    
 
end);
 
\ No newline at end of file
main.lua
Show inline comments
 
@@ -81,7 +81,8 @@ global {
 
    conflict_resolved = 0; -- Решен ли конфликт между навьярами
 
    artifacts_returned = 0; -- Вернили ли артефакты из храма навьярам?
 
    wright_state = 0; -- был взят Райт на борт или нет
 
    leroy_state = 0; -- был ли Леруа арестован
 
    goldman_state = 0; -- 0 - Голдман не раскрыт, 1 - Голдман казнен, 2 - Голдман задержан, 3 - Голдман изгнан
 
    leroy_state = 0; -- 0 - Леруа не раскрыт, 1 - Леруа казнен, 2 - Леруа задержан, 3 - Леруа изгнан
 
    iraa_scepter = 0; -- был ли возвращен скипетр в Ираафаанотр
 
    svetlova_help = 0; -- Дополнительная помощь, оказанная Светловой в исследовании навьяров --увеличивается, если показать ей КНО и скипетр
 
};
0 comments (0 inline, 0 general)