Changeset - 68cff96accbc
[Not reviewed]
default
0 2 0
Silverwing - 6 years ago 2018-08-19 19:36:10

chapter 1: further mousetrap progress
2 files changed with 10 insertions and 4 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
global {
 
    atl_jack_in_party = false;
 
    atl_lev_state = 0;
 
    atl_nih_state = 0;
 
    atl_iyh_state = 0;
 
    atl_iyh_learr_spoken = false;
 
    atl_iyh_aikerjarr_spoken = false;
 
    atl_iyh_ryveerr_spoken = false;
 
    atl_iyh2_ryveerr_spoken = false;
 
    atl_iyh2_aikerjarr_spoken = false;
 
    atl_iyh_shockfish_dead = false;
 
    atl_iyh_shockfish_left = false;
 
    atl_iyh_shockfish_away = 0;
 
    atl_iyh_entrance_destroyed = false;
 
    atl_iyh_artifacts_on_atlantis = false;
 
 
    atl_mtr_started = false;
 
    atl_mtr_darkstar_clock_shown = false;
 
    atl_mtr_know_goldman_lost_clock = false;
 
    atl_mtr_know_jones_replaced_goldman = false;
 
    atl_mtr_ask_radcliffe = false;
 
    atl_mtr_leroy_known = false;
 
    atl_mtr_jones_known = false;
 
    atl_mtr_goldman_known = false;
 
    atl_mtr_know_leroy_in_terra = false;
 
 
    atl_mtr_goldman_accused = false;
 
    atl_mtr_know_more_about_clock = false;
 
    atl_mtr_jones_replace_confirm = false;
 
    atl_mtr_know_radcliffe_worked = false;
 
    atl_mtr_know_leroy_in_terra = false;
 
 
    atl_mtr_finished = false;
 
 
    atl_fta_state = 0;
 
    atl_fta_darkstar_debrief = false;
 
 
    atl_rep_moreau = 0;
 
    atl_rep_darkstar = 0;
 
    atl_rep_svetlova = 0;
 
    atl_rep_wright = 0;
 
    atl_rep_iraa = 0;
 
    atl_rep_dyp = 0;
 
    
 
    atl_ctt_iraa_refusal = false;
 
    atl_star_map_copied = false;
 
};
 
 
atl_illuminators = obj {
 
    nam = "Иллюминаторы";
 
    dsc = [[Через равные промежутки в стены встроены небольшие круглые {иллюминаторы}. ]];
 
    act = [[Через иллюминаторы видны несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_illuminator = obj {
 
    nam = "Иллюминатор";
 
    dsc = [[В стену встроен небольшой {иллюминатор}. ]];
 
    act = [[Через иллюминатор вы видите несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_intersect_phone = obj {
 
    nam = "Телефон";
 
    dsc = [[На одной из стен укреплен {телефонный аппарат} в герметичном контейнере. ]];
 
    act = [[Вам незачем кому-то звонить. ]];
 
};
 
 
atl_intersect_suit = obj {
 
    nam = "Скафандр";
 
    dsc = [[В углу стоит {скафандр}. ]];
 
    act = [[Сейчас нет смысла это делать. ]];
 
}
 
 
atl_aqua_corridor_b = room {
 
    nam = "Атлантида, Аква, коридор B";
 
    dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая в основной коридор секции _"Аква"_. По бокам коридора находятся еще несколько дверей, ведущих в другие помещения секции: гостевые доки A, B и С. ]];
 
    way = {
 
        kh_vroom("В гостевой док A", function()
 
            if (atl_lev_state == 0) then
 
                pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
                return false;
atlantis_dlg.lua
Show inline comments
 
@@ -608,101 +608,101 @@ char_svetlova_dlg = dlg {
 
            psub("learr_back2");
 
        ]]};
 
        {tag="learr_back2"};
 
        {"Хорошо, возвращайся на Левиафан.", [[Леарр отвечает: "Я благодарю тебя-Дрейк. Ты помог нам-Ираафаанотру-и-Дипатреанотру. Я разрушение-храма-понимаю. Другого-пути не-было". ^Светлова кивает: "Этот вопрос решен. Переходим к следующему. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]], code [[
 
            table.insert(pl.party, 'learr');
 
            move(char_learr, char_learr.home);
 
            remove("char_learr_atlantis", where("char_learr_atlantis"));
 
            psub("iyh_more");
 
        ]]};
 
        {"Нет, оставайся на Атлантиде", [[Леарр разочарованно отвечает: "Я на-Атлантиде-останусь", -- и выходит из комнаты. ^Светлова качает головой: "Вы зря отказались от ее помощи, Дрейк. Навьяр на борту мог бы оказаться очень полезен. Но, к делу. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]], [[
 
            move("char_learr_atlantis", "atl_oculus_library");
 
            psub("iyh_more");
 
        ]]};
 
        {tag="iyh_more"};
 
        {"[Передать фрагмент карты] Да, конечно. Мы нашли это в скрытом помещении в храме.", [[Екатерина Светлова с интересом рассматривает табличку: "Удивительно, эта карта сильно отличается от других навьярских карт, виденных нами. Обратите внимание, на количество деталей -- здесь не только отмечены условными символами три-четыре ориентира. Здесь их десятки, если не сотни. Попробуйте разузнать побольше в Ираафаанотре и Дипатреанотре". Екатерина Светлова сообщает вам местонахождение Ираафаанотра и Дипатреанотра. ]], code [[ 
 
            iraaphaanotrr_found = true;
 
            dypatreanotrr_found = true;
 
            psub("generic"); 
 
        ]]};
 
	};
 
};
 
 
char_michael_wright_dlg = dlg {
 
    var {
 
        state = 0;
 
        dyp_quest = false;
 
        goldman_asked = false;
 
        leroy_asked = false;
 
        jones_asked = false;
 
    };
 
    nam = "Майкл Райт";
 
    disp = "Майкл Райт";
 
    
 
    reset_more = function(s)
 
        poff("on_drake", "on_black", "on_darkstar", "on_svetlova", "on_moreau", "on_wright", "on_leroy", "on_jones", "on_goldman", "on_atlantis", "on_navjiarr", "on_learr", "on_aikerjarr", "on_ryveerr", "more_questions");
 
        if atl_mtr_started and not atl_mtr_finished then
 
            if not atl_mtr_ask_radcliffe then
 
                if atl_mtr_know_jones_replaced_goldman then
 
                    pon("mtr_on_replace");
 
                else
 
                    pon("mtr_on_solis");
 
                end;
 
            end;
 
 
            if not s.goldman_asked then
 
                pon("mtr_on_goldman");
 
            end;
 
 
            if atl_mtr_know_leroy_involved and not s.leroy_asked then
 
            if atl_mtr_know_goldman_lost_clock and not s.leroy_asked then
 
                pon("mtr_on_leroy");
 
            end;
 
 
            if atl_mtr_know_jones_involved and not s.jones_asked then
 
            if atl_mtr_know_goldman_lost_clock and not s.jones_asked then
 
                pon("mtr_on_jones");
 
            end;
 
        end;
 
        if (atl_rep_wright < 0) then
 
            if (char_michael_wright.drake_asked == 0) then pon("on_drake"); pon("more_questions"); end;
 
            if (char_michael_wright.black_asked == 0) then pon("on_black"); pon("more_questions"); end;
 
            if (char_michael_wright.darkstar_asked == 0) then pon("on_darkstar"); pon("more_questions"); end;
 
            if (char_michael_wright.svetlova_asked == 0) then pon("on_svetlova"); pon("more_questions"); end;
 
            if (char_michael_wright.moreau_asked == 0) then pon("on_moreau"); pon("more_questions"); end;
 
            if (char_michael_wright.wright_asked == 0) then pon("on_wright"); pon("more_questions"); end;
 
            
 
            if (char_michael_wright.atlantis_asked == 0) then pon("on_atlantis"); pon("more_questions"); end;
 
            if (char_michael_wright.navjiarr_asked == 0) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_michael_wright.learr_asked == 0) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_michael_wright.ryveerr_asked == 0) then pon("on_ryveerr"); pon("more_questions"); end;
 
        else
 
            if (char_michael_wright.drake_asked < 2) then pon("on_drake"); pon("more_questions"); end;
 
            if (char_michael_wright.black_asked < 2) then pon("on_black"); pon("more_questions"); end;
 
            if (char_michael_wright.darkstar_asked < 2) then pon("on_darkstar"); pon("more_questions"); end;
 
            if (char_michael_wright.svetlova_asked < 2) then pon("on_svetlova"); pon("more_questions"); end;
 
            if (char_michael_wright.moreau_asked < 2) then pon("on_moreau"); pon("more_questions"); end;
 
            if (char_michael_wright.wright_asked < 2) then pon("on_wright"); pon("more_questions"); end;
 
 
            if (char_michael_wright.atlantis_asked < 2) then pon("on_atlantis"); pon("more_questions"); end;
 
            if (char_michael_wright.navjiarr_asked < 2) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_michael_wright.learr_asked < 2) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_michael_wright.ryveerr_asked < 2) then pon("on_ryveerr"); pon("more_questions"); end;
 
        end;
 
    end;
 
    
 
    enter = function(s)
 
        if dyp_quest_state == 1 and not s.dyp_quest then
 
            s.dyp_quest = true;
 
            pon('dyp_quest');
 
        end;
 
        poff('nih_fixed');
 
        if atl_nih_state == 2 or atl_nih_state == 1 then
 
            pon('nih_fixed');
 
        end;
 
        
 
        s:reset_more();
 
        
 
        if (atl_nih_state == 3 and atl_fta_state == 0) then
 
            atl_fta_state = 1;
 
            psub("fta_agree");
 
            return [[Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. У меня есть для вас работа. Сейчас все наши бригады заняты, поэтому я прошу вас помочь с обслуживанием Солиса. Приходите туда и свяжитесь со мной по телефону, я дам вам инструкции". ]];
 
        elseif (atl_fta_state == 2) then
 
            atl_fta_state = 3;
 
@@ -1460,160 +1460,166 @@ char_legrand_dlg = dlg {
 
		{"Расскажите больше о Джоне Брауне.", [[Мари Легран рассказывает: "У Джона золотые руки, наверное, именно поэтому Дрейк взял в экспедицию именно его". ]]};
 
		{"Расскажите больше о Антонио Гарсии.", [[Мари Легран рассказывает: "Талантливый молодой человек. Он хорошо знает язык навьяров и много с ними общался". ]]};
 
		{"Поговорим в другой раз.", [[Мари Легран кивает: "Хорошо".]], code [[pret();]]};
 
	};
 
};
 
 
char_radcliffe_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Уолтер Рэдклифф";
 
	disp = "Уолтер Рэдклифф";
 
    
 
    reset_more = function(s)
 
        poff("on_anna", "on_walter", "on_atlantis", "on_drake", "on_black", "on_join", "talk");
 
        if (rel_walter < 0) then
 
            pon("talk");
 
        else
 
            if (char_radcliffe.on_anna < 2) then
 
                pon("on_anna");
 
                pon("talk");
 
            end;
 
            if (char_radcliffe.on_black < 2) then
 
                pon("on_black");
 
                pon("talk");
 
            end;
 
            if (char_radcliffe.on_walter < 2) then
 
                pon("on_walter");
 
                pon("talk");
 
            end;
 
            if (char_radcliffe.on_atlantis < 2) then
 
                pon("on_atlantis");
 
                pon("talk");
 
            end;
 
            if (char_radcliffe.on_drake < 2) then
 
                pon("on_drake");
 
                pon("talk");
 
            end;
 
            if (char_radcliffe.on_join < 2) then
 
                pon("on_join");
 
                pon("talk");
 
            end;
 
        end;
 
    end;
 
    
 
	enter = function(s)
 
        s:reset_more();
 
	
 
        poff("on_leroy_in_terra");
 
        if atl_mtr_ask_radcliffe and not atl_mtr_know_leroy_in_terra then
 
            pon("on_leroy_in_terra");
 
        end;
 
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Перед вами стоит человек лет сорока--сорока-пяти, одетый в рабочий халат. Как только вы входите, он протягивает вам руку: "Добро пожаловать, господин Дрейк. Уолтер Рэдклифф, инженер". ]];
 
		else
 
			psub("generic");
 
			return [[Уолтер Рэдклифф приветствует вас: "Добрый день". ]];
 
		end;
 
	end;
 
	phr = {
 
        {tag="questions"};
 
        {tag="on_black", "Что ты можешь сказать о Блэке?", function(s)
 
            char_radcliffe.on_black = 2;
 
            return [[Уолтер пожимает плечами: "Что я могу сказать про него? Он хороший друг Дрейка и вполне искренне радеет за благополучие нашей миссии. Однако, я думаю, его истинные цели могут отличаться от наших". ]];
 
        end};
 
        {tag="on_walter", "Расскажи о себе.", function(s)
 
            char_radcliffe.on_walter = 2;
 
            return [[Уолтер пожимает плечами: "Да мне нечего рассказать. Мы с сестрой жили в Лондоне, я уже работал в Вестхейвен Трансоушен, когда наши родители погибли -- пароход, на котором они отправились в США просто не прибыл в порт назначения. Мы с Анной остались одни. Она еще даже школу не закончила тогда. А потом мы построили Надежду, Атлантиду и далее по списку. Потом мне предложили работать внизу, на станции. Я, конечно, мог тогда отказаться, уйти в другую компанию, но направление, избранное Дрейком слишком меня привлекало. Я согласился". ]];
 
        end};
 
        {tag="on_anna", "Расскажи о своей сестре, Анне.", function(s)
 
            char_radcliffe.on_anna = 2;
 
            return [[Уолтер вздыхает: "Будь у меня выбор тогда, я ни за что не взял бы ее на Атлантиду. И жалел бы сейчас об этом. Не думаю, что на поверхности она стала бы той, кто она сейчас. Все-таки общество поглощенных своей работой людей накладывает определенный отпечаток, я думаю". ]];
 
        end};
 
        {tag="on_drake", "Что ты можешь сказать о Дрейке?", function(s)
 
            char_radcliffe.on_drake = 2;
 
            return [[Уолтер отвечает: "Не думаю, что скажу про него больше чем кто-то еще. Послушайте Райта, Моро, быть может Даркстара, хотя черт знает, что у этого типа на уме. Они скажут вам все и даже больше. "]];
 
        end};
 
        {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function(s)
 
            char_radcliffe.on_atlantis = 2;
 
            return [[Уолтер отвечает: "Думаю только Райт и Уинтерлайт в полной мере осознают, насколько большим достижением для нас, для всего человечества, является постройка этой станции. Тем не менее, они, отчего-то, не спешат поделиться своими знаниями с другими. Не думаю, что сегодняшнее общество сможет по достоинству оценить новые возможности, даруемые этими технологиями. Да и что станет с навьярами? Вспомните Новый Свет, посмотрите на другие наши колонии -- хотите ли вы этого для Леарр и других?"]];
 
        end};
 
        {tag="quit", always=true, "Поговорим в другой раз. ", [[Уолтер кивает: "Хорошо".]], code [[ char_radcliffe_atlantis_dlg:reset_more(); pret();]]};
 
		{tag = "first_meeting"};
 
		{"[Пожать руку] Рад знакомству.", [[
 
			"Мы с Майклом вместе работали над Левиафаном. Многие решения в вашей субмарине -- мои. Если вы не против, я хотел бы продолжить путешествие вместе с вами. Во-первых, вам пригодится мой опыт, а во-вторых, я хочу увидеть Левиафан в деле". 
 
		]], code [[
 
			rel_walter = rel_walter + 1;
 
			psub("leviathan");
 
		]]};
 
		{"Рад знакомству.", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			psub("generic");
 
		]]};
 
		{"[Промолчать]", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			rel_walter = rel_walter - 1;
 
			psub("generic");
 
		]]};
 
		{tag = "leviathan"};
 
		{"Интересно, и что вы можете рассказать о Левиафане?", [[
 
			Уолтер снимает очки, убирая их в нагрудный карман: "Левиафан строился как Надежда -- для дальних путешествий и максимальной автономности. После успеха предыдущих субмарин, Райт решил сделать Левиафан заметно больше предыдущих кораблей. Сверхмощная батарея обеспечивает субмарину энергией более месяца при максимальных оборотах двигателей. Также есть паровой двигатель -- он используется не только для движения, но и генерирует электричество. До Левиафана мы не экспериментировали с этим".
 
		]]};
 
		{"Вы знаете, куда отправился мой отец отсюда?", [[
 
			Уолтер отрицательно качает головой: "Не больше, чем остальные на станции". 
 
		]]};
 
		{"Буду рад, если вы присоединитесь к нам. ", [[
 
			"Отлично. Но вы ведь, еще поговорить хотите?"
 
		]], code [[ psub("generic");]]};
 
		{"Я не думаю, что вы поможете. ", [[
 
			"Очень жаль. Впрочем, у вас есть время подумать. Насколько я знаю, Даркстар и Моро собираются держать вас здесь какое-то время".
 
		]], code [[ psub("generic");]]};
 
		{tag = "generic"};
 
        {tag="on_leroy_in_terra", false, "Райт сказал, что вы были в Терре во время обслуживания Солиса. Вы не видели, кто входл в секцию?", [[Уолтер пожимает плечами: "Я думал, что я один в Терре, но мне попался Мишель. Он сказал, что пришел за инструментами для ремонта скафандров. Правда в Доминус он ушел почему-то с пустыми руками". ]], code [[atl_mtr_know_leroy_in_terra=true;]]};
 
        {tag="questions", "У меня есть несколько вопросов. ", function(s)
 
            if (rel_anna < 0) then
 
                return [[Уолтер отрицательно качает головой: "Не сейчас, я занят". ]];
 
            else
 
                psub("questions");
 
                return [[Уолтер кивает: "Слушаю". ]];
 
            end;
 
        end};      
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе -- результат саботажа?", [["Безусловно. Системы энергоснабжения проектировал я и абсолютно уверен в их безопасности и надежности. Судя по тому, что произошло -- кто-то весьма грамотный ,,доработал'' систему энергоснабжения Игниса. Я не думаю, что это мог быть один человек... Хотя если он делал это несколько дней -- вполне вероятно. Как это сделать, кроме нас с Райтом знают только трое: Мишель Леруа, Чарльз Джонс и Мари Легран. И еще кое-что. Даркстар просил меня ни с кем про это не разговаривать, поэтому надеюсь на ваше понимание. Отдельно попрошу -- не говорить на эту тему с моей сестрой". ]], code [[
 
			rel_walter = rel_walter + 1;
 
		]]};
 
		{tag="ignis_what", false, "Вы, как инженер, можете рассказать, что произошло в Игнисе?", [[
 
			"Пожар. Вам что-то еще известно?"
 
		]]};
 
		{always=true, "Я пойду.", [["До встречи", -- Уолтер отворачивается от вас и возвращается к своим делам. ]], code [[ back();]]};
 
	};
 
};
 
 
char_page_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Фрэнсис Пейдж";
 
	disp = "Фрэнсис Пейдж";
 
	enter = function(s)
 
		if (s.state == 0 ) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Перед вами стоит мужчина лет пятидесяти с густой седой бородой. Он бросает на вас быстрый взгляд и здоровается, продолжая осмотр Наутилуса: "Добро пожаловать на Атлантиду. Я Фрэнсис Пейдж. Я занимаюсь обслуживанием субмарин". ]];
 
		else
 
			psub("generic");
 
			return [[Перед вами стоит Фрэнсис Пейдж. не отрываясь от осмотра Наутилуса он говорит: "Вы вернулись". ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Дэвид Дрейк, рад знакомству.", [[Фрэнсис на секунду отвлекается и внимательно смотрит на вас: "Да, я замечаю сходство с Уильямом". ]], code [[ psub("first_meeting_2"); ]]};
 
		{tag="first_meeting_2"};
 
		{"Вы хорошо знали отца?", [[Фрэнсис кивает: "Я уважаю его, как, думаю, все на этой станции. Пожертвовать всем ради призрачной мечты -- только великий человек мог пойти на такое. Он отправился на поиски легендарного города древних навьяров. К сожалению, я не смог отправиться с ним -- я нужен на станции. Я знаю, что вы здесь из-за него и я надеюсь, что вы не оставите вашу идею найти Уильяма и доведете свое дело до конца". ]], code [[ psub("generic"); ]]};
 
		{"У меня к вам несколько вопросов.", [["Слушаю". ]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
        {"Что вы можете рассказать об Атлантиде?", [[Фрэнсис пожимает плечами: "Если честно, вам лучше расспросить кого-нибудь из управляющих, а лучше всего -- Майкла Райта. Все что я могу сказать -- я до сих пор поражаюсь успеху этого невероятного проекта". ]]};
 
        {"Что вы можете рассказать о Наутилусе?", [[Френсис кивает: "Когда мы создавали Наутилус, я уже работал в Вестхейвен Трансоушен. Атлантида тогда существовала, но была далеко от того, что вы видите. Мы тогда просто строили вторую Надежду. Нам не нужна была высокая автономность, но мы хотели большую маневренность и мощность -- собственно на этом мы и сконцентрировались. Получилось то, что получилось -- рабочая лошадка, которой мы пользуемся по сей день". ]]};
 
        {"Что вы можете рассказать об Энтерпрайзе?", [[Френсис кивает: "Энтерпрайз мы начали когда захотели судно побольше. Опыта и знаний нам хватило только на пропорциональное увеличение размеров и немного более мощный двигатель. Райт наверное сказал бы, что получилось из рук вон плохо, но, на мой взгляд, Энтерпрайз вполне неплох, да и с честью служит нам до сих пор". ]]};
 
        {"Что вы можете рассказать о Надежде?", [[Фрэнсис кивает: "Надежда была первой субмариной, построенной нами. Я в этом участия не принимал, так что многие конструктивные решения меня удивляют. Впрочем, более поздние субмарины спроектированы гораздо грамотнее, да и после переоборудования многое удалось решить". ]]};
 
        {"Что вы можете рассказать о Левиафане?", [[Френсис отвечает: "С первого взгляда ясно, что Левиафан не имеет практически ничего общего с Надеждой, Наутилусом и даже Энтерпрайзом. Интересно, что Левиафан строился с оглядкой на высокую автономность -- так же, как и Надежда. За это, конечно, пришлось многим поплатиться -- Левиафан большой и неповоротливый в сравнении с Надеждой". ]]};
 
		{always=true, "Я пойду.", [[Фрэнсис Пейдж прощается с вами: "Увидимся позже". ]], code [[ back(); ]]};
 
	};
0 comments (0 inline, 0 general)