Changeset - 7d2d15c0a145
[Not reviewed]
default
0 2 0
Silverwing - 5 years ago 2019-07-18 17:42:00

Improve mousetrap quest
2 files changed with 72 insertions and 13 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -20,6 +20,10 @@ global {
 
    atl_mtr_know_jones_replaced_goldman = false;
 
    atl_mtr_know_leroy_replaced_jones = false;
 
 
    atl_mtr_know_goldman_views = false;
 
    atl_mtr_know_jones_views = false;
 
    atl_mtr_know_leroy_views = false;
 
 
    atl_mtr_ask_radcliffe = false;
 
    atl_mtr_jones_asked_on_clock = false;
 
    atl_mtr_leroy_asked_on_clock = false;
atlantis_dlg.lua
Show inline comments
 
@@ -24,23 +24,55 @@ char_darkstar_dlg = dlg {
 
        if (starlight_darkstar_status == 1 and char_darkstar.starlight_asked < 2) then pon("on_starlight"); pon("more_questions"); end;
 
 
        if atl_mtr_started and not atl_mtr_finished then
 
            pon("mtr_accuse_phr", "gclosing", "lclosing", "jclosing");
 
            pon("mtr_accuse_phr");
 
 
            local leroy_proof = 0;
 
            local jones_proof = 0;
 
 
            pon('gclock');
 
            if atl_mtr_know_goldman_lost_clock then
 
                if atl_mtr_leroy_asked_on_clock and atl_mtr_jones_asked_on_clock then
 
                    pon('jclock', 'lclock');
 
                    leroy_proof = leroy_proof + 1;
 
                    jones_proof = jones_proof + 1;
 
                end;
 
            end;
 
 
            if atl_mtr_know_goldman_views then
 
                pon('gclosing');
 
            end;
 
 
            if atl_mtr_know_jones_in_solis then
 
                pon('jsolis');
 
                jones_proof = jones_proof + 1;
 
            end;
 
 
            if atl_mtr_know_jones_views then
 
                pon('jclosing');
 
                jones_proof = jones_proof + 1;
 
            end;
 
 
            if atl_mtr_know_leroy_replaced_jones then
 
                pon('lsolis');
 
                leroy_proof = leroy_proof + 1;
 
            end;
 
 
            if atl_mtr_know_leroy_views then
 
                pon('lclosing');
 
                leroy_proof = leroy_proof + 1;
 
            end;
 
 
            if leroy_proof > 0 then
 
                pon('mtr_leroy');
 
            else
 
                poff('mtr_leroy');
 
            end;
 
 
            if jones_proof > 0 then
 
                pon('mtr_jones');
 
            else
 
                poff('mtr_jones');
 
            end;
 
        else
 
            poff("mtr_accuse_phr");
 
        end;
 
@@ -128,7 +160,7 @@ char_darkstar_dlg = dlg {
 
        ]]};
 
        {tag="mtr_accuse_goldman"};
 
        {tag="gclock", false, "Голдман часто оставляет часы по своей рассеянности. Часы были найдены в Солисе.", [[Даркстар спрашивает: "Что еще вы можете добавить?"]]};
 
        {tag="gclosing", "Голдман -- сторонник закрытия станции и часто говорит о ее ненадежности. Авария -- отличное подтверждение его слов.", [[Даркстар спрашивает: "Что еще вы можете добавить?"]]};
 
        {tag="gclosing", false, "Голдман -- сторонник закрытия станции и часто говорит о ее ненадежности. Авария -- отличное подтверждение его слов.", [[Даркстар спрашивает: "Что еще вы можете добавить?"]]};
 
        {tag="gall", always=true, "У меня нет других доказательств.", [[Даркстар качает головой: "Боюсь, ваши доказательства неубедительны". ]], code [[psub("generic");]]};
 
        {tag="mtr_accuse_jones"};
 
        {tag="jclock", false, "Голдман часто оставляет часы по своей рассеянности. Джонс имел возможность украсть их неделю назад, во время обеда, когда Голдман потерял их в очередной раз.", function()
 
@@ -151,7 +183,7 @@ char_darkstar_dlg = dlg {
 
                return [[Даркстар спрашивает: "Что еще вы можете добавить?"]];
 
            end;
 
        end};
 
        {tag="jclosing", "Джонс -- сторонник закрытия станции и часто говорит о ее ненадежности. Авария -- отличное подтверждение его слов.", function()
 
        {tag="jclosing", false, "Джонс -- сторонник закрытия станции и часто говорит о ее ненадежности. Авария -- отличное подтверждение его слов.", function()
 
            char_darkstar_dlg.mtr_accuse = char_darkstar_dlg.mtr_accuse + 1;
 
            if char_darkstar_dlg.mtr_accuse == 3 then
 
                remove(char_jones, where(char_jones));
 
@@ -183,7 +215,7 @@ char_darkstar_dlg = dlg {
 
                return [[Даркстар спрашивает: "Что еще вы можете добавить?"]];
 
            end;
 
        end};
 
        {tag="lclosing", "Леруа -- сторонник закрытия станции и часто говорит о ее ненадежности. Авария -- отличное подтверждение его слов.", function()
 
        {tag="lclosing", false, "Леруа -- сторонник закрытия станции и часто говорит о ее ненадежности. Авария -- отличное подтверждение его слов.", function()
 
            char_darkstar_dlg.mtr_accuse = char_darkstar_dlg.mtr_accuse + 1;
 
            if char_darkstar_dlg.mtr_accuse == 3 then
 
                remove(char_leroy, where(char_leroy));
 
@@ -661,9 +693,18 @@ char_michael_wright_dlg = dlg {
 
        {tag="generic"};
 
        {tag="mtr_solis_last", false, "Кто был в Солисе последним?", [[Райт достает записную книжку, пролистывает ее и сообщает: "Вчера обслуживанием Солиса должен был заниматься Чарли Джонс. Меня здесь не было, но вы можете уточнить у Уолтера Рэдклиффа".]], code [[ poff("mtr_on_replace"); pon("mtr_on_jones"); atl_mtr_ask_radcliffe = true; atl_mtr_know_jones_in_solis = true;  ]]};
 
        {tag="mtr_on_replace", false, "Голдман говорит, что вчера его заменял Джонс. Вы можете это проверить?", [[Райт кивает и достает записную книжку. Пролистав ее он сообщает: "Да, действительно. Вчера обсулуживанием Солиса должен был заниматься Чарли Джонс. Меня здесь на было, но вы можете уточнить у Уолтера Рэдклиффа". ]], code [[ poff("mtr_solis_last"); atl_mtr_ask_radcliffe = true; atl_mtr_know_jones_in_solis = true; ]]};
 
        {tag="mtr_on_leroy", false, "Что вы думаете о Мишеле Леруа? ", [[Майкл рассказывает: "Мишель -- хороший специалист. Он столь же сосредоточен и уверен в работе, сколь и в повседневной жизни". ]], code [[ char_michael_wright_dlg.leroy_asked = true; ]]};
 
        {tag="mtr_on_jones", false, "Что вы думаете о Чарли Джонсе? ", [[Майкл рассказывает: "Чарли уже староват. Зачастую приходится искать ему менее тяжелую работу, но это компенсируется его незаурядным умом и отличным знанием устройства Атлантиды". ]], code [[ char_michael_wright_dlg.jones_asked = true; ]]};
 
        {tag="mtr_on_goldman", false, "Что вы думаете о Леонарде Голдмане? ", [[Майкл рассказывает: "Вас, наверное, удивляет, что такой неаккуратный и забывчивый человек как Леонард делает на станции, однако, смею вас заверить -- как специалист господин Голдман соврешенно незаменим. Когда дело касается обслуживания станции он ни разу не позволял себе оплошностей". ]], code [[ char_michael_wright_dlg.goldman_asked = true; ]]};
 
        {tag="mtr_on_leroy", false, "Что вы думаете о Мишеле Леруа? ", [[Майкл рассказывает: "Мишель -- хороший специалист. Он столь же сосредоточен и уверен в работе, сколь и в повседневной жизни. Он всегда выступал против переселения на Атлантиду и постоянно напоминает нам о том, что пора бы вернуться на поверхность". ]], function(s)
 
            char_michael_wright_dlg.leroy_asked = true;
 
            atl_mtr_know_leroy_views = true;
 
        end};
 
        {tag="mtr_on_jones", false, "Что вы думаете о Чарли Джонсе? ", [[Майкл рассказывает: "Чарли уже староват. Зачастую приходится искать ему менее тяжелую работу, но это компенсируется его незаурядным умом и отличным знанием устройства Атлантиды. Он может сказать вам, что считает станцию ненадежной и устаревшей, но, я думаю, он преувеличивает". ]], function(s)
 
            char_michael_wright_dlg.jones_asked = true;
 
            atl_mtr_know_jones_views = true;
 
        end};
 
        {tag="mtr_on_goldman", false, "Что вы думаете о Леонарде Голдмане? ", [[Майкл рассказывает: "Вас, наверное, удивляет, что такой неаккуратный и забывчивый человек как Леонард делает на станции, однако, смею вас заверить -- как специалист господин Голдман соврешенно незаменим. Когда дело касается обслуживания станции он ни разу не позволял себе оплошностей. Последнее время он много говорит о том, что ему надоело это все и он хочет на поверхность". ]], function(s)
 
            char_michael_wright_dlg.goldman_asked = true;
 
            atl_mtr_know_goldman_views = true;
 
        end};
 
        {tag="dyp_quest", false, "Вождь Дипатреанотра просил меня принести \"светящуюся капсулу\". Что мы можем ему предложить?", [[ Майкл Райт говорит: "Можете взять один из фонарей из того шкафа", -- Майкл показывает рукой на шкаф в другом конце мастерской, -- "И не забудьте захватить пару-тройку запасных батарей. Их можете взять там же". ]], code [[ item_electric_lamp:enable(); ]]};
 
        {tag="nih_fixed", false, "Я нашел утечку.", function(s)
 
            if atl_nih_state == 2 then
 
@@ -1396,6 +1437,7 @@ char_page_dlg = dlg {
 
char_leroy_dlg = dlg {
 
	var {
 
		state = 0;
 
        closing = false;
 
	};
 
	nam = "Мишель Леруа";
 
	disp = "Мишель Леруа";
 
@@ -1415,6 +1457,11 @@ char_leroy_dlg = dlg {
 
            end;
 
        end;
 
 
        if atl_mtr_know_leroy_views and not s.closing then
 
            s.closing = true;
 
            pon('closing')
 
        end;
 
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
@@ -1434,7 +1481,7 @@ char_leroy_dlg = dlg {
 
        {tag="mtr_on_clock", false, "Что вы можете сказать о часах Леонарда Голдмана?", [[Тон Мишеля становится очень недружелюбным: "Я уже говорил ему, что не трогал его часы. Да, он оставил их в общем зале, как и всегда -- когда я ушел, они так там и лежали. Наверное кто-то смахнул их со стола и они завалились куда-нибудь в угол". ]], code [[ atl_mtr_leroy_asked_on_clock = true; psub("mtr_clock_more"); ]]};
 
        {tag="mtr_on_replace", false, "Джонс сказал, что вы вместо него вчера работали в Солисе. Это правда?", [[Мишель отрицательно качает головой: "Понятия не имею о чем вы. Слушайте, вы не Даркстар, чтобы задавать мне такие вопросы". ]], code [[atl_mtr_leroy_denies_replace = true;]]};
 
        {tag="mtr_on_terra", false, "Рэдклифф сказал, что видел вас вчера в Терре, что вы здесь делали?", [[Джонс начинает выходить из себя: "Работал, что же еще. Хотел забрать инструменты для ремонта скафандров на Энтерпрайзе, да вот беда -- кто-то уже уволок последний комплект. Пришлось плестись обратно". ]], code [[atl_mtr_know_leroy_in_terra_asked = true; ]]};
 
        {"Почему вы считаете, что станцию необходимо закрыть?", [[Мишель начинает объяснять, активно жестикулируя: "Вы недавно здесь, и для вас это должно быть гораздо более очевидно, чем для многих из нас. Легко представить, к чему здесь может привести самая мелкая поломка. А эти самонадеянные люди, в лице Дрейка, Блэка, Светловой, Моро, Райта и даже Даркстара не видят дальше собственного носа! Что произойдет, если Доминус даст течь? Мы просто останемся погребенными под тоннами соленой воды и никакие меры предосторожности не помогут. Одно дело -- кратковременные экспедиции и совсем другое -- полное переселение сюда". ]]};
 
        {tag="closing", false, "Почему вы считаете, что станцию необходимо закрыть?", [[Мишель начинает объяснять, активно жестикулируя: "Вы недавно здесь, и для вас это должно быть гораздо более очевидно, чем для многих из нас. Легко представить, к чему здесь может привести самая мелкая поломка. А эти самонадеянные люди, в лице Дрейка, Блэка, Светловой, Моро, Райта и даже Даркстара не видят дальше собственного носа! Что произойдет, если Доминус даст течь? Мы просто останемся погребенными под тоннами соленой воды и никакие меры предосторожности не помогут. Одно дело -- кратковременные экспедиции и совсем другое -- полное переселение сюда". ]]};
 
		{always=true, "Я пойду.", [[Мишель возвращается к чертежу. ]], code [[ back(); ]]};
 
        {tag="mtr_clock_more"};
 
        {"Кто был в общем зале, когда вы выходили?", [[Мишель недовольно отвечает: "Вы донимать меня пришли? Я работаю, вообще-то. Джонс был, донимайте лучше его". ]], code [[ psub("generic");]]};
 
@@ -1444,6 +1491,7 @@ char_leroy_dlg = dlg {
 
char_goldman_dlg = dlg {
 
	var {
 
		state = 0;
 
        closing = false;
 
	};
 
	nam = "Леонард Голдман";
 
	disp = "Леонард Голдман";
 
@@ -1453,6 +1501,11 @@ char_goldman_dlg = dlg {
 
			pon('show_clock');
 
		end;
 
 
        if atl_mtr_know_goldman_views and not s.closing then
 
            s.closing = true;
 
            pon('closing')
 
        end;
 
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
@@ -1473,7 +1526,7 @@ char_goldman_dlg = dlg {
 
        end, code [[atl_mtr_know_goldman_lost_clock=true; ]]};
 
        {tag="solis", false, "Когда вы были в Солисе последний раз?", [[Леонард заметно нервничает, отвечая на ваш вопрос: "Около месяца назад. Я вчера должен был там работать, но мы с Чарли договорились, чтобы он поработал в Солисе вместо меня, так что меня там не было. Спросите у Райта, он в курсе". ]], code [[ atl_mtr_know_jones_replaced_goldman = true; ]]};
 
		{tag="show_clock", false, "[Отдать часы] Я нашел ваши часы.", [[Голдман прячет часы в нагрудный карман и удивленно спрашивает: "Где вы их нашли?" ]], code [[ remove(item_goldmans_clock, pl); psub("give_clock"); atl_mtr_know_goldman_lost_clock=true; ]]};
 
        {"Почему вы считаете, что станцию стоит закрыть?", [[Голдман объясняет: "Мы уже десять лет здесь. Не видели ни солнца, ни неба, ни травы. Только металлический потолок и километры воды над головой. Мне кажется, что пора бы уже закончить этот эксперимент. В чем-то я согласен с Джонсом -- станция стареет, оборудование выходит из строя. Долго ли до того, как мы потеряем наши субмарины, а вместе с ними и вообще всякую возможность вернуться наверх?"]]};
 
        {tag="closing", false, "Почему вы считаете, что станцию необходимо закрыть?", [[Голдман объясняет: "Мы уже десять лет здесь. Не видели ни солнца, ни неба, ни травы. Только металлический потолок и километры воды над головой. Мне кажется, что пора бы уже закончить этот эксперимент. В чем-то я согласен с Джонсом -- станция стареет, оборудование выходит из строя. Долго ли до того, как мы потеряем наши субмарины, а вместе с ними и вообще всякую возможность вернуться наверх?"]]};
 
		{always=true, "Я пойду.", [[Голдман кивает: "Поговорим позже". ]], code [[ back(); ]]};
 
		{tag="give_clock"};
 
		{"Часы были в Солисе.", [[Голдман испуганно вскакивает с койки: "Но как они там оказались?!"]], code [[ psub("give_clock_2"); ]]};
 
@@ -1488,12 +1541,14 @@ char_goldman_dlg = dlg {
 
char_jones_dlg = dlg {
 
	var {
 
		state = 0;
 
        closing = false;
 
	};
 
	nam = "Чарльз Джонс";
 
	disp = "Чарльз Джонс";
 
	enter = function(s)
 
		if (char_jones.on_atlantis == 0) then
 
            pon("on_atlantis");
 
        if atl_mtr_know_jones_views and not s.closing then
 
            s.closing = true;
 
            pon('closing');
 
        end;
 
 
        poff("mtr_on_clock", "mtr_on_replace");
 
@@ -1519,8 +1574,8 @@ char_jones_dlg = dlg {
 
	phr = {
 
        {tag="first_meeting"};
 
		{"Я Дэвид Дрейк. Рад знакомству.", [[Чарльз тяжело вздыхает: "Взаимно". ]], code [[ psub("generic"); ]]};
 
		{tag="on_atlantis", false, "Вы считаете, что станцию необходимо закрыть?", [[Чарльз кивает: "Станция старая, разваливается на глазах. Нас слишком мало, чтобы своевременно устранять возрастающее число неполадок". ]], code [[ char_jones.on_atlantis = 1; psub("on_leaving");]]};
 
        {tag="generic"};
 
		{tag="generic"};
 
        {tag="closing", false, "Почему вы считаете, что станцию необходимо закрыть?", [[Чарльз кивает: "Станция старая, разваливается на глазах. Нас слишком мало, чтобы своевременно устранять возрастающее число неполадок". ]]};
 
        {tag="mtr_on_clock", false, "Что вы можете сказать о часах Леонарда Голдмана?", [[Чарльз удивленно спрашивает: "Леонард уже и вас к их поискам подключил?" ]], code [[
 
            atl_mtr_jones_asked_on_clock = true;
 
            psub("mtr_clock_more")
0 comments (0 inline, 0 general)