diff --git a/atlantis_dlg.lua b/atlantis_dlg.lua --- a/atlantis_dlg.lua +++ b/atlantis_dlg.lua @@ -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"}; diff --git a/atlantis_looking_for_clues.lua b/atlantis_looking_for_clues.lua --- a/atlantis_looking_for_clues.lua +++ b/atlantis_looking_for_clues.lua @@ -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 diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -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; -- Дополнительная помощь, оказанная Светловой в исследовании навьяров --увеличивается, если показать ей КНО и скипетр };