Changeset - 3c95f6f8fb21
[Not reviewed]
default
0 9 0
Silverwing - 7 years ago 2017-12-02 12:05:44

Text formatting
9 files changed with 58 insertions and 58 deletions:
0 comments (0 inline, 0 general)
atlantis_dlg.lua
Show inline comments
 
char_darkstar_dlg = dlg {
 
	var {
 
		state = 0;
 
        fta = 0;      
 
	};
 
	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_ryveerr", "on_aikerjarr", "more_questions");
 
        if (atl_rep_darkstar < 0) then
 
            if (char_darkstar.drake_asked == 0) then pon("on_drake"); pon("more_questions"); end;
 
            if (char_darkstar.black_asked == 0) then pon("on_black"); pon("more_questions"); end;
 
            if (char_darkstar.darkstar_asked == 0) then pon("on_darkstar"); pon("more_questions"); end;
 
            if (char_darkstar.svetlova_asked == 0) then pon("on_svetlova"); pon("more_questions"); end;
 
            if (char_darkstar.moreau_asked == 0) then pon("on_moreau"); pon("more_questions"); end;
 
            if (char_darkstar.wright_asked == 0) then pon("on_wright"); pon("more_questions"); end;
 
            
 
            if (atl_iof_completed) then
 
                if (char_darkstar.leroy_asked == 0) then pon("on_leroy"); pon("more_questions"); end;
 
                if (char_darkstar.jones_asked == 0) then pon("on_jones"); pon("more_questions"); end;
 
                if (char_darkstar.goldman_asked == 0) then pon("on_goldman"); pon("more_questions"); end;
 
            end;
 
            
 
            if (char_darkstar.atlantis_asked == 0) then pon("on_atlantis"); pon("more_questions"); end;
 
            
 
            if (char_darkstar.navjiarr_asked == 0) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_darkstar.learr_asked == 0) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_darkstar.ryveerr_asked == 0) then pon("on_ryveerr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_darkstar.aikerjarr_asked == 0) then pon("on_aikerjarr"); pon("more_questions"); end;
 
        else
 
            if (char_darkstar.drake_asked < 2) then pon("on_drake"); pon("more_questions"); end;
 
            if (char_darkstar.black_asked < 2) then pon("on_black"); pon("more_questions"); end;
 
            if (char_darkstar.darkstar_asked < 2) then pon("on_darkstar"); pon("more_questions"); end;
 
            if (char_darkstar.svetlova_asked < 2) then pon("on_svetlova"); pon("more_questions"); end;
 
            if (char_darkstar.moreau_asked < 2) then pon("on_moreau"); pon("more_questions"); end;
 
            if (char_darkstar.wright_asked < 2) then pon("on_wright"); pon("more_questions"); end;
 
            if (atl_iof_completed) then
 
                if (char_darkstar.leroy_asked < 2) then pon("on_leroy"); pon("more_questions"); end;
 
                if (char_darkstar.jones_asked < 2) then pon("on_jones"); pon("more_questions"); end;
 
                if (char_darkstar.goldman_asked < 2) then pon("on_goldman"); pon("more_questions"); end;
 
            end;
 
            if (char_darkstar.atlantis_asked < 2) then pon("on_atlantis"); pon("more_questions"); end;
 
            
 
            if (char_darkstar.navjiarr_asked < 2) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_darkstar.learr_asked < 2) then pon("on_learr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_darkstar.learr_asked < 3) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_darkstar.ryveerr_asked < 2) then pon("on_ryveerr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_darkstar.aikerjarr_asked < 2) then pon("on_aikerjarr"); pon("more_questions"); end;
 
        end;
 
    end;
 
    
 
	enter = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Винсент Даркстар недовольно смотрит на вас: "Господин Дрейк. Вы вообще понимаете, что делаете? Это последнее предупреждение. В следующий раз я приму меры. Все ясно? "]];
 
        end;
 
    
 
		if atl_lfc_leroy_spoken and atl_lfc_leroy_spoken ~= 0 then
 
			pon("accuse_leroy");
 
		end;
 
		
 
		if atl_lfc_goldman_spoken and atl_lfc_goldman_spoken ~= 0 then
 
			pon("accuse_goldman");
 
		end;
 
 
		s:reset_more();
 
        
 
		if (s.state == 0) then
 
			psub("first_meeting");
 
            s.state = 1;         
 
			return [[За столом сидит средних лет мужчина с короткими черными волосами. Он одет в строгий деловой костюм черного цвета. Лицо его гладко выбрито. Холодный взгляд его черных глаз устремлен на вас. Сложив руки на столе, он приветствует вас: "Добро пожаловать на Атлантиду, господин Дрейк. Я Винсент Даркстар, мы уже общались по радио. Я занимаю на Атлантиде пост начальника службы безопаности". ]];
 
		elseif (atl_fta_state == 2 or atl_fta_state == 3) and not atl_fta_darkstar_debrief then
 
	        atl_fta_darkstar_debrief = true;
 
            psub("fta");
 
            poff("show_clock", "accuse_saboteur");
 
            if (have(item_goldmans_clock)) then
 
                pon("show_clock");
 
            end;
 
            if (atl_lfc_saboteur_known) then
 
                pon("accuse_saboteur");
 
            end;
 
			return [[Винсент Даркстар приказывает: "Рассказывайте". ]];
 
        elseif (atl_lfc_state == 3 or atl_lfc_state == 4) then
 
            if (atl_lfc_state == 3) then
 
                atl_lfc_state = 4;
 
                local r = 0;
 
                if (atl_rep_darkstar >= 0) then r = r + 1; end;
 
                if (atl_rep_svetlova >= 0) then r = r + 1; end;
 
                if (atl_rep_moreau >= 0) then r = r + 1; end;
 
                if (atl_rep_wright >= 0) then r = r + 1; end;
 
                atl_lfc_court_allowed = r > 0;
 
            end;
 
            if (atl_lfc_court_allowed) then
 
                psub("lfc_ending_court");
 
                if (atl_lfc_goldman_exposed) then
 
                    pon("leroy_and_goldman");
 
                    return [[Винсент Даркстар сообщает вам: "Дрейк. В ближайшее время мы будем решать, что делать с саботажниками. Я рекомендую вам поговорить с руководителями станции, после чего возвращайтесь и мы приступим к совещанию". ]];
 
                else
 
                    pon("leroy_only");
 
                    return [[Винсент Даркстар сообщает вам: "Дрейк. В ближайшее время мы будем решать, что делать с саботажником. Я рекомендую вам поговорить с руководителями станции, после чего возвращайтесь и мы приступим к совещанию". ]];
 
                end;
 
            else
 
                atl_lfc_state = 5;
 
                psub("generic");
 
                if (atl_lfc_goldman_exposed) then
 
                    return [[Винсент Даркстар сообщает вам: "Дрейк. Вы отлично помогли в поимке саботажников. Выражаю вам свою благодарность. Советом станции было принято решение заключить их под стражу на неопределенный срок. Моро сказал, что хочет с вами поговорить, так что отправляйтесь к нему". ]];
 
                end;
 
            end;
 
		else
 
			psub("generic");
 
			return [[Винсент Даркстар сообщает: "Я слушаю". ]];
 
		end;
 
	end;
 
    phr = {
 
        {tag="lfc_ending_court"};
 
        {tag="leroy_and_goldman", false, always = true, "Какое наказание ждет подсудимых?", [[Даркстар отвечает: "Я бы расстрелял их на месте, но я не могу принимать решения единолично". ]]};
 
        {tag="leroy_only", false, always = true, "Какое наказание ждет подсудимого?", [[Даркстар отвечает: "Я бы расстрелял его на месте, но я не могу принимать решения единолично". ]]};
 
        {always = true, "Я готов.", function(s)
 
            atl_lfc_state = 5;
 
            walk("atl_lfc_court");
 
            if atl_lfc_goldman_exposed then
 
                return [[Даркстар поднимает трубку, поворачивает наборный диск, ждет немного и сообщает: "Моро, Светлова, Райт. Жду вас в своем кабинете". ]];
 
            else
 
                return [[Даркстар поднимает трубку, поворачивает наборный диск, ждет немного и сообщает: "Моро, Светлова, Райт. Жду вас в своем кабинете". ]];
 
            end;
 
        end};
 
        {tag="lfc_warning"};
 
        {always = true, "Так точно.", [[Даркстар кивает: "Отлично. Вам нужно что-то еще?"]], code[[ atl_lfc_panic_warning = 3; psub("generic")]]};
 
		{tag="first_meeting"};
 
		{"Что мне нужно сделать, чтобы мне вернули Левиафан?", [[Винсент Даркстар хлопает ладонями о стол и уверенно сообщает: "Вести себя хорошо и не делать глупостей". ]]};
 
		{"Когда мне вернут Левиафан?", [[Винсент Даркстар отвечает: "Всему свое время. Используйте это время с пользой. Если хотите найти Уильяма, сначала стоит выяснить где и как его искать. И вам не помешает узнать кое-что помимо этого". ]]};
 
		{"Я пришел кое-что спросить. ", [[Винсент Даркстар сообщает: "Я слушаю". ]], code [[psub("generic");]]};
 
        {tag="ask_more"};
 
        {tag="on_drake", false, "Расскажите об Уильяме. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.drake_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.drake_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Что вы ожидаете услышать? Дрейк -- основатель Вестхейвен Трансоушен. Он -- мой непосредственный руководитель, однако у нас, на Атлантиде, принято решать важные вопросы совместно. Не так давно он отправился в научную экспедицию вместе с Адрианом Блэком и еще несколькими сотрудниками. Дрейк неосторожен и склонен к опрометчивым решениям. Это может сыграть с ним злую шутку".]];
 
            end;
 
        end};
 
        {tag="on_black", false, "Расскажите об Адриане Блэке. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.black_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.black_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Блэк -- главный помощник Дрейка по управлению компанией. Ни одно важное решение в Вестхейвен Трансоушен не принимается без его участия. Не так давно он отправился в научную экспедицию вместе с Уильямом Дрейком и еще несколькими сотрудниками. С одной стороны -- он хороший руководитель и Дрейку повезло иметь такого помощника, с другой -- Блэк, несомненно, принесет в жертву и станцию и всех нас, если это послужит его интересам. Будьте осторожны при общении с ним". ]];
 
            end;
 
        end};
 
        {tag="on_darkstar", false, "Расскажите о себе. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.darkstar_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.darkstar_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Мне нечего рассказывать, кроме того, что я уже сказал. Мое имя Винсент Даркстар и я занимаю пост начальника службы безопасности Атлантиды". ]];
 
            end;
 
        end};
 
        {tag="on_svetlova", false, "Расскажите о Екатерине Светловой. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.svetlova_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.svetlova_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Екатерина Светлова -- руководитель исследовательского отдела на Атлантиде. Секция Окулус находится в ее ведении. Атлантида для нее -- неисчерпаемый источник материала для исследований, поэтому она заинтересована в продолжении работы станции". ]];
 
            end;
 
        end};
 
        {tag="on_moreau", false, "Расскажите о Фредерике Моро. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.moreau_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.moreau_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Фредерик Моро руководит станцией в отсутствие Дрейка и Блэка. Должен сказать, справляется он неплохо. Ему можно доверять безоговорочно -- он с полной ответственностью подходит к управлению станцией. Хотя он склонен делегировать многие решения, он отдает их правильным людям". ]];
 
            end;
 
        end};
 
        {tag="on_wright", false, "Расскажите о Майлке Райте. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.wright_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.wright_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Майкл Райт -- руководитель инженерного отдела на Атлантиде. В его задачи входит поддержание работоспособности станции и ее техническое развитие. Станция -- дело всей его жизни. Когда поднимался вопрос, он не колеблясь оставил семью на поверхности ради возможности развивать Атлантиду". ]];
 
            end;
 
        end};
 
        {tag="on_leroy", false, "Что вы думаете о Мишеле Леруа? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.leroy_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.leroy_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Леруа много знает об устройстве Атлантиды и он открыто выступает в пользу закрытия станции и возвращения на поверхность. Он не выглядит настолько глупым, чтобы саботировать работу станции, однако он один из немногих подпадающих под подозрение. Вообще-то, интересоваться сотрудниками Атлантиды -- моя работа, а не ваша". ]];
 
            end;
 
        end};
 
        {tag="on_jones", false, "Что вы думаете о Чарли Джонсе? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.jones_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.jones_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Джонс много знает об устройстве Атлантиды и он открыто выступает в пользу закрытия станции и возвращения на поверхность. Он недостаточно смел, чтобы попытаться саботировать работу станции, однако он один из немногих попадающих под подозрение. Вообще-то, интересоваться сотрудниками Атлантиды -- моя работа, а не ваша". ]];
 
            end;
 
        end};
 
        {tag="on_goldman", false, "Что вы думаете о Леонарде Голдмане? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.goldman_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.goldman_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Голдман много знает об устройстве Атлантиды и он открыто выступает в пользу закрытия станции и возвращения на поверхность. Он эмоционально неуравновешен. Если бы он устроил аварию, он бы уже выдал себя. Однако, он один из немногих, кому хватает знаний, чтобы спланировать саботаж. Вообще-то, интересоваться сотрудниками Атлантиды -- моя работа, а не ваша". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", false, "Расскажите об Атлантиде. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.atlantis_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.atlantis_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Атлантида построена на средства Вестхейвен Трансоушен -- компании вашего отца. Майкл Райт -- создатель станции, многое продумал, существенно облегчив мне работу. Конечно, периодически, мне приходится иметь дело с нарушениями правил -- я неоднократно просил не загромождать коридоры; всегда закрывать за собой шлюзы, двери, щитки, панели; не перекрывать посторонними предметами доступ к важным узлам станции. Думаю, вы сами заметили, как исполняются эти указания". ]];
 
            end;
 
        end};
 
        {tag="on_navjiarr", false, "Что вы думаете о навьярах? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.navjiarr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.navjiarr_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Они -- причина существования Атлантиды, так что в какой-то мере мы все обязаны им тем, что оказались здесь. Не все на станции довольны этим -- и это создает определенную угрозу. Но, надо признать, они не пытались навредить нам последнее время, однако, я все еще советую Моро и Светловой быть настороже при общении с ними. Они не так просты, как кажутся". ]];
 
            end;
 
        end};
 
        {tag="on_learr", false, "Что вы думаете о Леарр? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.learr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_darkstar.learr_asked = 3;
 
                    return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
                else
 
                    char_darkstar.learr_asked = 2;
 
                    return [[Винсент Даркстар отвечает: "Леарр -- представительница одного из навьярских племен на станции. Она любопытна, молода и умна. Она искренне заинтересована нами и нашими технологиями и это не может не радовать". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_ryveerr", false, "Что вы думаете о Ривеерре? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.ryveerr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.ryveerr_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Ривеерр -- представитель одного из навьярских племен на станции. Я мало что могу о нем сказать, и, в данном случае, это говорит в его пользу". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы думаете об Аикерьярре? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.aikerjarr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.aikerjarr_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Он будет создавать проблемы. Это не предположение, это -- факт". ]];
 
            end;
 
        end};
 
        {always=true, "Вернемся к делу.", [[Даркстар кивает: "Слушаю".]], code [[ char_darkstar_dlg:reset_more(); pret(); ]]};
 
		{tag="generic"};
 
		{tag="accuse_goldman", false, "Саботаж -- дело рук Голдмана.", [[Даркстар недовольно отчитывает вас: "Во-первых, я вас просил не лезть в это дело. Во-вторых, я бы не был так уверен. В третьих, я еще раз прошу вас больше расследованию не мешать". ]], code [[ atl_lfc_suspect="goldman"; ]]};
 
		{tag="accuse_leroy", false, "Саботаж -- дело рук Леруа.", [[Даркстар недовольно отчитывает вас: "Во-первых, я вас просил не лезть в это дело. Во-вторых, я бы не был так уверен. В третьих, я еще раз прошу вас больше расследованию не мешать". ]], code [[ atl_lfc_suspect="leroy"; ]]};
 
        {tag="more_questions", "У меня есть несколько вопросов.", [[Даркстар кивает: "Слушаю".]], code [[ psub('ask_more'); ]]};
 
		{always=true, "Я пойду.", [[Даркстар прощается: "До встречи". ]], code [[ back(); ]]};
 
        {tag="fta"};
 
		{"Что вы хотите услышать?", [[Даркстар поясняет: "Все, что произошло в Солисе и показалось вам подозрительным". ]]};
 
		{"Первый взрыв раздался, когда я был у входа в секцию... [Кратко пересказать основные события]", [[Даркстар молча кивает. ]], code [[
 
            char_darkstar_dlg.fta = char_darkstar_dlg.fta + 1;
 
            if char_darkstar_dlg.fta == 2 then
 
                psub("fta2");
 
            end;
 
        ]]};
 
		{"Один из клапанов работал неправильно: давление в нем было выше нормы.", [[Даркстар с сомнением произносит: "Интересно. За десять лет работы станции такого никогда не было". ]], code [[
 
            char_darkstar_dlg.fta = char_darkstar_dlg.fta + 1;
 
            if char_darkstar_dlg.fta == 2 then
 
                psub("fta2");
 
            end;
 
        ]]};
 
		{tag="show_clock", "[Показать часы]А еще я нашел там вот это.", [[Даркстар забирает часы и вертит их в руках: "Так-так-так. Франсуа Голдман. Леонард однозначно в этом замешан, но действовал он не один. Я все еще думаю, что они попытаются вывести из строя одну из субмарин. Скорее всего их целью будет Наутилус". ]], code [[ 
 
		{tag="show_clock", "[Показать часы] А еще я нашел там вот это.", [[Даркстар забирает часы и вертит их в руках: "Так-так-так. Франсуа Голдман. Леонард однозначно в этом замешан, но действовал он не один. Я все еще думаю, что они попытаются вывести из строя одну из субмарин. Скорее всего их целью будет Наутилус". ]], code [[ 
 
            atl_rep_darkstar = atl_rep_darkstar + 1;
 
            atl_lfc_goldman_exposed = true; 
 
            psub("why_nau"); 
 
        ]]};
 
        {tag="accuse_saboteur", "Голдман признался в саботаже и сдал Леруа... [Пересказать слова Голдмана]", [[Даркстар кивает: "Прекрасно. Вы далеко пойдете, Дрейк". ]], code [[ walkin("atl_lfc_outro_expose"); ]]};
 
        {tag="fta2"};
 
        {"Что-то еще?", [[Даркстар скрещивает руки на груди и откидывается на спинку кресла, продолжая смотреть прямо вам в глаза. Он подтверждает: "Да, Дрейк. Мне понадобится ваша помощь. Я все еще считаю, что следующей целью саботажника станет Наутилус". ]], code [[ psub("why_nau"); ]]};
 
		{tag="why_nau"};
 
		{"Почему именно Наутилус?", [[Даркстар объясняет:"Саботажник хочет не убить всех, а поломать станцию. Он хочет наверх, а не умереть здесь. Наутилус -- субмарина малого радиуса, а Энтерпрайз и Левиафан способны доставить нас на континенты". ]]};
 
		{"Соглашусь с вашим предположением", [[Даркстар кивает: "Хорошо. Я попрошу вас помочь мне с этим заданием". ]], code [[ psub("lfc_help"); ]]};
 
		{"Мне кажется, целью будет другая субмарина", [[Даркстар кивает: "Я это учел. Мы будем следить за всеми доками. Также, я попрошу вас помочь мне с этим заданием". ]], code [[ psub("lfc_help"); ]]};
 
		{tag="lfc_help"};
 
		{"Почему я?", [[Даркстар объясняет:"Я хочу свести количество людей, знающих о саботажах к минимуму, а вы уже в курсе ситуации". ]]};
 
		{"Что я должен сделать?", [[Даркстар рассказывает:"Сейчас отправляетесь в док Наутилуса и наблюдаете за происходящим в течение ночи. Если вы замечаете что-то подозрительное -- принимаете меры на ваше усмотрение", -- Даркстар достает из ящика стола револьвер и кладет перед вами: "Это вам не помешает". ]], code [[
 
            remove(item_colt, "leviathan_captains_cabin");
 
			take(item_colt);
 
			atl_lfc_state = 2;
 
			back();
 
		]]};
 
	};
 
};
 
 
char_moreau_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
        lfc_out_dialog = false;
 
        lfc_goldman_imprison = 0;
 
        lfc_goldman_banish = 1;
 
        lfc_leroy_imprison = 0;
 
        lfc_leroy_banish = 1;
 
	};
 
	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_ryveerr", "on_aikerjarr", "more_questions");
 
        
 
        if (atl_rep_moreau < 0) then
 
            if (char_moreau.drake_asked == 0) then pon("on_drake"); pon("more_questions"); end;
 
            if (char_moreau.black_asked == 0) then pon("on_black"); pon("more_questions"); end;
 
            if (char_moreau.darkstar_asked == 0) then pon("on_darkstar"); pon("more_questions"); end;
 
            if (char_moreau.svetlova_asked == 0) then pon("on_svetlova"); pon("more_questions"); end;
 
            if (char_moreau.moreau_asked == 0) then pon("on_moreau"); pon("more_questions"); end;
 
            if (char_moreau.wright_asked == 0) then pon("on_wright"); pon("more_questions"); end;
 
            
 
            if (atl_iof_completed) then
 
                if (char_moreau.leroy_asked == 0) then pon("on_leroy"); pon("more_questions"); end;
 
                if (char_moreau.jones_asked == 0) then pon("on_jones"); pon("more_questions"); end;
 
                if (char_moreau.goldman_asked == 0) then pon("on_goldman"); pon("more_questions"); end;
 
            end;
 
            
 
            if (char_moreau.atlantis_asked == 0) then pon("on_atlantis"); pon("more_questions"); end;
 
            
 
            
 
            if (char_moreau.navjiarr_asked == 0) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_moreau.learr_asked == 0) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_moreau.ryveerr_asked == 0) then pon("on_ryveerr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_moreau.aikerjarr_asked == 0) then pon("on_aikerjarr"); pon("more_questions"); end;
 
        else
 
            if char_moreau.drake_asked < 2 then pon("on_drake"); pon("more_questions"); end;
 
            if char_moreau.black_asked < 2 then pon("on_black"); pon("more_questions"); end;
 
            if char_moreau.darkstar_asked < 2 then pon("on_darkstar"); pon("more_questions"); end;
 
            if char_moreau.svetlova_asked < 2 then pon("on_svetlova"); pon("more_questions"); end;
 
            if char_moreau.moreau_asked < 2 then pon("on_moreau"); pon("more_questions"); end;
 
            if char_moreau.wright_asked < 2 then pon("on_wright"); pon("more_questions"); end;
 
            if atl_iof_completed then
 
                if char_moreau.leroy_asked < 2 then pon("on_leroy"); pon("more_questions"); end;
 
                if char_moreau.jones_asked < 2 then pon("on_jones"); pon("more_questions"); end;
 
                if char_moreau.goldman_asked < 2 then pon("on_goldman"); pon("more_questions"); end;
 
            end;
 
            
 
            if (char_moreau.atlantis_asked < 2) then pon("on_atlantis"); pon("more_questions"); end;
 
            
 
            if (char_moreau.navjiarr_asked < 2) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_moreau.learr_asked < 2) then pon("on_learr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_moreau.learr_asked < 3) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_moreau.ryveerr_asked < 2) then pon("on_ryveerr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_moreau.aikerjarr_asked < 2) then pon("on_aikerjarr"); pon("more_questions"); end;
 
        end;
 
    end;   
 
	enter = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Фредерик Моро сообщает вам: "Месье Дрейк, добрый день. Винсент Даркстар просил вас срочно поговорить с ним". ]];
 
        end;
 
        
 
        if atl_lfc_state == 4 then
 
            if not s.lfc_out_dialog then
 
                s.lfc_out_dialog = true;
 
                if atl_rep_moreau >= 0 then
 
                    if atl_lfc_goldman_exposed then
 
                        poff("leroy");
 
                    else
 
                        poff("both", "goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
                    end;
 
                    psub("lfc_saboteur");
 
                    return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Даркстар сказал, что вы зайдете, чтобы обсудить поимку саботажников. Я вас слушаю". ]];
 
                else
 
                    psub("generic");
 
                    return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Даркстар сказал, что вы зайдете. Я не буду с вами ничего обсуждать, хоть совет и решил, что вы примете участие в суде". ]];
 
                end;
 
            end;
 
        elseif (atl_lfc_state == 5) then
 
            atl_lfc_state = 6;
 
            atl_lev_state = 1;
 
            --[[local reputation = 0;
 
            if (atl_rep_darkstar > 0) then
 
                reputation = reputation + 1;
 
            end;
 
            if (atl_rep_moreau > 0) then
 
                reputation = reputation + 1;
 
            end;
 
            if (atl_rep_svetlova > 0) then
 
                reputation = reputation + 1;
 
            end;
 
            if (atl_rep_wright > 0) then
 
                reputation = reputation + 1;
 
            end;
 
            
 
            if (reputation > 2 and atl_rep_moreau >= 0) then
 
                psub("lfc_debrief_good");
 
                return [ [Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Вы заслужили наше доверие и мы приняли решение позволить вам использовать Левиафан. Удачи в ваших поисках". ] ];
 
            elseif (reputation > 2) then
 
                psub("lfc_debrief_good");
 
                return [ [Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Мы приняли решение позволить вам использовать Левиафан -- вы можете покинуть станцию прямо сейчас". ] ];
 
            elseif (atl_rep_moreau >= 0) then
 
                psub("lfc_debrief_bad");
 
                return [ [Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Мы приняли решение позволить вам использовать Левиафан. Сейчас, пока у вас остались дела со Светловой, мы разрешаем вам остаться, но как только вы закончите". ] ];
 
            else
 
                psub("lfc_debrief_bad");
 
                return [ [Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Вы очень помогли нам в поимке саботажника. Посовещавшись, мы решили вернуть вам Левиафан. Убирайтесь и больше не возвращайтесь сюда". ] ];
 
            end;]]
 
            return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Вы помогли нам с поимкой саботажника и мы приняли решение дать вам доступ к Левиафану". ]];
 
        end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
		end;
 
        
 
        s:reset_more();
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[За столом перед вами сидит немолодой мужчина. Кудрявые седые волосы обрамляют его лицо. Он носит длинные седые усы. Одет человек в строгий деловой костюм бежевого цвета. Его серые глаза, скрытые очками, внимательно рассматривают вас. Вертя в руках перо он приветствует вас: "Добро пожаловать на Атлантиду, месье Дрейк. Мое имя -- Фредерик Моро, и я исполняю обязанности начальника станции в отсутствие Уильяма и Адриана. Ваше прибытие крайне удивило нас -- мы думали, с поверхности найти нашу станцию невозможно. Пока мы думаем, что делать с вами дальше, вы можете воспользоваться ресурсами станции, чтобы узнать побольше о вашем отце и, быть может, понять, куда в точности он направился. Для начала, стоит немного ввести вас в курс дела".^
 
				Моро подходит к книжной полке и берет какую-то книгу. Вернувшись за стол, он раскрывает ее и приступает к рассказу: "Когда мы строили Надежду, нашей целью было создать быстрый и безопасный способ путешествий через Атлантику. Однако, все с самого начала пошло не так, как планировалось. Мы встретили племя подводных существ, именующих себя навьярами -- они похожи на рыб и людей одновременно -- ходят на двух ногах, используют две руки, но покрыты чешуей и имеют жабры. Тогда мы приняли решение исследовать их тщательнее. Были построены Энтерпрайз, Наутилус и сама Атлантида. Потом мы переселились сюда. Дрейк был захвачен одной из легенд этих рыбней и не так давно, наконец, решился отправиться в экспедицию". ]];
 
		elseif (char_moreau.iof_reaction == 0 and atl_iof_completed) then
 
            char_moreau.iof_reaction = 1;      
 
            if (atl_iof_learr_dead) then
 
                psub("iof_learr_dead");
 
                return [[Фредерик Моро как обычно сидит за столом. Как только вы подходите, он сообщает вам: "Месье Дрейк, рад видеть, что с вами все в порядке. К сожалению, нам не удалось спасти Леарр. Это большая потеря для всех нас. Думаю, вам стоит знать, что на станцию прибыл Аикерьярр, чтобы продолжить ее работу". ]];
 
            elseif (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Фредерик Моро как обычно сидит за столом. Как только вы подходите, он сообщает вам: "Месье Дрейк, рад видеть, что с вами все в порядке. Леарр рассказала мне о вашей идее со скафандром. Спасибо, что позаботились о ней". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Фредерик Моро как обычно сидит за столом. Как только вы подходите, он сообщает вам: "Месье Дрейк, рад видеть, что с вами все в порядке. Спасибо, что позаботились о Леарр. С ней все хорошо". ]];
 
            end;
 
        else      
 
			psub("generic");
 
			return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Чем могу помочь?" ]];
 
		end;		
 
	end;
 
	phr = {
 
        {tag="lfc_saboteur"};
 
        {tag="both","Что вы будете делать с саботажниками?", [[Фредерик Моро выдерживает паузу, после чего отвечает: "Я предлагаю высадить их где-нибудь в Северной Америке. На станции им не место". ]]};
 
        {tag="goldman_1", "Одному сумасшедшему никто не поверит, Голдмана стоит отпустить. ", [[Фредерик Моро кивает: "Я с вами полностью согласен". ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_2", "Голдман -- трус. Он никому ничего не скажет. Его можно отправить на поверхность. ", [[Фредерик Моро кивает: "Поэтому я и предлагаю изгнать его". ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_3", "Голдман хитер. На станции он представляет большую опасность, чем вне ее. ", [[Фредерик Моро пожимает плечами: "Не могу согласиться с вами. Голдман никогда не показывал себя с этой стороны". ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_4", "Голдман просто хотел выбраться отсюда. Пусть убирается с Атлантиды. ", [[Фредерик Моро отрицательно качает головой: "Это заставляет меня пересмотреть мое решение". ]], code [[
 
            char_moreau_dlg.lfc_goldman_imprison = 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_5", "Отпускать Голдмана на поверхность нельзя. Единственный выход -- смертная казнь. ", [[Фредерик Моро: "Что бы ни сделал Голдман, это неприемлемо". ]], code [[
 
            atl_rep_moreau = atl_rep_moreau - 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_6", "Голдман подверг опасности все наше дело. Единственный выход -- смертная казнь. ", [[Фредерик Моро: "Что бы ни сделал Голдман, это неприемлемо". ]], code [[
 
            atl_rep_moreau = atl_rep_moreau - 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_7", "Голдман хитер. Вне станции он будет не менее опасен, чем на ней. ", [[Фредерик Моро пожимает плечами: "Не могу согласиться с вами. Голдман никогда не показывал себя с этой стороны". ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="leroy", "Что вы будете делать с саботажником?", [[Фредерик Моро выдерживает паузу, после чего отвечает: "Я предлагаю высадить его где-нибудь в Северной Америке. На станции им не место". ]]};
 
        {tag="leroy_1", "Одному сумасшедшему никто не поверит, Леруа стоит отпустить. ", [[Фредерик Моро кивает: "Я с вами полностью согласен". ]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_2", "Леруа -- трус. Он никому ничего не скажет. Его можно отправить на поверхность. ", [[Фредерик Моро пожимает плечами: "Никак не могу согласиться с вами. Я могу назвать Мишеля кем угодно, но только не трусом". ]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_3", "Леруа хитер. На станции он представляет большую опасность, чем вне ее. ", [[Фредерик Моро кивает: "Поэтому я и предлагаю изгнать его". ]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_4", "Леруа просто хотел выбраться отсюда. Пусть убирается с Атлантиды. ", [[[Фредерик Моро отрицательно качает головой: "Это заставляет меня пересмотреть мое решение". ]], code [[
 
            char_moreau_dlg.lfc_goldman_imprison = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_5", "Отпускать Леруа на поверхность нельзя. Единственный выход -- смертная казнь. ", [[Фредерик Моро отрицательно качает головой: "Что бы ни сделал Леруа, это неприемлемо". ]], code [[
 
            atl_rep_moreau = atl_rep_moreau - 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_6", "Леруа подверг опасности все наше дело. Единственный выход -- смертная казнь. ", [[Фредерик Моро отрицательно качает головой: "Что бы ни сделал Леруа, это неприемлемо". ]], code [[
 
            atl_rep_moreau = atl_rep_moreau - 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_7", "Леруа хитер. Вне станции он будет не менее опасен, чем на ней. ", [[Фредерик Моро кивает: "Соглашусь с вами. Лучше пусть посидит взаперти пока. А когда вернется Уильям, мы решим, что делать с ними". ]], code [[
 
            char_moreau_dlg.lfc_goldman_imprison = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {"Это все, что я хотел обсудить по данному вопросу. ", [[Фредерик Моро кивает и спрашивает: "Что-нибудь еще?"]], code [[ psub("generic");]] };
 
        {tag="lfc_warning"};
 
        {always = true, "Я пойду.", [[Моро прощается с вами: "До встречи, месье Дрейк". ]], code [[ back(); ]]};
 
        {tag="iof_learr_dead"};
 
        {"Я ничего не мог сделать. ", [[Фредерик Моро кивает: "Я понимаю". Немного помолчав он говорит: "Давайте к делу". ]], code [[psub("generic");]]};
 
        {"Давайте к делу. ", [[Фредерик Моро неодобрительно кивает: "Слушаю". ]], code [[
 
            atl_rep_moreau = atl_rep_moreau - 1;
 
            psub("generic");
 
        ]]};
 
        {tag="iof_learr_suit"};
 
        {"Рад, что никто не пострадал. ", [[Фредерик Моро кивает: "Ваши действия достойны уважения. Еще раз благодарю вас. Но, перейдем к делу". ]], code [[psub("generic");]]};
 
        {tag="iof_learr"};
 
        {"Рад, что никто не пострадал. ", [[Фредерик моро кивает: "Перейдем к делу". ]], code [[psub("generic");]]};
 
		{tag="first_meeting", empty = code[[ psub("generic"); ]]};
 
		{"Я не имею намерения раскрывать существование Атлантиды.", [[Фредерик Моро кивает: "Рад это слышать, но нам нужно больше чем ваши слова". ]]};
 
		{"Что за навьяры?", [[Фредерик Моро отвечает: _"Na'vji'a'rr -- с их языка это переводится, как ,,Живущие в глубинах''. Как я сказал, они чем-то похожи на людей, но по сути своей они -- рыбы. Подробнее о них вам смогут нассказать наши ученые в секции Окулус. Там же вы можете встретить Ривеерра и Леарр -- наших гостей из двух ближайших поселений навьяров"_. ]]};
 
		{"Как получилось, что Левиафан остался на поверхности?", [[Фредерик Моро задумчиво чешет подбородок. Через некоторое время он отвечает: _"Сложно сказать. Это было в ведении Майкла Райта. Скорее всего, они с Дрейком сознательно спрятали его"_. ]]};
 
        {"Куда конкретно направился Уильям?", [[Фредерик Моро вздыхает: "У нас нет точных данных. И, похоже, их не было и у Блэка с Дрейком. Мы знаем, что их цель -- древний навьярский город". ]]};
 
        {tag="ask_more"};
 
        {tag="on_drake", false, "Расскажите об Уильяме. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.drake_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.drake_asked = 2;
 
                return [[Фредерик Моро отвечает: "Уильям Дрейк, безусловно, гениальный предприниматель и грамотный руководитель, однако он не достиг бы таких успехов, если бы работал один. Адриан Блэк всегда помогал ему управлять компанией. Майкл Райт придумал и построил многие суда компании. Уильям всегда понимал важность сотрудников Вестхейвен Трансоушен и оказывал и продолжает оказывать должное уважение всем нам". ]];
 
            end;
 
        end};
 
        {tag="on_black", false, "Расскажите об Адриане Блэке. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.black_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.black_asked = 2;
 
                return [[Фредерик Моро отвечает: "Адриан Блэк -- один из основателей Вестхейвен Трансоушен. Он совсем не похож на Уильяма -- осторожный и рассчетливый, он часто вступал в спор с Дрейком по поводу особенно рискованных предприятий. Ему мы тоже многим обязаны, но, если говорить честно, Уильям гораздо популярнее среди сотрудников". ]];
 
            end;
 
        end};
 
        {tag="on_darkstar", false, "Расскажите о Винсенте Даркстаре. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.darkstar_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.darkstar_asked = 2;
 
                return [[Фредерик Моро отвечает: "О нем мало что известно, да он и неразговорчив. Впрочем, он справляется со своими обязанностями, и Дрейк доверяет ему". ]];
 
            end;
 
        end};
 
        {tag="on_svetlova", false, "Расскажите о Екатерине Светловой. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.svetlova_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.svetlova_asked = 2;
 
                return [[Фредерик Моро отвечает: "Екатерина здесь только из-за навьяров. Ваш отец пригласил ее в Вестхейвен Трансоушен сразу после первой экспедиции Надежды. Сейчас она руководит исследованиями на Атлантиде и отлично справляется благодаря личной заинтересованности в этом". ]];
 
            end;
 
        end};
 
        {tag="on_moreau", false, "Расскажите о себе. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.moreau_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.moreau_asked = 2;
 
                return [[Фредерик Моро отвечает: "Я мало что могу рассказать. Мы с вашим отцом, Адрианом и Майклом вместе учились. Когда мы основали Вестхейвен Трансоушен, я остался в тени моих более талантливых друзей. Впрочем, меня, если честно, вполне устраивало такое положение. Сейчас, когда Уильям и Адриан отправились в свою экспедицию, мне пришлось занять пост руководителя станции, но я с радостью вернусь на свою прежнюю должность, как только они вернутся". ]];
 
            end;
 
        end};
 
        {tag="on_wright", false, "Расскажите о Майкле Райте. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.wright_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.wright_asked = 2;
 
                return [[Фредерик Моро отвечает: "Майкл Райт в компании с самого основания. Он гениальный инженер и изобретатель. Атлантиду тоже спроектировал он и для него она стала смыслом существования. Майкл даже оставил жену и сына на поверхности в пользу возможности развивать станцию". ]];
 
            end;
 
        end};
 
        {tag="on_leroy", false, "Что вы думаете о Мишеле Леруа?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.leroy_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.leroy_asked = 2;
 
                return [[Фредерик Моро отвечает: "Мишель Леруа -- один из наших инженеров. Последнее время он очень активно выступает в пользу завершения работы станции и возвращения на поверхность. К счастью, его пока поддерживает не слишком много людей. Майкл Райт расскажет вам больше про него". ]];
 
            end;
 
        end};
 
        {tag="on_jones", false, "Что вы думаете о Чарли Джонсе?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.jones_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.jones_asked = 2;
 
                return [[Фредерик Моро отвечает: "Чарли Джонс -- один из наших инженеров. Кажется, он поддался влиянию Леруа и поддерживает его в плане возвращения на поверхность. Майкл Райт расскажет вам больше про него". ]];
 
            end;
 
        end};
 
        {tag="on_goldman", false, "Что вы думаете о Леонарде Голдмане?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.goldman_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.goldman_asked = 2;
 
                return [[Фредерик Моро отвечает: "Леонард Голдман -- один из наших инженеров. Он один из сторонников возвращения на поверхность -- он первым на станции начал поднимать этот вопрос . Майкл Райт расскажет вам больше про него". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", false, "Расскажите об Атлантиде. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.atlantis_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.atlantis_asked = 2;
 
                return [[Фредерик Моро отвечает: "Мы построили Атлантиду чтобы изучать навьяров. Для этого же мы собрали команду ученых, которую возглавила Екатерина Светлова. Станция постепенно росла, благодаря усилиям инженерной команды под руководством Майкла Райта. Мы пригласили сюда навьяров из ближайших поселений -- Леарр из Ираафаанотра и Ривеерра из Дипатреанотра. Можете поговорить с ними, если хотите -- они сейчас на станции". ]];
 
            end;
 
        end};
 
        {tag="on_navjiarr", false, "Что вы думаете о навьярах?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.navjiarr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.navjiarr_asked = 2;
 
                return [[Фредерик Моро отвечает: "Интересные существа. Наши ученые говорят, что они ближе к рыбам, чем к нам. Однако, они ходят на двух ногах, имеют руки, способны дышать воздухом и мыслить! Более подробно вам расскажут ученые, -- он делает небольшую паузу, -- Атлантида обязана им своим существованием. Если бы мы не встретили их при первой экспедиции, вряд ли кто-то стал бы строить эту станцию, тем более здесь. Первое время они создавали нам проблемы, но, к счастью, нам удалось их разрешить и наладить отношения с ними. Сейчас на станции проживают двое навьяров: Леарр и Ривеерр. Думаю, они не откажутся от разговора с вами". ]];
 
            end;
 
        end};
 
        {tag="on_learr", false, "Что вы думаете о Леарр?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.learr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_moreau.learr_asked = 3;
 
                    return [[Фредерик Моро тяжело вздыхает: "Ее гибель -- большая потеря для всех нас. Кажется, даже Винсент Даркстар, не способный, как мне казалось на дружеские чувства, относился к ней с некоторой теплотой". ]];
 
                else
 
                    char_moreau.learr_asked = 2;
 
                    return [[Фредерик Моро отвечает: "Милая девушка, хоть и рыба. Она, конечно, порой бывает надоедлива ввиду своей излишней, на мой взгляд, любознательности, но вы себя на ее месте представьте -- она родилась и росла в своей примитивной деревне, а тут мы -- неспособные дышать в воде, зато способные строить поразительные машины. Нет ничего удивительного, что она только и делает, что носится между Игнисом, Окулусом и Террой, расспрашивая всех обо всем". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_ryveerr", false, "Что вы думаете о Ривеерре?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.ryveerr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.ryveerr_asked = 2;
 
                return [[Фредерик Моро отвечает: "Я мало что могу о нем сказать. Он почти не покидает Окулус, общаясь только с учеными. Возможно их вам и стоит спросить о нем". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы думаете об Аикерьярре?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.aikerjarr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.aikerjarr_asked = 2;
 
                return [[Фредерик Моро отвечает: "Пренеприятный персонаж. Будь моя воля -- я бы прогнал его со станции, и большая часть руководителей со мной согласна. Однако, понимая, какие у этого будут последствия, я вынужден позволить ему находиться здесь". ]];
 
            end;
 
        end};
 
        {always=true, "Вернемся к делу.", [[Фредерик Моро спрашивает: "Вы что-то хотели?"]], code [[ char_moreau_dlg:reset_more(); pret(); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", [[Фредерик Моро несколько раз стучит пальцем по столу. Недовольным тоном он делает вам замечание: "Месье Дрейк, -- он выдерживает небольшую паузу, -- Если вы хотите вернуть себе Левиафан, вам стоит следовать нашим правилам и, в частности, не нарушать прямых наших распоряжений". ]], code [[
 
			atl_rep_moreau = atl_rep_moreau - 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
		]]};
 
		{tag="ignis_what", false, "Почему начался пожар в Игнисе?", [[Фредерик Моро пожимает плечами и как-то неуверенно проговаривает: "Не знаю. Этим вопросом занимаются инженеры и служба безопасности. Будьте спокойны, наши специалисты не допустят повторения аварии". ]]};
 
        {tag="more_questions", "У меня есть несколько вопросов.", [[Моро кивает: "Да, конечно. Я слушаю".]], code [[ psub('ask_more'); ]]};    
 
		{always = true, "Я пойду.", [[Моро прощается с вами: "До встречи, месье Дрейк". ]], code [[ back(); ]]};
 
		{tag="lfc_debrief_good"};
 
		{always = true, "Спасибо, это все.", [[Моро спрашивает: "Вы что-то хотели?". ]], code [[ psub("generic");]]};
 
		{tag="lfc_debrief_bad"};
 
		{always = true, "Я пойду.", [[Моро кивает. ]], code [[ walk("game_over_banished"); ]]};
 
	};
 
};
 
 
char_svetlova_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_sabotage = false;
 
		lfc_dialog = false;
 
		flag_help = false;
 
		flag_explain = false;
 
        lfc_out_dialog = false;
 
        lfc_goldman_execute = 0;
 
        lfc_goldman_imprison = 1;
 
        lfc_goldman_banish = 0;
 
        lfc_leroy_execute = 0;
 
        lfc_leroy_imprison = 1;
 
        lfc_leroy_banish = 0;
 
	};
 
	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_ryveerr", "on_aikerjarr", "more_questions");
 
        if (atl_rep_svetlova < 0) then
 
            if (char_svetlova.drake_asked == 0) then pon("on_drake"); pon("more_questions"); end;
 
            if (char_svetlova.black_asked == 0) then pon("on_black"); pon("more_questions"); end;
 
            if (char_svetlova.darkstar_asked == 0) then pon("on_darkstar"); pon("more_questions"); end;
 
            if (char_svetlova.svetlova_asked == 0) then pon("on_svetlova"); pon("more_questions"); end;
 
            if (char_svetlova.moreau_asked == 0) then pon("on_moreau"); pon("more_questions"); end;
 
            if (char_svetlova.wright_asked == 0) then pon("on_wright"); pon("more_questions"); end;
 
            
 
            if (atl_iof_completed) then
 
                if (char_svetlova.leroy_asked == 0) then pon("on_leroy"); pon("more_questions"); end;
 
                if (char_svetlova.jones_asked == 0) then pon("on_jones"); pon("more_questions"); end;
 
                if (char_svetlova.goldman_asked == 0) then pon("on_goldman"); pon("more_questions"); end;
 
            end;
 
            
 
            if (char_svetlova.atlantis_asked == 0) then pon("on_atlantis"); pon("more_questions"); end;
 
            
 
            
 
            if (char_svetlova.navjiarr_asked == 0) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_svetlova.learr_asked == 0) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_svetlova.ryveerr_asked == 0) then pon("on_ryveerr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_svetlova.aikerjarr_asked == 0) then pon("on_aikerjarr"); pon("more_questions"); end;
 
        else
 
            if (char_svetlova.drake_asked < 2) then pon("on_drake"); pon("more_questions"); end;
 
            if (char_svetlova.black_asked < 2) then pon("on_black"); pon("more_questions"); end;
 
            if (char_svetlova.darkstar_asked < 2) then pon("on_darkstar"); pon("more_questions"); end;
 
            if (char_svetlova.svetlova_asked < 2) then pon("on_svetlova"); pon("more_questions"); end;
 
            if (char_svetlova.moreau_asked < 2) then pon("on_moreau"); pon("more_questions"); end;
 
            if (char_svetlova.wright_asked < 2) then pon("on_wright"); pon("more_questions"); end;
 
            
 
            if (atl_iof_completed) then
 
                if (char_svetlova.leroy_asked < 2) then pon("on_leroy"); pon("more_questions"); end;
 
                if (char_svetlova.jones_asked < 2) then pon("on_jones"); pon("more_questions"); end;
 
                if (char_svetlova.goldman_asked < 2) then pon("on_goldman"); pon("more_questions"); end;
 
            end;
 
            
 
            if (char_svetlova.atlantis_asked < 2) then pon("on_atlantis"); pon("more_questions"); end;
 
            
 
            if (char_svetlova.navjiarr_asked < 2) then pon("on_navjiarr"); pon("more_questions"); end;
 
            if (char_svetlova.learr_asked < 2) then pon("on_learr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_svetlova.learr_asked < 3) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_svetlova.ryveerr_asked < 2) then pon("on_ryveerr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_svetlova.aikerjarr_asked < 2) then pon("on_aikerjarr"); pon("more_questions"); end;
 
        end;
 
    end;
 
	enter = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Екатерина Светлова сообщает вам: "Добрый день, господин Дрейк. Винсент Даркстар просил вас срочно поговорить с ним". ]];
 
        end;
 
    
 
        s:reset_more();
 
    
 
		if (s.state == 0) then
 
			psub('first_meeting');
 
            s.state = 1;         
 
			return [[За столом сидит женщина лет сорока-пяти. Золотистые волосы собраны в пучок на затылке. Она одета в простое синее платье. В правой руке она держит карандаш, которым периодически делает пометки в бумагах, лежащих на столе. ^Она отрывает взгляд от бумаг и приветствует вас: _"Добрый день, господин Дрейк. Мое имя -- Екатерина Светлова, я управляю исследованиями на Атлантиде. Даркстар сказал, что вы зайдете. ^Должна признать, вы нас всех изрядно напугали, появившись вот так внезапно. Однако, думаю, вы будете полезны нам. ^У меня есть предложение для вас. Я знаю, что вы ищете своего отца. Уходя в экспедицию, он не оставил нам почти никаких материалов -- карты, схемы, переводы -- они забрали все с собой. Я прошу вас помочь нам с некоторыми проблемами. Взамен мы предоставим вам все имеющиеся у нас материалы. Возможно, они помогут вам найти отца"_.]];
 
        elseif (char_svetlova.iof_reaction == 0 and atl_iof_completed) then
 
            char_svetlova.iof_reaction = 1;
 
            if (atl_iof_learr_dead) then
 
                psub("iof_learr_dead");
 
                return [[Екатерина Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Господин Дрейк, вы были в Игнисе, вместе с Леарр. И все же, вы не смогли спасти ее". ]];
 
            elseif (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Екатерина Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Господин Дрейк, добрый день. Спасибо, что помогли Леарр выбраться из Игниса. Она рассказала мне о вашей замечательной идее. Благодарю вас от лица всех работников Окулуса". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Екатерина Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас:"Господин Дрейк, добрый день. Спасибо, что вытащили Леарр из Игниса. Благодарю вас от лица всех работников Окулуса". ]];
 
            end;         
 
		elseif (s.state == 2) then
 
			psub('ryveerr_on_steal');
 
			return [[Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Ну как? Поговорили с Ривеерром?" ]];
 
        else
 
            if atl_lfc_state == 4 then
 
                if not s.lfc_out_dialog then
 
                    s.lfc_out_dialog = true;
 
                    if atl_rep_svetlova >= 0 then
 
                        if atl_lfc_goldman_exposed then
 
                            poff("leroy");
 
                        else
 
                            poff("both", "goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
                        end;
 
                        psub("lfc_saboteur");
 
                        return [[Екатерина Светлова открывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Даркстар сказал, что вы зайдете, чтобы обсудить поимку саботажников. Я вас слушаю". ]];
 
                    else
 
                        psub("generic");
 
                        return [[Екатерина Светлова открывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Если вы пришли обсудить поимку саботажников, то у меня нет на это времени". ]];
 
                    end;
 
                end;
 
            end;
 
        
 
			if (atl_iyh_state == 9) then
 
				atl_iyh_state = 10;
 
                conflict_resolved = 1;
 
                if atl_iyh_shockfish_dead then
 
                    psub('iyh_more');
 
                    if (atl_iyh_artifacts_on_atlantis) then
 
                        -- навьяры не знают про гибель ската. Светловой пофиг
 
                        return [[Светлова отрывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Благодаря вам отношения между Дипатреанотром и Ираафаанотром восстановлены. Мы изучили артефакты, найденные вами в храме, но, к сожалению для вас, не обнаружили ничего, что могло бы помочь найти Уильяма. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]];
 
                    else
 
                        -- навьяры в ярости, светлова тоже
 
                        return [[Светлова отрывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Дрейк! Вы понимаете, что вы сделали?! Одним маленьким взрывом вы погубили годы работы по налаживанию отношений с навьярами! Конечно, вы решили проблему, но разве не было другого способа?!"^Чуть подождав, она сообщает: "К делу. Покажите фрагмент карты, который вы нашли". ]];
 
                    end;
 
                elseif atl_iyh_entrance_destroyed then
 
                    if (atl_iyh_artifacts_on_atlantis) then
 
                        -- навьяры не знают про разрушение храма. Светловой пофиг
 
                        psub('iyh_more');
 
                        return [[Светлова отрывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Благодаря вам отношения между Дипатреанотром и Ираафаанотром восстановлены. Мы изучили артефакты, найденные вами в храме, но, к сожалению для вас, не обнаружили ничего, что могло бы помочь найти Уильяма. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]];
 
                    else
 
                        -- навьяры в ярости, светлова тоже
 
                        if iof_learr_dead then
 
                            psub('iyh_more');
 
                            return [[Светлова отрывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Благодаря вам отношения между Дипатреанотром и Ираафаанотром восстановлены. Однако, из-за ваших поспешных действий они теперь гораздо хуже относятся к нам и, скорее всего, нам не придется расчитывать на их помощь в ближайшее время. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]];
 
                        else
 
                            psub('learr_back');
 
                            return [[Светлова отрывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Мы еще раз обсудили все с Леарр, она хотела бы вернуться в экипаж Левиафана. Вы возьмете ее?" ]]
 
                        end;
 
                    end;
 
                else
 
                    psub('iyh_more');
 
                    if (atl_iyh_artifacts_on_atlantis) then
 
                        --Храм в целости, навьяры пляшут, Светлова довольна :)
 
                        return [[Светлова отрывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Благодаря вам отношения между Дипатреанотром и Ираафаанотром восстановлены. Ваши действия в храме были воистину потрясающи. Мы не зря отправили туда именно вас. Мы изучили артефакты, найденные вами в храме, но, к сожалению для вас, не обнаружили ничего, что могло бы помочь найти Уильяма. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]];
 
                    else
 
                        --Храм в целости, навьяры пляшут, Светлова довольна, но без артефактов :(
 
                        return [[Светлова отрывает взгляд от бумаг, лежащих перед ней, и смотрит на вас: "Добрый день, Дрейк. Благодаря вам отношения между Дипатреанотром и Ираафаанотром восстановлены.  сожалению, мы не смогли получить доступ к артефактам, добытым вами в храме. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]];
 
                    end;
 
                end;
 
			else
 
				psub('generic');
 
				
 
				if (atl_lfc_state ~= 1) then
 
					poff('sabotage', 'ignis_what');
 
				end;
 
				
 
				if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
					s.lfc_dialog = true;
 
					pon('sabotage', 'ignis_what');
 
				end;
 
				
 
                poff("iyh1_learr", "iyh1_aikerjarr");
 
                if (atl_iyh_state == 1 and atl_iyh_learr_spoken and atl_iyh_ryveerr_spoken) then
 
                    pon('iyh1_learr');
 
                elseif (atl_iyh_state == 1 and atl_iyh_aikerjarr_spoken and atl_iyh_ryveerr_spoken) then
 
                    pon('iyh1_aikerjarr');
 
                end;
 
                
 
				return [[Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Добрый день". ]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
        {tag="lfc_saboteur"};
 
        {tag="both","Что вы будете делать с саботажниками?", [[Екатерина Светлова отвечает, не задумываясь: "Запереть их в темных камерах, пока не раскаются в своих действиях, а потом посмотрим". ]]};
 
        {tag="goldman_1", "Одному сумасшедшему никто не поверит, Голдмана стоит отпустить. ", [[Екатерина Светлова кивает: "Может так будет лучше. По-крайней мере нам не надо будет его охранять". ]], code [[
 
            char_svetlova_dlg.lfc_goldman_banish = 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_2", "Голдман -- трус. Он никому ничего не скажет. Его можно отправить на поверхность. ", [[Екатерина Светлова кивает: "Может так будет лучше. По-крайней мере нам не надо будет его охранять". ]], code [[
 
            char_svetlova_dlg.lfc_goldman_banish = 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_3", "Голдман хитер. На станции он представляет большую опасность, чем вне ее. ", [[Екатерина Светлова отвечает: "Вы и правда так думаете? Я считала вас более наблюдательным". ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_4", "Голдман просто хотел выбраться отсюда. Пусть убирается с Атлантиды. ", [[Екатерина Светлова кивает: "Нельзя давать преступникам того, чего они хотят". ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_5", "Отпускать Голдмана на поверхность нельзя. Единственный выход -- смертная казнь. ", [[Екатерина Светлова кивает: "Не думаю, что Голдман заслуживает этого. Он просто попал под дурное влияние". ]], code [[
 
            atl_rep_svetlova = atl_rep_svetlova - 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_6", "Голдман подверг опасности все наше дело. Единственный выход -- смертная казнь. ", [[Екатерина Светлова кивает: "Не думаю, что Голдман заслуживает этого. Он просто попал под дурное влияние". ]], code [[
 
            atl_rep_svetlova = atl_rep_svetlova - 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_7", "Голдман хитер. Вне станции он будет не менее опасен, чем на ней. ", [[Екатерина Светлова отвечает: "Вы и правда так думаете? Я думала, вы наблюдательнее". ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="leroy", "Что вы будете делать с саботажником?", [[Екатерина Светлова отвечает, не задумываясь: "Запереть его в темной камере, пока не раскается в своих действиях, а потом посмотрим". ]]};
 
        {tag="leroy_1", "Одному сумасшедшему никто не поверит, Леруа стоит отпустить. ",  [[Екатерина Светлова кивает: "Может так будет лучше. По-крайней мере нам не надо будет его охранять". ]], code [[
 
            char_svetlova_dlg.lfc_leroy_banish = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_2", "Леруа -- трус. Он никому ничего не скажет. Его можно отправить на поверхность. ", [[Екатерина Светлова отвечает: "Вы и правда так думаете? Я считала вас более наблюдательным". ]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_3", "Леруа хитер. На станции он представляет большую опасность, чем вне ее. ", [[Екатерина Светлова кивает: "Может так будет лучше. По-крайней мере нам не надо будет его охранять". ]], code [[
 
            char_svetlova_dlg.lfc_leroy_banish = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_4", "Леруа просто хотел выбраться отсюда. Пусть убирается с Атлантиды. ", [[Екатерина Светлова кивает: "Нельзя давать преступникам того, чего они хотят". ]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_5", "Отпускать Леруа на поверхность нельзя. Единственный выход -- смертная казнь. ", [[Екатерина Светлова задумчиво смотрит на вас: "Жестокое решение, но, вероятно, единственно верное. Не буду с вами спорить". ]], code [[
 
            char_svetlova_dlg.lfc_leroy_execute = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_6", "Леруа подверг опасности все наше дело. Единственный выход -- смертная казнь. ", [[Екатерина Светлова задумчиво смотрит на вас: "Жестокое решение, но, вероятно, единственно верное. Не буду с вами спорить". ]], code [[
 
            char_svetlova_dlg.lfc_leroy_execute = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_7", "Леруа хитер. Вне станции он будет не менее опасен, чем на ней. ", [[Екатерина Светлова кивает: "Отлично. Пусть немного посидит взаперти". ]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {"Это все, что я хотел обсудить по данному вопросу. ", [[Екатерина Светлова кивает и спрашивает: "Что-нибудь еще?"]], code [[ psub("generic");]] };
 
        {tag="lfc_warning"};
 
        {always = true, "Я пойду.", [[Светлова возвращается ко своим бумагам: "До встречи". ]], code [[ back(); ]]};
 
        {tag = "iof_learr_dead"};
 
        {"Я ничего не мог сделать. ", [[Екатерина Светлова опускает глаза: "Я понимаю". Вздохнув, она спрашивает: "Вам что-то нужно?" ]], code [[ psub("generic"); ]]};
 
        {"Перейдем к делу. ", [[Екатерина Светлова кивает: "Что вам нужно?" ]], code [[ 
 
            atl_rep_svetlova = atl_rep_svetlova - 1;
 
            psub("generic"); 
 
        ]]};
 
        {tag = "iof_learr_suit"};
 
        {"Был рад помочь. ", [[Екатерина Светлова кивает и спрашивает: "Вам что-то нужно?"]], code [[ psub("generic"); ]]};
 
        {tag = "iof_learr"};
 
        {"Рад, что никто не пострадал. ", [[Екатерина Светлова кивает и спрашивает: "Вам что-то нужно?"]], code [[ psub("generic"); ]]};
 
		{tag = "first_meeting"};
 
		{"Как так получилось, что не осталось никакой информации?", [[Екатерина Светлова поясняет: "Блэк сильно торопил Уильяма и, едва закончив минимальные исследования, они отправились в Венаэданотр -- отдаленный навьярский город где-то к западу от Атлантиды. К сожалению, его точное местоположение нам неизвестно". ]], code [[ pon('venaedanotrr'); ]]};
 
        {"В чем заключается цель экспедиции?", [[Екатерина Светлова отвечает: "Дрейк и Блэк ищут Лсэрианотр -- легендарный навьярский город". ]], code [[pon('lseryanotrr')]]};
 
        {tag = "venaedanotrr", false, "Венаэданотр?", [[Екатерина светлова отвечает: "Поселения навьяров раскинулись по всему океанскому дну. Мы точно знаем, что Венаэданотр расположен далеко к западу отсюда и точно знаем, что он значительно больше, нежели Ираафаанотр или Дипатреанотр. Дрейк и Блэк смогут рассказать многое рассказать о нем, когда вернутся из своей экспедиции". ]], code [[ pon("dypatreanotrr", "iraaphaanotrr");]]};
 
		{tag = "lseryanotrr", false, "Лсэрианотр?", [[Екатерина Светлова отвечает: "По легенде Лсэрианотр -- древний навьярский город, хранящий какие-то тайные знания их народа. Описания разнятся. В одних источниках говорится о страшном монстре, по имени Наэтвьирр, охраняющем город. В других этот же Наэтвьирр предстает как хранитель города и его тайн, призванный самими навьярами. Однако, во всех вариантах легенды именно Наэтвьирр выступает причиной того, что навьяры покидают Лсэрианотр. Мы предполагаем, что Наэтвьирр это кракен или еще какое-то морское чудовище, с которым древние навьяры просто не могли справиться и вынуждены были покинуть Лсэрианотр". ]], code [[ pon("dypatreanotrr", "iraaphaanotrr");]]};
 
        {tag = "dypatreanotrr", false, "Дипатреанотр?", [[Екатерина Светлова отвечает: "Дипатреанотр расположен чуть дальше к северу от Атлантиды, чем Ираафаанотр. Как и Ираафаанотр, городом в полной мере он не является. В поселении нет даже улиц -- дома просто нагромождены вокруг центральной площади. Впрочем, как вы понимаете, улицы навьярам и ни к чему". ]]};
 
        {tag = "iraaphaanotrr", false, "Ираафаанотр?", [[Екатерина Светлова отвечает: "Ираафаанотр -- самое близкое к Атлантиде поселение навьяров. Мы называем его городом, хотя по нашим меркам это даже не деревня. Полтора десятка домов, да несколько полей вокруг. И все же, навьяры Ираафаанотра сильно помогают нам, обменивая ресурсы, которые они добывают здесь на более сложные вещи, производить которые самостоятельно они не способны". ]]};
 
		{"В чем заключается ваше предложение?", [[Екатерина Светлова откладывает бумаги в сторону, достает из ящика стола карту и раскладывает ее на столе. После чего продолжает: _"На самом деле, вы прибыли как нельзя вовремя. Наши отношения с навьярами несколько натянулись в последнее время, и, боюсь, разрешить разногласия поможете только вы. Я попробую кратко изложить ситуацию, задавайте вопросы по ходу рассказа, если вам потребуется дополнительная информация, -- Светлова делает небольшую паузу, -- Неподалеку от Атлантиды находятся два навьярских поселения: Ираафаанотр и Дипатреанотр. Первая встреча с жителями Дипатреанотра прошла не совсем гладко и в результате ее погибло несколько человек. К счастью, в дальнейшем отношения удалось наладить. Недавно, между Ираафаанотром и Дипатреанотром произошел конфликт, который может негативно повлиять на нас и наши отношения с этими городами. Мы пытались вмешаться, но это лишь обострило разногласия и в дальнейшем может поставить под угрозу само существование станции"_. ]], code [[ psub('help')]]};
 
		{tag = 'help'};
 
		{"И как я смогу помочь?", [[Екатерина Светлова поясняет: _"Навьяры знают, что вы не с Атлантиды, поэтому вы предстанете как нейтральная сторона. Сейчас вам стоит поговорить с Леарр и Ривеерром и узнать их взгляд на ситуацию. Потом приходите ко мне и решим, что делать"_. ]], code [[
 
			char_svetlova_dlg.flag_help = true;
 
			if (char_svetlova_dlg.flag_explain) then
 
				pon("first_meeting_end");
 
			end;
 
		]]};
 
		{"И в чем суть этого конфликта?", [[Екатерина Светлова отвечает: "Все одновременно очень просто и очень сложно. Из Ираафаанотра и Дипатреанотра не так давно пропали ценные реликвии. Города обвиняют друг друга и непонятно, к чему это приведет. Мы не понимаем, что могло быть причиной этому -- никаких предпосылок к такому у навьяров не было. С самого основания станции города жили в мире и согласии. К несчастью, ни Дипатреанотр, ни Ираафаанотр не дают нам доступа в храмы, где хранились реликвии". ]], code [[
 
			char_svetlova_dlg.flag_explain = true;
 
			if (char_svetlova_dlg.flag_help) then
 
				psub("first_meeting_end");
 
			end;
 
		]]};
 
		{tag = "first_meeting_end"};
 
		{"Хорошо, я помогу вам. ", function(s)
 
                if (atl_iof_completed) then
 
                    if (atl_iof_learr_dead) then
 
                        return [[Екатерина Светлова кивает: _"Поговорите с Аикерьярром и Ривеерром, разберитесь, узнайте больше. Они оба скорее всего где-то здесь, в Окулусе"_. ]];
 
                    else
 
                        return [[Екатерина Светлова кивает: _"Поговорите с Леарр и Ривеерром, разберитесь, узнайте больше. Они оба скорее всего где-то здесь, в Окулусе"_. ]];
 
                    end;
 
                else
 
                    return [[Екатерина Светлова кивает: _"Поговорите с Леарр и Ривеерром, разберитесь, узнайте больше. Ривеерр большую часть времени находится здесь, в Окулусе. Леарр вы, скорее всего, найдете в Игнисе"_. ]];
 
                end;
 
        end, code [[
 
			char_svetlova_dlg.state = 1;
 
			atl_iyh_state = 1;
 
			psub("generic");
 
		]]};
 
		{"Я прибыл сюда искать своего отца, а не решать проблемы полуразумных рыбней", [[Екатерина Светлова пожимает плечами и недовольно отвечает: "Если вы не станете помогать нам, мы не станем помогать вам. Можете сидеть и ждать возвращения Надежды". ]]};
 
        {tag = "ask_more"};
 
        {tag = "on_drake", false, "Расскажите об Уильяме. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.drake_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.drake_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Дрейк смог многого достигнуть и, хотя он работал не один, именно благодаря его таланту Вестхейвен Трансоушен просуществовала многие годы. Меня всегда удивляло его чутье -- он часто принимает странные, но, в конечном итоге, выгодные решения. Боюсь, когда-нибудь это чутье подведет его". ]];
 
            end;
 
        end};
 
        {tag = "on_black", false, "Расскажите об Адриане Блэке. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.black_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.black_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Блэк и Дрейк всегда работали вместе. Там где Дрейк готов пойти на риск, Блэк предлагает поступить осторожно. Зачастую Дрейк полностью передает управление в руки Блэка и Блэк всегда хорошо справляется. В свою очередь, Дрейк всегда умел собирать вокруг себя правильных людей, чего Блэк никогда бы не смог". ]];
 
            end;
 
        end};
 
        {tag="on_darkstar", false, "Расскажите о Винсенте Даркстаре. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.darkstar_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.darkstar_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Если вы уже говорили с ним, то вы итак все знаете. Вы можете посчитать его чрезмерно осторожным, но для его должности это скорее достоинство, чем недостаток. Не знаю, что творится у него в голове и почему он вообще занимается этим здесь, но пока у нас нет причин не доверять ему". ]];
 
            end;
 
        end};
 
        {tag="on_svetlova", false, "Расскажите о себе. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.svetlova_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.svetlova_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Не знаю, что вам рассказать. Я родилась в России, но образование получала уже в Европе, во Франции. После завершения обучения, я занималась некоторыми исследованиями в своей области, отправлялась с несколькими экспедициями в различные уголки света. А потом на меня вышел Фредерик Моро -- я тогда как раз искала возможности для новой экспедиции, Атлантиды тогда еще не было, но уже была Надежда и в Вестхейвен Трансоушен уже знали про навьяров. Потом была построена Атлантида и вот я здесь, занимаюсь делом всей моей жизни". ]];
 
            end;
 
        end};
 
        {tag="on_moreau", false, "Расскажите о Фредерике Моро. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.moreau_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.moreau_asked = 2;
 
                return [[Екатерина Светлова отвечает: "С Фредериком Моро я познакомилась раньше, чем с другими руководителями Вестхейвен Трансоушен. Хотя он и работает в компании с самого ее основания, его имя звучит гораздо реже, чем имена Блэка и Дрейка, однако, вклад Моро в развитие Вестхейвен Трансоушен трудно переоценить. Со всей своей скрупулезностью и точностью, он умело управлял ресурсами компании и продолжает это делать на Атлантиде. Что меня в нем удивляет, так это то, что он, при всех своих способностях, предпочитает оставаться в тени Дрейка и Блэка". ]];
 
            end;
 
        end};
 
        {tag="on_wright", false, "Расскажите о Майкле Райте. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.wright_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.wright_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Без Майкла Райта Вестхейвен Трансоушен никогда не достигла бы вершин. Сперва все более и более быстроходные и комфортабельные суда, а затем и Надежда с Атлантидой -- все было придумано им. Он напоминает мне безумного изобретателя из фантастической книжки, за исключением того, что не пытается захватить мир". ]];
 
            end;
 
        end};
 
        {tag="on_leroy", false, "Расскажите о Мишеле Леруа. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.leroy_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.leroy_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Мишель Леруа хорошо известен на станции -- он один из первых открыто поднял вопрос о закрытии станции и возвращении на поверхность. К счастью, он пока не успел слишком многих склонить на свою сторону. Вам лучше поговорить с Моро или Райтом по этому поводу". ]];
 
            end;
 
        end};
 
        {tag="on_jones", false, "Что вы думаете о Чарли Джонсе? ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.jones_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.jones_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Кажется, это кто-то из подчиненных Майкла Райта. Почему бы вам не поговорить с ним об этом". ]];
 
            end;
 
        end};
 
        {tag="on_goldman", false, "Что вы думаете о Леонарде Голдмане? ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.goldman_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.goldman_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Кажется, это кто-то из подчиненных Майкла Райта. Почему бы вам не поговорить с ним об этом". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", false, "Расскажите об Атлантиде. ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.atlantis_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.atlantis_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Атлантида была построена с единственной целью -- быть ближе к навьярам, получить возможность изучать их. Майкл Райт, конечно, скажет вам другое и будет по-своему прав -- в конце концов, станцию придумал именно он". ]];
 
            end;
 
        end};
 
        {tag="on_navjiarr", false, "Что вы думаете о навьярах? ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.navjiarr_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.navjiarr_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Удивительные создания. Я никогда не поверила бы в их существование, если бы не видела их собственными глазами. Хотя они кажутся крайне примитивными на первый взгляд, у них богатая и интересная культура. К сожалению, сейчас они пребывают в некотором упадке. На многие вопросы, которые мы им задаем -- как они строят свои храмы, откуда достают материалы, кем созданы их реликвии, они отвечают туманными легендами о древних временах и дальних местах. К сожалению, их картографическая система настолько запутана, что многие из них путаются в ней". ]];
 
            end;
 
        end};
 
        {tag="on_learr", false, "Что вы думаете о Леарр? ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.learr_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_svetlova.learr_asked = 3;
 
                    return [[Екатерина Светлова отвечает: "Помимо самого факта гибели этой замечательной юной девушки, это событие имеет далеко идущие последствия для Атлантиды". ]];
 
                else
 
                    char_svetlova.learr_asked = 2;
 
                    return [[Екатерина Светлова отвечает: "Леарр -- просто находка для нас всех. Она гораздо меньше скована догмами, чем другие, более старые, представители ее племени. Приятно наблюдать, как она с легкостью впитывает наши знания и с готовностью делится своими". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_ryveerr", false, "Что вы думаете о Ривеерре? ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.ryveerr_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.ryveerr_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Ривеерр -- достаточно дружелюбный и приятный навьяр. Его интеллект позволяет нам общаться с ним практически на равных, с поправкой на отсутствие некоторых знаний и понимания многих известных нам вещей". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы думаете об Аикерьярре? ", function()
 
            if (atl_rep_svetlova < 0) then
 
                char_svetlova.aikerjarr_asked = 1;
 
                return [[Екатерина Светлова отвечает: "Спросите кого-нибудь другого". ]];
 
            else
 
                char_svetlova.aikerjarr_asked = 2;
 
                return [[Екатерина Светлова отвечает: "Нам всем было бы легче, если бы его не было на Атлантиде. К сожалению, сейчас мы не можем просто взять и прогнать его -- это сделает наше положение еще худшим, чем оно есть". ]];
 
            end;
 
        end};
 
        {always=true, "Вернемся к делу.", [[Светлова кивает: "Говорите".]], code [[ char_svetlova_dlg:reset_more(); pret(); ]]};
 
        {tag = "generic"};
 
		{tag = "sabotage", false, "Даркстар считает, что причиной пожара в Игнисе был саботаж. Что вы об этом думаете?", function(s)
 
			if (atl_iof_learr_dead) then
 
				atl_rep_darkstar = atl_rep_darkstar - 1;
 
				return [[Екатерина Светлова отвечает: "Даркстар просил вас об этом никому не говорить. Разговор окончен". ]];
 
			else
 
			    char_svetlova_dlg.lfc_sabotage = true;
 
				atl_rep_svetlova = atl_rep_svetlova + 1;
 
				return [[Екатерина Светлова отвечает: "Даркстар просил вас об этом никому не говорить, но я понимаю ваш интерес. Саботажником может быть только кто-то из сторонников закрытия станции. Поговорите с Мишелем Леруа, чтобы больше об этом узнать. О саботаже попробуйте поговорить с Уолтером Рэдклиффом, если вам действительно интересно. И, пожалуйста, постарайтесь не разводить панику на станции". ]];
 
			end;
 
		end};
 
		{tag = "ignis_what", false, "Вы знаете, что произошло в Игнисе?", function(s)
 
			if (char_svetlova_dlg.lfc_sabotage) then
 
				return [[Екатерина Светлова отвечает: "Вы же только что сами сказали -- саботаж". ]];
 
			elseif (atl_iof_learr_dead) then
 
				return [[Екатерина Светлова отказывается отвечать: "Мне кажется, это не ваше дело. И не мое. Этим занимается служба безопасности". ]];
 
			else
 
				poff("sabotage");
 
				psub("ignis_sabotage");
 
				return [[Екатерина Светлова отвечает: "Я думаю вы и сами прекрасно знаете. Может расскажете?". ]];
 
			end;
 
		end};
 
        {tag= "iyh1_learr", false, "Я поговорил с навьярами. Леарр отрицает причастность Ираафаанотра к краже реликвии из Дипатреанотра. Ривеерр же открыто признает, что навьяры Дипатреанотра забрали ценности из Ираафаанотра.", [[Светлова разводит руками: "Теперь вы в курсе ситуации. Однако, у нас есть зацепка -- Записи Уильяма. Он мало что оставил нам, но среди найденного есть следующее сообщение", -- Екатерина достает из ящика блокнот и передает вам.^ Вы читаете следующее: "Карты давно утеряны, но отшельник в старом храме обещал помочь. Понятия не имею, что и как он сделает, но если это поможет найти Лсэрианотр -- пусть делает что считает нужным". ]], code [[ dypatreanotrr_temple_found = true; atl_iyh_state = 2; psub('iyh1_sub'); ]]};
 
        {tag= "iyh1_aikerjarr", false, "Я поговорил с навьярами. Аикерьярр отрицает причастность Ираафаанотра к краже реликвии из Дипатреанотра. Ривеерр же открыто признает, что навьяры Дипатреанотра забрали ценности из Ираафаанотра.", [[Светлова разводит руками: "Теперь вы в курсе ситуации. Аикерьярр, конечно, доверия не заслуживает, но Леарр говорила то же самое. Тем не менее, у нас есть зацепка -- Записи Уильяма. Он мало что оставил нам, но среди найденного есть следующее сообщение", -- Екатерина достает из ящика блокнот и передает вам.^ Вы читаете следующее: "Карты давно утеряны, но отшельник в старом храме обещал помочь. Понятия не имею, что и как он сделает, но если это поможет найти Лсэрианотр -- пусть делает что считает нужным". ]], code [[ dypatreanotrr_temple_found = true; atl_iyh_state = 2; psub('iyh1_sub'); ]]};
 
        {tag="more_questions", "У меня есть несколько вопросов.", [[Светлова кивает: "Спрашивайте".]], code [[ psub('ask_more'); ]]};
 
		{always = true, "Я пойду.", [[Светлова возвращается ко своим бумагам: "До встречи". ]], code [[ back(); ]]};
 
        {tag= "iyh1_sub"};
 
        {"Старый храм?", [[Светлова пожимает плечами: "К сожалению, у меня нет ничего кроме намеков. Предполагаю, что где-то здесь может быть еще один храм навьяров, возможно стоит расспросить их?" ]]};
 
        {"Я хотел бы посетить храм Дипатреанотра.", [[Светлова отвечает: "Не думаю, что это хорошая идея. Навьяры не пускают никого внутрь". ]], code [[ pon('outside');]]};
 
        {tag = "outside", false, "Возможно, самое интересное находится снаружи храма.", [[Светлова соглашается: "Возможно. В любом случае -- прошло уже достаточно много времени, чтобы хоть какие-то следы сохранились". ]], code [[ pret(); ]]};
 
		{tag = "ignis_sabotage"};
 
		{"Даркстар считает, что причиной пожара был саботаж", function(s)
 
			psub("generic");
 
			atl_rep_svetlova = atl_rep_svetlova + 1;
 
            return [[Екатерина Светлова отвечает: "Даркстар просил вас об этом никому не говорить, но я понимаю ваш интерес. Саботажником может быть только кто-то из сторонников закрытия станции. Поговорите с Мишелем Леруа, чтобы больше об этом узнать. О саботаже попробуйте поговорить с Уолтером Рэдклиффом, если вам действительно интересно. И, пожалуйста, постарайтесь не разводить панику на станции". ]];
 
		end};
 
		{"Понятия не имею", [[Екатерина Светлова разочарованно отвечает: "Очень жаль". ]], code [[ psub("generic"); ]]};
 
		{tag="secret_op"};
 
		{"Хорошо, я ничего не скажу навьярам. ", [[Екатерина Светлова отвечает: "Отлично. Осталось дождаться, когда вам позволят покидать станцию". ]], code [[ back(); ]]};
 
		{"Мне кажется, нам стоит поставить их в известность. Как они отреагируют, если мы просто принесем им реликвию? ", [[Екатерина Светлова отвечает: "Они будут благодарить нас. А теперь представьте, что вы сообщаете им, что отправляетесь в их священное место охотиться на их священную рыбу. Что будет?" ]], code [[ psub("so_answer"); ]]};
 
		{tag="so_answer"};
 
		{"Да, пожалуй вы правы", [[Екатерина Светлова отвечает: "Отлично. Осталось дождаться, когда вам позволят покидать станцию". ]]};
 
		{"А что будет, если мы принесем им реликвию, которая должна по их мнению быть в Ираафаанотре? Разве они не посчитают, что мы украли ее оттуда? ", [[Екатерина Светлова недовольно отвечает: "Поступайте как знаете. Если ваши действия повредят станции, то Левиафана вам не видать". ]], code [[ back(); ]]};
 
        {tag="learr_back"};
 
        {"Конечно, Леарр будет крайне полезна в нашей экспедиции.", [[Леарр, все это время молча стоявшая рядом, отвечает: "Я благодарю тебя-Дрейк. Ты помог нам-Ираафаанотру-и-Дипатреанотру. Я разрушение-храма-понимаю. Другого-пути не-было". ^Светлова кивает: "Этот вопрос решен. Переходим к следующему. Вы говорили, что нашли фрагмент карты. Можете показать его?"]], code [[
 
            table.insert(pl.party, 'learr');
 
            lifeon("char_learr");
 
            remove("char_learr_atlantis", where("char_learr_atlantis"));
 
            psub("iyh_more");
 
        ]]};
 
        {"Нет, мы справимся без ее помощи.", [[Леарр, все это время молча стоявшая рядом, кивает: "Я предпочла-бы-участвовать-в-экспедиции".]], code [[
 
            psub("learr_back2");
 
        ]]};
 
        {tag="learr_back2"};
 
        {"Хорошо, возвращайся на Левиафан.", [[Леарр отвечает: "Я благодарю тебя-Дрейк. Ты помог нам-Ираафаанотру-и-Дипатреанотру. Я разрушение-храма-понимаю. Другого-пути не-было". ^Светлова кивает: "Этот вопрос решен. Переходим к следующему. Вы говорили, что нашли фрагмент карты. Можете показать его?" ]], code [[
 
            table.insert(pl.party, 'learr');
 
            lifeon("char_learr");
 
            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 [[ psub("generic"); ]]};
 
        {"[Передать фрагмент карты] Да, конечно. Мы нашли это в скрытом помещении в храме.", [[Екатерина Светлова с интересом рассматривает табличку: "Удивительно, это явно очень старое, но это может быть все что угодно. Да, это карта, она сильно отличается от других навьярских карт, виденных нами. Обратите внимание, на количество деталей -- здесь не только отмечены условными символами три-четыре ориентира. Здесь их десятки, если не сотни. Попробуйте разузнать побольше в Ираафаанотре и Дипатреанотре". ]], code [[ psub("generic"); ]]};
 
	};
 
};
 
 
char_michael_wright_dlg = dlg {
 
    var {
 
        state = 0;
 
        lfc_dialog = false;
 
        lfc_out_dialog = false;
 
        lfc_goldman_execute = 0;
 
        lfc_goldman_imprison = 1;
 
        lfc_goldman_banish = 0;
 
        lfc_leroy_execute = 0;
 
        lfc_leroy_imprison = 1;
 
        lfc_leroy_banish = 0;
 
    };
 
    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_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 (atl_iof_completed) then
 
                if (char_michael_wright.leroy_asked == 0) then pon("on_leroy"); pon("more_questions"); end;
 
                if (char_michael_wright.jones_asked == 0) then pon("on_jones"); pon("more_questions"); end;
 
                if (char_michael_wright.goldman_asked == 0) then pon("on_goldman"); pon("more_questions"); end;
 
            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;
 
            if (atl_iof_learr_dead and char_michael_wright.aikerjarr_asked == 0) then pon("on_aikerjarr"); 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 (atl_iof_completed) then
 
                if (char_michael_wright.leroy_asked < 2) then pon("on_leroy"); pon("more_questions"); end;
 
                if (char_michael_wright.jones_asked < 2) then pon("on_jones"); pon("more_questions"); end;
 
                if (char_michael_wright.goldman_asked < 2) then pon("on_goldman"); pon("more_questions"); end;
 
            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 (atl_iof_learr_dead and char_michael_wright.learr_asked < 3) then pon("on_learr"); pon("more_questions"); end;
 
            if (char_michael_wright.ryveerr_asked < 2) then pon("on_ryveerr"); pon("more_questions"); end;
 
            if (atl_iof_learr_dead and char_michael_wright.aikerjarr_asked < 2) then pon("on_aikerjarr"); pon("more_questions"); end;
 
        end;
 
    end;
 
    
 
    enter = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Майкл Райт сообщает вам: "Добрый день. Винсент Даркстар просил вас срочно поговорить с ним". ]];
 
        end;
 
        poff('nih_fixed');
 
        if atl_nih_state == 2 or atl_nih_state == 1 then
 
            pon('nih_fixed');
 
        end;
 
        
 
        if (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;
 
        
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        end;
 
        
 
        s:reset_more();
 
        
 
        if (atl_iof_completed and char_michael_wright.iof_reaction == 0) then
 
            char_michael_wright.iof_reaction = 1;
 
            if (atl_iof_learr_dead) then
 
                psub("iof_learr_dead");
 
                return [[Майкл Райт обращается к вам: "Господин Дрейк, рад видеть вас живым и здоровым. Трагедия на Игнисе стала для нас неожиданностью. Быть может, если бы мы были готовы к такому, Леарр была бы здесь, с нами". ]];
 
            elseif (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Майкл Райт обращается к вам: "Господин Дрейк, рад видеть вас живым и здоровым. Авария на Игнисе стала для нас неожиданностью, однако благодаря вашим действиям никто не пострадал, а мы получили ценный опыт". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Майкл Райт обращается к вам: "Господин Дрейк, рад видеть вас живым и здоровым. Авария на Игнисе стала для нас неожиданностью, однако благодаря вашим действиям никто не пострадал". ]];
 
            end;
 
        elseif (atl_nih_state == 3 and atl_iof_completed and atl_fta_state == 0) then
 
            atl_fta_state = 1;
 
            psub("fta_agree");
 
            return [[Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. У меня есть для вас работа. Сейчас все наши бригады заняты, поэтому я прошу вас помочь с обслуживанием Солиса. Приходите туда и свяжитесь со мной по телефону, я дам вам инструкции". ]];
 
        elseif (atl_fta_state == 2) then
 
            atl_fta_state = 3;
 
            psub("fta_deb");
 
            return [[Майкл Райт протягивает вам руку: "Только благодаря вам, мы все еще здесь. Я с радостью сообщу Моро, что я за возвращение вам Левиафана". ]];
 
        else
 
            if atl_lfc_state == 4 then
 
                if not s.lfc_out_dialog then
 
                    s.lfc_out_dialog = true;
 
                    if atl_rep_svetlova >= 0 then
 
                        if atl_lfc_goldman_exposed then
 
                            poff("leroy");
 
                        else
 
                            poff("both", "goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
                        end;
 
                        psub("lfc_saboteur");
 
                        return [[Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. Даркстар сказал, что вы зайдете обсудить поимку саботажников. Я вас слушаю". ]];
 
                    else
 
                        psub("generic");
 
                        return [[Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. Если вы пришли обсудить поимку саботажников, то у меня нет на это времени". ]];
 
                    end;
 
                end;
 
            end;
 
        
 
            psub("generic");
 
            return [[Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. Чем могу быть полезен?" ]];
 
        end;        
 
    end;
 
    phr = {
 
        {tag="lfc_saboteur"};
 
        {tag="both","Что вы будете делать с саботажниками?", [[Майкл Райт отвечает: "Я думаю стоит подержать их немного взаперти. Пусть подумают над своим поведением. Когда вернется Уильям, будем решать, что делать с ними дальше". ]]};
 
        {tag="goldman_1", "Одному сумасшедшему никто не поверит, Голдмана стоит отпустить. ", [[Майкл Райт кивает: "Соглашусь с вами. Просто выкинем его на поверхность". ]], code [[
 
            char_michael_wright_dlg.lfc_goldman_banish = 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_2", "Голдман -- трус. Он никому ничего не скажет. Его можно отправить на поверхность. ", [[Майкл Райт кивает: "Соглашусь с вами. Просто выкинем его на поверхность". ]], code [[
 
            char_michael_wright_dlg.lfc_goldman_banish = 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_3", "Голдман хитер. На станции он представляет большую опасность, чем вне ее. ",  [[Майкл Райт ухмыляется: "Это этот-то хитер?" ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_4", "Голдман просто хотел выбраться отсюда. Пусть убирается с Атлантиды. ", [[Майкл Райт кивает: "Соглашусь с вами. Просто выкинем его на поверхность". ]], code [[
 
            char_michael_wright_dlg.lfc_goldman_banish = 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_5", "Отпускать Голдмана на поверхность нельзя. Единственный выход -- смертная казнь. ", [[Майкл Райт отрицательно качает головой: "Леонард хороший человек. Все мы совершаем ошибки". ]], code [[
 
            atl_rep_wright = atl_rep_wright - 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_6", "Голдман подверг опасности все наше дело. Единственный выход -- смертная казнь. ", [[Майкл Райт отрицательно качает головой: "Леонард хороший человек. Все мы совершаем ошибки". ]], code [[
 
            atl_rep_wright = atl_rep_wright - 1;
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="goldman_7", "Голдман хитер. Вне станции он будет не менее опасен, чем на ней. ", [[Майкл Райт ухмыляется: "Это этот-то хитер?" ]], code [[
 
            poff("goldman_1", "goldman_2", "goldman_3", "goldman_4", "goldman_5", "goldman_6", "goldman_7");
 
        ]]};
 
        {tag="leroy", "Что вы будете делать с саботажником?", [[Екатерина Светлова отвечает, не задумываясь: "Запереть его в темной камере, пока не раскается в своих действиях, а потом посмотрим". ]]};
 
        {tag="leroy_1", "Одному сумасшедшему никто не поверит, Леруа стоит отпустить. ",  [[Майкл Райт кивает: "Соглашусь с вами. Просто выкинем его на поверхность". ]], code [[
 
            char_michael_wright_dlg.lfc_goldman_banish = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_2", "Леруа -- трус. Он никому ничего не скажет. Его можно отправить на поверхность. ", [[Майкл Райт ухмыляется: "Это этот-то трус?" ]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_3", "Леруа хитер. На станции он представляет большую опасность, чем вне ее. ", [[Майкл Райт кивает: "Соглашусь с вами. Просто выкинем его на поверхность". ]], code [[
 
            char_michael_wright_dlg.lfc_leroy_banish = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_4", "Леруа просто хотел выбраться отсюда. Пусть убирается с Атлантиды. ", [[Майкл Райт кивает: "Соглашусь с вами. Просто выкинем его на поверхность". ]], code [[
 
            char_michael_wright_dlg.lfc_leroy_banish = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_5", "Отпускать Леруа на поверхность нельзя. Единственный выход -- смертная казнь. ", [[Майкл Райт задумчиво смотрит на вас: "Может вы и правы, но все же это тяжелый выбор". ]], code [[
 
            char_michael_wright_dlg.lfc_leroy_execute = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_6", "Леруа подверг опасности все наше дело. Единственный выход -- смертная казнь. ", [[Майкл Райт задумчиво смотрит на вас: "Может вы и правы, но все же это тяжелый выбор". ]], code [[
 
            char_michael_wright_dlg.lfc_leroy_execute = 1;
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {tag="leroy_7", "Леруа хитер. Вне станции он будет не менее опасен, чем на ней. ", [[Майкл Райт отвечает: "Вот поэтому я и считаю, что его нужно держать под стражей. "]], code [[
 
            poff("leroy_1", "leroy_2", "leroy_3", "leroy_4", "leroy_5", "leroy_6", "leroy_7");
 
        ]]};
 
        {"Это все, что я хотел обсудить по данному вопросу. ", [[Екатерина Светлова кивает и спрашивает: "Что-нибудь еще?"]], code [[ psub("generic");]] };
 
        {tag="lfc_warning"};
 
        {always=true, "Мне пора.", [["До встречи", -- Майкл Райт возвращается к своим делам. ]], code [[ back(); ]]};
 
        {tag="iof_learr_dead"};
 
        {"Мне очень жаль.", [[Майкл Райт кивает: "Утерянного не вернуть. Мы сделали выводы и постараемся не допустить опасных инцидентов в будущем". ]], code [[psub("generic");]]};
 
        {"Я чуть не погиб там!", [[Майкл Райт отворачивается от вас и произносит: "Приходите позже, я занят". ]], code [[ atl_rep_wright = atl_rep_wright - 1; back(); ]]};
 
        {tag="iof_learr_suit"};
 
        {"Я сделал, что должен был. ", [[Майкл Райт кивает: "И все же, не каждому пришла бы в голову идея облачить навьяра в скафандр".]], code [[psub("generic");]]};
 
        {tag="iof_learr"};
 
        {"Рад, что никто не пострадал. ", [[Майкл Райт кивает. ]], code [[ psub("generic"); ]]};
 
        {tag="fta_agree"};
 
        {"Хорошо, я сделаю, что смогу. ", [[Майкл Райт спрашивает: "Вы что-то еще хотели?" ]], code [[psub("generic"); ]]};
 
        {tag="fta_deb"};
 
        {"[Пожать руку]Только я все еще не знаю, куда мне следует плыть.", [[Майкл Райт кивает: "Мы сделаем все возможное, чтобы помочь вам. Светлова сказала мне, что вы помогаете ей в решении каких-то проблем с навьярами. По ее мнению, это может помочь вам в поисках". ]], code [[ psub('generic'); ]]};
 
        {"[Пожать руку] Только я все еще не знаю, куда мне следует плыть.", [[Майкл Райт кивает: "Мы сделаем все возможное, чтобы помочь вам. Светлова сказала мне, что вы помогаете ей в решении каких-то проблем с навьярами. По ее мнению, это может помочь вам в поисках". ]], code [[ psub('generic'); ]]};
 
        {"Просто верните мне Левиафан.", [[Майкл Райт с сожалением произносит: "Не все так просто. Нужно, чтобы согласие дали еще Моро, Даркстар и Светлова". ]], code [[ psub('generic'); ]]};
 
        {tag="ask_more"};
 
        {tag="on_drake", false, "Расскажите об Уильяме. ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.drake_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.drake_asked = 2;
 
                return [[Майкл Райт отвечает: "Я познакомился с вашим отцом во время нашей учебы в университете. Он никогда не относился серьезно к учебе, но уже тогда он умел собирать вокруг себя людей. Создание Вестхейвен Трансоушен было его идеей. Я помню, как мы с Моро первое время очень сомневались, стоит ли ввязываться в подобную авантюру. Дрейк активно развивал компанию, пока она существовала. Наверное, любой другой на месте Дрейка отправил бы меня лечиться, услышав мое предложение создать подводный корабль. Уильям тогда внимательно выслушал меня, задал пару вопросов и выделил деньги на проект". ]];
 
            end;
 
        end};
 
        {tag="on_jack", false, "Расскажите о своем сыне. ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.jack_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.jack_asked = 2;
 
                if (atl_jack_in_party) then
 
                    return [[Майкл Райт отвечает: "Мой сын, Джек, остался на поверхности вместе с моей женой, Элис. Я оставил им дом и немаленькое состояние, в надежде, что они справятся сами. Жаль, что все так получилось. Элис умерла, а Джек потратил лучшие годы на безуспешные попытки найти меня. Спасибо, что взяли моего сына с собой". ]];
 
                else
 
                    psub("son");
 
                    return [[Майкл Райт отвечает: "Мой сын, Джек, остался на поверхности вместе с моей женой, Элис. Я оставил им дом и немаленькое состояние, так что надеюсь, что у них все хорошо". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_black", false, "Расскажите об Адриане Блэке. ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.black_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.black_asked = 2;
 
                return [[Майкл райт отвечает: "Адриан -- университетский друг вашего отца. Он всегда уравновешивал Дрейка во многих отношениях. Там где Дрейк готов был пойти на риск, Блэк призывал к осторожности. Там где Дрейк соглашался на уступки, Блэк стоял до последнего. К слову, мою идею с субмариной Адриан не одобрил. К счастью, ваш отец все же позволил мне этим заняться". ]];
 
            end;
 
        end};
 
        {tag="on_darkstar", false, "Расскажите о Винсенте Даркстаре ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.darkstar_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.darkstar_asked = 2;
 
                return [[Майкл Райт отвечает: "Я почти ничего о нем не знаю. Впрочем, не думаю, что кто-то на станции может сказать о нем что-то. Параноидальный тип. Я вообще не понимаю, как он согласился сюда пеерехать. Тогда он мне целый допрос устроил -- чуть ли не в каждую линию на чертеже тыкал и спрашивал для чего это нужно. Думаю, мне стоит гордиться, что Атлантида прошла его проверку". ]];
 
            end;
 
        end};
 
        {tag="on_svetlova", false, "Расскажите о Екатерине Светловой. ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.svetlova_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.svetlova_asked = 2;
 
                return [[Майкл Райт отвечает: "Екатерина присоединилась к нам достаточно поздно -- уже после испытаний Надежды. Странно, что ей не пришла в голову идея построить Атлантиду. Впрочем, ее мало интересует техническая сторона вопроса -- она здесь чтобы изучать навьяров и не скрывает это". ]];
 
            end;
 
        end};
 
        {tag="on_moreau", false, "Расскажите о Фредерике Моро. ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.moreau_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.moreau_asked = 2;
 
                return [[Майкл Райт отвечает: "Фредерик с нами с самого начала. Хотя его влияние может показаться незначительным -- многие на станции даже не слышали о нем, пока он не занял пост управляющего -- он все же делал важное дело. Благодаря ему мы смогли завершить многие проекты вовремя, ведь за все поставки материалов отвечал именно он. С управлением станцией он так же справляется неплохо, хотя здесь все гораздо проще, чем было на поверхности". ]];
 
            end;
 
        end};
 
        {tag="on_wright", false, "Расскажите о себе. ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.wright_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.wright_asked = 2;
 
                if (atl_jack_in_party) then
 
                    return [[Майкл Райт отвечает: "Родился я в Лондоне. Окончил один из местных университетов, получив специальность инженера-кораблестроителя. Вместе с вашим отцом, Фредериком Моро и Адрианом Блэком мы основали Вестхейвен Трансоушен. Поначалу моя работа была далеко не идеальной -- мы купили несколько старых кораблей и привели их в порядок. Мы довольно быстро заработали хорошую репутацию. Дела шли на подъем и, наконец, у нас появились собственные верфи. К этому времени я уже имел глупость жениться. Я спроектировал несколько судов для компании. Лучшим была Огненная Стрела -- быстроходный комфортабельный пароход, вмещающий больше двух сотен пассажиров. Ну и наконец мы построили Надежду. Сказать, что мы удивилсь, когда встретили навьяров -- ничего не сказать. К сожалению, встреча не прошла бескровно -- наши люди просто вышли поговорить, показать себя. А эти рыбни закидали несчастных супругов Барнз копьями! Блэк тогда не дал мне пустить торпеду в этих уродов, и я до сих пор зол на него за это, хотя умом понимаю, что он был прав. Да и не было бы никакой Атлантиды, убей я тогда тех навьяров. Несколько месяцев мы обсуждали, что делать дальше. Потом мы с Сильвией придумали Атлантиду и переселились сюда, -- Райт вздыхает, -- В своем увлечении я позабыл обо всем. Я оставил свою жену, Элис, и сына, Джека, на поверхности. Если честно, я скорее жалею, что женился, чем что оставил их там. Это не делает мою ошибку меньше". ]];
 
                else
 
                    return [[Майкл Райт отвечает: "Родился я в Лондоне. Окончил один из местных университетов, получив специальность инженера-кораблестроителя. Вместе с вашим отцом, Фредериком Моро и Адрианом Блэком мы основали Вестхейвен Трансоушен. Поначалу моя работа была далеко не идеальной -- мы купили несколько старых кораблей и привели их в порядок. Мы довольно быстро заработали хорошую репутацию. Дела шли на подъем и, наконец, у нас появились собственные верфи. К этому времени я уже имел глупость жениться. Я спроектировал несколько судов для компании. Лучшим была Огненная Стрела -- быстроходный комфортабельный пароход, вмещающий больше двух сотен пассажиров. Ну и наконец мы построили Надежду. Сказать, что мы удивилсь, когда встретили навьяров -- ничего не сказать. К сожалению, встреча не прошла бескровно -- наши люди просто вышли поговорить, показать себя. А эти рыбни закидали несчастных супругов Барнз копьями! Блэк тогда не дал мне пустить торпеду в этих уродов, и я до сих пор зол на него за это, хотя умом понимаю, что он был прав. Да и не было бы никакой Атлантиды, убей я тогда тех навьяров. Несколько месяцев мы обсуждали, что делать дальше. Потом мы с Сильвией придумали Атлантиду и переселились сюда". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_leroy", false, "Что вы думаете о Мишеле Леруа? ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.leroy_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.leroy_asked = 2;
 
                return [[Майкл Райт отвечает: "Мишель Леруа уже давно создает проблемы на Атлантиде -- он первым начал активно поднимать вопрос возвращения на поверхность. Не думаю, что вам стоит на него обращать внимание". ]];
 
            end;
 
        end};
 
        {tag="on_jones", false, "Что вы думаете о Чарли Джонсе? ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.jones_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.jones_asked = 2;
 
                return [[Майкл Райт отвечает: "Джонс, кажется, не в восторге, что наше пребывание на Атлантиде затянулось. К счастью, в отличие от Леруа, он не пытается всех убедить в своей правоте. Если вас интересует, мог ли он саботировать Игнис, то я не считаю это вероятным". ]];
 
            end;
 
        end};
 
        {tag="on_goldman", false, "Что вы думаете о Леонарде Голдмане? ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.goldman_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.goldman_asked = 2;
 
                return [[Майкл Райт отвечает: "Леонард -- способный работник. К сожалению, в последнее время он перенял идеи Леруа. Не стоит говорить, как это сказалось на его работе. Надеюсь, он возьмется за ум". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", false, "Расскажите об Атлантиде. ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.atlantis_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.atlantis_asked = 2;
 
                return [[Майкл Райт отвечает: "Идея построить постоянную подводную станцию пришла мне в голову через некоторое время после завершения Надежды. Думаю, что не встреть мы тогда навьяров, Дрейк не позволил бы мне заниматься этим. Но его явно заинтересовала возможность постоянного пребывания вблизи этих рыбней. Конечно, если бы не Сильвия, я никогда не смог бы сделать станцию автономной -- я долго думал, как обеспечить нас всем необходимым здесь: едой, электричеством, воздухом, инструментами. Еду и воздух мы получаем в секции Аэрис. Электричество получаем сжигая топливо нескольких видов: растения, выращиваемые в Аэрисе и уголь, выменянный у навьяров. С инструментами дела обстоят сложнее всего. Но тут нас снова выручают навьяры, с готовностью предлагая нам металл, который они не умеют обрабатывать". ]];
 
            end;
 
        end};
 
        {tag="on_navjiarr", false, "Что вы думаете о навьярах? ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.navjiarr_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.navjiarr_asked = 2;
 
                return [[Майкл Райт отвечает: "Они меня мало волнуют. Хотя станция существует во многом благодаря сотрудничеству с ними, я предпочитаю поменьше общаться с ними. У меня все еще стоят перед глазами проткнутые коралловыми копьями тела Ребекки и Нила". ]];
 
            end;
 
        end};
 
        {tag="on_learr", false, "Что вы думаете о Леарр? ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.learr_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_michael_wright.learr_asked = 3;
 
                    return [[Майкл Райт отвечает: "Леарр часто бывала здесь. Рассматривала все. Было приятно с ней общаться. Ее гибель -- большая утрата для всех нас". ]];
 
                else
 
                    char_michael_wright.learr_asked = 2;
 
                    return [[Майкл Райт отвечает: "Она часто бывает здесь. Рассматривает все, изучает. Это не может меня не радовать". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_ryveerr", false, "Что вы думаете о Ривеерре? ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.ryveerr_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.ryveerr_asked = 2;
 
                return [[Майкл Райт отвечает: "Не думаю, что смогу много о нем сказать. Большую часть времени он проводит в Окулусе. Если вы хотите узнать о Ривеерре больше, советую поспрашивать там". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы думаете об Аикерьярре ", function()
 
            if (atl_rep_wright < 0) then
 
                char_michael_wright.aikerjarr_asked = 1;
 
                return [[Майкл Райт отвечает: "Я не хочу об этом говорить". ]];
 
            else
 
                char_michael_wright.aikerjarr_asked = 2;
 
                return [[Майкл Райт отвечает: "Не думаю, что могу что-то о нем сказать. Я видел его один раз, при встрече и не могу сказать, что впечатление было благоприятным. Слишком заносчивый он". ]];
 
            end;
 
        end};
 
        {always=true, "Вернемся к делу.", [[Майкл Райт кивает: "Хорошо".]], code [[ char_michael_wright_dlg:reset_more(); pret(); ]]};
 
        {tag="generic"};
 
        {tag="nih_fixed", false, "Я нашел утечку.", function(s)
 
            if atl_nih_state == 2 then
 
                atl_nih_state = 3; 
 
                disable_nih();
 
                atl_rep_wright = atl_rep_wright + 1
 
                return [[Майкл Райт кивает: "Спасибо, Дрейк. Приборы показывают, что утечка устранена". ]]
 
            else
 
                return [[Майкл Райт отрицательно качает головой: "Что-то не так. Приборы показывают, что утечка все еще присутствует. Возможно, были повреждены несколько труб. Перепроверьте, пожалуйста". ]]
 
            end;
 
        end};
 
        {tag="sabotage", false, "Даркстар считает, что пожар начался из-за саботажа.", function(s)
 
            atl_rep_wright = atl_rep_wright - 1;
 
            local part1 = [[Майкл Райт недовольно ворчит: "Пожалуйста, не лезьте в это дело. За безопасность станции отвечает Винсент Даркстар и лучше будет, если он будет заниматься этим делом]];
 
            if (not atl_jack_in_party) then
 
                atl_rep_darkstar = atl_rep_darkstar - 1;
 
                return part1 .. [[Я доложу Даркстару о вашем неповиновении". ]];
 
            else 
 
                return part1 .. [[". ]];
 
            end;
 
        end};
 
        {tag="ignis_what", false, "Из-за чего начался пожар в Игнисе?", [[Майкл Райт отвечает: "Короткое замыкание. Рядом, к сожалению, никого не оказалось и потушить возгорание вовремя не удалось. Огонь быстро распространился по всей секции, ну а дальше вы все знаете". ]]};
 
        {tag="more_questions", "У меня есть несколько вопросов.", [[Майкл Райт отвечает: "Задавайте, посмотрим чем смогу помочь".]], code [[ psub('ask_more'); ]]};
 
        {always=true, "Мне пора.", function(s)
 
            if (atl_nih_state == 0 and atl_jack_in_party) then
 
                atl_nih_state = 3;
 
            end;
 
            if (atl_nih_state == 0 and not atl_jack_in_party) then
 
                atl_nih_init();
 
                pr([["Кстати, у меня есть для вас небольшое задание. У нас где-то утечка воздуха. Ничего критичного, но у нас некому заняться этим. Вы могли бы прогуляться по станции и найти и исправить поломку. Проще всего будет просто заменить трубы на такие же. В случае возникновения проблем -- попросите у Мари в библиотеке документацию по воздуховодам, она даст вам все необходимое. Запасные вы найдете здесь или на складе в Акве. До встречи", -- Майкл Райт возвращается к своим делам. ]]);
 
                psub("bq");
 
            else
 
                pr([["До встречи", -- Майкл Райт возвращается к своим делам. ]]);
 
                back();
 
            end;
 
        end};
 
        {tag="bq"};
 
        {"Хорошо, я сделаю что смогу.", [["До встречи", -- Майкл Райт возвращается к своим делам. ]], code [[ back(); ]]};
 
        {tag="son"};
 
        {"Мать Джека умерла, а сам он прозябает в своем доме ничего не делая. ", [[Майкл Райт вздыхает: "Жаль, что все так вышло. Спасибо, что честно сказали мне. Наверное..."]], code[[pret();]]};
 
        {"Мать Джека умерла, но с ним все в порядке. Он все еще живет в вашем доме. ", [[Майкл Райт вздыхает: "Элис...". ]], code[[pret();]]};
 
        {"У них все хорошо. ", [[Майкл Райт кивает: "Рад это слышать". ]], code[[pret();]]}
 
    };
 
};
 
 
 
char_anna_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
    
 
    reset_more = function(s)
 
        poff("on_anna", "on_walter", "on_atlantis", "on_drake", "more_questions");
 
        if (rel_anna  < 0) then
 
            if (char_anna.anna_asked == 0) then
 
                pon("on_anna");
 
                pon("more_questions");
 
            end;
 
            if (char_anna.walter_asked == 0) then
 
                pon("on_walter");
 
                pon("more_questions");
 
            end;
 
            if (char_anna.atlantis_asked == 0) then
 
                pon("on_atlantis");
 
                pon("more_questions");
 
            end;
 
            if (char_anna.drake_asked == 0) then
 
                pon("on_drake");
 
                pon("more_questions");
 
            end;
 
        else
 
            if (char_anna.anna_asked < 2) then
 
                pon("on_anna");
 
                pon("more_questions");
 
            end;
 
            if (char_anna.walter_asked < 2) then
 
                pon("on_walter");
 
                pon("more_questions");
 
            end;
 
            if (char_anna.atlantis_asked < 2) then
 
                pon("on_atlantis");
 
                pon("more_questions");
 
            end;
 
            if (char_anna.drake_asked < 2) then
 
                pon("on_drake");
 
                pon("more_questions");
 
            end;
 
        end;
 
    end;
 
    
 
	enter = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
        
 
        s:reset_more();
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Перед вами стоит девушка лет двадцати-пяти--тридцати. Каштановые волосы ниспадают на плечи. Зеленые глаза внимательно следят за движениями навьяра, с которым она разговаривает. Заметив вас, она просит навьяра подождать и обращается к вам: "Приветствую. Вы, должно быть, господин Дрейк? Мое имя Анна Рэдклифф". ]];
 
		else
 
			psub("generic");
 
			return [[Анна Рэдклифф разговаривает с навьяром, стоящим рядом. Заметив вас, она просит его подождать и обращается к вам: "Приветствую, вы что-то хотели?" ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Да, я Дэвид Дрейк. Рад знакомству. ", [[Анна Рэдклифф улыбается и спрашивает: "Вы что-то хотели?" ]], code = [[ psub('generic'); ]]};
 
        {tag="ask_more"};
 
        {tag="on_anna", "Расскажите о себе. ", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.anna_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.anna_asked = 2;
 
                return [[Анна Рэдклифф грустно вздыхает: "Мне почти нечего рассказывать. Я с молодости живу здесь, на Атлантиде. Когда Уолтер сказал, что мы будем жить здесь, я сперва расстроилась -- тогда это казалось мне невероятно скучным -- жить вдалеке от цивилизации, среди людей, которые старше меня на двадцать с лишним лет. На самом деле все оказалось не столь плохо -- помимо навьяров, с которыми всегда интересно, я помогаю Екатерине и Сильвии с расшифровкой текстов или Мари в библиотеке". ]];
 
            end;
 
        end};
 
        {tag="on_walter", "Расскажите об Уолтере. ", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.walter_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.walter_asked = 2;
 
                return [[Анна Рэдклифф отвечает: "Уолтер -- мой старший брат. Он заботится обо мне с тех пор, как мама с папой покинули нас. Хотя моя жизнь сильно изменилась, когда Уолтер забрал меня с собой на Атлантиду, я не жалею об этом". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", "Что вы думаете об Атлантиде?", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.atlantis_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.atlantis_asked = 2;
 
                return [[Анна Рэдклифф отвечает: "Последние десять лет я живу здесь, на Атлантиде. Я хорошо помню, как расстроена я была, приехав сюда. Конечно, я не думала, что мы все проведем здесь столько времени. Первое время мне казалось, что мы вот-вот закончим и вернемся на поверхность,но намерения вашего отца сильно отличались от этого. Почти сразу после прибытия Екатерина и Сильвия познакомили меня с Телнеарром и Хетеарром -- двумя навьярами, которые первыми жили на станции. Потом Хетеарр вернулся домой, а вместо него на станцию прибыл Ривеерр. А затем покинул станцию и Телнеарр. Его заменила Леарр". ]];
 
            end;
 
        end};
 
        {tag="on_drake", "Расскажите об Уильяме Дрейке. ", function(s)
 
            if (rel_anna < 0) then
 
                char_anna.drake_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.drake_asked = 2;
 
                return [[Анна Рэдклифф отвечает: "Хотя Дрейк -- руководитель Атлантиды, он проводит больше времени здесь, в Окулусе, чем в своем кабинете в Доминусе. Сейчас он в экспедиции -- они с Блэком отправились на поиски отдаленных навьярских поселений". ]];
 
            end;
 
        end};
 
        {tag="on_black", "Расскажите об Адриане Блэке. ", function(s)
 
            if rel_anna < 0 then
 
                char_anna.black_asked = 1;
 
                return [[Анна Рэдклифф отвечает: "Я не хочу об этом с вами говорить". ]];
 
            else
 
                char_anna.black_asked = 2;
 
                return [[Анна Рэдклифф пожимает плечами: "Все вокруг говорят, что он хороший друг вашего отца, но мне почти не доводилось с ним общаться".]];
 
            end;
 
        end};
 
        {always=true, "Вернемся к делу.", [[Анна Рэдклифф кивает: "Хорошо".]], code [[ char_anna_atlantis_dlg:reset_more(); pret(); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе -- следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			rel_walter = rel_walter - 1;
 
			rel_anna = rel_anna - 1;
 
			return [[Анна удивленно смотрит на вас: "Зачем вы это говорите? Кому может прийти в голову подобное?" ]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[Анна отрицательно качает головой: "Мне почти ничего неизвестно. Поговорите с Даркстаром или Райтом. Или спросите моего брата, Уолтера. Я думаю он в курсе". ]]};
 
        {tag="more_questions", "У меня есть несколько вопросов.", [[Анна отвечает: "Да, я слушаю".]], code [[ psub('ask_more'); ]]};
 
		{always=true, "Я пойду.", [[Анна прощается с вами: "До встречи". ]], code [[ back(); ]]};
 
	};
 
};
 
 
char_learr_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = false;    
 
        sabotage_explained = false;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	enter = function(s)
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;    
 
    
 
		if (s.state == 0) then
 
			if (char_learr_atlantis.offended) then
 
				psub("offended");
 
				return [[Леарр поворачивается к вам, плавники ее становятся ярко-фиолетовыми. Она рычит: "Прриветсствую, монсстрр. Мы говоррить-будем?" ]];
 
			else
 
				psub("pre_iof");
 
				return [[Леарр поворачивается к вам, плавники ее принимают едва заметный сине-зеленый оттенок, а она говорит: "Я прриветсствую тебя-he'vji'a'rr". ]];
 
			end;
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			psub("after_iof");
 
			if (atl_iof_learr_suit) then
 
				return [[При виде вас, плавники Леарр меняют цвет на ярко-зеленый. Она плавно опускает руки вниз и слегка наклоняется вперед. Выпрямившись, она произносит: "Я благодарю тебя. Мне твоя-идея-понравилась". ]];
 
			else
 
				return [[При виде вас, плавники Леарр меняют цвет на ярко-зеленый. Она плавно опускает руки вниз и слегка наклоняется вперед. Выпрямившись, она произносит: "Я благодарю тебя". ]];
 
			end;
 
		else
 
            if (rel_learr < 0) then
 
                if (char_learr.on_books == 0) then pon("on_books") end;
 
            else
 
                if (char_learr.on_books < 2) then pon("on_books") end;
 
            end;
 
            
 
            poff('iyh1', 'iyh4', 'iyh5');
 
            if (atl_iyh_state == 1 and not atl_iyh_learr_spoken) then
 
                pon('iyh1');
 
            elseif (atl_iyh_state == 2 and ArrayUtils.indexOf(pl.party, 'learr') == 0) then
 
                pon('iyh2');
 
			elseif (atl_iyh_state == 4) then
 
				pon("iyh4");
 
			elseif (atl_iyh_state == 5) then
 
				pon("iyh5");
 
			end;
 
			psub("generic");
 
			if (rel_learr > 0) then
 
				return [[Леарр поворачивается к вам, плавники ее принимают сине-зеленый оттенок, а она говорит: "Я рада-видеть тебя". ]];
 
			else
 
				return [[Леарр поворачивается к вам, плавники ее принимают едва заметный сине-зеленый оттенок, а она говорит: "Я приветствую тебя-he'vji'a'rr". ]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
		{tag='offended'};
 
		{"Монстр?", [[Леарр молча кивает. Оттенок головных плавников на мгновение сменяется на желтый, но затем снова становится фиолетовым: "Ты так-назвал меня. Мы будем-дальше-монстрами-называть друг-друга?" ]], code [[ psub('offended_yes_no') ]]};
 
		{tag='offended_yes_no'};
 
		{"Не думаю", [[Леарр кивает, ее плавники медленно теряют цвет. Она говорит: "Я слушаю тебя. Ты говори". ]], code [[ 
 
            char_learr_atlantis_dlg.state = 1;
 
            walk('atl_iof_intro'); 
 
        ]]};
 
		{"От этого суть не изменится, чудище", [[Леарр скалится, показывая блестящие острые зубки: "Ты убиррайся, пока я тебя не ссъела". ]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
 
		{tag='pre_iof'};
 
		{"He'vji'a'rr?", [[Леарр кивает: "Мы так-наззываем пришшедшших-сс-поверхноссти-васс". ]]};
 
		{"Я хотел кое-что спросить.", [["Ты говорри", -- просит Леарр. ]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
 
		{tag="after_iof"};
 
		{"Рад, что смог помочь", [[Леарр кивает, все еще находясь в явном возбуждении: "Ты говоррить-пришшел? Ты говорри". ]], code [[ psub("generic"); ]]};
 
		{"У меня не было выбора", [[Леарр непонимающе смотрит на вас, однако говорит: "Я благодаррю тебя. Ты говорри".
 
		]], code [[ rel_learr = rel_learr - 1; psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="iyh1", "Расскажи о вашем конфликте с Дипатреанотром.", [[Леарр начинает рассказывать, активно жестикулируя: "Рреликвия нессколько-дней-наззад-изз-нашшего-хррама-прропала. Na'vji'a'yhe'dyp'atre'anot'rr вззяли нашшу-рреликвию! Они потом-в-наш-город-пришли и требовали-вернуть их-реликвию! Мы не-брали ее и это-сказали им!" -- Леарр недовольно топает и шипит, -- "Они нам-не-верят! Они украли нашу-вещь и не-верят нам!" ]], code [[ atl_iyh_learr_spoken = true; ]]};
 
        {tag="iyh2", "Я отправляюсь в храм Дипатреанотра. Мне не помешает твоя помощь.", [[Плавники Леарр принимают фиолетовый оттенок: "He'vji'a'rr нельзя туда!"]], code [[ psub("join_me"); ]]};      
 
		{tag="iyh4", "Здесь неподалеку есть старый навьярский храм. Я прошу разрешения посетить его.", [[Леарр задумчиво произносит: "He'vji'a'rr нельзя-туда... Я место-не-знаю".^Немного постояв в задумчивости, Леарр восклицает: "Мы-вместе туда-пойдем! Ривеерр это-не-одобрит, но я с-ним-поговорю". ]], code [[ psub("iyh_agree"); ]]};
 
        {tag="sabotage", false, "Ты знаешь, что пожар начался из-за саботажа?", [[Леарр непонимающе крутит головой: "Я что-ты-говоришь-не-понимаю. Что саботаж?" ]], code [[ poff("ignis_what");psub("sabotage_explain"); ]]};
 
        {tag="ignis_what", false, "Ты знаешь, почему начался пожар в Игнисе?", [[Леарр неуверенно пожимает плечами: "Я ты-лучше-знаешь-думаю. Ты расскажешь?"]], code [[ psub("sabotage_reason"); ]]};
 
        {tag="books", false, "[Показать на книгу]Ты читаешь наши книги?", function(s)
 
        {tag="books", false, "[Показать на книгу] Ты читаешь наши книги?", function(s)
 
            if (rel_learr < 0) then
 
                char_learr.on_books = 1;
 
                return [[Леарр неохотно отвечает: "Я иногда-читаю". Она явно не хочет говорить с вами об этом сейчас. ]];
 
            else
 
                char_learr.on_books = 2;
 
                psub("more_on_books");
 
                return [[Леарр отвечает: "Я иногда-читаю". Она опускает глаза на книгу, потом смотрит на вас. Немного подумав, она отвечает, как-бы нехотя: "Я не-умею-ваш-язык-читать. Я пытаюсь-учусь. Мари помогает". ]];
 
            end;
 
        end};
 
		{"Я пойду.", [[Плавники Леарр медленно теряют цвет и она прощается с вами: "Ты воззврращщайсся". ]], code [[back();]]};
 
        {tag="join_me"};
 
        {"Я не собираюсь входить внутрь, но мне нужно осмотреть его окрестности.", [[Цвет плавников Леарр меняется на оранжевый и затем на желтый. Она соглашается: "Я с-тобой-пойду. Я давно-в-Ираафаанотре-не-была". ]], code [[
 
            lifeon("char_learr");
 
            remove("char_learr_atlantis", where("char_learr_atlantis"));
 
            table.insert(pl.party, 'learr');
 
            pret();
 
        ]]};
 
        {"Для этого ты мне и нужна.", [[Цвет плавников Леарр меняет цвет на синий. Она соглашается: "Я согласна. Я с-тобой-пойду". ]], code [[
 
            lifeon("char_learr");
 
            remove("char_learr_atlantis", where("char_learr_atlantis"));
 
            table.insert(pl.party, 'learr');
 
            pret();
 
        ]]};
 
        {tag="sabotage_explain"};
 
        {"Кто-то из работников станции устроил пожар.", [[Леарр непонимающе смотрит на вас: "Я зачем-не-понимаю". ]], code [[char_learr_atlantis_dlg.sabotage_explained = true; pon("explanation2", "avoid");]]};
 
        {tag="explanation2", false, "Он сделал это специально с какой-то собственной целью.", [[Леарр все еще не понимая переспрашивает: "Зачем?"]]};
 
        {"Не думаю, что есть смысл об этом еще говорить.", function(s)
 
            if (char_learr_atlantis_dlg.sabotage_explained) then
 
                return [[Леарр кивает: "Я благодарю-за-объяснение тебя". ]];
 
            else
 
                return [[Леарр кивает. ]];
 
            end;
 
        end};
 
        {tag="sabotage_reason"};
 
        {"Это был саботаж.", [[Леарр непонимающе крутит головой: "Я что-ты-говорришшь-не-понимаю. Что ссаботажж?" ]], code [[ poff("sabotage"); psub("sabotage_explain"); ]]};
 
        {"Я не знаю. Но хотел бы знать", [[Леарр разочарованно вздыхает: "Ты ессли-уззнаешшь-рассскажжи". ]], code [[psub("generic");]]};
 
        {tag="more_on_books"};
 
        {"Я могу помочь?", [[Леарр кивает: "Я думаю-ты-дрругим-делом-ззанят. Я не-хчочу-мешшать". ]], code[[ char_learr.on_books = 3; pret(); ]]};
 
        {"Давно ты этим занимаешься?", [[Леарр кивает: "Я с-ссамого-пррибытия-вашши-книги-учуссь-читать. Я надеюссь-вссе-пойму ссо-врременем". ]]};
 
        {"Как у тебя успехи?", [[Леарр смущенно отвечает: "Я ещще-многое-не-понимаю. Но я ссо-врременем-пойму-надеюссь". ]]};
 
        {"Давай поговорим о другом.", [[Леарр кивает: "Ты говорри". ]], code [[pret();]]};
 
        {tag="legend2", empty=code [[back();]]};
 
        {"Значит, вы не брали реликвию?", [[Леарр недовольно шипит: "Ты тожже-мне-не-верришшь?! Ухходи!"]]};
 
        {"У тебя есть идеи, куда могла пропасть их реликвия?", [[Леарр отрицательно качает головой: "Нет". ]]};
 
		{tag="iyh_agree"};
 
		{"Я согласен. Только так мы докажем Дипатреанотру, что вы ни при чем.", [[Леарр отвечает: "Ты сообщщи, когда готов-будешшь. Мы поззжже-поговоррим". ]], code [[ 
 
			lifeon("char_learr");
 
            remove("char_learr_atlantis", where("char_learr_atlantis"));         
 
			table.insert(pl.party, 'learr');
 
			atl_iyh_state = 6; 
 
			back(); 
 
		]]};
 
		{"Лучше я отправлюсь один.", [[Леарр недовольно шипит: "Не взздумай! Ты ссебе, мне и Ry'vee'rr-у ххужже ссделаешшь". ]]};
 
	};
 
};
 
 
char_aikerjarr_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = false;      
 
	};
 
	nam = "Аикерьярр";
 
	enter = function(s)
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;
 
        if (s.state == 0) then
 
            psub("first_meeting");
 
            return [[Перед вами стоит высокий стройный навьяр. Серебристая чешуя сверкает в свете электрических ламп. Неприязненный взгляд его зеленых глаз направлен на вас. Существо одето в темно-зеленые облегающие штаны и куртку из водорослей. В правой руке навьяр держит острозаточенное коралловое копье. ]];
 
		elseif (s.state == 1) then
 
			psub("generic");
 
		
 
            poff('iyh1', 'iyh2', 'iyh4', 'iyh5');
 
            if (atl_iyh_state == 1 and not atl_iyh_aikerjarr_spoken) then
 
                pon('iyh1');
 
            elseif (atl_iyh_state == 2 and not atl_iyh2_aikerjarr_spoken) then
 
                pon('iyh2');
 
			elseif (atl_iyh_state == 4) then
 
				pon("iyh4");
 
			elseif (atl_iyh_state == 5) then
 
				pon("iyh5");
 
			end;
 
		end;
 
		return [[Аикерьярр презрительно смотрит на вас, не говоря ни слова. ]];
 
	end;
 
	phr = {
 
        {tag = "first_meeting"};
 
        {always = "true", "Ты Аикерьярр?", [[Навьяр нехотя отвечает: "I'yhe'Aike'rya'yhe'iraa'pha-anot'rr". ]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_2a"); ]]};
 
        {always = "true", "Добрый день.", [[Навьяр нехотя отвечает: "I'yhe'Aike'rya'yhe'iraa'pha-anot'rr vta'lyt'nn ty'yhe'he'vji'a'rr". ]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_2b"); ]]};
 
        {always = "true", "Приветствую.", [[Навьяр нехотя отвечает: "I'yhe'Aike'rya'yhe'iraa'pha-anot'rr vta'lyt'nn ty'yhe'he'vji'a'rr". ]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_2b"); ]]};
 
        {tag="first_meeting_2a"};
 
        {always = "true", "Нам нужно поговорить.", [[Навьяр надменно бросает: "I'rr vtre'za'nn he'vji'a'za'rr".]], code [[ char_aikerjarr_dlg.state = 1; psub("first_meeting_3a");]]};
 
        {tag="first_meeting_2b"};
 
        {always = "true", "Я тебя не понимаю", [[Навьяр довольно ухмыляется: "Ty'rr zee'vee'nn". ]], code [[char_aikerjarr_dlg.state = 1; psub("first_meeting_2a");]]};
 
        {always = "true", "Кончай дурить, я знаю, что ты меня понимаешь", [[Навьяр скалит зубы: "Ты-ххевьярр так-ссо-мной-не-говорри". ]], code [[char_aikerjarr_dlg.state = 1; psub("first_meeting_3b");]]};
 
        {always = "true", "Я приду позже.", [[Навьяр довольно ухмыляется: "Ty'rr zee'vee'nn". ]], code [[ back(); ]]};
 
        {tag="first_meeting_3a"};
 
        {always = "true", "I'rr vtre'za'nn na'vji'a'za'rr. Нам все еще нужно поговорить. ", [[Навьяр вздыхает: "Ty'rr не-отсстанет. I'rr тебя-сслушшает"]], code [[ char_aikerjarr_dlg.state = 1; psub("generic"); ]]};
 
        {"Нам все еще нужно поговорить", [[Навьяр надменно бросает: "I'rr vtre'za'nn he'vji'a'za'rr".]], code [[ back(); ]]};
 
        {always = "true", "Я приду позже.", [[Навьяр довольно ухмыляется: "Ty'rr zee'vee'nn". ]], code [[ back(); ]]};
 
        {tag="first_meeting_3b"};
 
        {always= "true", "Значит, ты все-таки меня понимаешь. У меня есть вопросы.",  [[Навьяр вздыхает: "Ty'rr не-отсстанет. I'rr тебя-сслушшает"]], code [[char_aikerjarr_dlg.state = 1; psub("generic")]]};
 
        {always= "true", "Значит, ты все-таки меня понимаешь. Хватит тратить мое время.", [[Навьяр недовольно рычит: "Ты говорри". ]], code [[char_aikerjarr_dlg.state = 1; psub("generic")]]};
 
        {always= "true", "Значит, ты все-таки меня понимаешь, чертов рыбень. Теперь слушай и отвечай.", [[Навьяр стучит копьем об пол и отворачивается от вас. ]], code [[back();]]};
 
		{tag = "generic"};
 
        {tag = "sabotage", "Ты знаешь, что пожар начался из-за саботажа?", [[Аикерьярр лишь слегка усмехается, но не удостаивает вас ответом. ]]};
 
        {tag = "ignis_what", "Ты знаешь, почему начался пожар в Игнисе?", [[Аикерьярр лишь слегка усмехается, но не удостаивает вас ответом. ]]};
 
		{tag="iyh1", "Расскажи о вашем конфликте с Дипатреанотром.", [[Аикерьярр недовольно смотрит на вас:"He'vji'a'rr не-помочь". ^Немного подумав, он рассказывает: "Na'vji'a'yhe'dyp'atre'anot'rr говоррить yhe мы украссть реликвия-изз-ихх-ххррама, -- Аикерьярр злобно стучит зубами и в ярости сжимает кулаки, -- Мы не-делали-этого-ссказзали им! Но они в-ответ-на-нашш-ххррам-напали и нашши-рреликвии-вззяли!" ]], code [[ atl_iyh_aikerjarr_spoken = true; ]]};
 
        {tag="iyh2", "Я собираюсь в храм Дипатреанотра/", [[Аикерьярр пожимает плечами: "Ты туда-не-идешь. Ты спроси Ривеерра".]], code [[ atl_iyh2_aikerjarr_spoken = true; psub("on_iyh2"); ]]};      
 
        {tag="iyh4", "Неподалеку отсюда есть старый храм навьяров. Я прошу разрешения посетить его.", [[Аикерьярр кивает: "Я не-понимаю, hyd это связано с-текущей-ситуацией. Ты узнай e тогда-приходи". ]], code [[ back(); ]]};      
 
		{always=true,"Я вернусь позже.", [[Аикерьярр отворачивается от вас, даже не удостоив ответом. ]], code [[back(); ]]};
 
	};
 
};
 
 
char_ryveerr_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = false;
 
	};
 
	nam = "Ривеерр";
 
	disp = "Ривеерр";
 
    
 
    reset_more = function(s)
 
        poff("on_atlantis", "on_learr", "on_ryveerr", "on_aikerjarr", "more_questions");   
 
        if (atl_rep_dyp < 0) then
 
            if (char_ryveerr.atlantis_asked == 0) then pon("on_atlantis", "more_questions"); end;
 
            if (char_ryveerr.learr_asked == 0) then pon("on_learr", "more_questions"); end;
 
            if (char_ryveerr.ryveerr_asked == 0) then pon("on_ryveerr", "more_questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.aikerjarr_asked == 0) then pon("on_aikerjarr", "more_questions"); end;
 
        else
 
            if (char_ryveerr.atlantis_asked < 2) then pon("on_atlantis", "more_questions"); end;
 
            if (char_ryveerr.learr_asked < 2) then pon("on_learr", "more_questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.learr_asked < 3) then pon("on_learr", "more_questions"); end;
 
            if (char_ryveerr.ryveerr_asked < 2) then pon("on_ryveerr", "more_questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.aikerjarr_asked < 2) then pon("on_aikerjarr", "more_questions"); end;
 
        end;
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;
 
    end;
 
    
 
	enter = function(s)
 
        s:reset_more();
 
        
 
        poff('iyh1', 'iyh2');
 
        if (atl_iyh_state == 1 and not atl_iyh_ryveerr_spoken) then
 
            pon('iyh1');
 
        elseif (atl_iyh_state == 2 and not atl_iyh2_ryveerr_spoken) then
 
            pon('iyh2');
 
        elseif (atl_iyh_state == 6) then
 
            if (atl_iof_learr_dead) then
 
                pon("take_aikerjarr");
 
            else
 
                pon("take_learr");
 
            end;
 
        end;
 
        
 
        if (s.state == 0) then
 
            s.state = 1;
 
            psub("first_meeting");
 
            return [[Перед вами стоит навьяр. Серо-зеленая чешуя, несколько более темная, чем у Леарр блестит в свете электрических ламп. Красно-оранжевые глаза внимательно смотрят на вас. Он одет в темно-зеленые облегающие шорты и куртку из водорослей. Навьяр приветствует вас: "Ривеерр-из-Дипатреанотра рад-видеть тебя". ]];
 
        elseif (atl_iof_completed and char_ryveerr.iof_reaction == 0) then
 
            char_ryveerr.iof_reaction = 1;
 
            if (atl_iof_learr_dead) then
 
                psub("iof_learr_dead");
 
                return [[Плавники Ривеерра окрашиваются синим. Он произносит: "Хевьяр-ты не-помог Леарр". ]];
 
            elseif (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Ривеерр благодарит вас: "Дрейк-ты хорошо-придумал. Я рад, что Леарр-из-Ираафаанотра жива". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Ривеерр сообщает: "Я рад, что никто-в-Игнисе-не-умер". ]];
 
            end;
 
        else
 
            psub("generic");
 
            if (s.state == 1) then
 
                if (atl_iyh_state == 4) then
 
                    psub("situation");
 
                end;
 
            elseif (s.state == 2) then
 
                psub("legend2");
 
            end;
 
            return [[Ривеерр оборачивается к вам: "Ты говори". ]];
 
        end;      
 
	end;
 
	phr = {
 
        {tag="first_meeting"};
 
        {"Мое имя Дэвид Дрейк. Рад знакомству.", [[Плавники Ривеерра окрашиваются в зеленый: "Ты-Уильяма-сын". ]], code[[psub("first_meeting_2");]]};
 
        {"Мое имя Дэвид Дрейк.", [[Плавники Ривеерра окрашиваются в зеленый: "Ты-Уильяма-сын". ]], code[[psub("first_meeting_2");]]};
 
        {tag="first_meeting_2"};
 
        {"Да, все верно.", [[Ривеерр: "Я рад-помочь тебе. Ты говори". ]], code [[psub("generic");]]};
 
        {"Я хотел кое-что спросить. ", [[Ривеерр: "Ты говори". ]], code [[psub("generic");]]};
 
        {tag="iof_learr_dead"};
 
        {"Я сделал все, что мог.", [[Ривеерр кивает: "Мне жаль, что ты-помочь-Леарр-не-смог". Через некоторое время он приглашает: "Ты говори". ]], code [[ psub("generic"); ]]};
 
        {"Я пришел говорить о другом. ", [[Ривеерр отворачивается от вас. ]], code [[
 
            back();
 
        ]]};
 
        {tag="iof_learr_suit"};
 
        {"Я сделал то, что был должен.", [[Ривеерр кивает и приглашает вас: "Ты говори". ]], code [[psub("generic");]]};
 
        {tag="iof_learr"};
 
        {"Я тоже. ", [[Ривеерр кивает и приглашает вас: "Ты говори". ]], code [[psub("generic");]]};
 
		{tag="generic"};
 
		{tag="iyh1", false, "Расскажи о конфликте Ираафаанотра с Дипатреанотром.", [[Ривеерр рассказывает вам: "Na'vji'a'yhe'iraa'pha’anot’rr нашу-реликвию-украли. Мы тем-же-ответили им". ]], code [[ atl_iyh_ryveerr_spoken = true; psub("more_on_relic"); ]]};
 
        {tag="iyh2", false, "Я собираюсь в храм Дипатреанотра.", [[Плавники на голове Ривеерра меняют цвет на сине-фиолетовый: "Ты туда-не-идешь". ]], code [[ atl_iyh2_ryveerr_spoken = true; psub("on_iyh2"); ]]};      
 
        {tag="sabotage", [[Ты знаешь, что пожар начался из-за саботажа?]], function(s)
 
            if (atl_iof_learr_dead) then
 
                return [[Ривеерр недовольно отвечает: "Это-не-значимо. Значимо, что Леарр мертва". ]];
 
            else
 
                return [[Ривеерр спокойно отвечает: "Ты со-мной-про-это-не-говори. Это-ваши-дела. Я не-хочу-ими-заниматься". ]];
 
            end;
 
        end};
 
        {tag="ignis_what", "Ты знаешь, почему начался пожар в Игнисе?", function(s)
 
            if (atl_iof_learr_dead) then
 
                return [[Ривеерр недовольно отвечает: "Это-не-значимо. Значимо, что Леарр мертва". ]];
 
            else
 
                return [[Ривеерр спокойно отвечает: "Ты со-мной-про-это-не-говори. Это-ваши-дела. Я не-хочу-ими-заниматься". ]];
 
            end;
 
        end};
 
        {tag="more_questions", always=true, "Я хочу кое-что спросить.", [[Ривеерр кивает: "Ты спрашивай". ]], code [[ psub("ask_more"); ]]};
 
        {always=true, "Я пойду.", [[Ривеерр прощается с вами: "Мы позже-поговорим". ]], code [[ back(); ]]};
 
        {tag="ask_more"};
 
        {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.atlantis_asked = 1;
 
                return [[Ривеерр отвечает: "Хевьяры-с-Атлантиды уже-помогли-нам-немало. Я надеюсь-на-продолжение-плодотворного-сотрудничества". ]];
 
            else
 
                char_ryveerr.atlantis_asked = 2;
 
                return [[Ривеерр отвечает: "Хевьяры-с-Атлантиды уже-помогли-нам-немало. Я надеюсь-на-продолжение-плодотворного-сотрудничества. Я продолжаю-доказывать-пользу-нашего-с-вами-хевьярами-общения и многие-в-Дипатреанотре уже-согласны-со-мной. Если план-Дрейка успешен-будет, то наша-благодарность будет-неизмерима. Хевьяры наследие-древних-ищут, как легенды гласят". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", "Что ты думаешь об Аикерьярре?", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.aikerjarr_asked = 1;
 
                return [[Ривеерр отказывается отвечать:"Я не-говорю-с-тобой-об-этом". ]];
 
            else
 
                char_ryveerr.aikerjarr_asked = 2;
 
                return [[Плавники Ривеерра окрашиваются фиолетовым и он отвечает: "Этот все-сделает-нас-из-себя-вывести. Я считаю-он-войны-хочет-с-Атлантидой. Я не-хочу-этого, но в-Дипатреанотре-некоторые хотят. Я не-знаю-что-получится". ]];
 
            end;
 
        end};
 
        {tag="on_ryveerr", "Расскажи о себе.", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.ryveerr_asked = 1;
 
                return [[Ривеерр отказывается отвечать:"Я не-говорю-с-тобой-об-этом". ]];
 
            else
 
                char_ryveerr.ryveerr_asked = 2;
 
                return [[Плавники Ривеерра окрашиваются синим и он отвечает: "Я-Дипатреанотра-посол. Я желаю-с-хевьярами-долгого-и-плодотворного-сотрудничества. Мое-мнение большинство-в-Дипатреанотре-разделяют, поэтому я здесь". ]];
 
            end;
 
        end};
 
        {tag="on_learr", "Что ты думаешь о Леарр?", function(s)
 
            if (atl_rep_dyp < 0) then
 
                char_ryveerr.learr_asked = 1;
 
                return [[Ривеерр отказывается отвечать:"Я не-говорю-с-тобой-об-этом". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_ryveerr.learr_asked = 3;
 
                    return [[Плавники Ривеерра окрашиваются голубым и он отвечает: "Я понимаю ее-гибель-насчастный-случай, но ситуацию-легче-не-делает. Дипатреанотр-мы одну-из-немногих-друзей-в-Ираафаанотре-потеряли". ]];
 
                else
 
                    char_ryveerr.learr_asked = 2;
 
                    return [[Плавники Ривеерра окрашиваются зеленым и он отвечает: "Леарр из Ираафаанотра. Мы часто-разногласия с-ними, но с-Леарр всегда-понимание-находим. Это с-Ираафаанотр-отношениям-помогает и хорошо-есть. Я что-она-на-Атлантиде-рад и друг-с-другом-и-с-вами-что-мы-можем общаться-постоянно. Это с-вами-нашим-отношениям-помогает и тоже-хорошо-есть". ]];
 
                end;
 
            end;
 
        end};
 
        {always=true, "Давай поговорим о другом.", [[Ривеерр кивает: "Ты говори". ]], code [[ char_ryveerr_dlg:reset_more(); pret(); ]]};
 
		{tag="more_on_relic"};
 
		{"Тем же?", [[Ривеерр щелкает зубами: "Мы светодиск-из-их-храма-забрали. Мы вернем его, ysl они вернут нашу-реликвию". ]]};
 
		{"Вы уверены, что кража -- их рук дело?", [[Ривеерр уверенно кивает: "Только-они могли сделать. Я расскажу", -- Ривеерр на небольшое время замолкает, собираясь с мыслями, после чего продолжает: "Na'vji'a'yhe'iraa'pha’anot’rr ночью-в-наш-храм-пришли и охранников-убили. Они реликвию-украли и в-свой-город-унесли". ]], code [[ psub("why"); ]]};
 
		{tag="why", empty=code [[ atl_iyh_ryveerr_spoken = true; psub("generic"); ]]};
 
		{"Вы уверены, что это они?", [[Ривеерр отвечает: "Другой-никто не-мог-сделать". ]]};
 
        {"Как убили охранников?", [[Ривеерр отвечает: "Их копьями-проткнули. Мы раны-видели". ]]};
 
		{tag="situation"};
 
		{"Мы знаем об одном древнем храме неподалеку отсюда.", [[Ривеерр пожимает плечами: "Я не-понимаю, hyd это поможет нам". ]], code [[ psub("cancel");]]};
 
		{always=true, "Я пойду.", [[Ривеерр прощается с вами: "Мы позже-поговорим". ]], code [[ back(); ]]};
 
		{tag="legend"};
 
		{"Мы знаем где ваша реликвия. Мы знаем об одном древнем храме, где живет затмевающий свет. [Кратко пересказать легенду]", [[
 
			"Я знаю эту-легенду. Вы возможно-правы. В-храм вам-нельзя-идти. Это наше-священное-место. he'vji'a'rr не-место-там. Затмевающий-свет не-враг-нам. Его нельзя-тревожить".
 
		]], code [[ psub("legend_more")]]};
 
		{always=true, "Я пойду.", [[Ривеерр прощается с вами: "Мы позже-поговорим". ]], code [[ back(); ]]};
 
		{tag="legend_more"};
 
		{"Вы могли бы сопровождать нас. ", [[Ривеерр отвечает: "В-храм нельзя-вам". ]], code [[ 
 
			char_ryveerr_dlg.state = 2;
 
		]]};
 
		{always=true, "Я вернусь позже", [[Ривеерр прощается с вами: "Мы поззжже-поговоррим". ]], code [[ back(); ]]};
 
		{tag="legend2"};
 
		{tag="take_learr", false, "Леарр согласилась сопровождать нас в храм. ", [["Леарр'yhe'iraa’pha’anot’rr. Не-уверен-я что-могу-доверять-ей. Я подумать-должен", -- Некоторое время Ривеерр стоит неподвижно, задумавшись. Наконец, скрестив руки на груди, Ривеерр продолжает: "Я согласен". ]], code [[ atl_iyh_state = 6; back(); ]]};
 
		{tag="take_aikerjarr", false, "Аикерьярр согласился сопровождать нас в храм", [["Аикерьярр'yhe'iraa’pha’anot’rr. Не-уверен-я что-могу-доверять-ему. Я подумать-должен", -- Некоторое время Ривеерр стоит неподвижно, задумавшись. Наконец, скрестив руки на груди, Ривеерр продолжает: "Я согласен". ]], code [[ atl_iyh_state = 6; back(); ]]};
 
		{always=true, "Я вернусь позже", [[Ривеерр прощается с вами: "Мы поззжже-поговоррим". ]], code [[ back(); ]]};
 
        {tag="on_iyh2"};
 
        {"Я не собираюсь внутрь храма, мне нужно лишь осмотреть окрестности.", [[Ривеерр кивает: "Я это-разрешу. Ты иди". ]], code [[ pret(); ]]};
 
        {tag="learr_comes", "Со мной отправится Леарр.", [[Ривеерр отвечает: "Ты туда-не-идешь. He'vji'a'rr нельзя-в-храм". ]]};
 
	};
 
};
 
 
char_evans_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Кристиан Эванс";
 
	disp = "Кристиан Эванс";
 
	enter = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Немолодой мужчина внимательно смотрит на вас через стекла старых очков. Он приветствует вас: "Добро пожаловать на нашу станцию. Я Кристиан Эванс, занимаюсь языком навьяров". ]];
 
		else
 
			psub("generic");
 
			return [[Кристиан Эванс приветствует вас: "Добрый день". ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк, очень приятно.", [[Кристиан улыбается и отвечает: "Очень рад вас видеть. У вас есть вопросы? Я слушаю". ]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
        {"Что вы можете рассказать о Леарр?", function(s)
 
            if (iof_learr_dead) then
 
                return [[Кристиан отвечает: "Пусть покоится с миром. не думаю, что ее кто-то сможет заменить -- она одна такая была, наверное, среди всех навьяров". ]];
 
            else
 
                return [[Кристиан отвечает: "С ней приятно иметь дело. Мы многое узнали о навьярах только благодаря ее открытости и желанию общаться с нами. Хотя Ривеерр тоже довольно дружелюбен, он чрезмерно осторожен при общении с нами. Леарр и сама интересуется нами и нашими достижениями -- большую часть времени она проводит в библиотеке и в Игнисе, читая наши книги и газеты и просматривая наши фото- и видеоархивы". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы можете сказать об Аикерьярре?", [[Кристиан чешет подбородок: "Не знаю, почему Ираафаанотр отправил на Атлантиду этого... Наверное, было бы проще, не будь на Атлантиде вообще никого из Ираафаанотра. И безопаснее для наших отношений тоже. Этот... Да он словно намеренно пытается вывести тут всех из себя".]]};
 
        {"Что вы можете сказать об Ривеерре?", [[Кристиан задумчиво: "Из жителей Дипатреанотра, Ривеерр, наверное, лучше всех относится к нам. При том, что он достаточно отстранен, чувствуется, что он готов вкладывать силы в улучшение отношений между нами всеми -- Дипатреанотром, Атлантидой и Ираафаанотром". ]]};
 
        {"Что вы можете сказать о навьярах?", [[Кристиан отвечает: "Поразительные существа. Конечно, мы первый раз сталкиваемся с подобным и толком не знаем как себя вести и как стоит их изучать, но, как мне кажется, мы многого достигли -- мы знаем их язык, имеет доступ к их текстам и общаемся с их представителями практически на равных. Вообще, мы поразительно легко наладили с ними контакт -- они не стали воспринимать нас ни как богов, ни как дьяволов, как это случается с племенами людей в далеких от цивилизации местах. Они однозначно не так просты, как кажется, но мы пока не знаем в чем причина этого".]]};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе -- результат саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			return [[Кристиан недовольно ворчит: "Если это так, то надо не на каждом углу кричать, а предоставить сведения Даркстару или Моро. Они найдут, как решить проблему". ]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[Кристиан пожимает плечами: "Об этом вам лучше узнать у Райта или Даркстара. Я мало что знаю". ]]};
 
		{always=true, "Я пойду.", [[Кристиан прощается с вами: "До встречи". ]], code [[ back(); ]]};
 
	};
 
};
 
 
char_winterlight_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Сильвия Уинтерлайт";
 
	disp = "Сильвия Уинтерлайт";
 
	enter = function(s)
 
		if (atl_iyh_state == 4) then
 
			pon("legend");
 
		end;
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		if (s.state == 0) then
 
			psub("first_meeting");
 
            s.state = 1;
 
			return [[Женщина лет тридцати-пяти--сорока с длинными темными волосами стоит, склонившись над картой и внимательно изучает ее. Увидев вас, она отвлекается от карты и проницательный взгляд ее серых глаз устремляется на вас. Она спрашивает: "Господин Дрейк? Я уже осведомлена о вашем прибытии, как видите. Мое имя Сильвия Уинтерлайт. Я химик и биолог на станции. По-крайней мере официально. На самом деле занимаюсь чем придется". ]];
 
		else
 
			psub("generic");
 
			return [[Сильвия отрывает взгляд от карты: "Приветствую, что вы хотели?" ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
        {"Рад знакомству. Я хотел бы кое-что спросить.", [[Сильвия улыбается и кивает: "Конечно, господин Дрейк, я слушаю". ]], code [[ psub("generic"); ]]};
 
		{"Рад знакомству. Я чем-то могу быть полезен?", [[Сильвия улыбается и отвечает: "Вам лучше поговорить с госпожой Светловой, у нее наверняка найдется поручение для вас". ]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
        {"Расскажите об Атлантиде,", [[Сильвия отвечает: "Я тут могу долго рассказывать -- мы с господином Райтом многое придумывали вместе -- в частности, системы подачи кислорода, я же помогала в разработке Аэриса. Аэрис, если говорить открыто, крайне значительное достижение -- мы сумели адаптировать некоторые виды растений с поверхности к условиям станции. Конечно, пришлось потрудиться -- очень много энергии уходит на освещение и обогрев секции, но и результат себя оправдывает -- думаю, нам быстро надоело бы питаться одними морепродуктами, а так у нас есть практически все, что может предложить поверхность. Ну, кроме мяса", -- она улыбается, -- "Также мы выращиваем там несколько видов водорослей -- некоторые производят кислород, другие идут в пищу, третьи отправляются прямиком в печь".]]};
 
        {"Расскажите о себе.", [[Сильвия усмехается: "Не думаю, что тут есть что-то интересное, но слушайте -- я едва закончила университет и была в поисках работы, когда встретилась с госпожой Светловой. Уж не знаю, что привлекло ее во мне, но она предложила мне работу. Я сперва удивилась -- с чего транспортной компании нанимать таких видных ученых, как она? Да и зачем там такие, как я? Когда господин Дрейк рассказал о своем открытии, я загорелась идеей обустроить автономную подводную станцию -- чтобы иметь возможность находиться ближе к навьярам и изучать их. Изначально планы не были столь грандиозны, но благодаря нашим с господином Райтом успехам мы смогли построить Атлантиду такой, какой вы ее видите. Тогда же я впервые встретила живого навьяра. Нет, госпожа Светлова рассказывала мне про них и даже показывала фотографии и рисунки, но увидеть их вживую ни с чем не сравнимо. И еще более странно, когда такое существо тебя приветствует на твоем языке". ]]};
 
        {tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", function(s)
 
            atl_lfc_panic = atl_lfc_panic + 1;
 
            atl_rep_darkstar = atl_rep_darkstar - 1;
 
            if (atl_lfc_panic <= 2) then
 
                return [[Сильвия Уинтерлайт пожимает плечами: "Не поверю, чтобы кто-то это мог сделать". ]];
 
            elseif (atl_lfc_panic == 3) then
 
                return [[Сильвия Уинтерлайт удивленно смотрит на вас: "Вы не первый кто так говорит. Но кто это мог сделать?" ]];
 
            end;
 
        end;};
 
        {tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
            "Крайней мало. Вам лучше поговорить с Райтом или Даркстаром".
 
        ]]};
 
		{always=true, "Я пойду.", [[Сильвия молча кивает и возвращается к своим делам. ]], code [[ back(); ]]};
 
		{tag="which_legend"};
 
		--TODO добавить несколько легенд
 
		{"Что-нибудь связанное с храмами и реликвиями", [[
 
			Сильвия задуиывается: _"Храмы, реликвии и скаты... Да, есть кое-что", -- она откидивыет волосы назад и продолжает: "Согласно этой легенде, хранителей одного из святилищ навьяров был могучий затмевающий свет по имени Излучающий Тьму. Это было в те времена, когда навьяры и затмевающие свет были связаны узами дружбы. Излучающий тьму был мудрым хранителем -- он не только принимал священные реликвии на сохранение, но и многое знал о них -- об их предназначении и истинной ценности. Однажды Излучающий Тьму узнает о необычнайно ценной реликвии, хранящейся в одном из городов и скрывающей в себе древние знания навьяров. Узнает он и о том, что живущие навьяры не в силах прочитать. Тогда он прибыл в город, чтобы просить навьяров отдать ему реликвию на сохранение. Но навьяры отказывают ему. Вернувшись в святилище, Излучающий Тьму придумал план. Ночью он пробрался в город и выкрал реликвию. Когда наутро навьяры обнаружили пропажу, они направились к Излучающему Тьму с требованием вернуть им реликвию. На это могучий затмевающий свет спросил их: ,,Знаете ли вы, что скрывает этот предмет?''^ -- кстати, в некоторых переводах я встречала слово ,,светодиск'', как описание реликвии. 
 
			,,Знания наших предков'', -- ответили навьяры. Излучающий Тьму продолжил: ,,Можете ли вы прочитать его?''^
 
			,,Нет'', -- сказали навьяры. Тогда Излучающий Тьму рассказал им легенду о храме в глубинах, которую он прочитал из данной реликвии(Нам, кстати, так и не довелось получить хоть какой-либо целостный текст этой легенды), и сказал им: ,,Можете приходить сюда когда захотите и я расскажу вам то, что вы захотите знать. Но только, если реликвия ваша остается у меня''. Навьяры поняли, что если заберут реликвию, то навсегда утратят древние знания и согласились". 
 
		]], code [[ psub("more_on_legend"); ]]};
 
		{tag="more_on_legend"};
 
		{"Светодиск?", [[
 
			"Мы плохо понимаем, для чего они служат. У Светловой один такой был. Блестящий диск -- сантиметров 10 в диаметре. Правда вот как их ,,читать''... В привычном понимании, по крайней мере, мы не понимаем. Если рассматривать их под микроскопом -- там весьма характерный рисунок проступает. Почему светодиск? Мы не знаем -- навьяры сами их так называют".
 
		]]};
 
		{"Что за легенда о храме в глубинах?", [[
 
			"Мы только приблизительно знаем о ней -- она постоянно упоминается в контексте других легенд и у нас есть фрагменты, которые нам рассказывали навьяры. Когда-то давно навьяры построили храм где-то в ущелье, но по какой-то причине были вынуждены покинуть его". 
 
		]]};
 
		{"Спасибо, я пойду.", [["До встречи. Если захотите еще древних сказаний послушать -- приходите". ]], code [[ atl_iyh_state = 5; psub('back'); ]]};
 
	};
 
};
 
 
char_jack_wright_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
        lfc_dialog = 0;
 
	};
 
	nam = 'char_jack_wright_atlantis_dlg';
 
	disp = "Джек Райт";
 
	enter = function(s)
 
        if (rel_jack < 0) then
 
            if (char_wright.on_learr == 0) then pon("on_learr"); end;
 
            if (char_wright.on_leviathan == 0) then pon("on_leviathan"); end;
 
            if (char_wright.on_jack == 0) then pon("on_jack"); end;
 
        else
 
            if (char_wright.on_learr < 2) then pon("on_learr"); end;
 
            if (char_wright.on_leviathan < 2) then pon("on_leviathan"); end;
 
            if (char_wright.on_jack < 2) then pon("on_jack"); end;
 
        end;
 
    
 
        if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
            s.lfc_dialog = true;
 
            pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
        end;
 
 
		if (s.state == 0) then
 
			psub("business_or_no");
 
			return [[Джек отворачивается от Леарр, и обращается к вам: "Привет, ты по делу или просто так?" ]];
 
        elseif (atl_iof_completed and char_wright.iof_reaction == 0) then
 
            if (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Джек откладывает книгу и встает с койки и обращается к вам: "Добрый день. Отличная идея, заставить Леарр надеть скафандр. Не знаю, как она справилась бы без него". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Джек откладывает книгу и встает с койки и обращается к вам: "Добрый день. Рад тебя видеть. Не знаешь, как дела у Леарр?" ]];
 
            end;
 
        else
 
            psub("generic");
 
            return [[Джек откладывает книгу и встает с койки и обращается к вам: "Добрый день. Тебе что-то нужно?"]];
 
		end;
 
	end;
 
	phr = {
 
        {tag="iof_learr_suit"};
 
        {"Я рад, что все хорошо закончилось и никто не пострадал. ", [[Джек кивает: "У тебя есть какие-то вопросы?"]], code [[ psub("generic");]]};
 
        {tag="iof_learr"};
 
        {"Леарр в порядке, благодаря твоей помощи. ", [[Джек кивает: "Рад это слышать. У тебя есть какие-то вопросы?"]], code [[ psub("generic");]]};
 
        {"Я еще не говорил с ней. ", [[Джек кивает: "Надеюсь, с ней все хорошо. Тебе что-то нужно?"]], code [[ psub("generic"); ]]};
 
		{tag = "business_or_no"};
 
		{"Как тебе станция?", [[Джек не скрывая восхищения восклицает: "Невероятно! Трудно поверить в возможность такого -- полностью автономное подводное поселение. Я никогда на сомневался в таланте отца, но это выше всех моих ожиданий". ]]};
 
		{always = "true", "Я пришел поговорить с Леарр. ", function(s)
 
			if (char_learr_atlantis.offended) then
 
				return [[Джек ухмыльнулся: "Удачи, я подожду в главном зале", -- с этими словами, Джек выходит из зала. ]];
 
			else
 
				return [["Надеюсь, я вам не помешаю? В любом случае, я подожду в главном зале", -- с этими словами, Джек выходит из зала. ]];
 
			end;
 
		end, code [[ 
 
			remove('char_jack_wright_atlantis', 'atl_ignis_hall_a');
 
			back(); 
 
		]]};
 
        {tag="generic"};
 
        {tag="sabotage", "Ты знаешь, что пожар начался из-за саботажа?", [[Джек кивает: "Да, Даркстар сказал мне это. Он просил меня никому не говорить об этом и не вмешиваться в расследование. Я думаю, все подозреваемые, которых он назвал так или иначе связаны. Не случайно, все трое выступают в пользу закрытия станции. Надеюсь, Даркстар сообщит о результах расследования". ]], code [[poff("ignis_what");]]};
 
        {tag="ignis_what", "Ты знаешь, почему начался пожар в Игнисе?", [[Джек кивает: "Да, Даркстар сказал, что на станции саботажник. Он назвал нескольких подозреваемых, но просил никому не говорить. Он с тобой говорил об этом?"]], code [[poff("sabotage");psub("ignis");]]};
 
        {always=true, "Я хочу кое-что спросить.", [[Джек вопросительно смотрит на вас: "Я слушаю". ]], code [[ psub("more_questions"); ]]};
 
        {always=true, "Я пойду.", [[Джек прощается с вами: "До встречи", -- после  чего возвращается к своему занятию. ]]};
 
        {tag = "more_questions"};
 
        {tag="on_learr", "Что ты думаешь о Леарр?", function()
 
            if (rel_jack < 0) then
 
                char_wright.on_learr = 1;
 
                return [[Джек отказывается отвечать: "Не хочу это обсуждать".]];
 
            else
 
                char_wright.on_learr = 2;
 
                return [[Джек отвечает: "Я не так много с ней общался, однако, она производит приятное впечатление. Там в Игнисе она спрашивала меня про Атлантиду и Левиафан достаточно интересные вещи. Мне кажется, из нее бы вышел неплохой инженер".]];
 
            end;
 
        end};
 
        {tag="on_leviathan", "Как впечатления от Левиафана?", function()
 
            if (rel_jack < 0) then
 
                char_wright.on_leviathan = 1;
 
                return [[Джек отвечает: "Левиафан, без сомнения, превосходный корабль. Жаль, что ему не нашлось лучшего капитана". ]];
 
            else
 
                char_wright.on_leviathan = 2;
 
                return [[Джек не скрывает своего восхищения: "Никогда не видел ничего подобного. Неудивительно, что отец оставил жизнь на поверхности в пользу возможности создавать подобное здесь. Пока мы были в пути, я подробно изучил субмарину. Многие решения до сих пор кажутся мне невероятными, например, использование электричества в качестве движущей силы или звуковая пушка. Я уже успел обсудить с отцом детали диагностических цепей. Это совершенно непостижимо, чтобы машина сама сообщала, что с ней что-то не так. И все это в одном месте". ]];
 
            end;
 
        end};
 
        {tag="on_jack", "Чем ты занимался все это время?", function()
 
            if (rel_jack < 0) then
 
                return [[Джек отказывается отвечать: "Не хочу это обсуждать".]];
 
            else
 
                return [[Джек отвечает: "Да, в общем-то, ничем. Отец оставил нам с матерью достаточно денег, чтобы мы могли ни в чем не нуждаться. Мать оплатила мое образование в том же университете, где учился отец. Получив диплом с отличием, я просто поставил его на полку. Не нашел дела по душе, да и необходимости не было. Позже, когда мать умерла, я вообще практически прекратил связи с внешним миром. Думаю, что хоть я и бросил идею найти отца, я все-таки продолжал надеяться -- практически все время я посвящал чтению газет со всех уголков света, в поисках известий о случившемся с Вестхейвен Трансоушен. Впрочем, как только первоначальный ажиотаж спал, никто толком и не писал о случившемся. "]];
 
            end;
 
        end};
 
        {"Вернемся к делу", [[Джек молча кивает. ]], code [[ pret(); ]]};
 
        {tag = "ignis"};
 
        {"Да.", [[Джек кивает: "Тогда ты и без меня все знаешь. Я думаю, все трое подозреваемых замешаны, но не хочу лезть в это дело". ]], code [[ pret(); ]]};
 
        {"Нет.", [[Джек на мгновение задумался. Потом снова заговорил: "Я не должен тебе этого говорить, наверное. Но все же. Даркстар подозревает Голдмана, Леруа и Джонса -- они все трое, вроде как, достаточно знают об устройстве станции и, опять же, все трое активно выступают за закрытие станции и возвращение на поверхность. От себя скажу, что не удивлюсь, если все трое в сговоре, но не буду судить поспешно". ]], code [[ pret(); ]]};
 
	};
 
};
 
 
char_legrand_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Мари Легран";
 
	disp = "Мари Легран";
 
	enter = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
 
        poff("tube_spec");
 
        if (atl_nih_state == 1 and not have(atl_item_tube_spec)) then
 
            pon("tube_spec");
 
        end;
 
        
 
		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("first_meeting_3"); ]]};
 
		{tag="first_meeting_3"};
 
		{"Это долгая история.", [[Мари Легран кивает: "Хорошо, тогда в другой раз".]], [[ psub("generic") ]]};
 
		{"Я нашел тайник отца со старыми схемами. Пришлось побегать, чтобы восстановить субмарину. Я чудом собрал все необходимое.", [[Мари Легран удивленно смотрит на вас: "Поразительно. Скорее всего Уильям хотел, чтобы вы нашли Левиафан. Жаль, что вы прибыли слишком поздно. Когда он узнал про этот древний город, он собрал несколько помощников и отправился на Надежде на его поиски". ]], code [[ pon("father_more", "ancient_city");psub("generic"); ]]};
 
		{tag="generic"};
 
        {tag="tube_spec", false, "Мне нужна документация по системам воздуховодов.", [[Мари Легран удивленно спрашивает: "Райт просил? Удачи в изучении", -- и кладет на стол перед вами толстую книжицу. ]], code [[ take(atl_item_tube_spec); ]]};
 
		{tag="father_more", false, "Кто отправился вместе с моим отцом?", [[Мари Легран отвечает: "Немногие. Они вообще хотел отправиться вдвоем с Блэком, но Блэк уговорил Уильяма взять Джона Брауна и Антонио Гарсия". ]], code [[psub("more_people");]]};
 
        {tag="ancient_city", false, "Какой еще город?", [[Мари Легран отвечает: "Да, вы же не в курсе. Лсэрианотр, или как-то так. Древний навьярский город по легенде скрывает какое-то древнее знание, которое, как и всегда в легендах, сторожит непобедимое чудовище. Дрейк и Блэк, вроде как, сумели найти какие-то карты, якобы указывающие путь к этому городу". ]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе начался из-за саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic <= 2) then
 
				return [[Мари Легран удивленно смотрит на вас: "Откуда вы знаете? Кому такое в голову придти может?"]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[Мари Легран удивленно смотрит на вас: "Вы понимаете, что говорите? Кому такое в голову придти может?"]];
 
			end;
 
		end};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[Мари Легран пожимает плечами: "Поговорите лучше с Даркстаром или Райтом".]]};
 
		{always=true, "Я пойду.", [[Мари Легран возвращается к книге, прощаясь с вами: "Приходите еще".]], code [[ back(); ]]};
 
		{tag="more_people"};
 
		{"Расскажите больше об Адриане Блэке.", [[Мари Легран рассказывает: "Блэк -- заместитель Дрейка. По-крайней мере, официально он занимал именно эту должность. По факту, он был близким другом вашего отца и компанией они управляли вместе". ]]};
 
		{"Расскажите больше о Джоне Брауне.", [[Мари Легран рассказывает: "У Джона золотые руки, наверное, именно поэтому Дрейк взял в экспедицию именно его". ]]};
 
		{"Расскажите больше о Антонио Гарсии.", [[Мари Легран рассказывает: "Талантливый молодой человек. Он хорошо знает язык навьяров и много с ними общался". ]]};
 
		{"Поговорим в другой раз.", [[Мари Легран кивает: "Хорошо".]], code [[pret();]]};
 
	};
 
};
 
 
char_radcliffe_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	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();
 
    
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		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="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, "Вы, как инженер, можете рассказать, что произошло в Игнисе?", [[
 
			"Пожар. Вам что-то еще известно?"
 
		]]};
 
		{"Я пойду.", [[
 
			"До встречи", -- Уолтер отворачивается от вас и возвращается к своим делам.
 
		]], code [[ back();]]};
 
	};
 
};
 
 
char_page_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Фрэнсис Пейдж";
 
	disp = "Фрэнсис Пейдж";
 
	enter = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
 
		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"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе -- следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			return [[Фрэнсис от удивления роняет карандаш, но быстро собирается и отвечает: "Оставьте это Даркстару. Если саботаж имел место быть, Винсент найдет виновного. Я передам ему ваши слова". ]];
 
		end;};
 
		{tag="ignis_what", false, "Что произошло в Игнисе?", [[Фрэнсис пожимает плечами: "Меня там не было. Не берусь говорить".]]};
 
        {"Что вы можете рассказать об Атлантиде?", [[Фрэнсис пожимает плечами: "Если честно, вам лучше расспросить кого-нибудь из управляющих, а лучше всего -- Майкла Райта. Все что я могу сказать -- я до сих пор поражаюсь успеху этого невероятного проекта". ]]};
 
        {"Что вы можете рассказать о Наутилусе?", [[Френсис кивает: "Когда мы создавали Наутилус, я уже работал в Вестхейвен Трансоушен. Атлантида тогда существовала, но была далеко от того, что вы видите. Мы тогда просто строили вторую Надежду. Нам не нужна была высокая автономность, но мы хотели большую маневренность и мощность -- собственно на этом мы и сконцентрировались. Получилось то, что получилось -- рабочая лошадка, которой мы пользуемся по сей день". ]]};
 
        {"Что вы можете рассказать об Энтерпрайзе?", [[Френсис кивает: "Энтерпрайз мы начали когда захотели судно побольше. Опыта и знаний нам хватило только на пропорциональное увеличение размеров и немного более мощный двигатель. Райт наверное сказал бы, что получилось из рук вон плохо, но, на мой взгляд, Энтерпрайз вполне неплох, да и с честью служит нам до сих пор". ]]};
 
        {"Что вы можете рассказать о Надежде?", [[Фрэнсис кивает: "Надежда была первой субмариной, построенной нами. Я в этом участия не принимал, так что многие конструктивные решения меня удивляют. Впрочем, более поздние субмарины спроектированы гораздо грамотнее, да и после переоборудования многое удалось решить". ]]};
 
        {"Что вы можете рассказать о Левиафане?", [[Френсис отвечает: "С первого взгляда ясно, что Левиафан не имеет практически ничего общего с Надеждой, Наутилусом и даже Энтерпрайзом. Интересно, что Левиафан строился с оглядкой на высокую автономность -- так же, как и Надежда. За это, конечно, пришлось многим поплатиться -- Левиафан большой и неповоротливый в сравнении с Надеждой". ]]};
 
		{always=true, "Я пойду.", [[Фрэнсис Пейдж прощается с вами: "Увидимся позже". ]], code [[ back(); ]]};
 
	};
 
};
 
 
char_leroy_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Мишель Леруа";
 
	disp = "Мишель Леруа";
 
	enter = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		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'); ]]};
 
		{"Рад знакомству.", [[Мишель кладет руку обратно на стол и спрашивает: "Что вы хотели?" ]], code [[ psub('generic'); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе начался из-за саботажа?", [[Мишель удивленно переспрашивает: "Кто вам это сказал? не думаю, что здесь есть люди настолько не ценящие свою жизнь". ]], code [[ atl_lfc_leroy_spoken = 1; ]]};
 
		{tag="ignis_what", false,"Что вы можете сказать о произошедшем в Игнисе?", [[
 
			Мишель уверенно отвечает: "Короткое замыкание. К сожалению, пленки и другие материалы, хранимые в Игнисе достаточно горючи". ]]};
 
        {"Почему вы считаете, что станцию необходимо закрыть?", [[Мишель начинает объяснять, активно жестикулируя: "Вы недавно здесь, и для вас это должно быть гораздо более очевидно, чем для многих из нас. Легко представить, к чему здесь может привести самая мелкая поломка. А эти самонадеянные люди, в лице Дрейка, Блэка, Светловой, Моро, Райта и даже Даркстара не видят дальше собственного носа! Что произойдет, если Доминус даст течь? Мы просто останемся погребенными под тоннами соленой воды и никакие меры предосторожности не помогут. Одно дело -- кратковременные экспедиции и совсем другое -- полное переселение сюда". ]]};
 
		{always=true, "Я пойду.", [[Мишель возвращается к чертежу. ]], code [[ back(); ]]};
 
	};
 
};
 
 
char_goldman_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Леонард Голдман";
 
	disp = "Леонард Голдман";
 
	enter = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
        poff('show_clock');
 
		if (have(item_goldmans_clock)) then
 
			pon('show_clock');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[Перед вами на койке лежит человек лет пятидесяти с густыми светлые волосы. Лицо украшают пышные золотистые усы. Мужчина приветствует вас: "Добро пожаловать на Атлантиду. Я Леонард Голдман. Занимаюсь электросистемами станции". ]];
 
		else
 
			psub("generic");
 
			return [[Леонард Голдман вопросительно смотрит на вас: "Что вы хотели?" ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк. Рад знакомству. ", [[Леонард кивает, но ничего не говорит. ]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="show_clock", false, "[Показать часы]Это ваше?", [[Голдман протягивает руку, чтобы взять часы и удивленно спрашивает: "Мои. Где вы их взяли?" ]], code [[ atl_lfc_goldman_known = true; psub("give_clock"); ]]};
 
		{tag="show_clock", false, "[Показать часы] Это ваше?", [[Голдман протягивает руку, чтобы взять часы и удивленно спрашивает: "Мои. Где вы их взяли?" ]], code [[ atl_lfc_goldman_known = true; psub("give_clock"); ]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", [[Вы видите удивление и страх на лице Голдмана. Он неуверенно спрашивает: "С чего вы взяли?" ]], code [[ psub("sabotage2"); atl_lfc_leroy_spoken = 1; ]]};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[Голдман пожимает плечами: "Не больше чем вы". ]]};
 
        {"Почему вы считаете, что станцию стоит закрыть?", [[Голдман объясняет: "Мы уже десять лет здесь. Не видели ни солнца, ни неба, ни травы. Только металлический потолок и километры воды над головой. Мне кажется, что пора бы уже закончить этот эксперимент. В чем-то я согласен с Джонсом -- станция стареет, оборудование выходит из строя. Долго ли до того, как мы потеряем наши субмарины, а вместе с ними и вообще всякую возможность вернуться наверх?"]]};
 
		{"Я пойду.", [[Голдман кивает: "Поговорим позже". ]], code [[ back(); ]]};
 
		{tag="sabotage2"};
 
		{"Даркстар сказал", [[Леонард Голдман пожимает плачеми: "Даркстар мог и ошибиться -- он же параноик. А я в это не поверю". ]]};
 
		{"Это очевидно", [[Леонард Голдман недовольно предупреждает вас: "Будете дальше распускать подобные слухи -- я доложу Даркстару". ]]};
 
		{"Эээ... Я пошутил", [[Леонард Голдман недовольно восклицает: "Вы вообще нормальный?!"]], code [[ back(); ]]};
 
		{tag="give_clock"};
 
		{"[Отдать часы]Нашел", [[Леонард Голдман кивает: "Благодарю. Это часы моего деда, они очень важны для меня". ]], code [[ remove("item_goldmans_clock"); pret(); ]]};
 
		{"[Убрать часы]Не так быстро. Что вы делали в Солисе?", [[Ваш запрос похоже застал Леонарда врасплох. Заикаясь, он спрашивает: "С ч-чего вы вз-взяли?" ]], code [[ psub("give_clock_2");]]};
 
		{"[Отдать часы] Нашел", [[Леонард Голдман кивает: "Благодарю. Это часы моего деда, они очень важны для меня". ]], code [[ remove("item_goldmans_clock"); pret(); ]]};
 
		{"[Убрать часы] Не так быстро. Что вы делали в Солисе?", [[Ваш запрос похоже застал Леонарда врасплох. Заикаясь, он спрашивает: "С ч-чего вы вз-взяли?" ]], code [[ psub("give_clock_2");]]};
 
		{tag="give_clock_2"};
 
		{"Эти часы я подобрал на месте саботажа. Теперь вы не отвертитесь.", [[Леонард поднимается и садится. Тяжело вздохнув он сознается: "Хорошо, я все скажу. Только если обещаете, что меня больше не будут держать на этой станции". ]], code [[ psub('promise'); ]]};
 
		{tag="promise"};
 
		{always = true, "Я сделаю все, что в моих силах.", [[Леонард Голдман вздыхает и начинает сбивчиво рассказывать: "Это все Мишель придумал. У меня бы мозгов не хватило. Он и в Игнисе пожар устроил. Солис он тоже хотел взорвать сам, но Даркстар, кажется, подозревает его. Поэтому он упросил меня это сделать... И зачем я согласился?!" ]], code [[ atl_lfc_saboteur_known = true; psub("leroy");]]};
 
		{always = true, "Я ничего не обещаю.",[[Леонард Голдман дрожащим голосом отвечает: "Тогда я ничего не скажу". ]], code [[ psub("threaten"); ]]};
 
		{tag = "threaten"};
 
		{always = true, "Тогда пусть Даркстар с вами разбирается.", [[Леонард Голдман вздыхает и начинает сбивчиво рассказывать: "Это все Мишель придумал. У меня бы мозгов не хватило. Он и в Игнисе пожар устроил. Солис он тоже хотел взорвать сам, но Даркстар, кажется подозревает его. Поэтому он упросил меня это сделать... И зачем я согласился?!" ]], code [[ atl_lfc_saboteur_known = true; psub("leroy");]]};
 
		{"[Отдать часы]Черт с тобой, забирай свои часы.", [[Голдман крайне удивлен: "Вот так просто?" ]], code [[ remove("item_goldmans_clock"); psub("tired_of_you"); ]]};
 
		{"[Отдать часы] Черт с тобой, забирай свои часы.", [[Голдман крайне удивлен: "Вот так просто?" ]], code [[ remove("item_goldmans_clock"); psub("tired_of_you"); ]]};
 
		{"[Уйти]", code = [[ back(); ]]};
 
		{tag = "tired_of_you"};
 
		{"Даю вам последний шанс рассказать все, что знаете.", [[леонард Голдман отказывается отвечать: "Я назвал свои условия". ]], code [[ psub('promise'); ]]};
 
		{"[Уйти]", code = [[ back(); ]]};
 
		{tag = "leroy"};
 
		{"И что вы еще намереваетесь сломать?", [[Леонард Голдман пожимает плечами. Испуганно глядя на вас, он отвечает: "Не знаю. Мишель хотел сломать станцию... Так чтобы никто не пострадал. Все бы просто вернулись на поверхность и дело с концом". ]]};
 
		{"Я пойду.", [[Леонард Голдман кивает: "Помни, что ты обещал". ]], code = [[ back(); ]]};
 
	};
 
};
 
 
char_jones_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Чарльз Джонс";
 
	disp = "Чарльз Джонс";
 
	enter = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
        if (char_jones.on_atlantis == 0) then
 
            pon("on_atlantis");
 
        end;
 
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[На койке перед вами сидит немолодой человек, одетый в простой серый костюм. Его седые волосы коротко острижены. Подбородок гладко выбрит. Лицо изрыто глубокими морщинами. В руках он вертит карандаш, задумчиво разглядывая его. ^При виде вас он встает и приветствует вас: "Добрый день, меня зовут Чарли. Чарли Джонс". ]];
 
		else
 
			psub("generic");
 
			return [[Чарльз Джонс приветствует вас, отвлекаясь от своего занятия: "Добрый день". ]];
 
		end;
 
	end;
 
	phr = {
 
		{"Я Дэвид Дрейк. Рад знакомству.", [[Чарльз тяжело вздыхает: "Взаимно". ]], code [[ psub("generic"); ]]};
 
		{tag="sabotage", false, "Вы знаете, что причиной пожара был саботаж?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic == 1) then
 
				return [[Чарльз отрицательно качает головой: "Но зачем? Дайте немного времени и Атлантида сама развалится". ]];
 
			elseif (atl_lfc_panic == 2) then
 
				return [[Чарльз отрицательно качает головой: "Это не более чем слухи. Не поверю, чтобы кто-то мог намеренно это сделать". ]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[Чарльз задумчиво: "Слишком многие об этом говорят, но я не верю в эти байки. Станция просто рушится от возраста, вот и все". ]];
 
			end;
 
		end};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [["Думаю да. Короткое замыкание -- станция старая, провода старые. Где-то нарушилась изоляция. Дальше будет еще хуже -- я постоянно об этом говорю, пора бросить эту груду металлолома и вернуться к людям, на поверхность". ]]};
 
        {tag="on_atlantis", false, "Вы считаете, что станцию необходимо закрыть?", [[Чарльз кивает: "Станция старая, разваливается на глазах. Нас слишком мало, чтобы своевременно устранять возрастающее число неполадок". ]], code [[ char_jones.on_atlantis = 1; psub("on_leaving");]]};
 
		{always=true, "Я пойду.", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
        {tag="on_leaving"};
 
        {"Да. соглашусь с вами. ", [[Чарли понимающе кивает. ]], code [[ pret(); ]]};
 
        {"Но ведь станция в отличном состоянии. ", [[Чарли вздыхает: "Просто, вы еще не пробыли здесь достаточно и многого не видели". ]], code [[ pret(); ]]};
 
	};
 
};
 
 
atl_lev_radcliffe_dlg = room {
 
	nam = "Уолтер Рэдклифф";
 
	dsc = [[
 
		В доке Левиафана вы встречаете Уолтера Рэдклиффа. Завидев вас он говорит: "Дрейк, какая встреча. Я только что поместил на Левиафан два скафандра, которые вам выделили Моро с Райтом. Хорошо, что я вас встретил. Я хотел бы присоединиться к экипажу Левиафана и предложить вам свою помощь в поисках Уильяма".
 
	]];
 
	phr = {
 
		{"Как к этому отнесутся на Атлантиде?", [["Я уже обговорил это с Моро и Райтом. Они не против моего решения, тем более, что они не меньше вас заинтересованы в успехе вашей экспедиции". ]]};
 
		{"Благодарю, добро пожаловать на борт.", [["Отлично, благодарю. У меня есть еще одна просьба. Я хотел бы, чтобы моя сестра отправилась вместе с нами. Она знает язык навьяров и может оказаться крайне полезна во множестве ситуаций, кроме того -- так она остается под моим присмотром". ]], code [[
 
			lifeon("char_radcliffe");
 
			table.insert(pl.party, 'radcliffe');
 
			psub("sister");
 
		]]};
 
		{tag="sister"};
 
		{"Я не думаю, что ей место на Левиафане -- экспедиция может быть опасна.", function(s)
 
			if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
				walk(atl_lev_first_sail);
 
				return [["Вы правы, Анне будет безопаснее остаться на Атлантиде. Я знаю, что с вами отправляется Леарр, которая достаточно хорошо знает наш язык, так что я надеюсь, что мы справимся без помощи моей сестры. Я скоро вернусь", -- с этими словами он выходит из дока. ]];
 
			else
 
				return [["Я хотел бы, чтобы Анна отправилась с нами -- я лично позабочусь о ее безопасности, а вам понадобится человек, долгое время посвятивший изучению культуры навьяров". ]];
 
			end;
 
		end};
 
		{"Хорошо, ее помощь нам не помешает.", [["Отлично, мы скоро будем готовы", -- с этим словами он выходит из дока. ]], [[
 
			lifeon("char_anna");
 
			table.insert(pl.party, 'anna');
 
			walk(atl_lev_first_sail);
 
		]]};
 
	};
 
};
 
\ No newline at end of file
atlantis_dyp.lua
Show inline comments
 
--[[
 
Дипатреанотр
 
]]
 

	
 
global {
 
    dyp_quest_state = 0;
 
        -- 0 - не начат
 
        -- 1 - получено задание от вождя
 
        -- 2 - узнали, что карту унес Аэдиенрр в Дипатреанотр
 
        -- 3 - узнали, куда унес карту Аэдиенрр из Дипатреанотра
 
        -- 4 - Отдали оригинал КНО в Ираафаанотр
 
        -- 5 - Отдали жезл в Ираафаанотр
 
    dyp_stones_known = 0;
 
    dyp_lib_stone_state = 0;
 
};
 

	
 
--[[
 
Дипатреанотр город
 
]]
 

	
 
dyp_entry = lcutscene("dyp_entry", "Левиафан, рубка", [[Дипатреанотр расположен всего в нескольких часах пути от Атлантиды. Как только вы прибываете на место, вашим глазам открывается картина неприглядного поселения -- небольшой деревушки, состоящей из не более чем сотни домов, сгрудившихся вокруг центральной площади, посреди которой возвышается каменный обелиск. Вы не замечаете никаких улиц, кроме одной, соединящей дом вождя с центральной площадью. Вы направляете Левиафан к центру и субмарина, послушная вашим указаниям, замирает рядом с обелиском. ]], "Вы прибыли в Дипатреанотр. ", leviathan_wheelhouse);
 

	
 
dyp_center = room {
 
    nam = "dyp_center";
 
    disp = "Дипатреанотр, центр";
 
    view = [[Левиафан находится над центром Дипатреанотра -- небольшого навьярского поселения. Вокруг небольшой центральной площади неровными кругами расположены небольшие каменные дома. Явно выраженные улицы отсутствуют, за исключением широкой, выложенной камнем дороги от площади до дома вождя. В другом конце площади расположено большое здание библиотеки. ]];
 
    dsc = [[Вы находитесь на центральной площади Дипатреанотра -- небольшого навьярского поселения. Вокруг небольшой центральной площади неровными кругами расположены небольшие каменные дома. Явно выраженные улицы отсутствуют, за исключением широкой, выложенной камнем дороги от площади до дома вождя. В другом конце площади расположено большое здание библиотеки. ]];
 
    obj = {
 
        "dyp_obelisk";
 
    };
 
    way = {
 
        kh_vroom("К библиотеке", "dyp_library_entrance");
 
        kh_vroom("К дому вождя", "dyp_chief_house_entrance");
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
        kh_vroom("К окраине", "dyp_outskirts");
 
    };
 
};
 

	
 
dyp_outskirts = room {
 
    nam = "dyp_outskirts";
 
    disp = "Дипатреанотр, окраина";
 
    dsc = [[Вы стоите на южной окраине Дипатреанотра. К северу от вас расположены неказистые каменные дома жителей города. Отсюда прекрасно виден зависший над центральной площадью Левиафан. ]];
 
    obj = {
 
        "dyp_guardian";
 
    };
 
};
 

	
 
dyp_guardian = npc {
 
    nam = "dyp_guardian";
 
    dsc = [[Рядом с вами неспешно прогуливается {стражник}, вооруженный копьем. Кажется, ваш вид его нисколько не удивляет и не беспокоит. ]];
 
    phr = {
 
        [[Стражник не обращает на вас внимания. ]];
 
        [[По головным плавникам стражника бегут цветные полосы: "Ты говори с вождем, не со мной". ]];
 
    };
 
    dlg = function(s)
 
        if dyp_quest_state == 2 then
 
            return "dyp_guardian_dlg";
 
        end;
 
    end;
 
};
 

	
 
dyp_guardian_dlg = dlg {
 
    nam = "dyp_guardian_dlg";
 
    entered = [[По головным плавникам стражника бегут цветные полосы: "Ты говори с вождем, не со мной". ]];
 
    phr = {
 
        {"[Кодировщик]Я ищу навьяра по имени Аэдиенрр. Он проходил здесь недавно.", [[Стражник кивает: "Аэдиенрр из Ираафаанотра ушел на восток несколько дней назад. Кажется, он направлялся к обелискам". ]], code [[ dyp_quest_state = 3; ]]};
 
        {"[Кодировщик] Я ищу навьяра по имени Аэдиенрр. Он проходил здесь недавно.", [[Стражник кивает: "Аэдиенрр из Ираафаанотра ушел на восток несколько дней назад. Кажется, он направлялся к обелискам". ]], code [[ dyp_quest_state = 3; ]]};
 
        {"[Уйти]", code [[ back(); ]]};
 
    };
 
};
 

	
 
dyp_obelisk = obj {
 
    nam = "dyp_obelisk";
 
    dsc = [[В центре площади стоит большой каменный {обелиск}, с нанесенными на него символами. ]];
 
    act = function(s)
 
        return [[На обелиске, традиционно для навьяров, начертано название города и вырезана карта, указывающая путь к храму. ]];
 
    end;
 
};
 

	
 
dyp_navjiarr = npc{
 
    nam = "dyp_navjiarr";
 
    dsc = [[Немногие {навьяры}, находящиеся сейчас на площади с интересом оглядываютс на Левиафан и вас. ]];
 
    phr = {
 
        "Не стоит их беспокоить. ",
 
        "Вряд ли они смогут сказать вам что-то полезное. "
 
    };
 
};
 

	
 
dyp_library_entrance = room {
 
    nam = "dyp_library_entrance";
 
    dsc = [[Двухэтажное каменное здание библиотеки разительно отличается от большинства строений Дипатреанотра. Выстроенное из массивных каменных плит, а не из булыжников, как остальные, оно хорошо сохранилось несмотря на достаточно большой возраст. Ровные стены тщательно очищаются навьярами от ила и водорослей, сохрнаяя здание в перозданном виде. ]];
 
    way = {
 
        kh_vroom("К обелиску", "dyp_center");
 
        kh_vroom("В библиотеку", "dyp_library_floor1");
 
    };
 
};
 

	
 
dyp_library_floor1 = room {
 
    nam = "dyp_library_floor1";
 
    dsc = [[Первый этаж здания библиотеки представляет собой огромный зал. Множество колонн, установленных ровными рядами, поддерживают потолок, между ними и вдоль стен установлены массивные стеллажи, заполненные различными записями. Большинство их сделаны на каменных табличках, но изредка встречаютс и древние металлические. Ваше внимание привлекает  одна из полок, заполненная небольшими блестящими дисками из неизвестного материала. ]];
 
    obj = {
 
        "dyp_library_statue"
 
    };
 
    way = {
 
        kh_vroom("Наружу", "dyp_library_entrance");
 
        kh_vroom("На второй этаж", "dyp_library_floor2");
 
    };
 
};
 

	
 
dyp_library_floor2 = room {
 
    nam = "dyp_library_floor2";
 
    dsc = [[Второй этаж библиотеки мало чем отличается от первого -- точно такие же колонны, точно такие же стеллажи. Здесь гораздо больше полок содержат блестящие диски вместо привычных вам записей. ]];
 
    obj = {
 
        "dyp_librarian";
 
    };
 
};
 

	
 
dyp_librarian = npc {
 
    var {
 
        state = 0;
 
    };
 
    nam = "dyp_librarian";
 
    dsc = [[]];
 
};
 

	
 
dyp_librarian_dlg = dlg {
 
    nam = "dyp_librarian_dlg";
 
    disp = "Эйлехиарр";
 
    entered = function(s)
 
        if (dyp_librarian_dlg.state == 0) then
 
            dyp_librarian_dlg.state = 1;
 
            return [[Перед вами, япрямо на полу сидит навьяр. Рядом с ним разложены какие-то записи, которые он внимательно рассматривает, иногда перекладывая с места на место. Заметив вас, он поднимается и приветствует вас: "Я, Eyle'hya'rr из Dyp'atre'anot'rrа, приветствую тебя he'vji'a'rr. Ты говори, зачем ты пришел". ]];
 
        else
 
            return [[Эйлехиарр сидит на полу, перекладывая какие-то записи. Заметив вас он поднимается и приветствует вас: "Ты овори, зачем ты пришел". ]];
 
        end;
 
    end;
 
    phr = {
 
        {"[Кодировщик]Что ты делаешь?", [[Эйлехиарр отвечает: "Эти записи сильно повреждены. К счастью у нас есть несколько копий этого текста. Но мои предшественники умудрились испортить все три!" ]]};
 
        {"[Кодировщик]Я ищу карту пути в Лсэрианотр.", [[Эйлехиарр задумчиво оглядывает помещение. Делает несколько шагов в одну сторону, потом в другую. Садится рядом со своими записями, сова встает. Наконец, он берет с одной из полок металлическую табличку и сообщает: "Здесь говорится о пещере рядом с храмом. Три ключа закрывают вход". ]], code [[pon("three_keys");]]};
 
        {tag="three_keys", false, "[Кодировщик]Где найти эти ключи?", [[Эйлехиарр отвечает: "Здесь, в Дипатреанотре. Один ты можешь забрать внизу, у статуи". ]], code [[ dyp_stones_known = true; dyp_lib_stone_state = 1; ]]};
 
        {"[Кодировщик]Я пойду.", [[Эйлехиарр прощается: "Ты возвращайся". ]]};
 
        {"[Кодировщик] Что ты делаешь?", [[Эйлехиарр отвечает: "Эти записи сильно повреждены. К счастью у нас есть несколько копий этого текста. Но мои предшественники умудрились испортить все три!" ]]};
 
        {"[Кодировщик] Я ищу карту пути в Лсэрианотр.", [[Эйлехиарр задумчиво оглядывает помещение. Делает несколько шагов в одну сторону, потом в другую. Садится рядом со своими записями, сова встает. Наконец, он берет с одной из полок металлическую табличку и сообщает: "Здесь говорится о пещере рядом с храмом. Три ключа закрывают вход". ]], code [[pon("three_keys");]]};
 
        {tag="three_keys", false, "[Кодировщик] Где найти эти ключи?", [[Эйлехиарр отвечает: "Здесь, в Дипатреанотре. Один ты можешь забрать внизу, у статуи". ]], code [[ dyp_stones_known = true; dyp_lib_stone_state = 1; ]]};
 
        {"[Кодировщик] Я пойду.", [[Эйлехиарр прощается: "Ты возвращайся". ]]};
 
    };
 
};
 

	
 
dyp_item_stone_blue = obj {
 
    nam = "dyp_item_stone_blue";
 
    disp = [[Синий камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий синий свет. ]];
 
};
 

	
 
dyp_item_stone_green= obj {
 
    nam = "dyp_item_stone_green";
 
    disp = [[Зеленый камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий зеленый свет. ]];
 
};
 

	
 
dyp_item_stone_red = obj {
 
    nam = "dyp_item_stone_red";
 
    disp = [[Красный камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий красный свет. ]];
 
};
 

	
 
dyp_library_statue = obj {
 
    nam = "dyp_library_statue";
 
    dsc =function(s)
 
        if dyp_lib_stone_state > 1 then
 
            return [[В центре зала стоит статуя навьяра. В правой руке он держит табличку, которую сосредоточенно рассматривает. Левая рука статуи выглядит так, словно в ней должен находиться какой-то небольшой предмет, однако он отсутствует. ]];
 
        else
 
            return [[В центре зала стоит статуя навьяра. В правой руке он держит табличку, которую сосредоточенно рассматривает. В левой руке статуи лежит небольшой светящийся синий {камень}. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if dyp_lib_stone_state == 0 then
 
            return [[Красивая старая статуя. Навьяр изображен пораительно подробно -- вы можете разглядеть каждую чешуйку. Небольшой камень лежит в руке статуи так, что его очень легко вынуть. ]];
 
        elseif dyp_lib_stone_state == 1 then
 
            dyp_lib_stone_state = 2;
 
            take("dyp_item_stone_blue");
 
            return [[Вы легко забираете из руки статуи камень. ]];
 
        elseif dyp_lib_stone_state == 2 then
 
            return [[Красивая старая статуя. Навьяр изображен пораительно подробно -- вы можете разглядеть каждую чешуйку. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_chief_house_entrance = room {
 
    nam = "dyp_chief_house_entrance";
 
    disp = "Дипатреанотр, перед домом вождя";
 
    dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание очневидно не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города.]];
 
    way = {
 
        kh_vroom("К обелиску", "dyp_center");
 
        kh_vroom("В дом", "dyp_chief_house");
 
    };
 
};
 

	
 
dyp_chief_house = room {
 
    nam = "dyp_chief_house";
 
    disp = "Дипатреанотр, дом вождя";
 
    dsc = [[Приемная дома вождя представляет собой огромный зал с ровными рядами стройных каменных колонн, удреживающих потолок. В дальнем конце зала установлен каменный трон, перед которым установлен массивный каменный стол. ]];
 
    way = {
 
        kh_vroom("Наружу", "dyp_chief_house_entrance");
 
    };
 
    obj = {
 
        "dyp_chief";
 
    };
 
};
 

	
 
dyp_chief = npc {
 
    nam = "dyp_chief";
 
    dsc = [[{Вождь Дипатреанотра} сидит на троне с закрытыми глазами. Руки его сложены на груди. В правой он держит небольшой золотистый жезл, в навершии которого укреплен круглый камень, излучающий яркий зеленый свет. Светло-синяя чешуя покрыта узором из татуировок. Как и другие навьяры он одет в костюм из водорослей. На левой руке дремлюего вождя вы видите искусный браслет из блестящего металла. ]];
 
    dlg = "dyp_chief_dlg";
 
};
 

	
 
dyp_chief_dlg = dlg {
 
    nam = "dyp_chief_dlg";
 
    entered = function(s)
 
        if dyp_stones_known then
 
            pon("star_map");
 
        end;
 
        return [[Как только вы приближаетесь к столу, глаза вождя открываются. Он поднимается с трона. Руки его остаются сложенными на груди, а взгляд его желтых глаз устремляется на вас. По его головным плавникам бегут цветные полосы: "Чем скромные навьяры из Дипатреанотра обязаны визиту почтенного хевьяра? Ты говори". ]];
 
    end;
 
    phr = {
 
        {"[Кодировщик]Я ищу карту пути в Лсэрианотр.", [[Вождь отвечает: "Ты спроси в храме или в библиотеке. Я ничего такого не знаю". ]]};
 
        {tag="star_map", false, "[Кодировщик]Мне нужен камень из твоего жезла. Что я могу предложить в обмен на него?", [[Глаза вождя загораются, он ухмыляется. По плавникам быстро, словно в нетерпении, бегут цветные полосы: "Я хочу карту небесных огней из Ираафаанотра. Принеси ее и забирай этот жезл вместе с камнем". ]], code [[ dyp_quest_state = 1; ]]};
 
        {"[Кодировщик]Я пойду.", [[Вождь прощается с вами: "Ты возвращайся". Он садится обратно на трон и закрывает глаза. ]], code [[ back(); ]]};
 
        {"[Кодировщик] Я ищу карту пути в Лсэрианотр.", [[Вождь отвечает: "Ты спроси в храме или в библиотеке. Я ничего такого не знаю". ]]};
 
        {tag="star_map", false, "[Кодировщик] Мне нужен камень из твоего жезла. Что я могу предложить в обмен на него?", [[Глаза вождя загораются, он ухмыляется. По плавникам быстро, словно в нетерпении, бегут цветные полосы: "Я хочу карту небесных огней из Ираафаанотра. Принеси ее и забирай этот жезл вместе с камнем". ]], code [[ dyp_quest_state = 1; ]]};
 
        {"[Кодировщик] Я пойду.", [[Вождь прощается с вами: "Ты возвращайся". Он садится обратно на трон и закрывает глаза. ]], code [[ back(); ]]};
 
    };
 
};
 

	
 
--[[
 
Дипатреанотр храм
 
]]
 

	
 
dyp_temple_entry = lcutscene("dyp_temple_entry", "Левиафан, рубка", [[Храм Дипатреанотра располагается в нескольких часах пути от Атлантиды на Левиафане. К массивным дверям храма, вырезанным в толще скалы, ведет широкая каменная лестница, некогда украшенная резными орнаментами, ныне осыпавшимися и раскрошившимися. Над входом вырезано изображение, состоящее из нескольких концентрических кругов и каких-то символов. ]], "Вы прибыли в Храм Дипатреанотра. ", leviathan_wheelhouse);
 

	
 
dyp_temple_guard = room {
 
    nam = "ctt_dyp_temple_guard";
 
    dsc = function(s)
 
        if (dyp_temple_guard_dlg.state == 0) then
 
            return [[У ворот стоят два навьяра, вооруженные копьями. При вашем приближении они начинают нервничать -- переглянувшись, они перехватывают копья, готовясь при необходимости прогнать вас. По плавникам одного из них бегут цветные полосы: темно-фиолетовая, зеленая, оранжевая -- шире чем остальные, серая, ярко-розовая, желтая -- снова широкая, салатовая, снова широкая желтая и, наконец, широкая бледно-оранжевая. После небольшой паузы, полосы появляются снова. ]];
 
        else
 
            return [[У ворот стоят два навьяра, вооруженные копьями. Они никак не реагируют на вас. ]];
 
        end;
 
    end;
 
    dlg = "dyp_temple_guard_dlg";
 
};
 

	
 
dyp_temple_guard_dlg = dlg {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Страж храма";
 
    entered = function(s)
 
        if (s.state == 0) then
 
            return [[Стражники загораживают вам проход. По плавникам одного из них бегут цветные полосы. ]];
 
        else
 
            back();
 
            return [[Стражник не реагирует на вас. ]];
 
        end;
 
    end;
 
    phr = {
 
        --TODO заменить название токена
 
        {tag="test", false, "[Передать <токен>]", [[Стражи, согласно ритуалу, молча открывают ворота, пропуская вас внутрь. ]], code [[ dyp_temple_guard_dlg.state = 1; back(); ]]};
 
        {always=true, "[использовать кодировщик]I'rr Vee'nn"};
 
        {always=true, "[Кодировщик] I'rr Vee'nn"};
 
    };
 
};
 

	
 
dyp_temple_carving_look = room {
 
    nam = "Храм Дипатреанотра, вход";
 
    pic ="images/iyh_navjiarr_map.png"; 
 
    dsc = [[Над входом в храм вырезана схема, состоящая из нескольких концентрических кругов. ]];
 
    obj = {
 
        vway("continue", "{Продолжить}", "dyp_temple_entrance");
 
    };
 
};
 

	
 
dyp_temple_carving = obj {
 
    nam = "dyp_temple_carving";
 
    dsc = [[Над входом в храм вырезано {изображение} состоящее из нескольких кругов и еще каких-то символов. Часть изображения стерлась от времени, однако остальная часть все еще читаема. ]];
 
    act = function(s)
 
        walkin("dyp_temple_carving_look");
 
    end;
 
};
 

	
 
dyp_temple_entrance = room {
 
    nam = "Храм Дипатреанотра, вход";
 
    dsc = [[Перед вами находится вырезанный в скале вход в навьярский храм. Массивные каменные ступени ведут к громадным двустворчатым дверям, украшенным полустершимися орнаментами. Некогда яркие краски потускнели -- осторожные навьяры не решаются их обновить. ^Скала продолжается на восток и на юго-запад от храма. Вдалеке на севере видны длинные, вытянувшиеся на несколько метров вверх водоросли. К западу заметен обелиск из камней. ]];
 
    underwater = true;
 
    entered = function(s)
 
        --char_learr:accompany(false);
 
        --char_radcliffe:accompany(false);
 
        --char_wright:accompany(false);
 
        --char_anna:accompany(false);
 
            
 
        --if ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
 
        --    return [[
 
        --        Вы слышите по радио голос Леарр: "Ты-Дрейк один-пойдешь. Другим нельзя-в-храм-войти".
 
        --    ]];
 
        --elseif ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
 
        --    return [[
 
        --        Вы слышите по радио голос Анны: "Дрейк, тебе придется идти одному - испытание можно пройти лишь в одиночку. Удачи".
 
        --    ]];
 
        --end;
 
    end;
 
    obj = {
 
        "dyp_temple_guard";
 
        "dyp_temple_carving";
 
    };
 
    way = {
 
        kh_vroom("В храм", function(s)
 
            pr('Охранники не колеблясь убьют вас, если вы попытаетесь войти. ');
 
            return false;
 
            --ctt_dyp_temple_l1.px = 1;
 
            --ctt_dyp_temple_l1.py = 0;
 
            --return "ctt_dyp_temple_l1";
 
        end):disable();
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_east = room {
 
    nam = "Океан";
 
    view = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на восток от вас. На западе она сворачивает к югу. В освещенной мощным прожектором Левиафана скале вы видите раверзшуюся пасть пещеры. ]];
 
    dsc = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на восток от вас. На западе она сворачивает к югу. Перед собой вы видите разверзшуюся пасть пещеры, освещенную мощным прожектором Левиафана. ]];
 
    way = {
 
        kh_vroom("В пещеру", "dyp_temple_cave_entrance");
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_south_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь у подножья скалы. К юго востоку скала сворачивает на юг и тянется на многие километры. К северо-востоку вы видите храм Дипатреанотра. ]];
 
};
 

	
 
dyp_temple_south_far = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на юг. На севере скала сворачивает к востоку. ]];
 
};
 

	
 
dyp_temple_north_west = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state == 3 then
 
            return nil;
 
        else
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Перед вами возвышается массивный каменный обелиск. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. К юго-востоку от вас возвышается отвесная скала, протянувшаяся на многие километры с юга на восток. Вдалеке на западе вы видите каменные строения навьярского города -- Дипатреанотра. ]];
 
    dsc = [[К юго-востоку от вас возвышается отвесная скала, протянувшаяся на многие километры с юга на восток. Вдалеке на западе вы видите каменные строения навьярского города -- Дипатреанотра. ]];
 
    obj = {
 
        "dyp_temple_west_footprints";
 
        "dyp_temple_north_west_obelisk";
 
    };
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_west_footprints = obj {
 
    nam = "dyp_temple_west_footprints";
 
    dsc = [[На илистом дне вы видите {следы}. ]];
 
    act = [[Следы навьяра ведут на север. ]];
 
};
 

	
 
dyp_temple_north_west_obelisk = obj {
 
    nam = "dyp_temple_north_west_obelisk";
 
    dsc = [[Перед вами возвышается массивный каменный {обелиск}. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. ]];
 
    act = [[Древняя каменная конструкция, с неизвестной целью помещенная в этом месте. ]];
 
};
 

	
 
dyp_temple_north = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над высокими стеблями водорослей, едва заметно колышущимися в спокойной воде. ]];
 
};
 

	
 
dyp_temple_crevice_middle = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_east = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_far_east = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_far_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_warning = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state == 3 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Перед вами возвышается массивный каменный обелиск. Большая часть изображенного на нем стерлась. ]];
 
    dsc = [[Вы находитесь посреди бескрайней илистой равнины. К северу вы видитекалу, протянувшуюся с запада на восток. ]];
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
    obj = {
 
        "dyp_temple_obelisk_footprints";
 
        "dyp_temple_warning_obelisk";
 
    };
 
};
 

	
 
dyp_temple_obelisk_footprints = obj {
 
    nam = "dyp_temple_obelisk_footprints";
 
    dsc = [[На илистом дне вы видите {следы}. ]];
 
    act = [[Следы навьяра ведут на север. ]];
 
};
 

	
 
dyp_temple_warning_obelisk = obj {
 
    nam = "dyp_temple_warning_obelisk";
 
    dsc = [[Перед вами возвышается массивный каменный {обелиск}. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. ]];
 
    act = [[Древняя каменная конструкция, с неизвестной целью помещенная в этом месте. ]];
 
};
 

	
 
dyp_temple_cliff_1 = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        return [[Нет смысла покидать Левиафан здесь. ]];
 
    end;
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. Здесь в скале вы видите вход в глубокую темную пещеру. ]];
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
        kh_vroom("В пещеру", "dyp_crab_cave");
 
    };
 
    obj = {
 
        "dyp_temple_cliff_1_footprints";
 
    };
 
};
 

	
 
dyp_temple_cliff_1_footprints = obj {
 
    nam = "dyp_temple_cliff_1_footprints";
 
    dsc = [[На илистом дне хорошо сохранились {следы} множества тонких ног. ]];
 
    act = [[Следы множества тонких ног, тянущиеся с востока, ведут в пещеру. ]];
 
};
 

	
 
dyp_temple_cliff_2 = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state == 3 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]];
 
    dsc = [[Вы стоите у подножя высокой скалы, протянувшейся с востока на запад к северу от вас. ]];
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
    obj = {
 
        "dyp_temple_cliff_2_footprints";
 
    };
 
};
 

	
 
dyp_temple_cliff_2_footprints = obj {
 
    nam = "dyp_temple_cliff_2_footprints";
 
    dsc = [[Здесь {следы} навьяра обрываются. ]];
 
    act = [[Следы обрываются, но не просто так. Здесь явно произошла драка, скорее всего с каким-то морским животным. Вы замечаете следы множества тонких ног, ведущие на запад. ]];
 
};
 

	
 
dyp_temple_cliff_3 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_cliff_4 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_cliff_5 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_whale = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Рядом с вами покоится скелет громадного кита. Древние кости занесены илом, однако все еще прекрасно видны с большого расстояния. ]];
 
};
 

	
 
dyp_temple_navigation = dlg {
 
    nam = "Штурвал Левиафана";
 
    entered = function(s)
 
        
 
    end;
 
    phr = {
 
        {tag="dyp_temple_entrance"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_east");
 
            psub("dyp_temple_east");
 
        end};
 
        {always=true, "[На северо-восток, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На северо-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
        end};
 
        {always=true, "[На юго-запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_west");
 
            psub("dyp_temple_south_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_east"};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На север, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_south_west"};
 
        {always=true, "[На северо-восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На юг, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_far");
 
            psub("dyp_temple_south_far");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_south_far"};
 
        {always=true, "[На север, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_west");
 
            psub("dyp_temple_south_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_north_west"};
 
        {always=true, "[На юго-восток, к храму]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На запад, в Дипатреанотр]", function()
 
            move(submarine_leviathan, "dyp_city_east");
 
            psub("dyp_city_east");
 
            --TODO enter the city
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_north"};
 
        {always=true, "[На юго-запад, к храму]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На юг, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_east");
 
            psub("dyp_temple_east");
 
        end};
 
        {always=true, "[На север, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_middle"};
 
        {always=true, "[На юг, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
        end};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_east"};
 
        {always=true, "[На юго-запад, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_east");
 
            psub("dyp_temple_crevice_far_east");
 
        end};
 
        {always=true, "[На северо-восток, к костям]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
        end};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_5");
 
            psub("dyp_temple_cliff_5");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_far_east"};
 
        {always=true, "[На север, к костям]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_west"};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_3");
 
            psub("dyp_temple_cliff_3");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[На юго-восток, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_west");
 
            psub("dyp_temple_crevice_far_west");
 
        end};
 
        {always=true, "[На северо-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_far_west"};
 
        {always=true, "[На север, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
        end};
 
        {always=true, "[На юг, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_warning"};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_2");
 
            psub("dyp_temple_cliff_2");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_west");
 
            psub("dyp_temple_crevice_far_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_1"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_2");
 
            psub("dyp_temple_cliff_2");
 
        end};
 
        {always=true, "[На юго-восток, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_2"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_3");
 
            psub("dyp_temple_cliff_3");
 
        end};
 
        {always=true, "[На юг, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_1");
 
            psub("dyp_temple_cliff_1");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_3"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
        end};
 
        {always=true, "[На юго-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_2");
 
            psub("dyp_temple_cliff_2");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_4"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_5");
 
            psub("dyp_temple_cliff_5");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_3");
 
            psub("dyp_temple_cliff_3");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_5"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            temple_found = true;
 
            move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
            walk("iyh_far_from_entrance");
 
            --TODO катсцена при первом прибытии
 
        end};
 
        {always=true, "[На юго-восток, к костям]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_whale"};
 
        {always=true, "[На север, к храму]", function()
 
            temple_found = true;
 
            move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
            walk("iyh_far_from_entrance");
 
            --TODO катсцена при первом прибытии
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_east");
 
            psub("dyp_temple_crevice_far_east");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
    };
 
};
 

	
 
dyp_temple_cave_entrance = room {
 
    nam = "dyp_temple_cave_entrance";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Вы стоите у выхода из глубокой пещеры, расположенной неподалеку от храма Дипатреанотра. Перед вами длинный коридор, ведущий куда-то вглубь скалы. Вдалеке, в коридоре вы видите слабое свечение. ]];
 
    way = {
 
        kh_vroom("Выйти из пещеры", "dyp_temple_east");
 
        kh_vroom("Вглубь пещеры", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_cave_deep = room {
 
    nam = "dyp_temple_cave_deep";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Здесь коридор разветвляется на три. В конце каждого вы видите слабое свечение красного, зеленогои синего цветов. ]];
 
    way = {
 
        kh_vroom("К выходу из пещеры", "dyp_temple_cave_entrance");
 
        kh_vroom("В \"Красный\" коридор", "dyp_temple_cave_red");
 
        kh_vroom("В \"Зеленый\" коридор", "dyp_temple_cave_green");
 
        kh_vroom("В \"Синий\" коридор", "dyp_temple_cave_blue");
 
    };
 
};
 

	
 
dyp_temple_cave_red = room {
 
    nam = "dyp_temple_cave_red";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Проход заканчивается массивной металлической дверью, совершенно гладкой. Вы не видите никакого способа открыть ее. ]];
 
    obj = {
 
        "dyp_temple_statue_red";
 
    };
 
    way = {
 
        kh_vroom("В главный коридор", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_statue_red = obj {
 
    nam = "dyp_temple_statue_red";
 
    dsc = [[Рядом с дверью стоит древняя статуя навьяра. В правой руке статуя держит копье, в навершии которого ярко светится красный камень. На поясе статуи вы видите небольшое круглое {отверстие}. ]];
 
};
 

	
 
dyp_temple_cave_green = room {
 
    nam = "dyp_temple_cave_green";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Проход заканчивается массивной металлической дверью, совершенно гладкой. Вы не видите никакого способа открыть ее. ]];
 
    obj = {
 
        "dyp_temple_statue_green";
 
    };
 
    way = {
 
        kh_vroom("В главный коридор", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_statue_green = obj {
 
    nam = "dyp_temple_statue_green";
 
    dsc = [[Рядом с дверью стоит древняя статуя навьяра. В правой руке статуя держит копье, в навершии которого ярко светится зеленый камень. На поясе статуи вы видите небольшое круглое {отверстие}. ]];
 
};
 

	
 
dyp_temple_cave_blue = room {
 
    nam = "dyp_temple_cave_blue";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Проход заканчивается массивной металлической дверью, совершенно гладкой. Вы не видите никакого способа открыть ее. ]];
 
    obj = {
 
        "dyp_temple_statue_blue";
 
    };
 
    way = {
 
        kh_vroom("В главный коридор", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_statue_blue = obj {
 
    nam = "dyp_temple_statue_blue";
 
    dsc = [[Рядом с дверью стоит древняя статуя навьяра. В правой руке статуя держит копье, в навершии которого ярко светится синий камень. На поясе статуи вы видите небольшое круглое {отверстие}. ]];
 
};
 

	
 
dyp_crab_cave = labyrinth {
 
    var {
 
        position = "00";
 
        fight = false;
 
    };
 
    nam = "dyp_crab_cave";
 
    disp = "Пещера";
 
    dir1 = "На северо-запад";
 
    dir2 = "На северо-восток";
 
    dir3 = "На юго-запад";
 
    dir4 = "На юго-восток";
 
    ex = "Выйти";
 
    map = {
 
        ["00"] = {
 
            name = [[Вы стоите у входа в глубокую пещеру. Стены здесь неровные и извилистые, образую причудливые переплетения длинный коридоров. Кто знает, куда они приведут? На каменистом полу едва ли можно заметить какие-либо следы. ]];
 
            e1 = "10";
 
            e2 = "11";
 
        };
 
        ["10"] = {
 
            e1 = "20";
 
            e2 = "21";
 
            e4 = "00";
 
        };
 
        ["11"] = {
 
            e1 = "21";
 
            e2 = "22";
 
            e3 = "00";
 
        };
 
        ["20"] = {
 
            e1 = "30";
 
            e4 = "10";
 
        };
 
        ["21"] = {
 
            e1 = "31";
 
            e2 = "32";
 
            e3 = "10";
 
            e4 = "11";
 
        };
 
        ["22"] = {
 
            e2 = "33";
 
            e3 = "11";
 
        };
 
        ["30"] = {
 
            e1 = "40";
 
            e2 = "41";
 
            e4 = "20";
 
        };
 
        ["31"] = {
 
            e2 = "42";
 
            e4 = "21";
 
        };
 
        ["32"] = {
 
            e2 = "43";
 
            e3 = "21";
 
        };
 
        ["33"] = {
 
            e3 = "22";
 
        };
 
        ["40"] = {
 
            e2 = "50";
 
            e4 = "30";
 
        };
 
        ["41"] = {
 
            e3 = "30";
 
        };
 
        ["42"] = {
 
            e1 = "51";
 
            e3 = "31";
 
        };
 
        ["43"] = {
 
            e1 = "52";
 
            e3 = "32";
 
            enter = function(s)
 
                if not s.fight then
 
                    s.fight = true;
 
                    walk("dyp_crab_fight_intro");
 
                end;
 
            end;
 
        };
 
        ["50"] = {
 
            e3 = "40";
 
        };
atlantis_from_the_ashes.lua
Show inline comments
 
atl_fta_is_terra_solis = room {
 
    var {
 
        state = 0;
 
    };
 
	nam = "Атлантида, межсекционный кодидор";
 
	dsc = [[Небольшой коридор, соединяющий секции Терра и Солис. Яркий свет электрических ламп освещает помещение.  ]];
 
	entered = function(s)
 
		if (s.state == 0) then
 
			return [[
 
				Вы входите в межсекционный коридор Солиса и в этот момент станцию сотрясает взрыв. Свет на мгновение моргает. Раздается звонок телефона. 
 
			]];
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("В секцию Терра", "atl_fta_game_over_left");
 
		kh_vroom("В секцию Солис", function(s)
 
			if (atl_fta_phone.state == 1 and have(item_atl_fta_suit)) then
 
				return "atl_fta_solis_entry";
 
			else
 
				pr [[Вы вот так просто войдете в секцию где только что произошел взрыв?]];
 
				return false;
 
			end;
 
		end);
 
	};
 
	obj = {
 
		"atl_fta_phone",
 
		"item_atl_fta_suit"
 
	};
 
};
 
 
item_atl_fta_suit = suit {
 
	var {
 
		dlg = nil;
 
	};
 
	nam = "Скафандр";
 
	dsc = [[В углу, так же как и в других межсекционных коридорах стоит {скафандр}, который используется в случае чрезвычайной ситуации. ]];
 
	tak = function(e)
 
		if (atl_fta_phone.state == 1) then
 
			return "Вы одеваете скафандр", true;
 
		else
 
			return "Вам незачем это делать", false;
 
		end;
 
	end;
 
};
 
 
atl_fta_phone = obj {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Телефон";
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return [[
 
				На стене висит звонящий {телефонный аппарат}.
 
			]];
 
		else
 
			return [[
 
				На стене висит {телефонный аппарат}.
 
			]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			walk("atl_fta_dlg_phone");
 
		else
 
			return false;
 
		end;
 
	end;
 
};
 
 
atl_fta_dlg_radio = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Радио";
 
	entered = function(s)
 
		if (s.state == 0) then
 
			psub("tuning");
 
			return [[Радио не настроено. ]];
 
		elseif (s.state == 1) then
 
			psub("ok");
 
			return [[Радио настроено, вы можете говорить. ]];
 
		elseif (s.state == 2) then
 
			psub("next");
 
			return [[Радио настроено, вы можете говорить. ]];
 
		elseif (s.state == 3) then
 
			psub("more");
 
			return [[Радио настроено, вы можете говорить. ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="tuning"};
 
		{"[Настроить приемник]Прием, как слышите?", [[
 
		{"[Настроить приемник] Прием, как слышите?", [[
 
			Через несколько минут настройки, вы слышите в динамике голос Райта: "Слушаю вас, Дрейк".
 
		]], code [[ atl_fta_dlg_radio.state = 1; psub("ok"); ]]};
 
		{tag="ok"};
 
		{"Что мне делать?", [[
 
			"Что вы видите?"
 
		]], code [[ atl_fta_dlg_radio.state = 2; psub("what_i_see"); ]]};
 
		{tag="what_i_see"};
 
		{"К юго-востоку от меня вижу огонь, скорее всего взрыв был там. Здесь жарко. ", [[Райт инструктирует вас: "Идите по западной стороне. Ваша задача -- попасть в центр секции с северной стороны. Вы увидите несколько вентилей. Вам надо будет перекрыть их все. Там хитрая защита от случайного закрытия, но я думаю, вы справитесь". ]], code [[ psub("clear"); ]]};
 
		{tag="next"};
 
		{always=true, "Что мне делать?", [["Идите по западной стороне. Ваша задача -- попасть в центр секции с северной стороны. Вы увидите несколько вентилей. Вам надо будет перекрыть их все. Там хитрая защита от случайного закрытия, но я думаю, вы справитесь". ]]};
 
        {"Конец связи. ", "", code [[ back(); ]]};
 
		{tag="more"};
 
		{"Тут еще что-то взорвалось", [[Райт подтверждает: "Я знаю. Поторопитесь. Если взорвется еще один котел, то станция обречена". ]], code [[ atl_fta_dlg_radio.state = 2; ]]};
 
		{"Как я выберусь отсюда?", [[Райт отвечает: "На юге есть шлюз, выйдете через него". ]], code [[ atl_fta_dlg_radio.state = 2; ]]};
 
        {tag="clear"};
 
        {"Вас понял. Конец связи. ", "", code [[ back(); ]]}
 
	};
 
};
 
 
atl_fta_dlg_phone = dlg {
 
	nam = "Телефон";
 
	entered = [[
 
		Вы снимаете трубку и слышите раздраженный голос Винсента Даркстара: "Дрейк?! Какого черта?! Немедленно возвращайтесь в свою комнату!"^ 
 
		Вы не успеваете и слова сказать, как в разговор вмешивается Майкл Райт: "Стойте! Дрейк, кроме вас там никого нет, поэтому одевайте скафандр и слушайте мои инструкции".
 
	]];
 
	phr = {
 
		{"Вас понял.", code = [[ psub("back"); ]]};
 
	};
 
};
 
 
atl_fta_solis_entry = room {
 
	nam = "Атлантида, Солис, рядом со шлюзом";
 
	dsc = [[
 
		В помещении темно и жарко. Слева и справа от вас проложены трубы. Сквозь просветы в них вы видите огонь где-то вдалеке на юго-востоке.
 
	]];
 
	entered = function(s)
 
		item_atl_fta_suit.dlg = "atl_fta_dlg_radio";
 
  
 
        if (atl_fta_solis_c2.broken_valve == 0) then
 
            atl_fta_solis_c2.broken_valve = rnd(5);
 
            atl_fta_valves[atl_fta_solis_c2.broken_valve].broken = true;
 
            atl_fta_solis_c2.broken_offset = rnd(9) + 10;
 
        end;
 
	end;
 
	way = {
 
		vroom("На восток", "atl_fta_solis_ne");
 
		vroom("На запад", "atl_fta_solis_nw");
 
	};
 
};
 
 
atl_fta_solis_ne = room {
 
	nam = "Атлантида, Солис";
 
	dsc = [[
 
		В помещении темно и жарко. Cо всех сторон от вас проложено множество труб. Сквозь просветы в них вы видите огонь где-то вдалеке на юге.
 
	]];
 
	way = {
 
		vroom("На запад", "atl_fta_solis_entry");
 
		vroom("На юг", "atl_fta_solis_e");
 
	};
 
};
 
 
atl_fta_solis_e = room {
 
	nam = "Атлантида, Солис";
 
	dsc = [[
 
		Здесь очень жарко. Путь на юг прегражден обломками труб, а за ними вы видите огонь. 
 
	]];
 
	way = {
 
		vroom("На север", "atl_fta_solis_ne");
 
	};
 
};
 
 
atl_fta_solis_nw = room {
 
	nam = "Атлантида, Солис";
 
	dsc = [[
 
		В помещении темно и жарко. Cо всех сторон от вас проложено множество труб. 
 
	]];
 
	way = {
 
		vroom("На восток", "atl_fta_solis_entry");
 
		vroom("На юг", "atl_fta_solis_w");
 
	};
 
};
 
 
atl_fta_solis_w = room {
 
	nam = "Атлантида, Солис";
 
	dsc = [[
 
		В помещении темно и жарко. Cо всех сторон от вас проложено множество труб. 
 
	]];
 
	way = {
 
		vroom("На север", "atl_fta_solis_nw");
 
		vroom("На восток", "atl_fta_solis_c1");
 
		vroom("На юг", "atl_fta_solis_sw");
 
	};
 
};
 
 
atl_fta_solis_c1 = room {
 
	nam = "Атлантида, Солис, центр";
 
	dsc = [[
 
		В помещении темно и жарко. Перед собой вы видите сложную конструкцию из труб и клапанов. Через металлическую решетку на севере вы видите вентили, о которых говорил Райт. К сожалению, вы не сможете дотянуться до них отсюда.
 
	]];
 
	way = {
 
		vroom("На запад", "atl_fta_solis_w");
 
	};
 
};
 
 
atl_fta_solis_sw = room {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Атлантида, Солис";
 
	dsc = [[
 
		В помещении темно и жарко. Cо всех сторон от вас проложено множество труб. 
 
	]];
 
	entered = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			item_atl_fta_suit.dlg = nil;
 
			pr([[
 
				Позади вас раздается еще один взрыв. Вы с трудом удерживаетесь на ногах, видите, что часть секции на севере завалена и сквозь дым, пар и пыль видите начавшийся пожар.
 
			]]);
 
		end;
 
	end;
 
	way = {
 
		vroom("На восток", "atl_fta_solis_exit");
 
	};
 
};
 
 
atl_fta_solis_exit = room {
 
	nam = "Атлантида, Солис";
 
	dsc = [[
 
		В помещении темно и жарко. Cо всех сторон от вас проложено множество труб. 
 
	]];
 
	way = {
 
		vroom("На север", "atl_fta_solis_c2");
 
		vroom("На запад", "atl_fta_solis_sw");
 
		vroom("На восток", "atl_fta_solis_se");
 
		kh_vroom("В шлюз", function(s)
 
			if atl_fta_solis_c2:solved() then
 
				return "atl_fta_ending";
 
			else
 
				return "atl_fta_game_over_left_2";
 
			end;
 
		end);
 
	};
 
};
 
 
atl_fta_solis_c2 = room {
 
	var {
 
		valve_a = 2;
 
		valve_b = 90;
 
		broken_valve = 0;
 
		broken_offset = 0;
 
		valves = {1,1,1,1,1};
 
	};
 
	solved = function(s)
 
		for i =1, #s.valves do
 
			if (s.valves[i] == 0 and i ~= s.broken_valve or 
 
				s.valves[i] == 1 and i == s.broken_valve) then
 
				return false;
 
			end;
 
		end;
 
		
 
		return true;
 
	end;
 
	nam = "Атлантида, Солис, Центр";
 
	dsc = function(s)
 
		if (not s:solved()) then
 
			return [[
 
				В помещении темно и жарко. Где-то рядом вы слышите шипение пара, вырывающегося из труб, но не видите, где. Перед собой вы видите сложную конструкцию из труб и клапанов. Вы видите несколько пронумерованных вентилей, рядом с которыми расположены манометры:
 
			]];
 
		else
 
			return [[
 
				В помещении темно и жарко. Перед собой вы видите сложную конструкцию из труб и клапанов. Вы видите несколько пронумерованных вентилей, рядом с которыми расположены манометры:
 
			]];
 
		end;
 
	end;
 
	way = {
 
		vroom("На юг", atl_fta_solis_exit);
 
	};
 
	obj = {
 
		"atl_fta_solis_valve1",
 
		"atl_fta_solis_valve2",
 
		"atl_fta_solis_valve3",
 
		"atl_fta_solis_valve4",
 
		"atl_fta_solis_valve5",
 
		"atl_fta_solis_valvea",
 
		"atl_fta_solis_valveb",
 
		"item_goldmans_clock"
 
	};
 
};
 
 
atl_fta_solis_valvea = obj {
 
	nam = "Вентиль";
 
	dsc = "Под ними расположены еще два вентиля. Тот, что {слева} отмечен буквой A,";
 
	act = function(s)
 
		if (atl_fta_solis_c2.valve_a == 2) then
 
			atl_fta_solis_c2.valve_a = 3;
 
		elseif (atl_fta_solis_c2.valve_a == 3) then
 
			atl_fta_solis_c2.valve_a = 4;
 
		elseif (atl_fta_solis_c2.valve_a == 4) then
 
			atl_fta_solis_c2.valve_a = 6;
 
		elseif (atl_fta_solis_c2.valve_a == 6) then
 
			atl_fta_solis_c2.valve_a = 2;
 
		end;
 
        return "Вы поворачиваете вентиль. Значения на манометрах изменились. ";
 
	end;
 
};
 
 
atl_fta_solis_valveb = obj {
 
	nam = "Вентиль";
 
	dsc = " а тот, что {справа} -- буквой B.";
 
	act = function(s)
 
		if (atl_fta_solis_c2.valve_b == 90) then
 
			atl_fta_solis_c2.valve_b = 60;
 
		elseif (atl_fta_solis_c2.valve_b == 60) then
 
			atl_fta_solis_c2.valve_b = 45;
 
		elseif (atl_fta_solis_c2.valve_b == 45) then
 
			atl_fta_solis_c2.valve_b = 30;
 
		elseif (atl_fta_solis_c2.valve_b == 30) then
 
			atl_fta_solis_c2.valve_b = 90;
 
		end;
 
        return "Вы поворачиваете вентиль. Значения на манометрах изменились. ";
 
	end;
 
};
 
 
atl_fta_solis_valve = function(index)
 
	return obj {
 
		nam = "Вентиль";
 
		dsc = function(s)
 
			local value = atl_fta_solis_c2.valve_a * index + math.floor(atl_fta_solis_c2.valve_b / index);
 
			if (atl_fta_solis_c2.broken_valve == index) then
 
				value = value + atl_fta_solis_c2.broken_offset;
 
			end;
 
			if (atl_fta_solis_c2.valves[index] == 0) then
 
				value = 0;
 
			end;
 
			return "{Вентиль №"..tostring(index).."}. Манометр показывает " .. tostring(value) .. "^";
 
		end;
 
		act = function(s)
 
			if (atl_fta_solis_c2.valves[index] == 0) then
 
				atl_fta_solis_c2.valves[index] = 1;
 
			else
 
				atl_fta_solis_c2.valves[index] = 0;
 
			end;
 
			
 
			if (atl_fta_solis_c2:solved()) then
 
				return "Шипение пара прекращается. Вы сделали все, что нужно. ";
 
			else
 
				return "Вы поворачиваете вентиль. ";
 
			end;
 
		end;
 
	};
 
end;
 
 
atl_fta_solis_valve1 = atl_fta_solis_valve(1);
 
atl_fta_solis_valve2 = atl_fta_solis_valve(2);
 
atl_fta_solis_valve3 = atl_fta_solis_valve(3);
 
atl_fta_solis_valve4 = atl_fta_solis_valve(4);
 
atl_fta_solis_valve5 = atl_fta_solis_valve(5);
 
 
atl_fta_valves = {
 
    atl_fta_solis_valve1;
 
    atl_fta_solis_valve2;
 
    atl_fta_solis_valve3;
 
    atl_fta_solis_valve4;
 
    atl_fta_solis_valve5;
 
};
 
 
atl_fta_game_over_left = room {
 
	nam = "Игра окончена";
 
	dsc = [[
 
		Как только вы выходите из межсекционного коридора, раздается еще один взрыв и свет на станции гаснет. Взрыв повреждает межсекционный коридор и его начинает заполнять вода. Вы начинаете задраивать люк, но третий взрыв сбивает вас с ног. Вы падаете и теряете сознание. Через несколько мгновений вы утонете, но вас это уже не заботит. 
 
	]];
 
};
 
 
atl_fta_game_over_left_2 = room {
 
	nam = "Игра окончена";
 
	dsc = [[
 
		Как только вы входите в шлюз, взрыв сокрушительной силы сотрясает станцию. Шлюзовую дверь выбивает и вас отбрасывает в противоположный угол комнаты. Вы видите, как секцию начинает заполнять вода. По радио не слышно ничего кроме помех и скорее всего никто не придет к вам на помощь...
 
	]];
 
};
 
 
atl_fta_ending = room {
 
	nam = "Атлантида";
 
	dsc = [[Через шлюз вы выбираетесь из Солиса и оказываетесь снаружи. Через некоторое время вас подбирает Наутилус, чтобы вернуть на станцию. От экипажа вы узнаете, что потребление энергии на станции сокращено до восстановления Солиса. ^Вернувшись на станцию, вы сразу же отправляетесь в свою каюту, чтобы отдохнуть. ]];
 
	entered = function(s)
 
		atl_fta_state = 2;
 
		remove(item_atl_fta_suit);
 
        pl.has_light = false;
 
	end;
 
	obj = {
 
		vway('continue', '{Продолжить}', 'atl_luna_drake_room');
 
	};
 
};
atlantis_ignis_on_fire.lua
Show inline comments
 
atlantis_learr_intro = room {
 
	nam = "Атлантида, Окулус, Главный коридор";
 
	dsc = [[Вы выходите из межсекционного коридора в главный коридор секции _"Окулус"_ и сталкиваетесь лицом к лицу с неведомым существом. Стройное, покрытое блестящей серо-зеленой чешуей тело слегка покачивается. Рыбья голова с небольшими отростками-плавниками, тонкие ноги и руки с широкими перепонками между длинными пальцами покрыты такой же чешуей. Ярко-оранжевые глаза существа с интересом разглядывают вас. Во рту существа сверкают острые треугольные зубы. Одето оно в белую рубашку и ярко-синюю юбку до колен. На шее существа вы замечаете жабры. Отростки на голове существа принимают слабо уловимый сине-зеленый оттенок. ]];
 
	obj = {
 
		vway('continue', '{Продолжить}', 'atlantis_learr_first_dlg')
 
	};
 
};
 
 
atlantis_learr_first_dlg = dlg {
 
	nam = "Леарр";
 
	entered = [[Существо начинает говорить: "Я зздессь-рраньшше-не-видела васс". Голос звучит непривычно для вашего слуха -- гласные произносятся очень коротко, между некоторыми словами делаются резкие паузы, другие же сливаются практически в одно, шипящие и "р" произносятся удлиненно. ]];
 
	phr = {
 
		{"Кто ты?", [[Существо отвечает: "I'yhe'lea'yhe'na'vji'a'rr", -- вы отчетливо различаете короткие паузы между слогами. ]], code [[ pon('who_are_you'); ]]};
 
		{tag="who_are_you", false, "Я не понимаю, что ты говоришь.", [[Существо ненадолго застывает в замешательстве. Затем отвечает: "Я Lea'rr. Ты так-понимаешь?". ]], code [[psub('learr'); ]]};
 
		{"Аааа, монстр, помогите!!!", [[Существо скалит зубы. Плавники меняют цвет на ярко-фиолетовый. Оно рычит на вас: "Прропусти. Нет-врремени". ^Щелкнув зубами, _"Чудовище"_ уходит. ]], code [[
 
            put(char_learr_atlantis, atl_ignis_hall_a);
 
            char_learr_atlantis.offended = true;
 
            walk("atl_oculus_main_corridor");
 
        ]]};
 
		{tag="learr"};
 
		{"Рад знакомству. Я Дэвид Дрейк. ", [[Леарр переспрашивает: "Ты ззнаешшь Уильяма-Дррейка?" -- Вам кажется, вы чувствуете удивление, хотя интонации в словах существа вам совершенно чужды. ]], code [[ psub('drake') ]]};
 
        {"Что ты такое?", [[Леарр ненадолго задумывается и отвечает: "Мы себя-навьярами-называем. Мы недалеко-живем-в-нескольких-кругах-отсюда".]], code [[ pon('under_water'); ]]};
 
        {tag="under_water", false, "Под водой?", [[Леарр кивает. Через некоторое время отвечает: "Ты с-поверхности? Никогда-нас-не-видел, похоже". ]]};
 
		{tag="drake"};
 
		{"Да, я его сын. Ты знакома с ним?", [[оттенок головных плавников Леарр становится более ярким и смещается ближе к зеленому. Она отвечает: _"Да, я его-ззнаю. Уильям-Дррейк нашшу-иссторрию-иззучал. Он ссейчасс-исскать-уехал Lse'ry'anot'rr. Я что-вы-зздессь рада"_. ]], code [[ psub('follow_drake') ]]};
 
		{tag="follow_drake"};
 
		{"Я здесь из-за него. " , [[Леарр кивает: _"Я вам-как-смогу-помогу. Я в-Игниссе-буду, ессли вы говоррить-хотите"_. ^Леарр уходит, а вы остаетесь в одиночестве. ]], code [[ put(char_learr_atlantis, atl_ignis_hall_a); walk("atl_oculus_main_corridor"); ]]};
 
	};
 
};
 
 
char_wright_iof = obj {
 
	nam = "Джек Райт";
 
	dsc = function(s) 
 
		if (atl_iof_time_state.pl_safe) then
 
			if (atl_iof_time_state.carry_learr) then
 
				return [[{Джек Райт} облачен в скафандр и ждет ваших указаний. Леарр бессильно лежит на его руках. ]];
 
			else
 
				return [[{Джек Райт} облачен в скафандр и ждет ваших указаний. ]];
 
			end;
 
		else
 
			if (atl_iof_time_state.life_left > 3) then
 
				return [[{Джек Райт} ждет ваших указаний. ]];
 
			else
 
				return [[{Джек Райт} с трудом стоит на ногах. ]];
 
			end;
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(s) ~= where(pl) and where(pl).iof) then
 
			move(s, where(pl));
 
		end;
 
	end;
 
	act = function(s)
 
		return [[Некогда разговаривать. ]];
 
	end;
 
};
 
 
char_learr_faint = obj {
 
	nam = "Леарр";
 
	inv = [[На руках вы держите Леарр. Она дышит очень слабо. Вам нужно поторопиться, если вы не хотите, чтобы она умерла. ]];
 
	life = function(s)
 
		if (rnd(12) > 11) then
 
			pr([[Вы чувствуете слабое дыхание Леарр, лежащей у вас на руках. ]]);
 
		end;
 
	end;
 
};
 
 
char_learr_iof = obj {
 
	var {
 
		faint = false;
 
	};
 
	nam = "Леарр";
 
	dsc = function(s)
 
		if (s.faint) then
 
			return [[{Леарр} лежит на полу без сознания. ]];
 
		end;
 
		if (atl_iof_time_state.learr_safe) then
 
			return [[{Леарр} облачена в скафандр и ждет ваших указаний. ]];
 
		else
 
			if (atl_iof_time_state.life_left > 3) then
 
				return [[{Леарр} ждет ваших указаний. ]];
 
			else
 
				return [[{Леарр} с трудом стоит на ногах. ]];
 
			end;
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(s) ~= where(pl) and where(pl).iof and not s.faint) then
 
			move(s, where(pl));
 
		end;
 
	end;
 
	act = function(s)
 
		if (where(s) == atl_iof_ignis_service_room and not dlg_learr_suit.state) then
 
			walkin('dlg_learr_suit');
 
		elseif (s.faint) then
 
			walkin('atl_iof_learr_faint_alone_2');
 
		else		
 
			return [[Некогда разговаривать. ]];
 
		end;
 
	end;
 
};
 
 
dlg_learr_suit = dlg {
 
	var {
 
		state = false;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = function(s)
 
		s.state = true;
 
		return [[Леарр вопросительно смотрит на вас. ]];
 
	end;
 
	phr = {
 
		{"Я хочу, чтобы ты одела скафандр. ", [[Леарр недоуменно смотрит на вас: "Ззачем он мне? Ссама-я в-воде-дышшу. Мне не-нужжны вашши-пррисспоссобления". ]], code [[
 
			psub('tag1');
 
		]]};
 
		{"Мы сейчас наденем скафандры. Продолжай следовать за нами. ", [[Леарр молча кивает. ]], code [[
 
			back();
 
		]]};
 
		{tag="tag1"};
 
		{"Не спорь, полезай внутрь. ", [[Леарр все еще не понимает: "Я в-этой-шштуке-двигатьсся-не-ссмогу". ]], code [[
 
			psub('tag2');
 
		]]};
 
		{"Ладно, обойдемся без этого, просто следуй за нами. ", [[Леарр молча кивает. ]], code [[
 
			back();
 
		]]};
 
		{tag="tag2"};
 
		{"Хорошо. Просто следуй за нами. ", [[Леарр молча кивает. ]], code [[
 
			back();
 
		]]};
 
		{"Эта штука защитит тебя от жара. И тебе будет легче дышать, пока мы не выбрались. ", [[Леарр кивает: "Хорошо. Я по-вашему-сделаю". Вы помогаете навьярессе забраться в скафандр и надеваете на нее шлем. ]], code [[
 
			atl_iof_time_state.learr_safe = true;
 
			back();
 
		]]};
 
	};
 
};
 
 
dlg_learr_iof = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = [[Леарр подбегает к вам и спрашивает: "Что происходит?" ]];
 
	phr = {
 
		{'Надеюсь, все в порядке, следуй за мной. ', [[Леарр молча кивает. ]], code [[
 
			lifeon('char_learr_iof');
 
			char_learr_iof.state = 1;
 
			walk('atl_iof_ignis_hall_a');
 
		]]};
 
		{'Такое уже происходило? ', [[Леарр пожимает плечами: "Я не-видела". ]]};
 
	};
 
};
 
 
atl_iof_intro = room {
 
	nam = "Атлантида, Игнис, зал А";
 
	disp = "Атлантида, Игнис, зал А";
 
	dsc = [[Внезапно свет в зале гаснет и вы оказываетесь в полной темноте. Вскоре вы начинаете ощущать запах дыма, проникающего из вентиляционных отверстий. Леарр кажется очень удивленной. В темноте вы видите слабое свечение цветных полос, бегущих по ее головным плавникам: пурпурная, зеленая, серая, -- тонкая, едва заметная, голубая, зеленая, ярко-розовая, снова серая -- на этот раз заметно толще, оранжевая, желтая, желто-зеленая и снова оранжевая. Цвета сменяют друг-друга за несколько мгновений и вы с трудом успеваете различить их все.]];
 
	obj = {
 
		vobj('Продолжить','{Продолжить}', 'dlg_learr_iof');
 
	};
 
};
 
 
atl_iof_ignis_hall_a = room {
 
	var {
 
		ready = false;
 
	};
 
	nam = "Атлантида, Игнис, зал А";
 
	disp = "Атлантида, Игнис, зал А";
 
	dsc = [[Средних размеров прямоугольный зал. Из вентиляционных отверстий выплывают тонкие струйки дыма. ]];
 
	entered = function(s)
 
		if (not s.ready) then
 
			s.ready = true;
 
			lifeon('char_learr_iof');
 
			if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
				atl_iof_time_state.wright_here = true;
 
				if (where(char_jack_wright_atlantis) == atlantis_ignis_hall_a) then
 
					lifeon('char_wright_iof');
 
				end;
 
			else
 
				atl_iof_time_state.wright_here = false;
 
			end;
 
 
		end;
 
	end;
 
	obj = {
 
		'char_learr_iof'
 
	};
 
	way = {
 
		vroom("В коридор",'atl_iof_main_n3');
 
	};
 
};
 
 
atl_iof_blocked_by_fire = function() 
 
	pr("Огонь преграждает вам путь");
 
	return false;
 
end;
 
 
atl_iof_blocked_by_rubble = function() 
 
	pr("Обломки обрушившихся стеллажей преграждают вам путь");
 
	return false;
 
end;
 
 
atl_iof_time_state = obj {
 
	nam = 'atl_iof_time_state';
 
	var {
 
		life_left = 6;
 
		pl_safe = false;
 
		learr_safe = false;
 
		wright_here = false;
 
		carry_learr = false;
 
	};
 
	life = function(s)
 
		if (not where(pl).iof or where(pl).no_limits) then
 
			return;
 
		end;
 
        
 
		s.life_left = s.life_left - 1;
 
		if (s.life_left == 5) then
 
			if (not s.pl_safe) then 
 
				pr("Вы чувствуете жар");
 
			end;
 
		elseif (s.life_left == 4) then
 
			if (s.wright_here and not s.pl_safe and where(char_wright_iof) == where(pl)) then 
 
				pr("Джек утирает пот со лба");
 
			end;
 
		elseif (s.life_left == 3) then
 
			if (not s.learr_safe) then
 
				pr("Леарр тяжело дышит");
 
			end;
 
		elseif (s.life_left == 2) then
 
			if (not s.pl_safe) then 
 
				pr("Вам трудно дышать, жар становится нестерпимым");
 
			end;
 
		elseif (s.life_left == 1) then
 
			if (s.wright_here and not s.pl_safe and where(char_wright_iof) == where(pl)) then 
 
				pr("Джек с трудом следует за вами");
 
			end;
 
		elseif (s.life_left == 0) then
 
			if (not s.learr_safe) then
 
				pr("Леарр едва передвигает ногами");
 
			end;
 
		else
 
			lifeoff(s);
 
			lifeoff(char_learr_iof);
 
			if (not s.pl_safe) then
 
				walkin("game_over_ignis");
 
			elseif (not s.learr_safe) then
 
                if (s.wright_here) then
 
                    walkin("atl_iof_learr_faint_wright");
 
                else
 
                    walkin("atl_iof_learr_faint_alone");
 
                end;
 
            end;
 
		end;
 
	end;
 
};
 
 
atl_iof_learr_faint_alone_2 = dlg {
 
    nam = "Леарр";
 
    disp = "Леарр";
 
    dsc = [[Леарр лежит на полу без сознания. ]];
 
    phr = {
 
        {"[Взять Леарр на руки]", [[Леарр теряет сознание, обессилев. Вы берете навьярессу на руки. Она весит не больше обычного человека. Вы вполне в состоянии донести ее до выхода. ]], code [[ 
 
            remove(char_learr_iof, where(char_learr_iof));
 
            put(char_learr_faint, pl);
 
            lifeon(char_learr_faint);
 
            atl_iof_time_state.carry_learr = true; 
 
            back();
 
        ]]};
 
        {"[Уйти]", "", code [[ back(); ]]};
 
    };
 
};
 
 
atl_iof_learr_faint_alone = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	dsc = [[Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-идти". ]];
 
	phr = {
 
		{"Совсем немного осталось, пойдем. [Помочь Леарр подняться]", [[Леарр пытается подняться опираясь на вашу руку, но снова падает, теряя сознание. ]], code [[
 
			psub('faint');
 
		]]};
 
		{"Оставайся здесь, я вернусь. ", [[Леарр теряет сознание, обессилев. ]], code [[
 
			char_learr_iof.faint = true;
 
			back();
 
		]]};
 
		{"Оставайся здесь. ", [[Леарр теряет сознание, обессилев. ]], code [[
 
			char_learr_iof.faint = true;
 
			back();
 
		]]};
 
		{"[Взять Леарр на руки]", [[Леарр теряет сознание, обессилев. Вы берете навьярессу на руки. Она весит не больше обычного человека. Вы вполне в состоянии донести ее до выхода. ]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			put(char_learr_faint, pl);
 
			lifeon(char_learr_faint);
 
			atl_iof_time_state.carry_learr = true;
 
			back(); 
 
		]]};
 
		{tag='faint'};
 
		{"[Взять Леарр на руки]", [[Леарр теряет сознание, обессилев. Вы берете навьярессу на руки. Она весит не больше обычного человека. Вы вполне в состоянии донести ее до выхода. ]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			put(char_learr_faint, pl);
 
			lifeon(char_learr_faint);
 
            char_learr_iof.faint = true;         
 
			atl_iof_time_state.carry_learr = true; 
 
			back();
 
		]]};
 
		{"[Уйти]", "", code [[ char_learr_iof.faint = true; back(); ]]};
 
	};
 
};
 
 
atl_iof_learr_faint_wright = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	dsc = [[Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-идти". Райт подходит к ней и пытается помочь ей подняться. ]];
 
	phr = {
 
		{"Все в порядке?", [[По радио вы слышите голос Райта: "Да, я помогу ей. Идем". Джек аккуратно берет Леарр на руки и идет к вам. ]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			atl_iof_time_state.carry_learr = true;
 
			back();
 
		]]};
 
	};
 
};
 
 
atl_iof_wright_dlg = dlg {
 
	nam = "Джек Райт";
 
	disp = "Джек Райт";
 
	entered = [[Едва вы оказываетесь в главном зале, Джек Райт спрашивает: _"У вас все в порядке? Здесь все в огне. Здесь недалеко должно быть служебное помещение со скафандрами. Нам следует добраться до туда. Без них мы до выхода не дотянем"_. ]];
 
	phr = {
 
		{"А лифт?", [[Джек отрицательно качает головой: _"Без скафандров мы туда не попадем. К тому же, он наверняка отключен"_. ]]};
 
		{"Ты знаешь куда идти?", [[Джек неуверенно пожал плечами: _"Насколько я помню, совсем рядом если идти по часовой стрелке вдоль стены зала"_. ]], code [[
 
			psub('next');
 
		]]};
 
		{tag = "next"};
 
		{"Идем", [[Джек молча кивает. ]], code [[
 
			lifeon('char_wright_iof');
 
			back();
 
		]]};
 
	};
 
};
 
 
atl_iof_main_n3 = room {
 
	var {
 
		ready = false;
 
	};
 
	nam = "Атлантида, Игнис, главный зал, вход в зал А";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал А";
 
	iof = true;
 
	dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северной части зала у самого его края. ]];
 
	enter = function(s) 
 
		if (not s.ready) then
 
			s.ready = true;
 
			if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
				if (where(char_wright_iof) ~= s) then
 
					walkin("atl_iof_wright_dlg");
 
				end;
 
			end;
 
		else
 
			lifeon(atl_iof_time_state);
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_nw3");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", "atl_iof_main_n2");
 
		kh_vroom("В зал А", "atl_iof_ignis_hall_a");
 
	};
 
};
 
 
atl_iof_main_n2 = room {
 
	nam = "Атлантида, Игнис, главный зал, север";
 
	disp = "Атлантида, Игнис, главный зал, север";
 
	iof = true;
 
 dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северной части зала. ]];   
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_ne2");
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_n3");
 
	};
 
};
 
 
atl_iof_main_n1 = room {
 
	nam = "Атлантида, Игнис, главный зал, север, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, север, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к северу от лифта. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_nw1");
 
		kh_vroom("По часовой", "atl_iof_main_ne1");
 
		kh_vroom("В Лифт", function()
 
			pr("Лифт не работает");
 
			return false;
 
		end);
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_main_ne3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в служебное помещение";
 
	disp = "Атлантида, Игнис, главный зал, вход в служебное помещение";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-восточной части зала у самого его края. Рядом с вами расположен вход в служебное помещение. ]];   
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_se3");
 
		kh_vroom("К центру", "atl_iof_main_ne2");
 
		kh_vroom("В служебное помещение", "atl_iof_ignis_service_room");
 
	};
 
};
 
 
atl_iof_main_ne2 = room {
 
	nam = "Атлантида, Игнис, главный зал, северовосток";
 
	disp = "Атлантида, Игнис, главный зал, северовосток";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-восточной части зала. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_n2");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_ne3");
 
	};
 
};
 
 
atl_iof_main_ne1 = room {
 
	nam = "Атлантида, Игнис, главный зал, северовосток, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, северовосток, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к северо-востоку от лифта. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_n1");
 
		kh_vroom("По часовой", "atl_iof_main_se1");
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_main_se3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в зал B";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал B";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-восточной части зала у самого его края. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_ne3");
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", atl_iof_blocked_by_fire);
 
		kh_vroom("В зал B", function()
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_iof_main_se2 = room {
 
	nam = "Атлантида, Игнис, главный зал, юговосточная часть";
 
	disp = "Атлантида, Игнис, главный зал, юговосточная часть";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-восточной части зала. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", "atl_iof_main_se1");
 
		kh_vroom("К краю", atl_iof_blocked_by_fire);
 
	};
 
};
 
 
atl_iof_main_se1 = room {
 
	nam = "Атлантида, Игнис, главный зал, юговосточная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, юговосточная часть, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к юго-востоку от лифта. ]];      
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_ne1");
 
		kh_vroom("По часовой", "atl_iof_main_s1");
 
		kh_vroom("К краю", "atl_iof_main_se2");
 
	};
 
};
 
 
atl_iof_main_s3 = room {
 
	nam = "Атлантида, Игнис, главный зал, экстренный выход";
 
	disp = "Атлантида, Игнис, главный зал, экстренный выход";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в южной части зала у самого его края. Рядом с вами расположен шлюз экстренного выхода. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", "atl_iof_main_s2");
 
		kh_vroom("Выход", "atl_iof_outside");
 
	};
 
};
 
 
atl_iof_main_s2 = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть";
 
	disp = "Атлантида, Игнис, главный зал, южная часть";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в южной части зала. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", "atl_iof_main_s1");
 
		kh_vroom("К краю", "atl_iof_main_s3");
 
	};
 
};
 
 
atl_iof_main_s1 = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, южная часть, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь югу от лифта. ]];      
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_se1");
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_s2");
 
	};
 
};
 
 
atl_iof_main_sw3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в зал C";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал C";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-западной части зала у самого его края. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", "atl_iof_main_nw3");
 
		kh_vroom("К центру", atl_iof_blocked_by_fire);
 
		kh_vroom("В зал C", function()
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_iof_main_sw2 = room {
 
	nam = "Атлантида, Игнис, главный зал, югозападная часть";
 
	disp = "Атлантида, Игнис, главный зал, югозападная часть";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-западной части зала. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", "atl_iof_main_nw2");
 
		kh_vroom("К центру", "atl_iof_main_sw1");
 
		kh_vroom("К краю", atl_iof_blocked_by_fire);
 
	};
 
};
 
 
atl_iof_main_sw1 = room {
 
	nam = "Атлантида, Игнис, главный зал, югозападная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, югозападная часть, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к юго-западу от лифта. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_nw1");
 
		kh_vroom("К краю", "atl_iof_main_sw2");
 
	};
 
};
 
 
atl_iof_main_nw3 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад, внешний край";
 
	disp = "Атлантида, Игнис, главный зал, северозапад, внешний край";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-западной части зала у самого его края. ]];      
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw3");
 
		kh_vroom("По часовой", "atl_iof_main_n3");
 
		kh_vroom("К центру", "atl_iof_main_nw2");
 
	};
 
};
 
 
atl_iof_main_nw2 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад";
 
	disp = "Атлантида, Игнис, главный зал, северозапад";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-западной части зала. ]];         
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw2");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_nw3");
 
	};
 
};
 
 
atl_iof_main_nw1 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к северо-западу от лифта. ]];         
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw1");
 
		kh_vroom("По часовой", "atl_iof_main_n1");
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_suits = obj {
 
	nam = "Скафандры";
 
	dsc = "Вдоль стен помещения расставлено несколько {скафандров}. ";
 
	act = function(s)
 
		atl_iof_time_state.pl_safe = true;
 
		walkin("atl_iof_external_radio_dlg");
 
	end;
 
};
 
 
atl_iof_external_radio_dlg = dlg {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	entered = [[Забравшись в скафандр, вы настраиваете радио. Наконец, вы натыкаетесь на основную частоту станции и слышите голос Моро: "... вытащить их с Игниса. Что мы можем сделать?"^Даркстар отвечает: "Мы подойдем на Наутилусе к аварийному выходу и попробуем проникнуть внутрь". ]];
 
	phr = {
 
		{"Вы слышите меня?", [[В динамике вы слышите встревоженный голос начальника станции: "Моро на связи! Дрейк, вы там все в порядке?" ]], code [[psub('is_ok')]]};
 
		{tag = "is_ok"};
 
		{"Да, все здесь. Мы одеваем скафандры.", [[В динамике раздается голос Майкла Райта: "Отлично. Они защитят вас от жара и обеспечат воздухом. Лифт не работает, поэтому воспользуйтесь аварийным шлюзом в южной части секции. Наутилус подхватит вас там". ]], code [[psub('clear')]]};
 
 		{"Да, все здесь. Как нам выбраться?", [[В динамике раздается голос Майкла Райта: "Лифт не работает, поэтому воспользуйтесь аварийным шлюзом в южной части секции. Оденьте скафандры. Они защитят вас от жара и обеспечат воздухом. Наутилус подхватит вас у выхода". ]], code [[psub('clear')]]};
 
		{tag = "clear"};
 
		{"Вас понял, конец связи[Выключить радио].", code [[back();]]};  
 
		{"Вас понял, конец связи. [Выключить радио]", code [[back();]]};  
 
	};
 
};
 
 
atl_iof_ignis_service_room = room {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	disp = "Атлантида, Игнис, служебное помещение";
 
	iof = true;
 
    no_limits = true;   
 
	dsc = [[Небольшое помещение, используемое для хранения различного оборудования, необходимого для обслуживания секции. ]];
 
	way = {
 
		kh_vroom("В главный зал", function(s)
 
			if (atl_iof_time_state.pl_safe) then
 
				return "atl_iof_main_ne3";
 
			else
 
				pr("Я не вернусь туда без снаряжения");
 
				return false;
 
			end;
 
		end);
 
	};
 
	obj = {
 
		'atl_iof_suits'
 
	};
 
};
 
 
atl_iof_outside = room {
 
	nam = "Атлантида, Игнис";
 
	iof = true;
 
	entered = function(s)
 
		lifeoff(atl_iof_time_state);
 
	end;
 
	dsc = function(s)
 
		if (have(char_learr_faint)) then
 
			if (atl_iof_time_state.wright_here) then
 
				return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Как только вы задраиваете внутренний люк, Райт опускает Леарр на пол и начинает вместе с вами отдраивать внешний люк. ^Вода быстро заполняет отсек. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы берете Леарр и выходите наружу. Тяжелый скафандр тянет вас вниз и вы плавно опускаетесь на верхнюю обшивку Наутилуса. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
			else
 
				return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Вы кладете Леарр на пол и снова задраиваете внутренний люк и, тяжело вздохнув, начинаете открывать внешний. ^Вода быстро заполняет отсек. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы берете Леарр и выходите наружу. Тяжелый скафандр тянет вас вниз и вы плавно опускаетесь на верхнюю обшивку Наутилуса. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
			end;
 
		else
 
            if (atl_iof_time_state.learr_safe) then
 
			    return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Задраив люк изнутри, вы приступаете к открытию внешнего. ^Вода быстро заполняет отсек и вы замечаете некоторую растерянность Леарр. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы спрыгиваете вниз. Леарр следует за вами. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
            else
 
                return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Задраив люк изнутри, вы приступаете к открытию внешнего. ^Вода быстро заполняет отсек. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы спрыгиваете вниз. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
            end;         
 
		end;
 
	end;
 
	obj = {
 
		vobj("Продолжить", "{Продолжить}", "atl_iof_part2_dlg");
 
	};
 
};
 
 
atl_iof_part2_dlg = dlg {
 
	nam = "Атлантида, Игнис";
 
	entered = [[Вы слышите голос, доносящийся из динамика: "Все в порядке. Наутилус доставит вас на станцию". ]];
 
	phr = {
 
		{"Хорошо[Войти в шлюз Наутилуса].", [[Вы забираетесь внутрь Наутилуса -- эта субмарина заметно меньше вашего Левиафана, но так же вмещает довольно большой экипаж. Вы снимаете скафандры и проходите в кают-компанию. По радио вы слышите голос Моро: "Как только вы придете в себя после произошедшего, я жду вас в моем кабинете". ^Через считанные минуты вы оказываетесь в доке. Вы с трудом добираетесь до своей каюты, где без сил засыпаете. ]], code [[ walk('atl_luna_drake_room'); ]]};
 
		{"Хорошо. [Войти в шлюз Наутилуса]", [[Вы забираетесь внутрь Наутилуса -- эта субмарина заметно меньше вашего Левиафана, но так же вмещает довольно большой экипаж. Вы снимаете скафандры и проходите в кают-компанию. По радио вы слышите голос Моро: "Как только вы придете в себя после произошедшего, я жду вас в моем кабинете". ^Через считанные минуты вы оказываетесь в доке. Вы с трудом добираетесь до своей каюты, где без сил засыпаете. ]], code [[ walk('atl_luna_drake_room'); ]]};
 
		{"Я могу чем-то помочь?", function(s)
 
            if (atl_iof_time_state.carry_learr or atl_iof_time_state.learr_safe or not char_learr_iof.faint) then
 
                psub('help');      
 
                return [[По радио вы слышите голос Райта: "Было бы очень здорово, если бы вы смогли отключить подачу кислорода в Игнис". ]];
 
            else
 
                walk("atl_iof_end");
 
                return [[По радио вы слышите голос Даркстара: "Возвращайтесь на станцию. Вам нужен отдых, а мы попытаемся спасти Леарр". ]];
 
            end;
 
        end};
 
		{tag="help"};
 
		{"Хорошо, я готов", [[Райт продолжает: "Спускайтесь вниз, на крышу Доминуса, и идите к лифту. Где-то с южной стороны должна быть панель управления. С ней вы, думаю, разберетесь". Вы аккуратно спрыгиваете с Наутилуса вниз и идете к лифту. ]], code [[ walk('atl_iof_outside_lift'); ]]};
 
		{"Я передумал", [[Райт отвечает: "Хорошо, возвращайтесь на станцию. Мои люди все сделают". ]], code [[ walk('atl_iof_end'); ]]};
 
	};
 
};
 
 
atl_iof_outside_lift = room {
 
	nam = "Атлантида";
 
	dsc = [[Над вами нависает громада Игниса, покоящаяся на множестве опор. Вы находитесь снаружи шахты лифта, одновременно служащей центральной опорой секции. Сверху вы слышите скрежет металла, подвергаемого сильному термальному воздействию. ]];
 
	obj = {
 
		"atl_iof_air_valves"
 
	};
 
};
 
 
atl_iof_air_valves = room {
 
	var {
 
		valves = { 0,0,0,0,0,0 };
 
		selected = 0;
 
	};
 
	nam = "Кислородные клапаны";
 
	entered = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		atl_iof_air_valves.selected = 0;
 
	end;
 
	pic = function(s)
 
		local image = 'images/air_bg.png';
 
		for i = 1, #s.valves do
 
			image = image .. ";images/air_" .. tostring(s.valves[i]) .. ".png@" .. tostring(((i - 1) % 3) * 32) .. "," .. tostring(math.floor((i - 1) / 3) * 32);
 
		end;
 
		
 
		return image;
 
	end;
 
	dsc = function(s)
 
		if (s.selected == 0) then
 
			return [[Перед собой вы видите 6 клапанов. Каждый из них пропускает через себя воздух только в одном направлении. По показаниям манометра вы видите, что воздух продолжает поступать в Игнис. ]];
 
		else
 
			return "Перед собой вы видите 6 клапанов. Каждый из них пропускает через себя воздух только в одном направлении. По показаниям манометра вы видите, что воздух продолжает поступать в Игнис. В какую сторону вы хотите повернуть выбранный клапан (" .. tostring(s.selected) .. ")?";
 
		end;
 
	end;
 
	obj = {
 
		'atl_iof_select1';
 
		'atl_iof_select2';
 
		'atl_iof_select3';
 
		'atl_iof_select4';
 
		'atl_iof_select5';
 
		'atl_iof_select6';
 
		'atl_iof_air_ccw';
 
		'atl_iof_air_cw';
 
		'atl_iof_air_cancel';
 
	};
 
	is_solved = function(s)
 
		local current = 1;
 
		local visited = {false, false, false, false, false, false};
 
		while not visited[current] do
 
			visited[current] = true;
 
			if (s.valves[current] == 0) then
 
				if (current == 3 or current == 6) then 
 
					return false;
 
				else
 
					current = current + 1;
 
				end;
 
			elseif (s.valves[current] == 1) then
 
				current = current + 3;
 
			elseif (s.valves[current] == 2) then
 
				current = current - 1;
 
			elseif (s.valves[current] == 3) then
 
				current = current - 3;
 
			end;
 
		end;
 
		current = 4;
 
		visited = {false, false, false, false, false, false};
 
		while not visited[current] do
 
			visited[current] = true;
 
			if (s.valves[current] == 0) then
 
				if (current == 3 or current == 6) then 
 
					return false;
 
				else
 
					current = current + 1;
 
				end;
 
			elseif (s.valves[current] == 1) then
 
				current = current + 3;
 
			elseif (s.valves[current] == 2) then
 
				current = current - 1;
 
			elseif (s.valves[current] == 3) then
 
				current = current - 3;
 
			end;
 
		end;
 
		return true;
 
	end;
 
};
 
 
atl_iof_select = function(index)
 
	return obj {
 
		nam = "Клапан " .. tostring(index);
 
		dsc = "{Выбрать клапан " .. tostring(index) .. "}^";
 
		act = function(s)
 
			atl_iof_select1:disable();
 
			atl_iof_select2:disable();
 
			atl_iof_select3:disable();
 
			atl_iof_select4:disable();
 
			atl_iof_select5:disable();
 
			atl_iof_select6:disable();
 
			atl_iof_air_ccw:enable();
 
			atl_iof_air_cw:enable();
 
			atl_iof_air_cancel:enable();
 
			atl_iof_air_valves.selected = index;
 
			return "Вы беретесь за клапан " .. tostring(index);
 
		end;
 
	};
 
end;
 
 
atl_iof_select1 = atl_iof_select(1);
 
atl_iof_select2 = atl_iof_select(2);
 
atl_iof_select3 = atl_iof_select(3);
 
atl_iof_select4 = atl_iof_select(4);
 
atl_iof_select5 = atl_iof_select(5);
 
atl_iof_select6 = atl_iof_select(6);
 
 
atl_iof_air_ccw = obj {
 
	nam = "Повернуть против часовой стрелки";
 
	dsc = "{Повернуть против часовой стрелки}^";
 
	act = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		local t;
 
		local r = "";
 
		if (atl_iof_air_valves.valves[atl_iof_air_valves.selected] > 0) then
 
			t = atl_iof_air_valves.valves[atl_iof_air_valves.selected] - 1;
 
		else
 
			t = 3;
 
		end;
 
		
 
		if (atl_iof_air_valves.selected == 1) then
 
			if (t == 3 or t == 2 or
 
				(t == 0 and atl_iof_air_valves.valves[2] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[4] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 2) then
 
			if (t == 3 or
 
				(t == 2 and atl_iof_air_valves.valves[1] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[3] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[5] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 3) then
 
			if (t == 3 or 
 
				(t == 2 and atl_iof_air_valves.valves[2] == 0) or
 
				(t == 1 and atl_iof_air_valves.valves[6] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 4) then
 
			if (t == 1 or t == 2 or
 
				(t == 3 and atl_iof_air_valves.valves[1] == 1) or
 
				(t == 0 and atl_iof_air_valves.valves[5] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 5) then
 
			if (t == 1 or
 
				(t == 3 and atl_iof_air_valves.valves[2] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[4] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[6] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 6) then
 
			if (t == 1 or 
 
				(t == 3 and atl_iof_air_valves.valves[3] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[5] == 0)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		end;
 
		
 
		atl_iof_air_valves.valves[atl_iof_air_valves.selected] = t;
 
		
 
		atl_iof_air_valves.selected = 0;
 
		
 
		if (atl_iof_air_valves:is_solved()) then
 
			walk("atl_iof_electr_dlg");
 
		end;
 
		
 
		return r;
 
	end;
 
};
 
 
atl_iof_air_cw = obj {
 
	nam = "Повернуть по часовой стрелке";
 
	dsc = "{Повернуть по часовой стрелке}^";
 
	act = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		local t;
 
		local r = "";
 
		if (atl_iof_air_valves.valves[atl_iof_air_valves.selected] < 3) then
 
			t = atl_iof_air_valves.valves[atl_iof_air_valves.selected] + 1;
 
		else
 
			t = 0;
 
		end;
 
		
 
		if (atl_iof_air_valves.selected == 1) then
 
			if (t == 3 or t == 2 or
 
				(t == 0 and atl_iof_air_valves.valves[2] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[4] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 2) then
 
			if (t == 3 or
 
				(t == 2 and atl_iof_air_valves.valves[1] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[3] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[5] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 3) then
 
			if (t == 3 or 
 
				(t == 2 and atl_iof_air_valves.valves[2] == 0) or
 
				(t == 1 and atl_iof_air_valves.valves[6] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 4) then
 
			if (t == 1 or t == 2 or
 
				(t == 3 and atl_iof_air_valves.valves[1] == 1) or
 
				(t == 0 and atl_iof_air_valves.valves[5] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 5) then
 
			if (t == 1 or
 
				(t == 3 and atl_iof_air_valves.valves[2] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[4] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[6] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 6) then
 
			if (t == 1 or 
 
				(t == 3 and atl_iof_air_valves.valves[3] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[5] == 0)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		end;
 
		
 
		atl_iof_air_valves.valves[atl_iof_air_valves.selected] = t;
 
		
 
		atl_iof_air_valves.selected = 0;
 
		
 
		if (atl_iof_air_valves:is_solved()) then
 
			walk("atl_iof_electr_dlg");
 
		end;
 
		
 
		return r;
 
	end;
 
};
 
 
atl_iof_air_cancel = obj {
 
	nam = "Выбрать другой клапан";
 
	dsc = "{Выбрать другой клапан}";
 
	act = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		atl_iof_air_valves.selected = 0;
 
		
 
		return "";
 
	end;
 
};
 
 
atl_iof_electr_dlg = dlg {
 
	nam = "Атлантида, Игнис";
 
	entered = [[Вы останавливаете подачу кислорода и собиратесь сообщить об этом по радио, когда из динамика раздается голос Майкла Райта: "Как у вас успехи? Нужно отключить еще подачу электричества". ]];
 
	phr = {
 
		{"Подача воздуха отключена. Как я смогу отключить электричество?", [[Райт продолжает: "Отлично. Там рядом должна быть панель, она подписана. Там замок хитрый, но, думаю, вы разберетесь. Затем просто дергаете рубильник и дело сделано". ]], code [[ psub("next"); ]]};
 
		{tag="next"};
 
		{"Вас понял. Конец связи", [[Вы быстро находите необходимую панель и приступаете к работе. ]], code [[ walk("atl_iof_electr_panel_closed"); ]]};
 
	};
 
};
 
 
atl_iof_electr_panel_closed = room {
 
	var {
 
		locks = { true, true, true, true, true, true, true, true };
 
	};
 
	nam = "Электрощит";
 
	pic = function(s)
 
		local image = 'images/electr_bg.png';
 
		for i = 1, 4 do
 
			if (s.locks[i]) then
 
				image = image .. ";images/air_3.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			else
 
				image = image .. ";images/air_1.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			end;
 
		end;
 
		for i = 5, 8 do
 
			if (s.locks[i]) then
 
				image = image .. ";images/air_1.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			else
 
				image = image .. ";images/air_3.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			end;
 
		end;
 
		return image;
 
	end;
 
	dsc = [[Перед вами расположен щиток с восемью защелками. Сейчас щиток закрыт и вы не можете его снять. ]];
 
	obj = {
 
		"atl_iof_electr_select1",
 
		"atl_iof_electr_select2",
 
		"atl_iof_electr_select3",
 
		"atl_iof_electr_select4",
 
		"atl_iof_electr_select5",
 
		"atl_iof_electr_select6",
 
		"atl_iof_electr_select7",
 
		"atl_iof_electr_select8"
 
	};
 
	is_solved = function(s)
 
		local unsolved = false;
 
		for i = 1, #locks do
 
			unsolved = unsolved or s.locks[i];
 
		end;
 
		
 
		return not unsolved;
 
	end;
 
};
 
 
atl_iof_electr_select = function(index)
 
	return obj {
 
		nam = "Защелка " .. tostring(index);
 
		dsc = "{Сдвинуть защелку " .. tostring(index) .. "}^";
 
		act = function(s)			
 
			atl_iof_electr_panel_closed.locks[index] = not atl_iof_electr_panel_closed.locks[index];
 
			if (index ~= 4 and index ~= 8) then
 
				atl_iof_electr_panel_closed.locks[index + 1] = not atl_iof_electr_panel_closed.locks[index + 1];
 
			end;
 
			if (index ~= 1 and index ~= 5) then
 
				atl_iof_electr_panel_closed.locks[index - 1] = not atl_iof_electr_panel_closed.locks[index - 1];
 
			end;
 
			if (index > 4) then
 
				atl_iof_electr_panel_closed.locks[index - 4] = not atl_iof_electr_panel_closed.locks[index - 4];
 
			end;
 
			if (index < 5) then
 
				atl_iof_electr_panel_closed.locks[index + 4] = not atl_iof_electr_panel_closed.locks[index + 4];
 
			end;
 
			
 
			if (atl_iof_electr_panel_closed.is_solved()) then
 
				walk("atl_iof_electr_panel_open");
 
			
 
				return "";
 
			end;
 
			
 
			return "Вы сдвигаете защелку " .. tostring(index);
 
		end;
 
	};
 
end;
 
 
atl_iof_electr_select1 = atl_iof_electr_select(1);
 
atl_iof_electr_select2 = atl_iof_electr_select(2);
 
atl_iof_electr_select3 = atl_iof_electr_select(3);
 
atl_iof_electr_select4 = atl_iof_electr_select(4);
 
atl_iof_electr_select5 = atl_iof_electr_select(5);
 
atl_iof_electr_select6 = atl_iof_electr_select(6);
 
atl_iof_electr_select7 = atl_iof_electr_select(7);
 
atl_iof_electr_select8 = atl_iof_electr_select(8);
 
 
atl_iof_electr_panel_open = dlg {
 
	nam = "Атлантида, Игнис";
 
	dsc = [[Вы снимаете щиток и дергаете рубильник, обесточивая Игнис. Вы связываетесь по радио с Наутилусом. ]];
 
	phr = {
 
		{"Подача электричества в Игнис отключена, возвращаюсь на станцию", [[В динамике вы слышите голос Райта: "Отлично, возвращайтесь". ]], code [[ walk("atl_iof_end"); ]]};
 
	};
 
};
 
 
atl_iof_end = room {
 
	nam = "Атлантида";
 
	dsc = [[Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. ^Едва вы просыпаетесь, к вам в комнату входят двое охранников. Они просят вас проследовать за ними к Винсенту Даркстару. У вас нет никакого выхода, кроме как пойти с ними. ]];
 
	entered = function(s)
 
		atl_lfc_state = 1;
 
        if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
            put(char_jack_wright_atlantis, atl_luna_jack_room);
 
        end;
 
		if (atl_iof_time_state.learr_safe) then
 
			atl_iof_learr_suit = true;
 
		end;
 
		if (atl_iof_time_state.carry_learr or atl_iof_time_state.learr_safe or not char_learr_iof.faint) then
 
			-- learr saved
 
			put(char_learr_atlantis, atl_oculus_library);
 
		else
 
			atl_iof_learr_dead = true;
 
			put(char_aikerjarr, atl_oculus_lab_b);
 
		end;
 
		atl_iof_completed = true;
 
	end;
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_darkstar_dlg");
 
	};
 
};
 
\ No newline at end of file
atlantis_iraa.lua
Show inline comments
 
--[[
 
Файл содержит локации навьярских поселений для главы Атлантида. 
 
]]
 

	
 
--[[
 
Ираафаанотр
 
]]
 

	
 
--[[
 
Ираафаанотр.Город
 
]]
 

	
 
iraa_entry = lcutscene("iraa_entry", "Левиафан, рубка", [[Ираафаанотр расположен на обширном плато к северу от Атлантиды. Вы без проблем добираетесь туда. Поселение представляет собой несколько домов, раскиданных по обе стороны от широкой мощеной улицы, протянувшейся с запада на восток. В центре ее возвышается обелиск, вокруг которого расположена центральная площадь. Там же расположены два самых больших здания города, разительно отличающиеся от небольших, грубо сложенных хижин, расположенных вокруг. ]], "Вы прибыли в Дипатреанотр. ", leviathan_wheelhouse);
 

	
 
iraa_near_city_west = room {
 
    nam = "iraa_near_city_west";
 
    disp = [[Ираафаанотр, у города]];
 
    dsc = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на западной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]];
 
    view = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на западной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]];
 
    obj = {
 
        "iraa_city_west_guard"
 
    };
 
    way = {
 
        kh_vroom("В левиафан", "leviathan_airlock");
 
        kh_vroom("На восток, к центру Ираафаанотра", "iraa_city_west");
 
    };
 
};
 

	
 
iraa_city_west = room {
 
    nam = "iraa_city_west";
 
    disp = "Ираафаанотр, улица";
 
    dsc = [[Широкая мощеная улица, пересекающая город с востока на запад. К северу вы видите обширные поля, обрабатываемые десятками рук и дающие пищу жителям селения. К востоку вы видите каменный обелиск, возвышающийся над центральной площадью Ираафаанотра. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_near_city_west");
 
        kh_vroom("На восток, к центру Ираафаанотра", "iraa_city_center");
 
    };
 
};
 

	
 
iraa_city_center = room {
 
    nam = "iraa_city_center";
 
    disp = "Ираафаанотр, центральная площадь";
 
    dsc = [[Центральная площадь Ираафаанотра практически пуста. Лишь несколько зевак с интересом разглядывает вас, осторожно выглядывая из дверей библиотеки -- крупного здания, расположенного к северу от вас. Напротив библиотеки расположен дом вождя, не уступающий размерами библиотеке. ]];
 
    obj = {
 
        "iraa_obelisk";
 
    };
 
    way = {
 
        kh_vroom("На запад", "iraa_city_west");
 
        kh_vroom("На восток", "iraa_city_east");
 
        kh_vroom("В библиотеку", "iraa_city_library");
 
        kh_vroom("В дом вождя", "iraa_city_chief_house");
 
    };
 
};
 

	
 
iraa_obelisk = obj {
 
    nam = "iraa_obelisk";
 
    dsc = [[В центре площади стоит большой каменный {обелиск}, с нанесенными на него символами. ]];
 
    act = function(s)
 
        iraaphaanotrr_temple_found = true;
 
        return [[На обелиске, традиционно для навьяров, начертано название города и вырезана карта, указывающая путь к храму. ]];
 
    end;
 
};
 

	
 
iraa_city_east = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "iraa_city_east";
 
    disp = "Ираафаанотр, улица";
 
    dsc = [[Широкая мощеная улица, пересекающая город с востока на запад. К северу вы видите обширные поля, обрабатываемые десятками рук и дающие пищу жителям селения. К западу вы видите каменный обелиск, возвышающийся над центральной площадью Ираафаанотра. ]];
 
    entered = function(s)
 
        if (state == 0 and char_learr.follow) then
 
            path("На юг, к саду"):enable();
 
            if language_known then
 
                return [[Здесь Леарр неожиданно останавливается. Она смотрит на юг, а по ее головным плавникам бегут цветные полосы -- она говорит, что здесь, за домом вождя есть небольшой сад, а сразу за ним находится ее дом. Она просит вас пойти туда вместе с ней. ]];
 
            else
 
                return [[Здесь Леарр неожиданно останавливается. Она смотрит на юг, а по ее головным плавникам бегут цветные полосы. Вы не понимаете, что она пытается вам сказать, но она хватает вас за руку и пытается вести за собой на юг. ]];
 
            end;
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("На восток", "iraa_near_city_east");
 
        kh_vroom("На юг, к саду", "iraa_garden"):disable();
 
        kh_vroom("На запад, к центру Ираафаанотра", "iraa_city_center");
 
    };
 
};
 

	
 
iraa_garden = room {
 
    nam = "iraa_garden";
 
    disp = "Ираафаанотр, сад";
 
    dsc = [[Небольшой сад, расположенный за домом вождя. ]];
 
    way = {
 
        kh_vroom("На север, к главной улице", "iraa_near_city_east");
 
        kh_vroom("На юг, к дому Леарр", "iraa_learr_house_near");
 
    };
 
};
 

	
 
iraa_learr_house_near = room {
 
    nam = "iraa_learr_house_near";
 
    disp = "Ираафаанотр, у дома Леарр";
 
};
 

	
 
iraa_near_city_east = room {
 
    nam = "iraa_near_city_east";
 
    disp = [[Ираафаанотр, у города]];
 
    dsc = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на восточной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]];
 
    obj = {
 
        "iraa_city_east_guard";
 
    };
 
    way = {
 
        kh_vroom("К центру Ираафаанотра", "iraa_city_east");
 
    };
 
};
 

	
 
iraa_city_west_guard = npc {
 
    nam = "iraa_city_west_guard";
 
    dsc = [[По обе стороны дороги стоят двое навьярских {стражникиов}. ]];
 
    phrases = function(s)
 
        if (language_known) then
 
            if (atl_rep_iraa >= 0) then
 
                return {
 
                    "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы -- они просят вас говорить с вождем. ",
 
                    "По головным плавникам стражников бегут цветные полосы -- они приветствуют вас"
 
                };
 
            else
 
                return {
 
                    "Стражники указывают вам на дом вождя. По их головным плавникам бегут цветные полосы -- они просят вас говорить с вождем. "
 
                };
 
            end;
 
        else
 
            return {
 
                "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы, но вы не понимаете, что они значат. "
 
            };
 
        end;
 
    end;
 
};
 

	
 
iraa_city_east_guard = npc {
 
    nam = "iraa_city_east_guard";
 
    dsc = [[По обе стороны дороги стоят двое навьярских {стражникиов}. ]];
 
    phrases = function(s)
 
        if (language_known) then
 
            if (atl_rep_iraa >= 0) then
 
                return {
 
                    "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы -- они просят вас говорить с вождем. ",
 
                    "По головным плавникам стражников бегут цветные полосы -- они приветствуют вас"
 
                };
 
            else
 
                return {
 
                    "Стражники указывают вам на дом вождя. По их головным плавникам бегут цветные полосы -- они просят вас говорить с вождем. "
 
                };
 
            end;
 
        else
 
            return {
 
                "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы, но вы не понимаете, что они значат. "
 
            };
 
        end;
 
    end;
 
};
 

	
 
iraa_city_chief_house = room {
 
    nam = "iraa_chief_house";
 
    dsc = [[Приемная дома вождя представляет собой огромый зал. Несколько массивных колонн, не слишком искусно сделанных, поддерживают тяжелую каменную крышу здания. В дальнем конце зала установлен каменный трон. Перед троном установлен громадный, каменный же стол, вокруг которого расставлено множество стульев. ]];
 
    way = {
 
        kh_vroom("На площадь", "iraa_city_center");
 
    };
 
    obj = {
 
        "iraa_chief"
 
    };
 
};
 

	
 
iraa_chief = npc {
 
    nam = "iraa_chief";
 
    dsc = [[{Вождь Ираафаанотра} сидит на троне, внимательно наблюдая за вами своими серыми глазами. Руки его неподвижно лежат на подлокотниках. Серебристая чешуя, слегка синеватая, потускнела за долгие годы жизни. Одет он в плотный облегающий костюм из водорослей, не стесняющий движения, как принято у всех, даже самых высокопоставленных навьяров. ]];
 
    dlg = "iraa_chief_dlg";
 
};
 

	
 
iraa_chief_dlg = dlg {
 
    var {
 
        ask_temple = false;
 
    };
 
    nam = "iraa_chief_dlg";
 
    disp = "Вождь Ираафаанотра";
 
    entered = function(s)
 
        if (language_known) then
 
            psub("greet");
 
            if (s.ask_temple) then
 
                s.ask_temple = false;
 
                pon("temple");
 
            end;
 
            return [[Вы подходите к каменному столу, чтобы предстать перед вождем Ираафаанотра -- немолодым уже навьяром. Длинные руки, покрытые тусклой серебристой чешуей, с едва заметным синеватым отливом, покоятся на подлокотниках трона. Не поднимаясь, он начинает говорить. По головным плавникам вождя бегут цветные полосы -- вождь прииглашает вас сесть напротив него и открыть цель вашего визита. В скафандре у вас с трудом получается это сделать, но вы не решаетесь оскорбить вождя и остаться стоять перед ним. ]];
 
        else
 
            psub("no_speech");
 
            return [[Вы подходите к каменному столу, чтобы предстать перед вождем Ираафаанотра -- немолодым уже навьяром. Длинные руки, покрытые тусклой серебристой чешуей, с едва заметным синеватым отливом, покоятся на подлокотниках трона. Не поднимаясь, он начинает говорить. По головным плавникам вождя бегут цветные полосы -- вождь прииглашает вас сесть напротив него и открыть цель вашего визита. В скафандре у вас с трудом получается это сделать, но вы не решаетесь оскорбить вождя и остаться стоять перед ним. ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speech"};
 
        {"[Уйти]", code [[ back(); ]]};
 
        {tag="greet"};
 
        {"[Кодировщик]Приветствую. Мы ищем фрагмент карты пути к Лсэрианотру, который находится у вас. ", [[Вождь задумчиво смотрит на вас. Через некоторое время он отвечает: "У нас нет ничего подобного. Я не знаю, о чем вы говорите". ]], code [[psub("more_info");]]};
 
        {tag="temple", false, "[Кодировщик]Мы просим разрешения посетить храм Ираафаанотра. ", [[Вождь отрицательно качает головой: "Это исключено, хевьяр. "]]};
 
        {"[Кодировщик]Мы ищем Венаэданотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра. "]]};
 
        {"[Кодировщик]Мы ищем Нлейисланотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра. "]]};
 
        {"[Кодировщик] Приветствую. Мы ищем фрагмент карты пути к Лсэрианотру, который находится у вас. ", [[Вождь задумчиво смотрит на вас. Через некоторое время он отвечает: "У нас нет ничего подобного. Я не знаю, о чем вы говорите". ]], code [[psub("more_info");]]};
 
        {tag="temple", false, "[Кодировщик] Мы просим разрешения посетить храм Ираафаанотра. ", [[Вождь отрицательно качает головой: "Это исключено, хевьяр. "]]};
 
        {"[Кодировщик] Мы ищем Венаэданотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра. "]]};
 
        {"[Кодировщик] Мы ищем Нлейисланотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра. "]]};
 
        {"[Уйти]", code [[ back(); ]]};
 
        {tag="more_info"};
 
        {"[Кодировщик]Один из фрагментов карты должен быть у вас[Передать табличку, найденную в храме]. ", [[Вождь отвечает: "Я не знаю ни о чем подобном. вам стоит спросить у Ритларра в библиотеке. "]]};
 
        {"[Кодировщик] Один из фрагментов карты должен быть у вас. [Передать табличку, найденную в храме]", [[Вождь отвечает: "Я не знаю ни о чем подобном. вам стоит спросить у Ритларра в библиотеке. "]]};
 
        {"[Уйти]", code [[ back(); ]]};
 
    };
 
};
 

	
 
iraa_city_library = room {
 
    nam = "iraa_city_library";
 
    dsc = [[Огромный зал библиотеки Ираафаанотра практичски пусто. ]];
 
    obj = {
 
        "iraa_rytlarr",
 
        "iraa_shelves"
 
    };
 
};
 

	
 
iraa_shelves = obj {
 
    nam = "iraa_shelves";
 
    dsc = [[Вдоль стен стоят многочисленные {стеллажи} с древними и новыми записями. Большинство из них сделаны на металлических табличках и явно очень стары. Вперемешку с ними стоят и каменные -- более современные, и даже сделанные на водорослях -- те, что еще не успели переписать на что-то более долговечное. ]];
 
    act = [[Вам потребуются десятилетия, чтобы изучить все, находящиеся здесь записи. ]];
 
};
 

	
 
iraa_rytlarr = npc {
 
    nam = "iraa_rytlarr";
 
    dsc = [[По залу неспешно расхаживает молодой {навьяр}. Зеленые глаза внимательно рассматривают полки. Зеленовато-серая чешуя поблескивает на свету. Время от времени он останавливается возле одной из полок, чтобы перенести те или иные записи с места на место]];
 
    dlg = "iraa_rytlarr_dlg";
 
};
 

	
 
iraa_rytlarr_dlg = dlg {
 
    nam = "iraa_rytlarr_dlg";
 
    disp = [[Ритларр]];
 
    entered = function(s)
 
        if dyp_quest_state == 1 then
 
            pon("star_map");
 
        end;
 
        if (language_known) then
 
            psub("generic");
 
            return [[Навьяр обращается к вам: "Ритларр приветствует тебя, хевьяр". ]];
 
        else
 
            psub("no_speech");
 
            return [[По головным плавникам навьяра бегут цветные полосы, но вы не понимаете, что он пытается сказать вам. ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speech"};
 
        {"[Уйти]", code [[ back(); ]]};
 
        {tag="generic"};
 
        {"[Кодировщик]Я ищу часть карты, ведущей в Лсэрианотр.", [[Навьяр некоторое время стоит, задумавшись. Потом он начинает ходить от полки к полке. Наконец, он сообщает: "Я не уверен, что она у нас есть. Но если вы уверены -- она должна быть в храме. Спросите у вождя. Быть может он позволит вам войти внутрь по такому случаю". ]], code [[ iraa_chief_dlg.ask_temple = true; ]]};
 
        {tag="star_map", false, "[Кодировщик]Ты наешь что-нибудь о карте небесных огней?", [[Навьяр кивает: "наше сокровище. Аэдиенрр взял ее не так давно. Он сказал, что знает как найти место, указанное в ней. Но прошло много дней, а он не вернулся. Если ты сможешь найти его и вернуть карту, мы будем очень благодарны. Я не знаю точно конечную цель, но я знаю, что он вышел по направлению к Дипатреанотру". ]], code [[ dyp_quest_state = 2; ]]};
 
        {"[Кодировщик]Ты знаешь, где находится Венаэданотр?", [[Навьяр кивает: "Мы знаем путь туда". Он ведет вас к одной из полок в дальнем конце зала. Ритларр достает одну из металлических пластин и протягивает вам со словами: "Вернете, когда сделаете копию у себя". ]], code [[ ]]};
 
        {"[Кодировщик]Ты знаешь, где находится Нлейисланотр?", [[Навьяр отрицательно качает головой: "У нас нет карты пути к этому месту. Быть может, путь знают в Дипатреанотре. "]]};
 
        {"[Кодировщик] Я ищу часть карты, ведущей в Лсэрианотр.", [[Навьяр некоторое время стоит, задумавшись. Потом он начинает ходить от полки к полке. Наконец, он сообщает: "Я не уверен, что она у нас есть. Но если вы уверены -- она должна быть в храме. Спросите у вождя. Быть может он позволит вам войти внутрь по такому случаю". ]], code [[ iraa_chief_dlg.ask_temple = true; ]]};
 
        {tag="star_map", false, "[Кодировщик] Ты наешь что-нибудь о карте небесных огней?", [[Навьяр кивает: "наше сокровище. Аэдиенрр взял ее не так давно. Он сказал, что знает как найти место, указанное в ней. Но прошло много дней, а он не вернулся. Если ты сможешь найти его и вернуть карту, мы будем очень благодарны. Я не знаю точно конечную цель, но я знаю, что он вышел по направлению к Дипатреанотру". ]], code [[ dyp_quest_state = 2; ]]};
 
        {"[Кодировщик] Ты знаешь, где находится Венаэданотр?", [[Навьяр кивает: "Мы знаем путь туда". Он ведет вас к одной из полок в дальнем конце зала. Ритларр достает одну из металлических пластин и протягивает вам со словами: "Вернете, когда сделаете копию у себя". ]], code [[ ]]};
 
        {"[Кодировщик] Ты знаешь, где находится Нлейисланотр?", [[Навьяр отрицательно качает головой: "У нас нет карты пути к этому месту. Быть может, путь знают в Дипатреанотре. "]]};
 
        {"[Уйти]", code [[ back(); ]]};
 
    };
 
};
 

	
 
--[[
 
Ираафаанотр.Храм
 
]]
 

	
 
iraa_temple_entry = lcutscene("dyp_entry", "Левиафан, рубка", [[После недолгого путешествия, вы оказываетесь у цели. Как и другие, виденные вами храмы, храм Ираафаанотра вырезан в толще скалы. Массивные ворота, вытесанные из камня заперты. Рисунок над ними указывает путь к Ираафаанотру. ]], "Вы прибыли в Дипатреанотр. ", leviathan_wheelhouse);
 

	
 
player_learr = player {
 
    nam = "player_learr";
 
    has_light = true;
 
    obj = {};
 
};
 

	
 
iraa_learr_choice_dlg = dlg {
 
    nam = "iraa_learr_choice_dlg";
 
    disp = "Леарр";
 
    entered = [[Вы уже собираетесь покинуть Левиафан, как в шлюзовую камеру входит Леарр со словами: "Дрейк-ты здесь-оставайся. Я в-храм-пойду". ]];
 
    phr = {
 
        {"Почему не отправиться вместе?", [[Леарр отрицательно качает головой: "Хевьярам нельзя-в-храм-входить, поэтому я внутрь-только-одна-войду". ]]};
 
        {"Хорошо, ты справишься лучше. ", [[Леарр кивает: "Я вернусь-с-картой. Вы здесь-ждите". Вы покидаете шлюзовую камеру и Леарр выходит наружу. ]], code [[
 
            rel_learr = rel_learr + 1;
 
            pl = player_learr;
 
            walk("iraa_temple_entrance");
 
        ]]};
 
        {"Я пойду сам. ", [[Леарр недовольно качает головой. Плавники окрашиваются синим. Со совами: "Ты ошибку-совершаешь", -- она выходит из шлюзовой камеры. ^^Вы выбираетесь из Левиафана. ]], code [[
 
            rel_learr = rel_learr - 1;
 
            walk("iraa_temple_entrance");
 
        ]]};
 
    };
 
};
 

	
 
iraa_temple_entrance = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Храм Ираафаанотра, вход";
 
    underwater = true;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр стоит перед массивными двустворчатыми воротами храма, вытесанными в скале, протянувшейся с севера на юг. Над ними расположена карта, указывающая путь к Ираафаанотру. Работники храма регулярно обновляли и восстанавливали карту в течение многих столетий. ]];
 
        else
 
            return [[Перед вами возвышаются массивные двустворчатые ворота храма, вытесанные из камня. Над ними вы видите тщательно поддерживаемую в порядке карту, указывающую путь к Ираафаанотру. Скала тянется с севера на юг насколько хватает глаз. ]];
 
        end;
 
    end;
 
    view = [[Через иллюминаторы видны массивные ворота вытесанного в скале храма. Над входом расположен символ храма -- карта пути к самому Ираафаанотру отсюда. ]];
 
    enter = function(s)
 
        if s.state == 0 and ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
 
            s.state = 1;
 
            walkin("iraa_learr_choice_dlg");
 
        end;
 
    end;
 
    obj = {
 
        "iraa_temple_guardians";
 
    };
 
    way = {
 
        kh_vroom("Войти", function(s)
 
            if pl == player_learr then
 
                return "iraa_temple_main_1";
 
            else
 
                pr [[Стражники не пропустят вас. ]];
 
                return false;
 
            end;
 
            
 
        end);
 
        kh_vroom("Вдоль скалы на север", function(s)
 
            if pl == player_learr then
 
                pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]];
 
                return false;
 
            else
 
                return "iraa_temple_north_1";
 
            end;
 
        end);
 
        kh_vroom("Вдоль скалы на юг", function(s)
 
            if pl == player_learr then
 
                pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]];
 
                return false;
 
            else
 
                return "iraa_temple_south";
 
            end;
 
        end);
 
        kh_vroom("В Левиафан", function(s)
 
            if pl == player_learr and iraa_temple_hidden_pedestal.state == 0 then
 
                pr [[В голове Леарр проносится мысль: "Я еще не сделала все, что нужно". ]];
 
                return false;
 
            else
 
                return "leviathan_airlock";
 
            end;
 
        end);
 
    };
 
};
 

	
 
iraa_temple_guardians = npc {
 
    nam = "iraa_temple_guardians";
 
    dsc = [[У входа в храм стоят двое {стражников} -- обычный дозор. ]];
 
    phrases = function(s)
 
        if pl == player_learr then
 
            return {
 
                "Один из стражников приветствует Леарр и приглашает войти в храм. ";
 
                "Стражники не обращают на Леарр внимания. ";
 
            };
 
        elseif language_known then
 
            return {
 
                "В вашем присутствии стражники заметно нервничают. ";
 
                "Стражники осторожно переглядываются. ";
 
                "По головным плавникам одного из стражников бегут цветные полосы: \"Уходите, вам здесь не место\". ";
 
            };
 
        else
 
            return {
 
                "В вашем присутствии стражники заметно нервничают. ";
 
                "Стражники осторожно переглядываются. ";
 
                "По головным плавникам одного из стражников бегут цветные полосы, но вы не понимаете, что он хочет вам сказать. ";
 
            };
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_south = room {
 
    nam = "iraa_temple_south";
 
    disp = "У скалы";
 
    dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на севере вы видите Левиафан -- вашу субмарину и вход в храм Ираафаанотра, охраняемый двумя вооруженными навьярами. ]];
 
    way = {
 
        kh_vroom("Вдоль скалы на север", "iraa_temple_entrance");
 
    };
 
};
 

	
 
iraa_temple_north_1 = room {
 
    nam = "iraa_temple_north_1";
 
    disp = "У скалы";
 
    dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на юге вы видите Левиафан -- вашу субмарину и вход в храм Ираафаанотра, охраняемый двумя вооруженными навьярами. ]];
 
    way = {
 
        kh_vroom("Вдоль скалы на север", "iraa_temple_north_2");
 
        kh_vroom("Вдоль скалы на юг", "iraa_temple_entrance");
 
    };
 
};
 

	
 
iraa_temple_north_2 = room {
 
    nam = "iraa_temple_north_2";
 
    disp = "У скалы";
 
    dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на юге вы едва различаете Левиафан -- вашу субмарину. ]];
 
    way = {
 
        kh_vroom("Вдоль скалы на север", "iraa_temple_north_3");
 
        kh_vroom("Вдоль скалы на юг", "iraa_temple_north_1");
 
    };
 
};
 

	
 
iraa_temple_north_3 = room {
 
    nam = "iraa_temple_north_3";
 
    disp = "У входа в ущелье";
 
    dsc = [[К востоку от вас возвышается скала, протянувшаяся на многие километры ссевера на юг. Рядом с вами в скале имеется узкое ущелье -- настолько незаметное, что проплывай вы мимо на Левиафане, вы не обратили бы на него никакого внимания. ]];
 
    way = {
 
        kh_vroom("В ущелье", "iraa_temple_ravine_1");
 
        kh_vroom("Вдоль скалы на юг", "iraa_temple_north_2");
 
    };
 
    entered = function(s)
 
        lifeoff(iraa_temple_shark);
 
    end;
 
};
 

	
 
iraa_temple_shark = room {
 
    var {
 
        alive = true;
 
        position = 1;
 
        wait = 0;
 
    };
 
    cycle = {2,6,7,8,9,4.3};
 
    nam = "iraa_temple_shark";
 
    life = function(s)
 
        s.wait = s.wait + 1;
 
        if (s.wait < 3) then
 
            return;
 
        end;
 
        s.wait = 0;
 
        s.position = s.position + 1;
 
        if (s.position > #s.cycle) then
 
            s.position = 1;
 
        end;
 
        if s.position == here().index then
 
            walk("game_over_eaten_by_shark");
 
        end;
 
    end;
 
    canshoot = true;
 
    onshoot = function(s)
 
        s.alive = false;
 
        lifeoff(s);
 
        s:disable();
 
        return [[Пронзенная метким выстрелом гарпуна, акула умирает. ]];
 
    end;
 
    dsc = function(s)
 
        if s.alive then
 
            if here().index == 1 then
 
                if s.cycle[s.position] == 2 then
 
                    return [[На востоке от вас вы видите {акулу}, она движется на север. ]];
 
                end;
 
            elseif here().index == 5 then
 
                if s.cycle[s.position] == 4 then
 
                    return [[На западе от вас вы видите {акулу}, она движется на запад. ]];
 
                end;
 
            elseif here().index == 10 then
 
                if s.cycle[s.position] == 7 then
 
                    return [[На юге от вас вы видите {акулу}, она движется на восток. ]];
 
                end;
 
            elseif here().index == 2 then
 
                if s.cycle[s.position] == 3 then
 
                    return [[С востока к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 6 then
 
                    return [[К северу от вас вы видите {акулу}. Она не видит вас и продолжает движение от вас. ]];
 
                end;
 
            elseif here().index == 6 then
 
                if s.cycle[s.position] == 2 then
 
                    return [[С юга к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 7 then
 
                    return [[К северу от вас вы видите {акулу}. Она не видит вас и продолжает движение от вас. ]];
 
                end;
 
            elseif here().index == 7 then
 
                if s.cycle[s.position] == 6 then
 
                    return [[С юга к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 8 then
 
                    return [[На востоке вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 8 then
 
                if s.cycle[s.position] == 7 then
 
                    return [[С запада к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 9 then
 
                    return [[На востоке вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 9 then
 
                if s.cycle[s.position] == 8 then
 
                    return [[С запада к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 4 then
 
                    return [[На юге вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 4 then
 
                if s.cycle[s.position] == 9 then
 
                    return [[С севера к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 3 then
 
                    return [[На западе вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 3 then
 
                if s.cycle[s.position] == 4 then
 
                    return [[С востока к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 2 then
 
                    return [[На западе вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            end;
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_ravine_1 = room {
 
    index = 1;
 
    nam = "iraa_temple_ravine_1";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_north_3");
 
        kh_vroom("На восток", "iraa_temple_ravine_2");
 
    };
 
    entered = function(s)
 
        if iraa_temple_shark.alive then
 
            lifeon(iraa_temple_shark);
 
        end;
 
    end;
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_2 = room {
 
    index = 2;
 
    nam = "iraa_temple_ravine_2";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_1");
 
        kh_vroom("На север", "iraa_temple_ravine_6");
 
        kh_vroom("На восток", "iraa_temple_ravine_3");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_3 = room {
 
    index = 3;
 
    nam = "iraa_temple_ravine_3";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_2");
 
        kh_vroom("На восток", "iraa_temple_ravine_4");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_4 = room {
 
    index = 4;
 
    nam = "iraa_temple_ravine_4";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_3");
 
        kh_vroom("На север", "iraa_temple_ravine_9");
 
        kh_vroom("На восток", "iraa_temple_ravine_5");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_5 = room {
 
    index = 5;
 
    nam = "iraa_temple_ravine_5";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_4");
 
        kh_vroom("В трещину", "iraa_temple_crevice");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
    entered = function(s)
 
        lifeoff(iraa_temple_guardian);
 
    end;
 
};
 

	
 
iraa_temple_ravine_6 = room {
 
    index = 6;
 
    nam = "iraa_temple_ravine_6";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На юг", "iraa_temple_ravine_2");
 
        kh_vroom("На север", "iraa_temple_ravine_7");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_7 = room {
 
    index = 7;
 
    nam = "iraa_temple_ravine_7";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На юг", "iraa_temple_ravine_6");
 
        kh_vroom("На восток", "iraa_temple_ravine_8");
 
        kh_vroom("На север", "iraa_temple_ravine_10");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_8 = room {
 
    index = 8;
 
    nam = "iraa_temple_ravine_8";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_7");
 
        kh_vroom("На север", "iraa_temple_ravine_10");
 
        kh_vroom("На восток", "iraa_temple_ravine_9");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_9 = room {
 
    index = 9;
 
    nam = "iraa_temple_ravine_9";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_8");
 
        kh_vroom("На юг", "iraa_temple_ravine_4");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_10 = room {
 
    index = 10;
 
    nam = "iraa_temple_ravine_10";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На север", "iraa_temple_ravine_11");
 
        kh_vroom("На восток", "iraa_temple_ravine_8");
 
        kh_vroom("На юг", "iraa_temple_ravine_7");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_11 = room {
 
    nam = "iraa_temple_ravine_11";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На север", "iraa_temple_ravine_11");
 
        kh_vroom("На восток", "iraa_temple_ravine_8");
 
        kh_vroom("На юг", "iraa_temple_ravine_7");
 
    };
 
};
 

	
 
iraa_temple_crack = room {
 
    index = 7;
 
    nam = "iraa_temple_crack";
 
    disp = "Трещина в скале";
 
    dsc = [[Небольшая узкая трещина в скале. Вы с огромным трудом перемещаетесь внутри. С одной стороны вы видите ущелье, ерез которое вы проникли сюда. С другой стороны -- какой-то хорошо освещенный коридор. ]];
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_6");
 
        kh_vroom("В ущелье", "iraa_temple_ravine_5");
 
    };
 
    entered = function(s)
 
        lifeon(iraa_temple_guardian);
 
    end;
 
};
 

	
 
iraa_temple_guardian = room {
 
    var {
 
        position = 1;
 
        direction = 1;
 
        wait = 0;
 
    };
 
    nam = "iraa_temple_guardian";
 
    life = function(s)
 
        s.wait = s.wait + 1;
 
        if (s.wait < 3) then
 
            return;
 
        end;
 
        s.wait = 0;
 
        if (s.direction == 1) then
 
            if (s.position < 3) then
 
                s.position = s.position + 1;
 
                if (here().index >= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = 2;
 
            end;
 
        elseif (s.direction == 2) then
 
            if (s.position < 6) then
 
                s.position = s.position + 1;
 
                if (here().index >= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = 2;
 
            end;
 
        elseif (s.direction == -2) then
 
            if (s.position > 3) then
 
                s.position = s.position - 1;
 
                if (here().index <= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = -1;
 
            end;
 
        elseif (s.direction == -1) then
 
            if (s.position > 1) then
 
                s.position = s.position - 1;
 
                if (here().index <= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = 1;
 
            end;
 
        end;
 
        if here().index > 6 or here().index < 1 then
 
            return;
 
        end;
 
        if s.direction == 1 and here().index < 4 and here().index >= s.position or 
 
           s.direction == 2 and here().index >= s.position or
 
           s.direction == -2 and here().index > 2 and here().index <= s.position or 
 
           s.direction == -1 and here().index <= s.position then
 
            walk("game_over_caught_iraa");
 
        end;
 
    end;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return "";
 
        end;
 
        if here().index > 6 or here().index < 1 then
 
            return [[]];
 
        end;
 
        if s.direction == 1 then
 
            if here().index < s.position then
 
                return [[К востоку вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        elseif s.direction == 2 then
 
            if here().index > 2  and here().index < s.position then
 
                return [[К северу вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        elseif s.direction == -2 then
 
            if here().index > s.position then
 
                return [[К югу вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        elseif s.direction == -1 then
 
            if here().index > s.position  then
 
                return [[К западу вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_corridor_6 = room {
 
    index = 6;
 
    nam = "iraa_temple_corridor_6";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Каменные стены покрыты Файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. Северную стену рассекает глубокая трещина, а в западной находится дверь, ведущая в одну из служебных комнат. ]];
 
        else
 
            return [[Вы стоите в самом конце коридора в храме Ираафаанотра. Вокруг -- камееные стены, покрытые светящимися водорослями. В одной из них вы видите глубокую, трещину, через которую вы с трудом протиснулись сюда. В западной стене вы видите небольшой дверной проем, за которым скрывается маленькая комнатка. ]];
 
        end;
 
    end; 
 
    way = {
 
        kh_vroom("В трещину", function(s)
 
            if pl == player_learr then
 
                pr [[В голове Леарр мелькает мысль: "Мне нечего там делать". ]];
 
                return false;
 
            else
 
                return "iraa_temple_crack";
 
            end;
 
        end);
 
        kh_vroom("В комнату", "iraa_temple_room_0");
 
        kh_vroom("По коридору, на юг", "iraa_temple_corridor_5");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_5 = room {
 
    index = 5;
 
    nam = "iraa_temple_corridor_5";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. В западной стене коридора имеется проем, ведущий в одну из служебных комнат. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В западной стене находится дверной проем, ведущий в небольшую комнату. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В комнату", "iraa_temple_room_2");
 
        kh_vroom("По коридору, на север", "iraa_temple_corridor_6");
 
        kh_vroom("По коридору, на юг", "iraa_temple_corridor_4");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_4 = room {
 
    index = 4;
 
    nam = "iraa_temple_corridor_4";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на север", "iraa_temple_corridor_5");
 
        kh_vroom("По коридору, на юг", "iraa_temple_corridor_3");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_3 = room {
 
    index = 3;
 
    nam = "iraa_temple_corridor_3";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. Коридор сворачивает под прямым углом к северу. В восточной стене расположена массивная каменная дверь -- задний вход в храм. Леарр никогда не понимала этой необходимости, но во всех известных ей храмах было ровно два входа. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. Здесь коридор сворачивает под прямым углом к северу. В конце коридора на западе вы видите массивную каменную дверь, которая сейчас открыта. На севере коридор заканчивается тупиком. К востоку от вас массивная каменная дверь, но она заперта. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на север", "iraa_temple_corridor_4");
 
        kh_vroom("В комнату", "iraa_temple_room_5");
 
        kh_vroom("По коридору, на запад", "iraa_temple_corridor_2");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_2 = room {
 
    index = 2;
 
    nam = "iraa_temple_corridor_2";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В стенах имеются дверные проемы, ведущие в небольшие комнаты. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на восток", "iraa_temple_corridor_3");
 
        kh_vroom("В комнату в северной стене", "iraa_temple_room_3");
 
        kh_vroom("В комнату в южной стене", "iraa_temple_room_6");
 
        kh_vroom("По коридору, на запад", "iraa_temple_corridor_1");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_1 = room {
 
    index = 1;
 
    nam = "iraa_temple_corridor_1";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр впервые за долгие годы оказалась в задней части храма. Хотя проход сюда, в принципе, не запрещен, необходимости бывать здесь, как правило, нет -- все, что доступно пониманию горожан происходит в главном зале. Ровные каменные стены покрыты файирром -- светящимися водорослями, используемыми навьярами повсеместно. В западной стене находится дверь, ведущая в основное помещение храма, а в северной и южной -- проемы, ведущие в служебные комнаты. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены, покрытые светящимися водорослями. Прямо перед вами находится дверь, ведущая в основное помещение храма. Отсюда вы видите, что в нем никого нет. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на восток", "iraa_temple_corridor_2");
 
        kh_vroom("В комнату в северной стене", "iraa_temple_room_7");
 
        kh_vroom("В комнату в южной стене", "iraa_temple_room_1");
 
        kh_vroom("В главный зал", "iraa_temple_main_3");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_main_3 = room {
 
    nam = "iraa_temple_main_3";
 
    disp = "Храм Ираафаанотра, главный зал";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в главном зале Ираафаанотра. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. Рядом с Леарр расположена дверь, ведущая в задние помещения храма. Обычно там бывают лишь те, кто всю свою жизнь посвятил служению в этом храме. ]];
 
        else
 
            return [[Вы находитесь в конце главного зала храма Ираафаанотра. В стенах проделаны многочисленые ниши, в которых покоятся священные реликвии навьяров. Массивная каменная дверь ведет в задние помещения. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В дверь", "iraa_temple_corridor_1");
 
        kh_vroom("К центру зала", "iraa_temple_main_2");
 
    };
 
};
 

	
 
iraa_temple_main_2 = room {
 
    nam = "iraa_temple_main_2";
 
    disp = "Храм Ираафаанотра, главный зал";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в центре главного зала храма Ираафаанотра. Рядом с ней находится пустой пьедестал, на котором должна находиться важнейшая реликвия храма, украденная ворами из Дипатреанотра. Слева и справа находятся залы, с незапамятных времен именуемые залом Вопроса и залом Ответа. ]];
 
        else
 
            return [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами ответа и вопроса. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В конец зала", "iraa_temple_main_3");
 
        kh_vroom("В зал вопроса", "iraa_temple_qhall");
 
        kh_vroom("В зал ответа", "iraa_temple_ahall");
 
        kh_vroom("К главному входу", "iraa_temple_main_1");
 
    };
 
    obj = {
 
        "iraa_temple_lever_4"
 
    };
 
};
 

	
 
iraa_temple_main_1 = room {
 
    nam = "iraa_temple_main_1";
 
    disp = "Храм Ираафаанотра, главный зал";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в главном зале храма Ираафаанотра, у центрального входа. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. ]];
 
        else
 
            return [[Вы находитесь в главном зале храма Ираафаанотра. В многочисленных нишах в стенах покоятся древние реликвии. Перед вами возвышаются массивные ворота храма, за которыми наверняка стоит обычная стража -- двое вооруженных навьяров. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В ворота", function(s)
 
            if pl == player_learr then
 
                return "iraa_temple_entrance";
 
            else
 
                pr("Не стоит делать этого. Стража вас схватит. ");
 
                return false;
 
            end;
 
        end);
 
        kh_vroom("К центру зала", "iraa_temple_main_2");
 
    };
 
};
 

	
 
iraa_temple_question = obj {
 
    nam = "iraa_temple_question";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Единственной достопримечательностью помещения была загадочная надпись "Ты ищешь число здесь", на стене напротив входа. ]];
 
        else
 
            return [[На стене напротив входа нанесены какие-то {письмена}. Видно, что навьяры раз за разом тщательно обновляют их, сохраняя их в первозданном виде. ]];
 
        end;
 
    end;
 
    act = [[Письмена гласят: "Ты число-здесь-ищешь". ]];
 
};
 

	
 
iraa_temple_qhall = room {
 
    nam = "iraa_temple_qhall";
 
    disp = "Храм Ираафаанотра, зал вопроса";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Назначение небольшого по размерам зала вопроса, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]];
 
        else
 
            return [[Зал вопроса представляет собой небольшое помещение, отделенное от основного зала высокой аркой. В отличие от центрального зала, стены здесь не имеют никаких ниш или полок -- здесь явно не должно храниться никаких реликвий. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В главный зал", "iraa_temple_main_2");
 
    };
 
    obj = {
 
        "iraa_temple_question";
 
    };
 
};
 

	
 
iraa_temple_answer = obj {
 
    nam = "iraa_temple_answer";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Вырезанное в камне стены изображение {спрута} всегда пугало Леарр, однако и притягивало -- есть в нем что-то необычное, интересное. ]];
 
        else
 
            return [[Вы видите вырезанное в стене изображение {спрута}. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if pl == player_learr then
 
            return [[В голове Леарр пробегает мысль: "Для чего он здесь?" В первый раз в жизни, Леарр обращает внимание на наличие шестнадцати щупалец у существа. ]];
 
        else
 
            return [[Традиционное для навьяров схематичное изображение спрута. Вам бросается в глаза наличие у существа шестнадцати щупалец. ]];
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_ahall = room {
 
    nam = "iraa_temple_ahall";
journey_nleyyslanotrr.lua
Show inline comments
 
global {
 
    za_convoy_gone = false;
 
};
 

	
 
za_gate_foot = room {
 
    nam = "Вход в Нлейисланотр";
 
    handwheel_room = "za_gate";
 
    underwater = true;
 
    no_exit = [[
 
        Нет смысла покидать Левиафан здесь. 
 
    ]];
 
    view = [[
 
        Через иллюминаторы вы видите перед собой высокие металлические ворота Нлейисланотра. С обеих сторон от них стоят две смотровые башни, на вершинах которых горят красные огоньки. 
 
    ]];
 
};
 

	
 
za_gate = dlg {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Левиафан, рубка";
 
    entered = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
                psub("learr");
 
                return [[
 
                    Как только Левиафан приближается к городу, массивные металлические ворота начинают закрываться. Огни на башнях окрашиваются красным, а по всему городу начинается какое-то волнение. В рубку поднимается Леарр. Она встает рядом с вами и, окидывая взглядом город, произносит: "Мы туда-не-идем. Они не-пускают-нас".
 
                ]];
 
            else
 
                psub("anna");
 
                return [[
 
                    Как только Левиафан приближается к городу, массивные металлические ворота начинают закрываться. Огни на башнях окрашиваются красным, а по всему городу начинается какое-то волнение. В рубку поднимается Анна. Она встает рядом с вами и, окидывая взглядом город, произносит: "Кажется, нам здесь не рады".
 
                ]];
 
            end;
 
        else
 
            psub("control");
 
            return [[
 
                Левиафан находится перед массивными металлическими воротами Нлейисланотра. Огни на башнях горят ярко-красным, сообщая вам что пути нет. 
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="learr"};
 
        {"[Остановить субмарину]И что нам делать?", [[
 
        {"[Остановить субмарину] И что нам делать?", [[
 
            Леарр пожимает плечами: "Мы незаметными-пройти-должны. Сильнее-они так-как много-их".
 
        ]], code [[ psub("control"); ]]};
 
        {"[Продолжать движение]Попробуем преподать им урок", code = [[ walk("game_over_za_learr"); ]]};
 
        {"[Продолжать движение] Попробуем преподать им урок", code = [[ walk("game_over_za_learr"); ]]};
 
        {tag="anna"};
 
        {"[Остановить субмарину]И что нам делать?", [[
 
        {"[Остановить субмарину] И что нам делать?", [[
 
            Анна пожимает плечами: "Понятия не имею".
 
        ]], code [[ psub("control"); ]]};
 
        {"[Продолжать движение]Попробуем преподать им урок", code = [[ walk("game_over_za_anna"); ]]};
 
        {"[Продолжать движение] Попробуем преподать им урок", code = [[ walk("game_over_za_anna"); ]]};
 
        {tag="control"};
 
        {always = true, "[Проплыть над воротами]", code = [[
 
            if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
                walk("game_over_za_learr");
 
            else
 
                walk("game_over_za_anna");
 
            end;
 
        ]]};
 
        {always = true, "[Двигаться вдоль стен]", code = [[
 
            move(submarine_leviathan, "za_crack_foot");
 
            walk("za_crack");
 
        ]]};
 
        {always = true, "[Отправиться в другое место]", code = [[
 
            walk("leviathan_handwheel");
 
        ]]};
 
        {always = true, "[Отойти от штурвала]", code = [[
 
            walk("leviathan_wheelhouse");
 
        ]]};
 
    };
 
};
 

	
 
za_crack_foot = room {
 
    nam = "Вход в Нлейисланотр";
 
    handwheel_room = "za_crack";
 
    underwater = true;
 
    dsc = [[
 
        Перед вами возвышается каменная стена древнего города. Через широкую трещину в ней вы вполне можете попытаться попасть на другую сторону. 
 
    ]];
 
    view = [[
 
        Через иллюминаторы вы видите высокие стены Нлейисланотра. Мощный луч прожектора освещает едва заметную трещину в стене. Быть может, вы сможете незаметно пробраться через нее в город. 
 
    ]];
 
    way = {
 
        kh_vroom("В Левиафан", leviathan_airlock);
 
        kh_vroom("В трещину", "za_crack_inside");
 
    };
 
};
 

	
 
za_crack = dlg {
 
    nam = "Левиафан, рубка";
 
    entered = [[
 
        Левиафан находится у стены Нлейисланотра. Огни на башнях погашены, сообщая что навьяры скорее всего не придают значения вашему присутствию. 
 
    ]];
 
    phr = {
 
        {always = true, "[Вернуться к воротам]", code = [[
 
            move(submarine_leviathan, "za_gate_foot");
 
            walk("za_gate");
 
        ]]};
 
        {always = true, "[Отправиться в другое место]", code = [[
 
            walk("leviathan_handwheel");
 
        ]]};
 
        {always = true, "[Отойти от штурвала]", code = [[
 
            walk("leviathan_wheelhouse");
 
        ]]};
 
    };
 
};
 

	
 
za_convoy_route = {
 
    "za_cross_6",
 
    "za_street_11",
 
    "za_cross_5",
 
    "za_street_13",
 
    "za_cross_24",
 
    "za_street_15",
 
    "za_cross_7",
 
    "za_street_16",
 
    "za_cross_8",
 
    "za_street_22",
 
    "za_cross_11",
 
    "za_street_23",
 
    "za_cross_12",
 
    "za_street_41",
 
    "za_cross_22",
 
    "za_street_42",
 
    "za_cross_23",
 
    "za_street_44",
 
    "za_cross_15",
 
    "za_street_27",
 
    "za_prison_entrance",
 
    "za_prison"
 
};
 

	
 
za_convoy = {
 
    position = null;
 
    direction = 'za_cross_6';
 
    index = 1;
 
    life = function(s)
 
        local loc = stead.deref(here());
 
        for i = 1, #za_convoy_messages do
 
            if (za_convoy_messages[i][1] == loc and za_convoy_messages[i][2] == za_convoy.position) then
 
                pr(za_convoy_messages[i][3]);
 
            end;
 
        end;
 
        if (za_convoy.index > #za_convoy_route) then
 
            --TODO Конвой ушол
 
            za_convoy_gone = true;
 
            timer:stop();
 
            game.timer = nil;
 
            lifeoff(za_convoy);
 
        else
 
            za_convoy.direction  = za_convoy_route[za_convoy.index];
 
            if (loc == za_convoy.position) then
 
                --TODO Бой начинается
 
                timer:stop();
 
                game.timer = nil;
 
                lifeoff(za_convoy);
 
                enter(za_phaetlarr_fight_intro);
 
            end;
 
        end;
 
    end;
 
};
 

	
 
za_convoy_messages = {
 
    --here--new_position--message--
 
    {"za_street_12", "za_cross_6", "Конвой выходит на перекресток к северу от вас. Навьяры поворачивают в противоположную от вас сторону и продолают свой путь. "},
 
    {"za_street_11", "za_cross_6", "Конвой выходит на перекресток к северу от вас. Навьяры поворачивают в вашу сторону и продолают свой путь. "},
 
    {"za_street_12", "za_street_11", "Конвой удаляется на север. "},
 
    {"za_cross_6", "za_street_11", "Конвой движется на север. "},
 
    {"za_cross_5", "za_street_11", "Конвой приближается к вам. "},
 
    {"za_cross_6", "za_cross_5", "Конвой удаляется на север. "},
 
    {"za_street_11", "za_cross_5", "Конвой движется на север. "},
 
    {"za_street_10", "za_cross_5", "Конвой приближается к вам. "},
 
    {"za_street_13", "za_cross_5", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_street_10", "za_street_13", "Конвой сворачивает на улицу к западу. "},
 
    {"za_street_11", "za_street_13", "Конвой сворачивает на улицу к западу. "},
 
    {"za_cross_24", "za_street_13", "Конвой приближается к вас с востока. "},
 
    {"za_street_14", "za_cross_24", "Конвой выходит на перекресток к югу от вас. "},
 
    {"za_street_15", "za_cross_24", "Конвой выходит на перекресток к северу от вас. "},
 
    {"za_street_14", "za_street_15", "Конвой удаляется от вас на юг. "},
 
    {"za_cross_24", "za_street_15", "Конвой движется от вас на юг. "},
 
    {"za_cross_7", "za_street_15", "Конвой приближается к вас с севера. "},
 
    {"za_deadend_3n", "za_cross_7", "Конвой выходит на перекресток к северу от вас. "},
 
    {"za_cross_24", "za_cross_7", "Конвой удаляется на юг. "},
 
    {"za_street_15", "za_cross_7", "Конвой движется на юг. "},
 
    {"za_street_16", "za_cross_7", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_deadend_3n", "za_street_16", "Конвой уходит на запад. "},
 
    {"za_street_15", "za_street_16", "Конвой уходит на запад. "},
 
    {"za_cross_7", "za_street_16", "Конвой уходит на запад. "},
 
    {"za_cross_8", "za_street_16", "Конвой приближается с востока. "},
 
    {"za_street_17", "za_cross_8", "Конвой выходит на перекресток к югу от вас. "},
 
    {"za_street_22", "za_cross_8", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_street_16", "za_cross_8", "Конвой уходит на запад. "},
 
    {"za_cross_7", "za_cross_8", "Конвой удаляется на запад. "},
 
    {"za_cross_7", "za_street_22", "Конвой удаляется на запад. "},
 
    {"za_street_16", "za_street_22", "Конвой движется на запад. "},
 
    {"za_street_17", "za_street_22", "Конвой движется на запад. "},
 
    {"za_cross_11", "za_street_22", "Конвой приближается с востока. "},
 
    {"za_cross_8", "za_cross_11", "Конвой удаляется на запад. "},
 
    {"za_street_22", "za_cross_11", "Конвой движется на запад. "},
 
    {"za_street_21", "za_cross_11", "Конвой выходит на перекресток к югу от вас. "},
 
    {"za_street_36", "za_cross_11", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_street_23", "za_cross_11", "Конвой выходит на перекресток к северу от вас. "},
 
    {"za_street_22", "za_street_23", "Конвой движется на юг. "},
 
    {"za_street_21", "za_street_23", "Конвой удаляется на юг. "},
 
    {"za_street_36", "za_street_23", "Конвой движется на юг. "},
 
    {"za_cross_11", "za_street_23", "Конвой движется на юг. "},
 
    {"za_cross_12", "za_street_23", "Конвой приближается с севера. "},
 
    {"za_cross_11", "za_cross_12", "Конвой удаляется на юг. "},
 
    {"za_street_23", "za_cross_12", "Конвой выходит на перекресток к югу от вас. "},
 
    {"za_street_46", "za_cross_12", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_street_24", "za_cross_12", "Конвой выходит на перекресток к западу от вас. "},
 
    {"za_street_41", "za_cross_12", "Конвой выходит на перекресток к северу от вас. "},
 
    {"za_street_23", "za_street_41", "Конвой удаляется на юг. "},
 
    {"za_cross_12", "za_street_41", "Конвой движется на юг. "},
 
    {"za_street_46", "za_street_41", "Конвой движется на юг. "},
 
    {"za_street_24", "za_street_41", "Конвой движется на юг. "},
 
    {"za_cross_22", "za_street_41", "Конвой приближается с севера. "},
 
    {"za_cross_12", "za_cross_22", "Конвой удаляется на юг. "},
 
    {"za_street_41", "za_cross_22", "Конвой выходит на перекресток к югу от вас. "},
 
    {"za_street_45", "za_cross_22", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_street_42", "za_cross_22", "Конвой выходит на перекресток к западу от вас. "},
 
    {"za_street_40", "za_cross_22", "Конвой выходит на перекресток к северу от вас. "},
 
    {"za_street_41", "za_street_42", "Конвой движется на восток. "},
 
    {"za_street_40", "za_street_42", "Конвой движется на восток. "},
 
    {"za_cross_22", "za_street_42", "Конвой движется на восток. "},
 
    {"za_street_45", "za_street_42", "Конвой удаляется на восток. "},
 
    {"za_cross_23", "za_street_42", "Конвой приближается с запада. "},
 
    {"za_cross_22", "za_cross_23", "Конвой удаляется на восток. "},
 
    {"za_street_42", "za_cross_23", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_street_43", "za_cross_23", "Конвой выходит на перекресток к югу от вас. "},
 
    {"za_street_44", "za_cross_23", "Конвой выходит на перекресток к западу от вас. "},
 
    {"za_street_42", "za_street_44", "Конвой удаляется на восток. "},
 
    {"za_cross_23", "za_street_44", "Конвой движется на восток. "},
 
    {"za_street_43", "za_street_44", "Конвой движется на восток. "},
 
    {"za_cross_15", "za_street_44", "Конвой приближается с запада. "},
 
    {"za_cross_23", "za_cross_15", "Конвой удаляется на восток. "},
 
    {"za_street_44", "za_cross_15", "Конвой выходит на перекресток к востоку от вас. "},
 
    {"za_street_26", "za_cross_15", "Конвой выходит на перекресток к югу от вас. "},
 
    {"za_street_35", "za_cross_15", "Конвой выходит на перекресток к северу от вас. "},
 
    {"za_street_27", "za_cross_15", "Конвой выходит на перекресток к западу от вас. "},
 
    {"za_street_44", "za_street_27", "Конвой удаляется на восток. "},
 
    {"za_cross_15", "za_street_27", "Конвой движется на восток. "},
 
    {"za_street_26", "za_street_27", "Конвой движется на восток. "},
 
    {"za_street_35", "za_street_27", "Конвой движется на восток. "},
 
    {"za_prison_entrance", "za_street_27", "Конвой приближается с запада. "},
 
    {"za_cross_15", "za_prison_entrance", "Конвой удаляется на восток. "},
 
    {"za_street_27", "za_prison_entrance", "Конвой приближается ко входу в здание. "},
 
    {"za_deadend_2s", "za_prison_entrance", "Конвой приближается ко входу в здание к югу от вас. "},
 
    {"za_street_28", "za_prison_entrance", "Конвой приближается ко входу в здание. "},
 
    {"za_street_27", "za_prison", "Двери здания мгновенно раскрываются, впуская навьяров, после чего столь же быстро закрываются. "},
 
    {"za_deadend_2s", "za_prison", "Двери здания мгновенно раскрываются, впуская навьяров, после чего столь же быстро закрываются. "},
 
    {"za_street_28", "za_prison", "Двери здания мгновенно раскрываются, впуская навьяров, после чего столь же быстро закрываются. "}
 
};
 

	
 
za_timer = function()
 
    local loc = stead.deref(here());
 
    za_convoy.index = za_convoy.index + 1;
 
    za_convoy.position = za_convoy.direction;
 
    for i = 1, #za_convoy_messages do
 
        if (za_convoy_messages[i][1] == loc and za_convoy_messages[i][2] == za_convoy.position) then
 
            pr(za_convoy_messages[i][3]);
 
        end;
 
    end;
 
    if (za_convoy.index > #za_convoy_route) then
 
        --TODO Конвой ушол
 
        print("Konvoy left");
 
        timer:stop();
 
        game.timer = nil;
 
        lifeoff(za_convoy);
 
    else
 
        za_convoy.direction  = za_convoy_route[za_convoy.index];
 
        if (loc == za_convoy.position) then
 
            --TODO Бой начинается
 
            timer:stop();
 
            game.timer = nil;
 
            lifeoff(za_convoy);
 
            enter(za_phaetlarr_fight_intro);
 
        end;
 
    end;
 
end;
 

	
 
za_alley = inherit(room, function(s) 
 
    if (not s.disp) then
 
        s.disp = "Нлейисланотр, проулок";
 
    end;
 
    if (not s.dsc) then
 
        s.dsc = [[
 
            Вы находитесь посреди узкого проулка где-то в Нлейисланотре. 
 
        ]];
 
    end;
 
    
 
    return s;
 
end);
 

	
 
za_street = inherit(room, function(s) 
 
    if (not s.disp) then
 
        s.disp = "Нлейисланотр, улица";
 
    end;
 
    if (not s.dsc) then
 
        s.dsc = [[
 
            Вы находитесь посреди улицы где-то в Нлейисланотре. 
 
        ]];
 
    end;
 
    
 
    return s;
 
end);
 

	
 
za_deadend = inherit(room, function(s) 
 
    if (not s.disp) then
 
        s.disp = "Нлейисланотр, тупик";
 
    end;
 
    if (not s.dsc) then
 
        s.dsc = [[
 
            Вы находитесь в тупике где-то в Нлейисланотре. 
 
        ]];
 
    end;
 
    
 
    return s;
 
end);
 

	
 
za_cross = inherit(room, function(s) 
 
    if (not s.disp) then
 
        s.disp = "Нлейисланотр, перекресток";
 
    end;
 
    if (not s.dsc) then
 
        s.dsc = [[
 
            Вы находитесь на перекрестке где-то в Нлейисланотре. 
 
        ]];
 
    end;
 
    
 
    return s;
 
end);
 

	
 
za_crack_inside = za_alley {
 
    nam = "za_crack_inside";
 
    disp = "Нлейисланотр, у трещины в стене";
 
    dsc = [[
 
        Вы находитесь в небольшом проулке на окраине Нлейисланотра. К западу от вас возвышается городская стена, а с востока и севера вы видите стены домов. 
 
    ]];
 
    way = {
 
        kh_vroom("На юг", "za_alley_1");
 
        kh_vroom("В трещину", "za_crack_foot");
 
    };
 
};
 

	
 
za_alley_1 = za_alley {
 
    nam = "za_alley_1";
 
    way = {
 
        kh_vroom("На юг", "za_alley_2");
 
        kh_vroom("На север", "za_crack_inside");
 
    };
 
};
 

	
 
za_alley_2 = za_alley {
 
    nam = "za_alley_2";
 
    way = {
 
        kh_vroom("На юг", "za_deadend_1n");
 
        kh_vroom("На север", "za_alley_1");
 
        kh_vroom("На восток", "za_street_1");
 
    };
 
};
 

	
 
za_deadend_1n = za_deadend{
 
    nam = "za_deadend_1n";
 
    way = {
 
        kh_vroom("На север", "za_alley_2");
 
    };
 
};
 

	
 
za_street_1 = za_street {
 
    nam = "za_street_1";
 
    way = {
 
        kh_vroom("На запад", "za_alley_2");
 
        kh_vroom("На восток", "za_cross_1");
 
    };
 
};
 

	
 
za_cross_1 = za_cross {
 
    var {
 
        state = 0;
 
    };
 
    nam = "za_cross_1";
 
    enter = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            walkin("za_cutscene_1");
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("На юг", "za_street_20");
 
        kh_vroom("На север", "za_street_2");
 
        kh_vroom("На запад", "za_street_1");
 
        kh_vroom("На восток", "za_street_4");
 
    };
 
};
 

	
 
za_cutscene_1 = cutscene("za_cutscene_1", "Нлейисланотр, перекресток", [[
 
    Из темной невзрачной улицы вы выходите в город. Древние каменные и металлические сооружения возвышаются над вами. Вы стоите посреди просторного перекрестка. Дороги ведут во все стороны. Сейчас посреди ночи улицы города пустынны и вы можете спокойно обследовать их. 
 
]], "za_cross_1");
 

	
 
za_street_2 = za_street {
 
    nam = "za_street_2";
 
    way = {
 
        kh_vroom("На юг", "za_cross_1");
 
        kh_vroom("На север", "za_street_3");
 
    };
 
};
 

	
 
za_street_3 = za_street {
 
    nam = "za_street_3";
 
    dsc = [[
 
        Вы находитесь посреди улицы где-то в Нлейисланотре. К северу от вас стоят несколько навьяров, опершись на стену дома. 
 
    ]];
 
    way = {
 
        kh_vroom("На юг", "za_street_2");
 
        kh_vroom("На север", function()
 
            pr [[
 
                Если они меня увидят, то поднимут тревогу. 
 
            ]];
 
            return false;
 
        end);
 
    };
 
};
 

	
 
za_street_4 = za_street {
 
    nam = "za_street_4";
 
    way = {
 
        kh_vroom("На запад", "za_cross_1");
 
        kh_vroom("На восток", "za_cross_2");
 
    };
 
};
 

	
 
za_cross_2 = za_cross {
 
    nam = "za_cross_2";
 
    way = {
 
        kh_vroom("На юг", "za_street_18");
 
        kh_vroom("На север", "za_street_5");
 
        kh_vroom("На запад", "za_street_4");
 
        kh_vroom("На восток", "za_street_6");
 
    };
 
};
 

	
 
za_street_5 = za_street {
 
    nam = "za_street_5";
 
    way = {
 
        kh_vroom("На юг", "za_cross_2");
 
    };
 
};
 

	
 
za_street_6 = za_street {
 
    nam = "za_street_6";
 
    way = {
 
        kh_vroom("На запад", "za_cross_2");
 
        kh_vroom("На северо-восток", "za_street_7");
 
    };
 
};
 

	
 
za_street_7 = za_street {
 
    nam = "za_street_7";
 
    way = {
 
        kh_vroom("На юго-запад", "za_street_6");
 
        kh_vroom("На восток", "za_cross_3");
 
    };
 
};
 

	
 
za_cross_3 = za_cross {
 
    nam = "za_cross_3";
 
    way = {
 
        kh_vroom("На юго-восток", "za_street_9");
 
        kh_vroom("На запад", "za_street_7");
 
        kh_vroom("На северо-запад", "za_street_8");
 
    };
 
};
 

	
 
za_street_8 = za_street {
 
    nam = "za_street_8";
 
    way = {
 
        kh_vroom("На юго-восток", "za_cross_3");
 
    };
 
};
 

	
 
za_street_9 = za_street {
 
    nam = "za_street_9";
 
    way = {
 
        kh_vroom("На северо-запад", "za_cross_3");
 
        kh_vroom("На юг", "za_cross_4");
 
    };
 
};
 

	
 
za_cross_4 = za_cross {
 
    nam = "za_cross_4";
 
    dsc = [[
 
        Вы находитесь посреди улицы где-то в Нлейисланотре. Улица на востоке завалена камнями и заросла водорослями. 
 
    ]];
 
    way = {
 
        kh_vroom("На юг", "za_street_10");
 
        kh_vroom("На север", "za_street_9");
 
        kh_vroom("На восток", function(s)
 
            pr [[
 
                Я не пройду здесь.
 
            ]];
 
            return false;
 
        end);
 
    };
 
};
 

	
 
za_street_10 = za_street {
 
    nam = "za_street_10";
 
    way = {
 
        kh_vroom("На юг", "za_cross_5");
 
        kh_vroom("На север", "za_cross_4");
 
    };
 
};
 

	
 
za_cross_5 = za_cross {
 
    nam = "za_cross_5";
 
    way = {
 
        kh_vroom("На юг", "za_street_11");
 
        kh_vroom("На север", "za_street_10");
 
        kh_vroom("На запад", "za_street_13");
 
    };
 
};
 

	
 
za_street_11 = za_street {
 
    nam = "za_street_11";
 
    way = {
 
        kh_vroom("На юг", "za_cross_6");
 
        kh_vroom("На север", "za_cross_5");
 
    };
 
};
 

	
 
za_cross_6 = za_cross {
 
    var {
 
        state = 0;
 
    };
 
    nam = "za_cross_6";
 
    entered = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            pr("С востока к вам приближается группа навьяров. Четверо из них вооружены копьями с ними идет еще один, не вооруженный. Судя по тому, как они обращаются с ним - он пленник. ");
 
            game.timer = za_timer;
 
            timer:set(2000);
 
            lifeon(za_convoy);
 
        end;
 
    end;
 
    dsc = [[
 
        Вы находитесь посреди улицы где-то в Нлейисланотре. На востоке вы видите нескольких навьярских воинов. 
 
    ]];
 
    way = {
 
        kh_vroom("На юг", "za_street_12");
 
        kh_vroom("На север", "za_street_11");
 
        kh_vroom("На восток", function(s)
 
            pr [[
 
                Если они меня увидят, то поднимут тревогу. 
 
            ]];
 
        end);
 
    };
 
};
 

	
 
za_street_12 = za_street {
 
    nam = "za_street_12";
 
    way = {
 
        kh_vroom("На юг", "za_deadend_2n");
 
        kh_vroom("На север", "za_cross_6");
 
    };
 
};
 

	
 
za_deadend_2n = za_deadend {
 
    nam = "za_deadend_2n";
 
    way = {
 
        kh_vroom("На север", "za_street_12");
 
    };
 
};
 

	
 
za_street_13 = za_street {
 
    nam = "za_street_13";
 
    way = {
 
        kh_vroom("На запад", "za_cross_24");
 
        kh_vroom("На восток", "za_cross_5");
 
    };
 
};
 

	
 
za_cross_24 = za_cross {
 
    nam = "za_cross_24";
 
    way = {
 
        kh_vroom("На юг", "za_street_15");
 
        kh_vroom("На север", "za_street_14");
 
        kh_vroom("На восток", "za_street_13");
 
    };
 
};
 

	
 
za_street_14 = za_street {
 
    nam = "za_street_14";
 
    way = {
 
        kh_vroom("На юг", "za_cross_24");
 
    };
 
};
 

	
 
za_street_15 = za_street {
 
    nam = "za_street_15";
 
    way = {
 
        kh_vroom("На юг", "cross_7");
 
        kh_vroom("На север", "za_cross_24");
 
    };
 
};
 

	
 
za_cross_7 = za_cross {
 
    nam = "za_cross_7";
 
    way = {
 
        kh_vroom("На юг", "za_deadend_3n");
 
        kh_vroom("На север", "za_street_15");
 
        kh_vroom("На запад", "za_street_16");
 
    };
 
};
 

	
 
za_deadend_3n = za_deadend {
 
    nam = "za_deadend_3n";
 
    way = {
 
        kh_vroom("На север", "za_cross_7");
 
    };
 
};
 

	
 
za_street_16 = za_street {
 
    nam = "za_street_16";
 
    way = {
 
        kh_vroom("На запад", "za_cross_8");
 
        kh_vroom("На восток", "za_cross_7");
 
    };
 
};
 

	
 
za_cross_8 = za_cross {
 
    nam = "za_cross_8";
 
    way = {
 
        kh_vroom("На север", "za_street_17");
 
        kh_vroom("На запад", "za_street_22");
 
        kh_vroom("На восток", "za_street_16");
 
    };
 
};
 

	
 
za_street_17 = za_street {
 
    nam = "za_street_17";
 
    way = {
 
        kh_vroom("На юг", "za_cross_8");
 
        kh_vroom("На север", "za_cross_9");
 
    };
 
};
 

	
 
za_cross_9 = za_cross {
 
    nam = "za_cross_9";
 
    way = {
 
        kh_vroom("На юг", "za_street_17");
 
        kh_vroom("На север", "za_street_18");
 
        kh_vroom("На запад", "za_street_19");
 
    };
 
};
 

	
 
za_street_18 = za_street {
 
    nam = "za_street_18";
 
    way = {
 
        kh_vroom("На юг", "za_cross_9");
 
        kh_vroom("На север", "za_cross_2");
 
    };
 
};
 

	
 
za_street_19 = za_street {
 
    nam = "za_street_19";
 
    way = {
 
        kh_vroom("На запад", "za_cross_10");
 
        kh_vroom("На восток", "za_cross_9");
 
    };
 
};
 

	
 
za_cross_10 = za_cross {
 
    nam = "za_cross_10";
 
    way = {
 
        kh_vroom("На юг", "za_street_21");
 
        kh_vroom("На север", "za_street_20");
 
        kh_vroom("На запад", "za_street_31");
 
        kh_vroom("На восток", "za_street_19");
 
    };
 
};
 

	
 
za_street_20 = za_street {
 
    nam = "za_street_20";
 
    way = {
 
        kh_vroom("На юг", "za_cross_10");
 
        kh_vroom("На север", "za_cross_1");
 
    };
 
};
 

	
 
za_street_31 = za_street {
 
    nam = "za_street_31";
 
    way = {
 
        kh_vroom("На запад", "za_alley_3");
 
        kh_vroom("На восток", "za_cross_10");
 
    };
 
};
 

	
 
za_alley_3 = za_alley {
 
    nam = "za_alley_3";
 
    way = {
 
        kh_vroom("На восток", "za_street_31");
 
        kh_vroom("На север", "za_deadend_1s");
 
    };
 
};
 

	
 
za_deadend_1s = za_deadend{
 
    nam = "za_deadend_1s";
 
    way = {
 
        kh_vroom("На юг", "za_alley_3");
 
    };
 
};
 

	
 
za_street_21 = za_street {
 
    nam = "za_street_21";
 
    way = {
 
        kh_vroom("На юг", "za_cross_11");
 
        kh_vroom("На север", "za_cross_10");
 
    };
 
};
 

	
 
za_cross_11 = za_cross {
 
    nam = "za_cross_11";
 
    way = {
 
        kh_vroom("На юг", "za_street_23");
 
        kh_vroom("На север", "za_street_21");
 
        kh_vroom("На запад", "za_street_36");
 
        kh_vroom("На восток", "za_street_22");
 
    };
 
};
 

	
 
za_street_22 = za_street {
 
    nam = "za_street_22";
 
    way = {
 
        kh_vroom("На запад", "za_cross_11");
 
        kh_vroom("На восток", "za_cross_8");
 
    };
 
};
 

	
 
za_street_36 = za_street {
 
    nam = "za_street_36";
 
    dsc = [[
 
        Западным концом эта улица упирается в городскую стену. 
 
    ]];
 
    way = {
 
        kh_vroom("На восток", "za_cross_11");
 
    };
 
};
 

	
 
za_street_46 = za_street {
 
    nam = "za_street_46";
 
    dsc = [[
 
        Западным концом эта улица упирается в городскую стену. 
 
    ]];
 
    way = {
 
        kh_vroom("На восток", "za_cross_12");
 
    };
 
};
 

	
 
za_street_23 = za_street {
 
    nam = "za_street_23";
 
    way = {
 
        kh_vroom("На юг", "za_cross_12");
 
        kh_vroom("На север", "za_cross_11");
 
    };
 
};
 

	
 
za_cross_12 = za_cross {
 
    nam = "za_cross_12";
 
    way = {
 
        kh_vroom("На юг", "za_street_41");
 
        kh_vroom("На север", "za_street_23");
 
        kh_vroom("На запад", "za_street_46");
 
        kh_vroom("На восток", "za_street_24");
 
    };
 
};
 

	
 
za_street_24 = za_street {
 
    nam = "za_street_24";
 
    way = {
 
        kh_vroom("На запад", "za_cross_12");
 
        kh_vroom("На восток", "za_cross_13");
 
    };
 
};
 

	
 
za_cross_13 = za_cross {
 
    nam = "za_cross_13";
 
    way = {
 
        kh_vroom("На юг", "za_street_43");
 
        kh_vroom("На запад", "za_street_24");
 
        kh_vroom("На восток", "za_street_25");
 
    };
 
};
 

	
 
za_street_25 = za_street {
 
    nam = "za_street_25";
 
    way = {
 
        kh_vroom("На запад", "za_cross_13");
 
        kh_vroom("На восток", "za_cross_14");
 
    };
 
};
 

	
 
za_cross_14 = za_cross {
 
    nam = "za_cross_14";
 
    way = {
 
        kh_vroom("На юг", "za_street_26");
 
        kh_vroom("На север", "za_deadend_3s");
 
        kh_vroom("На запад", "za_street_25");
 
    };
 
};
 

	
 
za_deadend_3s = za_deadend {
 
    nam = "za_deadend_3s";
 
    way = {
 
        kh_vroom("На юг", "za_cross_14");
 
    };
 
};
 

	
 
za_street_26 = za_street {
 
@@ -1120,887 +1120,887 @@ za_cross_23 = za_cross {
 
};
 

	
 
za_street_41 = za_street {
 
    nam = "za_street_41";
 
    way = {
 
        kh_vroom("На юг", "za_cross_22");
 
        kh_vroom("На север", "za_cross_12");
 
    };
 
};
 

	
 
za_street_43 = za_street {
 
    nam = "za_street_43";
 
    way = {
 
        kh_vroom("На юг", "za_cross_23");
 
        kh_vroom("На север", "za_cross_13");
 
    };
 
};
 

	
 
za_street_44 = za_street {
 
    nam = "za_street_44";
 
    way = {
 
        kh_vroom("На запад", "za_cross_23");
 
        kh_vroom("На восток", "za_cross_15");
 
    };
 
};
 

	
 
za_street_45 = za_street {
 
    nam = "za_street_45";
 
    way = {
 
        kh_vroom("На запад", "za_alley_4");
 
        kh_vroom("На восток", "za_cross_22");
 
    };
 
};
 

	
 
za_alley_4 = za_alley {
 
    nam = "za_alley_4";
 
    way = {
 
        kh_vroom("На восток", "za_street_45");
 
        kh_vroom("На юг", "za_deadend_7");
 
    };
 
};
 

	
 
za_deadend_7 = za_deadend {
 
    nam = "za_deadend_7";
 
    way = {
 
        kh_vroom("На север", "za_alley_4");
 
    };
 
};
 

	
 
za_phaetlarr_fight_intro = cutscene("za_phaetlarr_fight_intro_a", "Нлейисланотр, улица",[[Конвой замечает вас и переходит в атаку. Внезапно пленник выхватывает копье у одного из стражников и бросается в бой. ]], "za_plaetlarr_fight");
 

	
 
za_plaetlarr_victory = cutscene("za_phaetlarr_victory", "Нлейисланотр, улица", function(s)
 
    if (char_learr.follow) then
 
        return [[
 
            Вы побеждаете стражников. Фаэтларр с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" Глядя на Леарр он немного успокаивается и внимательно следит за ее словами: "Они что-хотели?"
 
        ]];
 
    elseif (char_anna.follow) then
 
        return [[
 
            Вы побеждаете стражников. Фаэтларр с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" В динамиках раздается голос Анны: "Он явно не расположен к нам. Но у нас мало выбора. Спроси его, знает ли он где храм"?
 
        ]];
 
    elseif (char_wright.follow) then
 
        return [[
 
            Вы побеждаете стражников. Фаэтларр с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" В динамиках раздается голос Джека: "Я думаю, пора возвращаться на корабль. Я надеюсь, он даст нам всю необходимую информацию".
 
        ]];
 
    elseif (char_radcliffe.follow) then
 
        return [[
 
            Вы побеждаете стражников. Фаэтларр с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" В динамиках раздается голос Уолтера: "Здесь слишком опасно оставаться. Надо доставить его на Левиафан и там решить, что делать дальше".
 
        ]];
 
    else
 
        return [[
 
            Вы побеждаете стражников. Фаэтларр с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?"
 
        ]];
 
    end;
 
end, "za_phaetlarr_dlg");
 

	
 
za_plaetlarr_fight = battlefield {
 
    nam = "Нлейисланотр, улица";
 
    plX = 4;
 
    plY = 1;
 
    map = {
 
        {2,0,0,0,0,0,2};
 
        {2,0,0,0,0,0,2};
 
        {2,1,1,0,0,0,2};
 
        {2,0,0,0,1,1,2};
 
        {2,0,0,0,0,0,2};
 
        {2,0,0,0,0,0,2};
 
        {2,0,0,0,0,0,2};
 
    };
 
    obstacle = "images/stones.png";
 
    lose = "game_over_za_fight";
 
    win = "za_plaetlarr_victory";
 
    underwater = true;
 
    entered = function(s)
 
        if (char_learr.follow) then
 
            table.insert(s.obj, 2, za_cmbt_learr);
 
            s.plX = 3;
 
        elseif (char_anna.follow) then
 
            table.insert(s.obj, 2, za_cmbt_anna);
 
            s.plX = 3;
 
        elseif (char_wright.follow) then
 
            table.insert(s.obj, 2, za_cmbt_wright);
 
            s.plX = 3;
 
        elseif (char_radcliffe.follow) then
 
            table.insert(s.obj, 2, za_cmbt_radcliffe);
 
            s.plX = 3;
 
        end;
 
    end;
 
    obj = {
 
        'za_cmbt_phaetlarr',
 
        'za_cmbt_guard1',
 
        'za_cmbt_guard2',
 
        'za_cmbt_guard3',
 
        'za_cmbt_guard4'
 
    };
 
};
 
 
 
za_cmbt_phaetlarr = combatant {
 
    nam = "za_cmbt_phaetlarr";
 
    disp2 = "Фаэтларра";
 
    disp3 = "Фаэтларру";
 
    x = 4;
 
    y = 6;
 
    pic = "images/phaetlarr.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasSpear = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Фаэтларр ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        -- AI Order:
 
        -- If has spear and enemy is far   - throw spear
 
        -- If has spear and enemy is close - hit with spear
 
        -- if spear is nearer than any enemy - walk towards spear
 
        -- walk towards nearest enemy
 
        -- If enemy close and enemy has spear - take spear from enemy
 
        -- If enemy close and enemy doesn't have spear - hit with claws
 

	
 
        if s.hasSpear then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Фаэтларр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                else
 
                    pn("Фаэтларр бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Фаэтларр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                else
 
                    pn("Фаэтларр бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Фаэтларр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                return;
 
            else
 
                local dist = math.sqrt((s.x - here().plX) * (s.x - here().plX) + (s.y - here().plY) * (s.y - here().plY));--here().getDistance(here().plX, here().plY, s.x, s.y);
 
                if (rnd(4) > dist - 2) then
 
                    s.hasSpear = false;
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Фаэтларр бросает копье в " .. enemy.disp2 .. " и попадает. ");
 
                else
 
                    pn("Фаэтларр бросает копье в " .. enemy.disp2 .. ", но промахивается. ");
 
                end;
 
                return;
 
            end;
 
        else
 
            if (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                if (enemy.hasSpear) then
 
                    enemy.hasSpear = false;
 
                    s.hasSpear = true;
 
                    pn("Фаэтларр забирает копье у " .. enemy.disp2 .. ". ");
 
                else
 
                    enemy.hp = enemy.hp - 1;
 
                    pn("Фаэтларр бьет " .. enemy.disp2 .. " и попадает. ");
 
                end;
 
            end;
 
        end;
 
        
 
        s.x = path.p[2][1];
 
        s.y = path.p[2][2];
 
        pn("Фаэтларр идет к " .. enemy.disp3 .. ". ");
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Фаэтларр} готов к бою. ]];
 
        else
 
            return [[ {Фаэтларр} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
za_cmbt_learr = combatant {
 
    nam = "za_cmbt_learr";
 
    disp2 = "Леарр";
 
    disp3 = "Леарр";
 
    x = 5;
 
    y = 1;
 
    pic = "images/learr.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasSpear = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Леарр ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        for i = 1,#enemies do
 
            print(enemies[i].p.l);
 
        end;
 
        -- AI Order:
 
        -- If has spear and enemy is far   - throw spear
 
        -- If has spear and enemy is close - hit with spear
 
        -- if spear is nearer than any enemy - walk towards spear
 
        -- walk towards nearest enemy
 
        -- If enemy close and enemy has spear - take spear from enemy
 
        -- If enemy close and enemy doesn't have spear - hit with claws
 

	
 
        if s.hasSpear then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                else
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                else
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Леарр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                return;
 
            end;
 
        else
 
            if (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                enemy.hp = enemy.hp - 1;
 
                pn("Леарр бьет " .. enemy.disp2 .. " и попадает. ");
 
                return;
 
            end;
 
        end;
 
        
 
        s.x = path.p[2][1];
 
        s.y = path.p[2][2];
 
        pn("Леарр идет к " .. enemy.disp3 .. ". ");
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Леарр} готова к бою. ]];
 
        else
 
            return [[ {Леарр} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
za_cmbt_wright = combatant {
 
    nam = "za_cmbt_wright";
 
    disp2 = "Райта";
 
    disp3 = "Райту";
 
    x = 5;
 
    y = 1;
 
    pic = "images/jack.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasHarpoon = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Райт ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        
 
        if (s.x ~= 6 or s.y ~=3) then
 
            local ppath = here():getWalkDistance(s.x, s.y, 6, 3);
 
            if (ppath.l < path.l) then
 
                s.x = ppath.p[2][1];
 
                s.y = ppath.p[2][2];
 
                pn("Райт идет к укрытию");
 
            end;
 
        end;
 
        
 
        -- AI Order:
 
        -- If has harpoon and enemy is far - shoot
 
        -- If has harpoon and enemy is close - hit with harpoon
 
        -- walk towards nearest enemy
 
        
 
        if (s.hasHarpoon) then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Райт бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                return;
 
            else
 
                local dist = math.sqrt((s.x - here().plX) * (s.x - here().plX) + (s.y - here().plY) * (s.y - here().plY));--here().getDistance(here().plX, here().plY, s.x, s.y);
 
                if (rnd(4) > dist - 2) then
 
                    s.hasSpear = false;
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Райт стреляет в " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Райт стреляет в " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            end;
 
        else
 
            s.hasHarpoon = true;
 
            pn("Райт перезаряжает ружье. ");
 
        end;
 
        
 
        s.x = path.p[2][1];
 
        s.y = path.p[2][2];
 
        pn("Райт идет к " .. enemy.disp3 .. ". ");
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Райт} готов к бою. ]];
 
        else
 
            return [[ {Райт} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
za_cmbt_radcliffe = combatant {
 
    nam = "za_cmbt_radcliffe";
 
    disp2 = "Рэклиффа";
 
    disp3 = "Рэдклиффу";
 
    x = 5;
 
    y = 1;
 
    pic = "images/walter.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasHarpoon = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Рэдклифф ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        
 
        if (s.x ~= 6 or s.y ~=3) then
 
            local ppath = here():getWalkDistance(s.x, s.y, 6, 3);
 
            if (ppath.l < path.l) then
 
                s.x = ppath.p[2][1];
 
                s.y = ppath.p[2][2];
 
                pn("Рэдклифф идет к укрытию");
 
            end;
 
        end;
 
        
 
        -- AI Order:
 
        -- If has harpoon and enemy is far - shoot
 
        -- If has harpoon and enemy is close - hit with harpoon
 
        -- walk towards nearest enemy
 
        
 
        if (s.hasHarpoon) then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                return;
 
            else
 
                local dist = math.sqrt((s.x - here().plX) * (s.x - here().plX) + (s.y - here().plY) * (s.y - here().plY));--here().getDistance(here().plX, here().plY, s.x, s.y);
 
                if (rnd(4) > dist - 2) then
 
                    s.hasSpear = false;
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Рэдклифф стреляет в " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Рэдклифф стреляет в " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            end;
 
        else
 
            s.hasHarpoon = true;
 
            pn("Рэдклифф перезаряжает ружье. ");
 
        end;
 
        
 
        s.x = path.p[2][1];
 
        s.y = path.p[2][2];
 
        pn("Рэдклифф идет к " .. enemy.disp3 .. ". ");
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Рэдклифф} готов к бою. ]];
 
        else
 
            return [[ {Рэдклифф} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
za_cmbt_anna = combatant {
 
    nam = "za_cmbt_anna";
 
    disp2 = "Анну";
 
    disp3 = "Анне";
 
    x = 5;
 
    y = 1;
 
    pic = "images/anna.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasHarpoon = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Анна ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        
 
        if (s.x ~= 6 or s.y ~=3) then
 
            local ppath = here():getWalkDistance(s.x, s.y, 6, 3);
 
            if (ppath.l < path.l) then
 
                s.x = ppath.p[2][1];
 
                s.y = ppath.p[2][2];
 
                pn("Анна идет к укрытию");
 
            end;
 
        end;
 
        
 
        -- AI Order:
 
        -- If has harpoon and enemy is far - shoot
 
        -- If has harpoon and enemy is close - hit with harpoon
 
        -- walk towards nearest enemy
 
        
 
        if (s.hasHarpoon) then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Анна бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Анна бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Анна бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Анна бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Анна бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                return;
 
            else
 
                local dist = math.sqrt((s.x - here().plX) * (s.x - here().plX) + (s.y - here().plY) * (s.y - here().plY));--here().getDistance(here().plX, here().plY, s.x, s.y);
 
                if (rnd(4) > dist - 2) then
 
                    s.hasSpear = false;
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Анна стреляет в " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Анна стреляет в " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            end;
 
        else
 
            s.hasHarpoon = true;
 
            pn("Анна перезаряжает ружье. ");
 
        end;
 
        
 
        local plpath = here():getWalkDistance(s.x, s.y, pl.x, pl.y);
 
        if (plpath.l > 2) then
 
            s.x = plpath.p[2][1];
 
            s.y = plpath.p[2][2];
 
            pn("Анна идет к вам. ");
 
        end;
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Анна} готова к бою. ]];
 
        else
 
            return [[ {Анна} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
za_cmbt_guard = function(nam, index, x, y, spear) 
 
    return combatant {
 
        nam = nam;
 
        disp2 = "стражника " .. tostring(index);
 
        disp3 = "стражника " .. tostring(index);
 
        x = x;
 
        y = y;
 
        hp = 6;
 
        pic = "images/navjiarr_guard".. index ..".png";
 
        shootHit = "Вы стреляете в стражника и попадаете в него. ";
 
        shootMiss = "Вы стреляете в стражника, но не попадаете в него. ";
 
        shootKill = "Вы стреляете в стражника и он падает замертво. ";
 
        handHit = "Вы ударяете стражника. ";
 
        handKill = "После вашего удара стражник падает. ";
 
        handFar = "Слишком далеко. ";
 
        hasSpear = spear;
 
        enemy = true;
 
        dsc = function(s)
 
            if (s.hp > 0) then
 
                if (s.hasSpear) then
 
                    return "{Стражник " .. tostring(index).. "} вооружен копьем готов к бою. ";
 
                else
 
                    return "{Стражник " .. tostring(index).. "} готов к бою. ";
 
                end;
 
            else
 
                return false;
 
            end;
 
        end;
 
        make_turn = function(s)
 
            local enemies = {  };
 
            for item=1,#here().obj do
 
                local obj = here().obj[item];
 
                if (obj.ally and obj.hp > 0) then
 
                    local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                    if (p) then
 
                        table.insert(enemies, {
 
                            o = obj,
 
                            p = p
 
                        });
 
                    end;
 
                end;
 
            end;
 
            table.sort(enemies, function(a, b)
 
                return (a.p.l < b.p.l);
 
            end);
 
            
 
            local enemy = enemies[1];
 
            local path = here():getWalkDistance(s.x, s.y, here().plX, here().plY);
 
            if (not enemy or path and enemy.p.l > path.l ) then
 
                enemy = pl;
 
            else
 
                path = enemy.p;
 
                enemy = enemy.o;
 
            end;
 
            
 
            if (not enemy or not path) then
 
                pn("Стражник ".. tostring(index).. " ждет. ");
 
                return;
 
            end;
 
            
 
            -- AI Order:
 
            -- If has spear and enemy is close - hit with spear
 
            -- walk towards nearest enemy
 
            -- If enemy close - hit with claws
 
            
 
            if (s.hasSpear) then
 
                here():canShoot(s.x,s.y, enemy.x, enemy.y);
 
                
 
                if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                    if (math.abs(s.x - enemy.x) == 2 or math.abs(s.y - enemy.y) == 2) then
 
                        --50%
 
                        if (rnd(2) > 1) then
 
                            enemy.hp = enemy.hp - 2;
 
                            pn("Стражник ".. tostring(index).. " бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                        else
 
                            pn("Стражник ".. tostring(index).. " бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                        end;
 
                        return;
 
                    elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                        --75%
 
                        if (rnd(4) > 1) then
 
                            enemy.hp = enemy.hp - 2;
 
                            pn("Стражник ".. tostring(index).. " бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                        else
 
                            pn("Стражник ".. tostring(index).. " бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                        end;
 
                        return;
 
                    elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                    s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                        --100%
 
                        enemy.hp = enemy.hp - 2;
 
                        pn("Стражник ".. tostring(index).. " бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                        return;
 
                    end;
 
                end;
 
            else
 
                if (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                    s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                    enemy.hp = enemy.hp - 1;
 
                    pn("Стражник ".. tostring(index).. " бьет " .. enemy.disp2 .. " и попадает. ");
 
                    return;
 
                end;
 
            end;
 
            print("fug2",path);
 
            s.x = path.p[2][1];
 
            s.y = path.p[2][2];
 
            pn("Стражник ".. tostring(index).. " идет к " .. enemy.disp3 .. ". ");
 
        end;
 
    };
 
end;
 

	
 
za_cmbt_guard1 = za_cmbt_guard("za_cmbt_guard1", 1, 3, 5, true);
 
za_cmbt_guard2 = za_cmbt_guard("za_cmbt_guard2", 2, 5, 5, false);
 
za_cmbt_guard3 = za_cmbt_guard("za_cmbt_guard3", 3, 3, 7, true);
 
za_cmbt_guard4 = za_cmbt_guard("za_cmbt_guard4", 4, 5, 7, true);
 

	
 
za_phaetlarr_dlg = dlg {
 
    var {
 
        state = 0;
 
    };
 
    nam = "za_phaetlarr_dlg";
 
    disp = "Фаэтларр";
 
    entered = function(s)
 
        psub("intro");
 
        if (char_learr.follow) then
 
            s.state = 1;
 
            return [[
 
                Навьяр смотрит попеременно на Леарр и на вас, после чего отвечает: "Я Фаэтларр из Венаэданотра. Хевьяры обманули их и меня. Но как вы здесь оказались? Они закрыли хевьярам путь в город". Обращаясь к Леарр, он продолжает: "Ты осторожна будь. Хевьярам нельзя доверять".
 
            ]];
 
        else
 
            return [[
 
                Навьяр представляется: "Я Фаэтларр из Венаэданотра". После чего повторяет свой вопрос: "Что вы здесь хотите?"
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="intro"};
 
        {"[Цветокод]Венаэданотр неблизко. Как ты оказался здесь?", 
 
        {"[Цветокод] Венаэданотр неблизко. Как ты оказался здесь?", 
 
            function(s)
 
                if (char_learr.follow) then
 
                    return [[
 
                        Фаэтларр больше обращается к Леарр, чем к вам: "Другие хевьяры взяли меня на свой корабль. Пойдем со мной, сестра, вместе мы вернемся в Венаэданотр". Потом он гневно смотрит на вас: "Уходите, мы справимся сами". Видя, что Леарр не двигается, он застывает в удивлении. 
 
                    ]];
 
                else
 
                    return [[
 
                        "Другие хевьяры взяли меня на свой корабль. Больше я не повторю такой ошибки. Уходите, я справлюсь сам".
 
                    ]];
 
                end;
 
            end, code [[ 
 
                if (char_learr.follow) then 
 
                    psub("on_my_own_learr");
 
                else
 
                    psub("on_my_own");
 
                end;
 
        ]]};
 
        {"[Цветокод]Мы ищем Лсэрианотр", 
 
        {"[Цветокод] Мы ищем Лсэрианотр", 
 
            function(s)
 
                if (char_learr.follow) then
 
                    return [[
 
                        Фаэтларр больше обращается к Леарр, чем к вам: "Пойдем сестра. Эти такие же, как и те, с которыми был я. Вернемся в Венаэданотр". Потом он гневно смотрит на вас: "Уходите. Я не стану помогать вам".
 
                    ]];
 
                else
 
                    return [[
 
                        "Вы заодно с ними. Уходите, я не стану помогать вам".
 
                    ]];
 
                end;
 
            end, code [[
 
                psub("on_my_own");
 
        ]]};
 
        {tag="on_my_own"};
 
        {"[Цветокод]Расскажи больше о них", [[
 
        {"[Цветокод] Расскажи больше о них", [[
 
            "Что вы хотите знать?"
 
        ]], code [[ psub("more_on_them"); ]]};
 
        {"[Цветокод]Мы не враги тебе", [[
 
        {"[Цветокод] Мы не враги тебе", [[
 
            "Почему я должен вам верить?"
 
        ]], code [[ psub("trust");]]};
 
        {tag="more_on_them", empty = code [[ pret(); ]]};
 
        {"[Цветокод]Куда они направились?", [[
 
        {"[Цветокод] Куда они направились?", [[
 
            "Они идут в Лсэрианотр. Их цель - пробудить Наэтвьирра. Блэк хочет с его помощью стать правителем мира. Дрейк хотел найти древние знания. Но сейчас он мертв".
 
        ]], code [[ pon("black");pon("drake"); ]]};
 
        {"[Цветокод]Сколько их было?", [[
 
        {"[Цветокод] Сколько их было?", [[
 
            "Хевьяров было пятеро. Но на борту также были навьяры. Нас было много. Большинство из них свято верят в Наэтвьирра, способного возродить старый мир. Хотя Уильям Дрейк не одобрял этого, Адриан Блэк всячески поощрял это".
 
        ]]};
 
        {"[Цветокод]Почему они оставили тебя?", [[
 
        {"[Цветокод] Почему они оставили тебя?", [[
 
            "Мы должны были взять ключ. Я, Дрейк и Блэк. Местные были против, но у нас не было выбора - ключ нужен для открытия врат Лсэрианотра. Мы пробрались в храм без проблем. Потом начались проблемы. Когда я взял ключ, я оказался в ловушке. К сожалению, у них не было инструментов, чтобы вытащить меня. Тогда я отдал ключ Дрейку и они ушли за инструментами. Они не вернулись. А потом пришли местные. От них я узнал, что Дрейк был убит". 
 
        ]], code [[ pon("drake"); ]]};
 
        {tag="black", false, "[Цветокод]Теперь Блэк главный?", [[
 
        {tag="black", false, "[Цветокод] Теперь Блэк главный?", [[
 
            "Да. У других хевьяров нет выбора, а навьяры на его корабле почти поклоняются ему". 
 
        ]]};
 
        {tag="drake", false, "[Цветокод]Что случилось с Дрейком?", [[
 
        {tag="drake", false, "[Цветокод] Что случилось с Дрейком?", [[
 
            Фаэтларр долго молчал. Наконец он собрался с силами и ответил: "Его убили местные во время их отступления с ключем".
 
        ]], code [[ pon("i_am_drake"); ]]};
 
        {tag="i_am_drake", false, "[Цветокод]Я Дэвид Дрэйк. Сын Уильяма", [[
 
        {tag="i_am_drake", false, "[Цветокод] Я Дэвид Дрэйк. Сын Уильяма", [[
 
            Фаэтларр удивленно смотрит на вас: "Близких вьяров пути близки".
 
        ]], code [[ za_phaetlarr_dlg.state = za_phaetlarr_dlg.state + 1; poff("i_am_drake2"); ]]};
 
        {tag="trust"};
 
        {"[Цветокод]Мы хотим остановить Блэка", [[Фаэтларр
 
        {"[Цветокод] Мы хотим остановить Блэка", [[Фаэтларр
 
            Фаэтларр кажется сильно удивленным. Он долго молчит, обдумывая ваши слова. Наконец, навьяр кивает. 
 
        ]], code [[ pon("need_help"); ]]};
 
        {tag="need_help", false, "[Цветокод]Нам нужна твоя помощь", [[
 
        {tag="need_help", false, "[Цветокод] Нам нужна твоя помощь", [[
 
            Фаэтларр делает вам знак продолжать. 
 
        ]], code [[ psub("not_sure"); ]]};
 
        {tag="i_am_drake2", "[Цветокод]Я сын Уильяма Дрейка", [[
 
        {tag="i_am_drake2", "[Цветокод] Я сын Уильяма Дрейка", [[
 
            Фаэтларр удивленно смотрит на вас: "Близких вьяров пути близки".
 
        ]], code [[ za_phaetlarr_dlg.state = za_phaetlarr_dlg.state + 1; ]]};
 
        {tag="not_sure"};
 
        {"[Цветокод]Нам нужно знать, где находится храм Нлейисланотра", [[
 
        {"[Цветокод] Нам нужно знать, где находится храм Нлейисланотра", [[
 
            Фаэтларр уверенно говорит: "Вы спасли меня. Я помогу в ответ. Но я прошу вас еще об одном. Я хочу на борт вашего корабля".
 
        ]], code [[ pon('join'); pon('go'); ]]};
 
        {tag="join", false, "[Цветокод]Хорошо, мы согласны", code = [[
 
        {tag="join", false, "[Цветокод] Хорошо, мы согласны", code = [[
 
            nleyyslanotrr_temple_found = true;
 
            walk("za_phaetlarr_final");
 
        ]]};
 
        {tag="go", false, "[Цветокод]Что, если мы откажемся?", [[
 
        {tag="go", false, "[Цветокод] Что, если мы откажемся?", [[
 
            "Я не скажу вам где храм, и каждый идет своей дорогой".
 
        ]]};
 
    };
 
};
 

	
 
za_char_phaetlarr = npc {
 
    nam = "za_char_phaetlarr";
 
    dsc = [[
 
        {Фаэтларр} стоит рядом и ждет ваших действий. 
 
    ]];
 
    phrases = {
 
        "Фаэтларр ждет ваших действий. "
 
    };
 
};
 

	
 
za_phaetlarr_final = cutscene("za_phaetlarr_final", "Левиафан, Кают-компания", [[
 
    Вы возвращаетесь на Левиафан, где уже собрался весь экипаж. Фаэтларр рассказывает вам как попасть в храм
 
]], "leviathan_wardroom");
 

	
 
za_phaetlarr_free = cutscene("za_phaetlarr_free", "Нлейисланотр, улица", function(s)
 
    if (char_learr.follow) then
 
        return [[
 
            При помощи инструментов, вы убираете решетку из окна и освобождаете Фаэтларра. Навьяр выбирается из тюрьмы и с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" Глядя на Леарр он немного успокаивается и внимательно следит за ее словами: "Они что-хотели?"
 
        ]];
 
    elseif (char_anna.follow) then
 
        return [[
 
            При помощи инструментов, вы убираете решетку из окна и освобождаете Фаэтларра. Навьяр выбирается из тюрьмы и с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" В динамиках раздается голос Анны: "Он явно не расположен к нам. Но у нас мало выбора. Спроси его, знает ли он где храм"?
 
        ]];
 
    elseif (char_wright.follow) then
 
        return [[
 
            При помощи инструментов, вы убираете решетку из окна и освобождаете Фаэтларра. Навьяр выбирается из тюрьмы и с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" В динамиках раздается голос Джека: "Я думаю, пора возвращаться на корабль. Я надеюсь, он даст нам всю необходимую информацию".
 
        ]];
 
    elseif (char_radcliffe.follow) then
 
        return [[
 
            При помощи инструментов, вы убираете решетку из окна и освобождаете Фаэтларра. Навьяр выбирается из тюрьмы и с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?" В динамиках раздается голос Уолтера: "Здесь слишком опасно оставаться. Надо доставить его на Левиафан и там решить, что делать дальше".
 
        ]];
 
    else
 
        return [[
 
            При помощи инструментов, вы убираете решетку из окна и освобождаете Фаэтларра. Навьяр выбирается из тюрьмы и с недоверием смотрит на вас, сжимая копье. Вы видите, как цветные полосы на его плавниках формируются в вопрос: "Что вы здесь хотите?"
 
        ]];
 
    end;
 
end, za_phaetlarr_dlg);
 
\ No newline at end of file
london.lua
Show inline comments
 
--[[
 
	Порт
 
]]
 
 
char_captain = npc {
 
	nam = "char_captain";
 
	disp = "Капитан";
 
	dsc = [[На носу судна стоит {капитан} и курит трубку, задумчиво смотря на происходящее на палубе. ]];
 
	phrases = {
 
		[[Капитан говорит: _"Завтра мы отправляемся обратно в Америку"_. ]],
 
		[[Капитан задумчиво произносит, держа трубку в руке: _",,Северное сияние'' -- лучший из кораблей, которыми я управлял"_. ]],
 
		[[Капитан оборачивается к вам: _"Как вам путешествие?"_ ]],
 
		[[Капитан вынимает трубку изо рта и произносит: _"Этот пароход -- гордость компании, но до знаменитой ,,Огненной стрелы'' ему далеко"_. ]],
 
		[[Окидывая взглядом порт, капитан вздыхает: _"Иногда я вспоминаю свою молодость на ,,Чайке'' и ,,Нефритовой королеве''"_. ]],
 
        [[Капитан задумчиво вертит трубку в руках. ]]    
 
	};
 
};
 
 
char_first_mate = npc {
 
	nam = "char_first_mate";
 
	disp = "Первый помощник";
 
	dsc = [[У трапа стоит {первый помощник} и наблюдает за покидающими корабль людьми. ]];
 
	phrases = {
 
		[[Первый помощник не обращает на вас внимания. ]],
 
		[[Первый помощник спрашивает: "Как вам путешествие?" ]],
 
		[[Первый помощник сообщает: "Капитан раньше командовал ,,Чайкой''. Я не знаю, что стало с ней сейчас". ]],
 
		[[Первый помощник с гордостью говорит: _",,Северное сияние'' -- лучший корабль компании"_. ]],
 
		[[Первый помощник сообщает: "Это был мой первый трансатлантический рейс в качестве первого помощника". ]]
 
	};
 
};
 
 
aurora_borealis = room {
 
	nam = "aurora_borealis";
 
	disp = "Северное cияние";
 
	dsc = [[Тяжелые темные тучи застилают небо, не давая солнечному свету пробиться к земле. Пассажиры собрались на палубе парохода, прибывшего в порт Лондона. Вокруг снуют матросы, занимающиеся своими делами и не обращающие никакого внимания на вас. Люди неспешно сходят на берег. Со всех сторон вы слышите гудки пароходов, прибывающих в порт и отправляющихся в плавание. ]];
 
	obj = {'char_captain', 'char_first_mate'};
 
	way = {
 
		vroom("На берег", "london_mooring");
 
	};
 
};
 
 
london_mooring = cutscene("london_mooring", "Порт", [[Вместе с очередной группой пассажиров, вы сходите на берег. Толпа увлекает вас от причала и вы оказываетесь посреди порта. Вокруг снуют люди: пассажиры, грузчики, моряки. Со всех сторон доносится шум: голоса людей, гудки пароходов, ржание лошадей. ]], "port");
 
 
port = room {
 
    var {
 
        state = 0;
 
    };
 
	nam = "port";
 
	disp = "Порт";
 
	dsc = [[Тяжелые тучи над головой, кажется, вот-вот разразятся дождем. Вокруг снуют люди: пассажиры, грузчики, моряки. Со всех сторон доносится шум: голоса людей, гудки пароходов, ржание лошадей. Вы стоите рядом с одним из складов. ]];
 
	way = {
 
		vroom("На улицу", "port_street");
 
	};
 
    entered = function(s)
 
        if (not char_worker.bought and s.state == 0) then
 
            p("Сидящий у склада рабочий печально вздыхает: \"Выпить бы!\"");
 
        end;
 
        s.state = s.state + 1;
 
        if (s.state == 2) then
 
            s.state = 0;
 
        end;
 
    end;
 
	obj = {'char_worker', 'item_toolbox'};
 
};
 
 
port_street = room {
 
	nam = "port_street";
 
	disp = "Улица";
 
	entered = function(s)
 
		move(char_coachman, here());
 
	end;
 
	way = {
 
		vroom("В порт", "port");
 
		vroom("В пивную лавку", "ginshop");
 
	};
 
	dsc = [[Вы с трудом пробираетесь сквозь толпы людей, спешащих по своим делам. Из порта доносятся гудки пароходов. Со всех сторон доносится шум большого города. Тяжелые черные тучи медленно плывут по небу, грозя разразиться дождем в любую минуту. ]];
 
    obj = {
 
        "dice_player"
 
    };
 
};
 
 
dice_player = npc {
 
    nam = "char_dice_player";
 
    disp = "Игрок";
 
    dsc = [[У дверей пивной лавки сидит на раскладном стульчике хитрого вида {тип} в мятом старом костюме и не менее старой и мятой кепке. В руке он вертит обычную шестигранную игральную кость. ^]];
 
    dlg = "dice_player_dlg";
 
};
 
 
dice_player_dlg = dlg {
 
    nam = "dice_player_dlg";
 
    disp = "Игрок";
 
    entered = [[Человек обращается к вам: "Эй, сыграем?"]];
 
    phr = {
 
        {always=true, "Во что играем?", [[Человек объясняет правила: "Играем в свинью. Все просто -- сперва мы бросаем кость. У кого выпадет больше -- тот ходит первым. Ходящий кидает кость пока не выкинет единицу или ему не надоест. Сколько выпадает на кости, стольок очков он прибавляет себе. Если выпадает единица -- все очки набранные за ход теряются. Ну так, что? Играем?"]]};
 
        {always=true, "Я сыграю. ", [[Человек потирает руки, спрашивая: "Сколько ставим?"]], code [[psub("stake");]]};
 
        {always=true, "Не в этот раз. ", code [[back();]]};
 
        {tag="stake"};
 
        {always=true, "5 шиллингов. ", code [[dice_game.stake = 5; walk("dice_game");]]};
 
        {always=true, "10 шиллингов. ", code [[dice_game.stake = 10; walk("dice_game");]]};
 
        {always=true, "25 шиллингов. ", code [[dice_game.stake = 25; walk("dice_game");]]};
 
        {always=true, "50 шиллингов. ", code [[dice_game.stake = 50; walk("dice_game");]]};
 
        {always=true, "Я передумал", code [[back();]]};
 
    };
 
};
 
 
char_worker = npc {
 
    var {
 
        bought = false;
 
    };
 
	nam = "char_worker";
 
	disp = "Портовый рабочий";
 
	dsc = function(s)
 
        if (s.bought) then
 
            return [[На скамейке у стены склада сидит {рабочий} и курит трубку, попивая что-то из стоящей рядом бутылки. ]];
 
        else
 
            return [[На скамейке у стены склада сидит {рабочий} и курит трубку. ]];
 
        end;
 
    end;
 
	dlg = "char_worker_dlg";
 
	act = function(s)
 
		if (s.bought) then
 
			return "Мне от него больше ничего не надо. ";
 
		else
 
			walkin(s.dlg);
 
		end;
 
	end;
 
};
 
 
char_worker_dlg = dlg {
 
	nam = "char_worker_dlg";
 
	disp = "Портовый рабочий";
 
	entered = function(s)
 
        if have(item_bottle) then
 
            pon("bottle");
 
        end;
 
		pjump('new');
 
		return [[Недовольно посмотрев в вашу сторону, рабочий спрашивает: "Чего надо?" ]];
 
	end;
 
	phr = {
 
		{tag='new'},
 
        {tag='bottle', false,"[Предложить рабочему бутылку]Могу я воспользоваться вашими инструментами?", [[Глаза рабочего округляются и он тянет руки к вожделенной бутылке: "Да без проблем, забирай". ]], code [[
 
        {tag='bottle', false,"[Предложить рабочему бутылку] Могу я воспользоваться вашими инструментами?", [[Глаза рабочего округляются и он тянет руки к вожделенной бутылке: "Да без проблем, забирай". ]], code [[
 
            remove(item_bottle, pl);
 
            char_worker.bought = true;
 
            back();
 
        ]]};      
 
		{always=true, "Могу я воспользоваться вашими инструментами?", [[Рабочий отрывисто отвечает: "Нет", -- после чего отворачивается в другую сторону. ]], [[ pjump 'bribe_try' ]]};
 
		{always=true, "Нет, ничего. ", [[Рабочий недовольно рычит: "Тогда отвали", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{tag='bribe_try'};
 
		{always=true, "Могу я купить их у вас?", [[Рабочий снова повернулся к вам. Он с плохо скрываемым интересом спрашивает: "Сколько?" ]], [[ pjump 'bribing_20' ]]};
 
		{always=true, "Нет, ничего. ", [[Рабочий недовольно рычит: "Тогда отвали", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{tag='bribing_20'};
 
		{"10 шиллингов?", [[ Рабочий усмехнулся: "Издеваешься?" ]]};
 
		{always=true, "20 шиллингов?", [[
 
			"30"
 
		]], [[pjump 'bribing_30']]};
 
		{always=true, "40 шиллингов?", function(s)
 
			if (pl:pay(40)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ char_worker.bought = true; back();]]};
 
		{always=true, "60 шиллингов?", function(s)
 
			if (pl:pay(60)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ char_worker.bought = true; back();]]};
 
		{tag='bribing_30'};
 
		{always=true, "20. ", [[Рабочий потирает руки и предлагает: "28". ]], [[pjump 'bribing_28']]};
 
		{always=true, "22. ", [[Рабочий потирает руки и предлагает: "28". ]], [[pjump 'bribing_28']]};
 
		{always=true, "24. ", [[Рабочий потирает руки и предлагает: "28". ]], [[pjump 'bribing_28']]};
 
		{always=true, "26. ", [[Рабочий потирает руки и предлагает: "28". ]], [[pjump 'bribing_28']]};
 
		{always=true, "28. ", function(s)
 
			if (pl:pay(28)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ back(); ]]};
 
        {always=true, "Идет. ", function(s)
 
            if (pl:pay(30)) then
 
                char_worker.bought = true;
 
                return [[Рабочий довольно потирает руки: "Идет". ]];
 
            else
 
                return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
            end;
 
        end, [[ back(); ]]};
 
		{tag='bribing_28'};
 
		{always=true, "20. ", [[Рабочий потирает руки и предлагает: "26". ]], [[pjump 'bribing_26']]};
 
		{always=true, "22. ", [[Рабочий потирает руки и предлагает: "26". ]], [[pjump 'bribing_26']]};
 
		{always=true, "24. ", [[Рабочий потирает руки и предлагает: "26". ]], [[pjump 'bribing_26']]};
 
		{always=true, "26. ", function(s)
 
			if (pl:pay(26)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ back(); ]]};
 
        {always=true, "Идет. ", function(s)
 
            if (pl:pay(28)) then
 
                char_worker.bought = true;
 
                return [[Рабочий довольно потирает руки: "Идет". ]];
 
            else
 
                return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
            end;
 
        end, [[ back(); ]]};      
 
		{tag='bribing_26'};
 
		{always=true, "20. ", [[Рабочий недовольно рычит: "Не хочешь -- не надо", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{always=true, "22. ", [[Рабочий недовольно рычит: "Не хочешь -- не надо", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{always=true, "24. ", function(s)
 
			if (pl:pay(24)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[  back(); ]]};
 
        {always=true, "Идет. ", function(s)
 
            if (pl:pay(26)) then
 
                char_worker.bought = true;
 
                return [[Рабочий довольно потирает руки: "Идет". ]];
 
            else
 
                return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
            end;
 
        end, [[ back(); ]]};      
 
	};
 
};
 
 
ginshop = room {
 
	nam = "ginshop";
 
	disp = "Пивная лавка";
 
    dsc = [[Свет с трудом проникает в небольшую комнатушку через давно не мытые окна. На полу многолетний слой грязи. Будучи излюбленным заведением самых отъявленных алкоголиков, этот магазинчик представляет огромный выбор дешевого и крепкого пойла. ]];   
 
	obj = {'ginshop_trader'};
 
	way = {
 
		vroom("На улицу", "port_street");
 
	};
 
};
 
 
ginshop_trader = npc {
 
    var {
 
        bought = false;
 
    };
 
	nam = "ginshop_trader";
 
	disp = "Продавец";
 
	dsc = [[За грязным прилавком, не раз залитым местными напитками, стоит пожилой {продавец}. Сквозь потрескавшееся мутное стекло в старых очках(второе отсутствует, судя по всему, уже давно) он пытается рассмотреть вас. ]];
 
	dlg = "ginshop_trader_dlg";
 
};
 
 
ginshop_trader_dlg = dlg {
 
	nam = "ginshop_trader_dlg";
 
	disp = "Торговец";
 
	enter = function(s)
 
		if (ginshop_trader.bought or char_worker.bought) then
 
			pr("Мне здесь ничего не нужно. ");
 
			return false;
 
		else
 
			return true;
 
		end;
 
	end;
 
	entered = [[Сняв очки, продавец смотрит на вас и спрашивает: "Добро пожаловать, господин. Чем могу помочь, господин?" ]];
 
	phr = {
 
		{always = true, "Бутылочку чего-нибудь покрепче, пожалуйста. ", [[Продавец кивает: "Сию секунду, господин". Почесав седую голову, он уходит в подвал, откуда возвращается через некоторое время с бутылкой. С громким стуком поставив бутылку на стол, он сообщает вам цену: "Это будет стоить вам 20 шиллингов, господин". ]], code = [[ psub("buy"); ]]};
 
		{always = true, "Это все, спасибо. ", [[Продавец одевает очки обратно и прощается с вами: "Приходите еще, господин". ]], function() 
 
				back();
 
			end;
 
		};
 
		{tag = "buy"};
 
		{always = true, "Беру. ", function(s)
 
			if (pl:pay(20)) then
 
				ginshop_trader.bought = true;
 
				take(item_bottle);
 
				return [[Расплывшись в широкой улыбке продавец подмигивает вам и говорит: "Приходите еще, господин!" ]];
 
			else
 
				return [[Одевая очки обратно, продавец прячет бутылку под прилавок: "Простите, господин, но я сказал 20 шиллингов". ]];
 
			end;
 
		end, code = [[ back(); ]]};
 
		{always = true, "Я передумал. ", [[Одевая очки обратно, продавец прячет бутылку под прилавок: "Подумайте еще, господин. Всего 20 шиллингов, господин!". ]], code = [[ pret(); ]]};
 
	};
 
};
 
 
hotel_street = room {
 
	nam = "hotel_street";
 
	disp = "Улица";
 
	entered = function(s)
 
		move(char_coachman, here());
 
	end;
 
    dsc = [[Перед вами стоит старое двухэтажное здание гостиницы. Массивные деревянные двери открыты, приглашая вас внутрь. Покосившаяся вывеска над ними гласит: "Гостиница Старого Фрэнки". Большинство домов поблизости выглядят старыми и неухоженными -- очевидно, в этом районе живут не самые богатые горожане. Вокруг тихо -- лишь редкие пешеходы проходят мимо, не обращая на вас никакого внимания. По небу неспешно плывут тяжелые темные тучи. ]];
 
	way = {
 
		vroom("В гостиницу", "hotel_hall");
 
	};
 
};
 
 
hotel_hall = room {
 
	nam = "hotel_hall";
 
	disp = "Гостиница";
 
	dsc = [[Холл гостиницы представляет собой просторный зал высотой в два этажа. В задней части зала вы видите широкую лестницу, застеленную старой дорожкой, которая некогда была красной. Окна закрыты тяжелыми занавесками, не позволяя свету с улицы проникнуть в помещение. Огромная люстра под потолком дает достаточно света. Вдоль стен расположено несколько диванчиков. ]];
 
	obj = {
 
		'hotel_concierge',
 
        'hotel_starlight'      
 
	};
 
    entered = function(s)
 
        if (rnd(20) > 19) then
 
            hotel_maid.state = #hotel_maid.actions;
 
            put(hotel_maid, here());
 
        else
 
            remove(hotel_maid, here());
 
        end;
 
    end;   
 
	way = {
 
		vroom("На улицу", "hotel_street");
 
		vroom("К номерам", "hotel_corridor_1"):disable();
 
		vroom("На второй этаж", "hotel_corridor_2"):disable();
 
	};
 
};
 
 
hotel_corridor_1 = room {
 
	nam = "hotel_corridor_1";
 
	disp = "Гостиница, первый этаж";
 
    dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]];
 
    entered = function(s)
 
        if (rnd(10) > 9) then
 
            hotel_maid.state = rnd(#hotel_maid.actions - 1);
 
            put(hotel_maid);
 
        else
 
            remove(hotel_maid);
 
        end;
 
    end;
 
	way = {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №2", "hotel_room_2"):disable();
 
	};
 
};
 
 
hotel_corridor_2 = room {
 
    var {
 
        room_visited = false;
 
        met_starlight = false;
 
    };
 
	nam = "hotel_corridor_2";
 
	disp = "Гостиница, второй этаж";
 
	dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]];
 
	way = {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №7", "hotel_room_7");
 
	};
 
	enter = function(s)
 
		if (s.room_visited and not s.met_starlight) then
 
			s.met_starlight = true;
 
			walkin('starlight_first_dlg');
 
		end;
 
	end;
 
    entered = function(s)
 
        if (rnd(10) > 9) then
 
            hotel_maid.state = rnd(#hotel_maid.actions - 1);
 
            put(hotel_maid, here());
 
        else
 
            remove(hotel_maid, here());
 
        end;
 
    end;
 
	left = function(s)
 
		if (s.room_visited) then
 
			remove("char_starlight_corridor", where("char_starlight_corridor"));
 
			lifeoff("char_starlight_corridor");
 
		end;
 
	end;
 
};
 
 
hotel_room_2 = room {
 
	nam = "hotel_room_2";
 
	disp = "Гостиница, Комната №2";
 
    dsc = [[Небольшая чистая комната. На столике у окна стоит зажженная лампа, рядом брошена стопка газет. На кровати в углу валяется шляпа хозяина. Окно распахнуто, впуская внутрь прохладный и влажный воздух. ]];   
 
	obj = {
 
		"char_starlight"
 
	};
 
	way = {
 
		vroom("В коридор", "hotel_corridor_1");
 
	};
 
};
 
 
hotel_room_7 = room {
 
	nam = "hotel_room_7";
 
	disp = "Гостиница, Комната №7";
 
	dsc = [[Небольшая чистая комната. Деревянный столик в углу прикрыт белой скатертью. В углу стоит аккуратно сделанный стул. У окна расположена застеленная чистым бельем кровать. На скрипучем деревянном полу лежит старый коврик. ]];
 
	obj = {
 
		'item_lamp', 'room_7_window', 'money_hotel'
 
	};
 
	way = {
 
		vroom("В коридор", "hotel_corridor_2");
 
	};
 
	entered = function(s)
 
		hotel_corridor_2.room_visited = true;
 
	end;
 
};
 
 
room_7_window = obj {
 
    var {
 
        state = 0;
 
    };
 
	nam = "room_7_window";
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return "{Окно} закрыто плотными ставнями. ";
 
		elseif (s.state == 1) then
 
			return "Через {окно} вы можете разглядеть мостовую, немногочисленных прохожих, прочные кирпичные дома на другой стороне улицы и тяжелые тучи, нависающие над городом. ";
 
		else
 
			return "Сквозь открытое {окно} до вас доносится шум большого, живущего своей жизнью города. Прохладный ветерок задувает в комнату. ";
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			return [[Вы открываете ставни. ]];
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			return [[Вы открываете окно. ]];
 
		elseif (s.state == 2) then
 
			s.state = 0;
 
			return [[Вы закрываете окно и захлопываете ставни. ]];
 
		end;
 
	end;
 
};
 
 
hotel_concierge = obj {
 
    var {
 
        paid = false;
 
    };
 
	nam = "hotel_concierge";
 
	disp = "Консьерж";
 
	dsc = [[За стойкой скучает пожилой {консьерж}. Поношенный костюм, выглаженный и начищенный, хорошо сидит на его худощавом теле. Аккуратно подстриженная седая борода украшает его морщинистое лицо. Руки его неподвижно лежат на стойке, а глаза наблюдают за входящими и выходящими посетителями. ]];
 
	act = function(s)
 
		if (hotel_concierge.paid) then
 
			pn("Я уже снял номер. ");
 
		else
 
			walkin(hotel_concierge_dlg);
 
		end;
 
	end;
 
};
 
 
hotel_starlight = npc {
 
    nam = "hotel_starlight";
 
    disp = "Старлайт";
 
    dsc = "На одном из диванчиков сидит мужчина лет сорока-пяти--пятидесяти, одетый в помятый костюм. Он читает газету и не обращает на вас внимания. ";
 
};
 
 
hotel_maid = npc {
 
    var {
 
        state = 1;
 
    };
 
	nam = "hotel_maid";
 
	disp = "Служанка";
 
	actions = {
 
		[[{Служанка} подметает пол. ]];
 
		[[{Служанка} протирает стены. ]];
 
        [[{Служанка} поправляет лампу. ]];
 
        [[На один из диванчиков присела отдохнуть {служанка}. ]];
 
	};
 
	dsc = function(s)
 
		return s.actions[s.state];
 
	end;
 
	phrases = {
 
		[["Простите, я занята". ]];
 
		[["Вам понравилась ваша комната?" ]];
 
		[["У меня еще много дел сегодня". ]];
 
		[["Простите?" ]];
 
		[["Добрый день". ]];
 
	};
 
};
 
 
hotel_concierge_dlg = dlg {
 
	nam = "hotel_concierge_dlg";
 
	disp = "Консьерж";
 
	entered = [[Консьерж оживился, как только вы подошли: "Здравствуйте! Желаете снять номер?" ]];
 
	phr = {
 
		{1, "Да, мне нужна комната на неделю. ", [[Консьерж, посмотрев в журнал, называет цену: "С вас 100 монет". ]], code = [[ psub("pay"); ]]};
 
		{255, always = true, "Не сейчас. ", function()
 
			back();
 
			return [[Консьерж недовольно отвечает: "Приходите, когда соберетесь! "]];
 
		end};
 
		{tag = "pay"};
 
		{always = true, "Хорошо. ", function()
 
			if pl:pay(100) then
 
				hotel_concierge.paid = true;
 
				path("К номерам", hotel_hall):enable();
 
				path("На второй этаж", hotel_hall):enable();
 
				back();
 
				return [[Консьерж принимает ваши деньги и просит вас расписаться в гостевой книге. После чего вручает вам ключ, сообщая: "Вам на второй этаж, комната номер 7". ]];
 
			else
 
				pon(1);
 
				pret();
 
				back();
 
				return [[Консьерж недовольно отвечает: "Приходите, когда деньги будут!" ]];
 
			end;
 
		end};
 
		{always = true, "Я передумал. ", [[Консьерж недовольно отвечает: "Приходите, когда соберетесь!" ]], code = [[ pon(1); pret(); ]]}
 
	};
 
};
 
 
starlight_first_dlg = dlg {
 
    nam = "starlight_first_dlg";
 
	disp = "Гостиница, второй этаж";
 
	entered = [[Выйдя из своей комнаты, вы замечаете поднимающегося по лестнице человека. Это мужчина лет сорока-пяти--пятидесяти. Он одет в помятый темно-серый костюм, на носу -- маленькие очки в простой оправе. В левой руке он держит какую-то газету, а правой спешно ощупывает карманы в поисках чего-то. Заметив вас он улыбается и спрашивает: "Господин Дрейк?" ]];
 
	left = function(s)
 
        remove(hotel_starlight, hotel_hall);
 
		path('В комнату №2', hotel_corridor_1):enable();
 
		put("char_starlight_corridor", hotel_corridor_2);
 
		lifeon("char_starlight_corridor");
 
	end;
 
	phr = {
 
		{ "Мы встречались?", [[Человек пожимает плечами: "Скорее всего нет, мое имя Джозеф Старлайт. Вы случайно не родственник Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-то говорит?" ]], code [[ pstart('have_we_met') ]]};
 
		{ "Кто вы?", [[Человек протягивает вам руку: "Джозеф Старлайт, адвокат. Название Вестхейвен Трансоушен вам о чем-то говорит?" ]], code [[ pstart('who_are_you') ]]};
 
		{ "Да, я Дэвид Дрейк.", [[Человек протягивает вам руку: "Здравствйте! Я Джозеф Старлайт. Вы сын Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-нибудь говорит?" ]], code [[ pstart('i_am_drake') ]]};
 
		{ "Простите, я спешу.", [[Человек огорченно вздыхает: "Простите". Подойдя к лестнице он оборачивается и говорит: "Мое имя -- Джозеф Старлайт. Если хотите поговорить о Вестхейвен Трансоушен, зайдите ко мне в комнату 2 когда у вас будет время". ]], code [[ psub("end"); ]]};
 
		{tag = "have_we_met"};
 
		{ "Я сын Уильяма. Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже". ]], code [[ psub("end"); ]]};
 
		{ "Кто вы?", [[Джозеф Старлайт отвечает: "Адвокат. Я занимался делом о банкротстве Вестхейвен Трансоушен". ]], code [[ pstart('who_are_you') ]]};
 
		{tag = "who_are_you"};
 
		{ "Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже". ]], code [[ psub("end"); ]]};
 
		{tag = "i_am_drake"};
 
		{ "Да все верно. Это название компании моего отца. Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже". ]], code [[ psub("end"); ]]};
 
        {tag="end"};
 
        {"Хорошо, я зайду.", code [[ back(); ]]};
 
        {"Спасибо, но я спешу.", code [[ back(); ]]};
 
        {"Делать мне больше нечего.", code [[ back(); ]]};
 
	};
 
};
 
 
char_starlight_corridor = obj {
 
	nam = "char_starlight_corridor";
 
	dsc = function(s)
 
		return [[{Джозеф Старлайт} продолжает ощупывать карманы, словно ищет что-то. ]];
 
	end;
 
	act = function(s)
 
		remove(s, where(s));
 
		lifeoff(s);
 
		return [[Раздраженно махнув рукой, Джозеф быстрым шагом спускается вниз по лестнице. ]];
 
	end;
 
	life = function(s)
 
		if (rnd(5) > 4) then
 
			remove(s, where(s));
 
			lifeoff(s);
 
			return [[Раздраженно махнув рукой, Джозеф быстрым шагом спускается вниз по лестнице. ]];
 
		end;
 
	end;
 
};
 
 
char_starlight = obj {
 
    var {
 
        forgetful = 0;
 
        complete = 0;
 
    };
 
	nam = "char_starlight";
 
	dsc = function(s)
 
		return [[{Джозеф Старлайт} сидит за столом и делает какие-то записи в блокноте. ]];
 
	end;
 
	act = function(s)
 
		walkin(starlight_dlg);
 
	end;
 
};
 
 
starlight_dlg = dlg {
 
	nam = "starlight_dlg";
 
	disp = "Джозеф Старлайт";
 
	entered = function(s)
 
		if (not char_starlight.forgetful) then
 
			pon(0);
 
		else
 
			poff(0);
 
		end;
 
		if (have(item_charts) and not warehouse18_found) then
 
			pon(14);
 
		else
 
			poff(14);
 
		end;
 
		char_starlight.forgetful = true;
 
		if (char_starlight.complete) then
 
			return [[Джозеф оборачивается к вам и удивленно вскакивает со стула: "Как вы сюда попали?!" Он подходит к двери, открывает ее и снова закрывает, после чего запирает замок: "Опять забыл, да что ж такое?!" Потом он снова оборачивается к вам и говорит: "Господин Дрейк? Мое имя Джозеф ..." -- внезапно он делает паузу, после чего продолжает: "Мы же вроде все обсудили с вами?" ]];
 
		else
 
			return [[Джозеф оборачивается к вам и удивленно вскакивает со стула: "Как вы сюда попали?!" ^Он подходит к двери, открывает ее и снова закрывает, после чего запирает замок: "Опять забыл, да что ж такое?!" Потом он снова оборачивается к вам и говорит: "Господин Дрейк? Мое имя Джозеф Старлайт. Я думаю нам есть что обсудить касательно компании вашего отца". ]];
 
		end;
 
	end;
 
	phr = {
 
		{1, "Вы уже представлялись. ", [[Джозеф Старлайт удивленно переспрашивает: "Да?! Что-то я этого не помню. Впрочем я такими мелочами себе голову не забиваю. Давайте к делу". ]]};
 
		{2, "Я вас слушаю. ", [[Джозеф Старлайт чешет подбородок: "Как я уже говорил, это дело было одним из самых запутанных. Судите сами: верхушка преуспевающей компании, внезапно исчезает, не оставив следов. Сначала мы предполагали, что это дело рук конкурентов -- прибрать компанию к рукам, прикрыть или использовать их разработки. Однако, когда начали копать, выяснили, что к этому моменту Вестхейвен Трансоушен была не в лучшем состоянии -- отдел исследований закрыт, документы уничтожены, некоторые подразделения проданы. Говоря проще -- компания разваливалась". ]], code [[ pstart('father_bankrupt') ]]};
 
		{3, tag = 'father_bankrupt'};
 
		{4, "Но зачем Уильяму разрушать собственную компанию? ", [[
 
			Джозеф Старлайт пожимает плечами: "Если бы я знал. Судя по той информации, что я о нем собрал, он весьма грамотный человек и у него были толковые помощники. Не знаю, сможете ли вы что-то сказать, господин Дрейк. Вам тогда сколько было? 10 лет?" Джозеф поправляет очки и продолжает: "У меня, конечно, есть предположение. Исследовательский отдел занимался чем-то принципиально новым, не связанным с основной деятельностью компании. Это подтверждают и отчеты компании -- инженеры получали колоссальное финасирование, заказывалось огромное количество заказных деталей. Также компания зачем-то наняла нескольких видных ученых. В итоге, что бы там не планировалось -- дело закончилось провалом и большими расходами, поэтому компанию пришлось закрыть. Чего я не понимаю -- зачем он исчез? Любой банк бы выдал большой кредит такому человеку". ]], code [[ pstart('fathers_project') ]]};
 
		{5, tag = 'fathers_project', empty = code [[psub('final') ]]};
 
		{6, "А может у него наоборот все получилось? ", [[Джозеф Старлайт пожимает плечами: "Тогда почему он исчез? Почему оставил семью? Еще больше вопросов". ]]};
 
		{7, "Не думаю, что из-за простой неудачи мой отец мог бы бросить вообще все. ", [[Джозеф Старлайт чешет подбородок: "Я и не говорил, что это *простая* неудача. Судя по всему, проект был весьма перспективным. Настолько, что можно было рискнуть всем". ]]};
 
		{8, "И что это мог быть за проект? ", [[Джозеф Старлайт пожимает плечами: "Понятия не имею. Какое-то масштабное исследование, может быть экспедиция -- это подтверждают и большое количество заказанных компанией деталей и нанятые ученые". ]], code [[ psub('submarine'); ]]};
 
		{9, tag = 'submarine'};
 
		{10, "Для чего это могло понадобиться Уильяму? ", [[Джозеф Старлайт снимает очки: "Понятия не имею. Совершенно". ]]};
 
		{11, "Это бы объяснило куда он исчез. ", [[Джозеф Старлайт чешет голову: "Может быть, только никаких документов не сохранилось. Впрочем они очень много денег на какие-то секретные проекты тратили последнее время". ]]};
 
		{13, tag = 'final'};
 
		{14, always = true, "Вы можете посмотреть эти бумаги? Вам знакомы эти места? [Показать Джозефу документы отца]", [["Так вот зачем вы здесь! Я догадывался. Давайте ваши бумаги сюда", -- Джозеф выхватывает документы из ваших рук и бегло просматривает их. Почесав голову, он говорит: "Одно из этих мест я знаю". Он сообщает вам адрес склада 18. ]], code [[ warehouse18_found = true; poff(14); ]]};
 
		{15, always = true, "Мне пора. ", [[Джозеф Старлайт отворачивается к столу: "До встречи". ]], code [[ back(); ]]};
 
	};
 
};
 
 
--[[
 
    Банк
 
]]
 
london_bank_street = room {
 
    nam = "london_bank_street";
 
    disp = "Улица";
 
    dsc = [[На улице перед банком людно -- прохожие спешат по своим делам, то и дело натыкаясь друг на друга и разбегаясь в разные стороны. Среди этой суеты возвышается, словно игнорируя ее, здание, высокое и широкое, с резными колоннами, мраморными ступенями, ведущими к широким и тяжелым дверям из красного дерева и позолоченной табличкой над входом, гласящей, что перед лицезреющими это ни что иное, как банк. ]];
 
    way = {
 
        kh_vroom("В банк", "london_bank");
 
    };
 
    entered = function(s)
 
        move(char_coachman, here());
 
    end;
 
};
 
 
london_bank = room {
 
    nam = "london_bank";
 
    disp = "Банк";
 
    dsc = [[Внутри банка прохладно и светло. ]];
 
    way = {
 
        kh_vroom("На улицу", "london_bank_street");
 
    };
 
    obj = {
 
        "bank_clerks";
 
        "bank_guard";
 
    };
 
};
 
 
bank_clerks = npc {
 
    nam = "bank_clerks";
 
    dsc = [[Людей внутри почти нет, не считая нескольких скучающих за мраморной стойкой {клерков} ]];
 
    dlg = "bank_clerks_dlg";
 
};
 
 
bank_clerks_dlg = dlg {
 
    nam = "bank_clerks_dlg";
 
    disp = "Клерк";
 
    entered = [[Вы подходите к одному из клерков. Молодой человек в аккуратном пиджаке и галстуке уставляет свой взор на вас и спрашивает: "Чем я могу помочь?"]];
 
    phr = {
 
        {"[Передать сберкнижку]Я хотел бы снять деньги со своего счета. ", [[Вы протягиваете клерку сберкнижку. Он просматривает ее и отвечает: "Конечно. Минутку". Он уходит из зала и через несколько минут возвращается с мешочком монет. ]], code [[ remove(item_bankbook, pl); pl.money = pl.money + 150; ]]};
 
        {"[Передать сберкнижку] Я хотел бы снять деньги со своего счета. ", [[Вы протягиваете клерку сберкнижку. Он просматривает ее и отвечает: "Конечно. Минутку". Он уходит из зала и через несколько минут возвращается с мешочком монет. ]], code [[ remove(item_bankbook, pl); pl.money = pl.money + 150; ]]};
 
        {always=true; "Я вернусь позже. ", [[Клерк возвращается к своим делам. ]], code [[ back(); ]]}
 
    };
 
};
 
 
bank_guard = npc {
 
    nam = "bank_guard";
 
    dsc = "и одинокого {охранника}, застывшего у входа.";
 
    phrases = {
 
        [[Охранник вежливо приветствует вас: "Добро пожаловать, господин". ]];
 
        [[Охранник пожимает плечами: "Я ничем не могу вам помочь". ]];
 
        [[Охранник зевает. ]];
 
        [[Охранник задумчиво чешет подбородок. ]];
 
    };
 
};
 
 
money_dock = obj {
 
    nam = "money_dock";
 
    dsc = "Среди куч мусора вы видите что-то {блестящее}. ";
 
    act = function(s)
 
        remove(money_dock, here());
 
        return "Пять шиллингов!";
 
    end;
 
};
 
 
money_wh32 = obj {
 
    nam = "money_wh32";
 
    seen_level=1;
 
    dsc = "На столе лежат несколько {монет}. ";
 
    act = function(s)
 
        remove(money_wh32, here());
 
        return "Пять шиллингов!";
 
    end;
 
};
 
 
money_hotel = obj {
 
    nam = "money_hotel";
 
    dsc = "Под кроватью вы замечаете {что-то блестящее}. ";
 
    act = function(s)
 
        remove(money_hotel, here());
 
        return "Пять шиллингов!";
 
    end;
 
};
 
\ No newline at end of file
lseryanotrr_intro.lua
Show inline comments
 
global {
 
    lse_intro_with_learr = false;
 
    lse_intro_with_jack = false;
 
    lse_intro_with_walter = false;
 
    lse_intro_with_anna = false;
 
    lse_key = false;
 
};
 

	
 
lse_entered = cutscene("lse_entered", "Левиафан, рубка", [[
 
        Когда после бесконечной череды скал и ущелий перед Левиафаном наконец открылось громадное плато с выросшим по центру колоссальных размеров городом, полностью накрытым прозрачным куполом, защищающим древние строения от проникновения посторонних. Приближаясь вы начинаете замечать отдельные здания, выстроившиеся кольцами вокруг центральной башни-обелиска. Ослепительно-ярким светом горят на этом маяке цветные символы древнего навьярского языка. К сожалению, сейчас вы можете понять только часть их смысла, и она однозначно сообщает название места, куда вы попали: "Первый и главный город навьяров и хевьяров". Весь экипаж Левиафана собирается в рубке, не в силах оторвать взгляд от граниозного зрелища. 
 
    ]], "lse_entered2");
 
lse_entered2 = cutscene("lse_entered2", "Левиафан, рубка", function(s)
 
    if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
        if (rel_learr > 0) then
 
            pr [[
 
                Леарр застыла в изумлении и лишь по ее плавникам бегут цветные полосы, означающие "Мои-предки невероятное-это-построили. Я хочу, чтобы мы сейчас-так-могли". Она обращает свой взор к вам и совершенно искренне благодарит вас: "Ты-Дрейк, это-возможным-сделал. Пусть тепло-и-волны вечно-будут-с-тобой". ^
 
            ]];
 
        elseif (rel_learr < 0) then
 
            pr [[
 
                Леарр застыла в изумлении и лишь по ее плавникам бегут цветные полосы, означающие "Мои-предки невероятное-это-построили. Я хочу, чтобы мы сейчас-так-могли". Она обращает свой взор к вам и произносит: "Мы наш-путь-закончили-почти. Наконец-то мы своими-путями-разойдемся". ^
 
            ]];
 
        else
 
            pr [[
 
                Леарр застыла в изумлении и лишь по ее плавникам бегут цветные полосы, означающие "Мои-предки невероятное-это-построили. Я хочу, чтобы мы сейчас-так-могли". По мере вашего приближения она продолжает поглощать взглядом прекрасно сохранившиеся здания города. ^
 
            ]];
 
        end;
 
    end;
 
    if (ArrayUtils.indexOf(pl.party, 'phaetlarr') ~= 0) then
 
        if (rel_phaetlarr > 0) then
 
            pr [[
 
                Фаэтларр неподвижно встал рядом с вами. Не отрывая взгляда, он смотрит через иллюминаторы Левиафана на древний город своего народа. По его плавникам бегут цветные полосы: "Адриан-Блэк здесь, Дрейк. Ты-действуй".^
 
            ]];
 
        elseif (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
            pr [[
 
                Фаэтларр неподвижно встал рядом с Леарр. Не отрывая взгляда, он смотрит через иллюминаторы Левиафана на древний город своего народа. По его плавникам бегут цветные полосы: "Адриан-Блэк здесь. Я ему-за-все-отомщу". ^
 
            ]];
 
        else
 
            pr [[
 
                Фаэтларр неподжвижно стоит в углу рубки. Не отрывая взгляда, он смотрит через иллюминаторы Левиафана на древний город своего народа. По его плавникам бегут цветные полосы: "Адриан-Блэк здесь. Я ему-за-все-отомщу". ^
 
            ]];
 
        end;
 
    end;
 
    if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
        if (rel_jack > 0) then
 
            pr [[
 
                При виде купола и всего что находится под ним, Джек восклицает: "Невероятно, Дрейк! Ты только посмотри! Хотелось бы мне знать, как они сделали это. Это в тысячи раз больше нашей маленькой Атлантиды. И весь этот свет!" ^
 
            ]];
 
        elseif (rel_jack < 0) then
 
            pr [[
 
                При виде купола и всего что находится под ним, Джек восклицает: "Невероятно! Хотелось бы мне знать, как они сделали это. Это в тысячи раз больше нашей маленькой Атлантиды! Но наша цель здесь другая. Мы должны остановить найти Блэка и разузнать у него все". ^
 
            ]];
 
        else
 
            pr [[
 
                При виде купола и всего что находится под ним, Джек восклицает: "Невероятно! Хотелось бы мне знать, как они сделали это. Это в тысячи раз больше нашей маленькой Атлантиды!" ^
 
            ]];
 
        end;
 
    end;
 
    if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then
 
        if (rel_anna > 0) then
 
            pr [[
 
                Анна сосредоточенно перерисовывает древние символы себе в блокнот, делая какие-то пометки. Лишь на краткий миг она обернулась к вам, чтобы улыбнуться. ^
 
            ]];
 
        else
 
            pr [[
 
                Анна сосредоточенно перерисовывает древние символы себе в блокнот, делая какие-то пометки. Потом она смотрит на Уолтера, словно ища у него поддержки. Тот лишь молча кивает в ответ на взгляд сестры. ^
 
            ]];
 
        end;
 
    end;
 
    if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
        if (rel_walter > 0) then
 
            pr [[
 
                Какое-то время Уолтер неподвижно стоит рядом со своей сестрой. Затем он подходит к вам и сердечно пожимает вашу руку. ^
 
            ]];
 
        elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
            pr [[
 
                Уолтер неподвижно стоит рядом со своей сестрой. Только изредка он бросает полный неприятия взгляд в вашу сторону. ^
 
            ]];
 
        elseif (rel_walter < 0) then
 
            pr [[
 
                Уолтер неподвижно стоит в углу комнаты. Он смотрит на вас с явной неприязнью. ^
 
            ]];
 
        else
 
            pr [[
 
                Уолтер неподвижно стоит в углу комнаты. Он изучающе смотрит на вас. ^
 
            ]];
 
        end;
 
    end;
 
    
 
end, "lse_entered3");
 

	
 
lse_entered3 = cutscene("lse_entered3", "Левиафан, рубка", [[
 
    Вашему удивлению нет предела, когда яркие зеленые огни указывают вам на открывающийся проем в стене Лсэрианотра -- древний город словно приглашает вас внутрь. Не раздумывая, вы направляетесь туда. Части стены словно раздвигаются, пропуская вас внутрь. Вы аккуратно проплываете в открывшийся проход и оказываетесь в огромном хорошо освещенном помещении. Стены, пол и потолок его излучают мягкий белый свет. Но вас удивляет, что зал заполнен водой лишь наполовину и в верхней части вас уже ждет группа навьяров. Среди них выделяется один стоящий в центре. Вместо простого одеяния сшитого из водорослей, он одет в человеческие рубашку и брюки!
 
    Стена позади вас закрывается и вы оказываетесь отрезаны от внешнего мира. Вы дергаете один из рычагов на приборной панели и Левиафан поднимается наверх...
 
]], "leviathan_wheelhouse");
 

	
 
lse_on_enter_learr = dlg {
 
    nam = "lse_on_enter_learr";
 
    disp = "Левиафан, кают-компания";
 
    entered = function(s)
 
        if (rel_learr >= 0) then
 
            psub("good");
 
            return [[
 
                Леарр первая подходит к вам и говорит: "Я хочу-с-тобой-идти".
 
            ]];
 
        else
 
            psub("bad");
 
            return [[
 
                Леарр первая подходит к вам и говорит: "Я с-тобой-иду".
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="good"};
 
        {"Оставайся на Левиафане, я не хочу подвергать вас опасности", [[
 
            Леарр огорченно отступает: "Я понимаю и тебе-доверяю. Я здесь-подожду".
 
        ]], code [[ 
 
            if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
                walk("lse_on_enter_anna_walter");
 
            elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {"Хорошо", [[
 
            Леарр радостно кивает и отправляется в шлюзовую камеру. 
 
        ]], code [[
 
            lse_intro_with_learr = true;
 
            if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
                walk("lse_on_enter_anna_walter");
 
            elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {tag="bad"};
 
        {"Оставайся на Левиафане, я не хочу подвергать вас опасности", [[
 
            Леарр отрицательно качает головой: "Я за-себя-решу. Я иду". Не слушая вас, она направляется к шлюзовой камере. 
 
        ]], code [[
 
            lse_intro_with_learr = true;
 
            if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
                walk("lse_on_enter_anna_walter");
 
            elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {"Хорошо", [[
 
            Леарр кивает и отправляется в шлюзовую камеру. 
 
        ]], code [[
 
            lse_intro_with_learr = true;
 
            if (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
                walk("lse_on_enter_anna_walter");
 
            elseif (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
    };
 
};
 

	
 
lse_on_enter_anna_walter = dlg {
 
    nam = "lse_on_enter_anna_walter";
 
    disp = "Левиафан, кают-компания";
 
    entered = function(s)
 
        if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then
 
            if (rel_anna < 0) then
 
                psub("bad_anna");
 
                return [[
 
                    Уолтер Рэдклифф входит в кают-компанию: "Мы с сестрой идем с тобой".
 
                ]];
 
            else
 
                psub("bad_no_anna");
 
                if (rel_walter < 0) then
 
                    return [[
 
                        Уолтер Рэдклифф входит в кают-компанию: "Мы с сестрой идем с тобой".
 
                    ]];
 
                else
 
                    psub("good_anna");
 
                    return [[
 
                        Уолтер Рэдклифф входит в кают-компанию: "Мы с сестрой хотим идти с тобой".
 
                    ]];
 
                end;
 
            end;
 
        else
 
            if (rel_walter < 0) then
 
                psub("bad");
 
                return [[
 
                    Уолтер Рэдклифф входит в кают-компанию: "Я иду с тобой".
 
                ]];
 
            else
 
                psub("good");
 
                return [[
 
                    Уолтер Рэдклифф входит в кают-компанию: "Я готов идти с тобой".
 
                ]];
 
            end;
 
        end;
 
    end;
 
    phr = {
 
        {tag="bad_anna"};
 
        {"Вам лучше остаться", [[
 
            Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет".
 
        ]]};
 
        {"Ты можешь пойти со мной, но Анне лучше остаться", [[
 
            Уолтер отрицательно качает головой: "Она хочет присутствовать лично".
 
        ]]};
 
        {"Я возьму Анну, но ты останешься здесь", [[
 
            Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет".
 
        ]]};
 
        {"Хорошо", [[
 
            Уолтер также молча отправляется в шлюзовую камеру. 
 
        ]], code [[
 
            lse_intro_with_walter = true;
 
            lse_intro_with_anna = true;
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {tag="bad_no_anna"};
 
        {"Вам лучше остаться", [[
 
            Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет".
 
        ]]};
 
        {"Ты можешь пойти со мной, но Анне лучше остаться", [[
 
            Уолтер, немного подумав, кивает: "Хорошо".
 
        ]], code [[
 
            lse_intro_with_walter = true;
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {"Я возьму Анну, но ты останешься здесь", [[
 
            Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет".
 
        ]]};
 
        {"Хорошо", [[
 
            Уолтер также молча отправляется в шлюзовую камеру. 
 
        ]], code [[
 
            lse_intro_with_walter = true;
 
            lse_intro_with_anna = true;
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {tag="good_anna"};
 
        {"Вам лучше остаться", [[
 
            Уолтер, немного подумав, кивает: "Хорошо".
 
        ]], code [[
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {"Ты можешь пойти со мной, но Анне лучше остаться", [[
 
            Уолтер, немного подумав, кивает: "Хорошо".
 
        ]], code [[
 
            lse_intro_with_walter = true;
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {"Я возьму Анну, но ты останешься здесь", [[
 
            Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет".
 
        ]]};
 
        {"Хорошо", [[
 
            Уолтер также молча отправляется в шлюзовую камеру. 
 
        ]], code [[
 
            lse_intro_with_walter = true;
 
            lse_intro_with_anna = true;
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {tag="bad"};
 
        {"Тебе лучше остаться", [[
 
            Уолтер отрицательно качает головой и коротко сообщает о своем отказе: "Нет".
 
        ]]};
 
        {"Хорошо", [[
 
            Уолтер также молча отправляется в шлюзовую камеру. 
 
        ]], code [[
 
            lse_intro_with_walter = true;
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {tag="good"};
 
        {"Тебе лучше остаться", [[
 
            Уолтер, немного подумав, кивает: "Хорошо".
 
        ]], code [[
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
        {"Хорошо", [[
 
            Уолтер также молча отправляется в шлюзовую камеру. 
 
        ]], code [[
 
            lse_intro_with_walter = true;
 
            if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
                walk("lse_on_enter_jack");
 
            else
 
                walk("lse_on_enter_phaetlarr");
 
            end;
 
        ]]};
 
    };
 
};
 

	
 
lse_on_enter_jack = dlg {
 
    nam = "lse_on_enter_jack";
 
    disp = "Левиафан, кают-компания";
 
    entered = function(s)
 
        if (rel_jack < 0) then
 
            psub("bad");
 
            return [[
 
                Джек Райт обращается к вам с просьбой: "Я пойду вместе с вами".
 
            ]];
 
        else
 
            psub("good");
 
            return [[
 
                Джек Райт обращается к вам с просьбой: "Я пойду вместе с вами. Хочу воочию увидеть Лсэрианотр".
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="bad"};
 
        {"Тебе лучше остаться здесь", [[
 
            Джек Райт выглядит сильно недвольным: "Не для того я отправлялся тобой, чтобы в конце ты просто взял и лишил меня возможности участовать в его окончании!"
 
        ]]};
 
        {"Хорошо", [[
 
            Джек Райт уходит в шлюзовую камеру, готовиться к выходу. 
 
        ]], code [[
 
            lse_intro_with_jack = true;
 
            walk("lse_on_enter_phaetlarr");
 
        ]]};
 
        {tag="good"};
 
        {"Тебе лучше остаться здесь", [[
 
            Джек Райт чешет подбородок в задумчивости: "Возможно ты прав. Я послушаю твоего совета".
 
        ]], code [[
 
            walk("lse_on_enter_phaetlarr");
 
        ]]};
 
        {"Хорошо", [[
 
            Джек Райт уходит в шлюзовую камеру, готовиться к выходу. 
 
        ]], code [[
 
            lse_intro_with_jack = true;
 
            walk("lse_on_enter_phaetlarr");
 
        ]]};
 
    };
 
};
 

	
 
lse_on_enter_phaetlarr = dlg {
 
    nam = "lse_on_enter_phaetlarr";
 
    disp = "Левиафан, кают-компания";
 
    entered = function(s)
 
        if (rel_phaetlarr < 0) then
 
            psub("bad");
 
            return [[
 
                Фаэтларр сообщает вам: "Я не пойду в лапы Блэку. Я остаюсь на Левиафане и подожду пока вы отвлечете Аэдхиарра".
 
            ]];
 
        else
 
            psub("good");
 
            return [[
 
                Фаэтларр сообщает вам: "Я остаюсь на Левиафане. Аэдхиарр не будет рад меня видеть и я достаточно доверяю тебе".
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="bad"};
 
        {"Я не думаю что это хороший план", [[
 
            Фаэтларр недовольно отвечает: "Я не спрашиваю, что ты думаешь! Я делаю как считаю нужным".
 
        ]]};
 
        {"Хорошо", [[
 
            Фаэтларр молча уходит в свою каюту.
 
        ]], code [[
 
            walk("lse_aedhyarr_intro");
 
        ]]};
 
        {tag="good"};
 
        {"Нам лучше держаться вместе", [[
 
            Фаэтларр отрицательно качает головой: "Тогда Блэк схватит нас всех сразу. Этого не нужно ни мне ни тебе. Один из нас должен прорваться и победить".
 
        ]]};
 
        {"Хорошо", [[
 
            Перед тем как уйти в свою каюту, Фаэтларр уверенно говорит вам: "У нас все получится".
 
        ]], code [[
 
            walk("lse_aedhyarr_intro");
 
        ]]};
 
    };
 
};
 

	
 
lse_aedhyarr_intro = dlg {
 
    nam = "lse_aedhyarr_intro";
 
    disp = "Лсэрианотр";
 
    entered = function(s)
 
        if (lse_intro_with_learr) then
 
            return [[
 
                Едва вы ступаете на твердую землю, как навьяр в человеческой одежде приветствует вас: "Аэдхиарр рад встрече-с-вами, вьяры. Властитель вас-видеть-хочет". 
 
            ]];
 
        elseif (lse_intro_with_jack or lse_intro_with_walter or lse_intro_with_anna) then
 
            return [[
 
                Едва вы ступаете на твердую землю, как навьяр в человеческой одежде приветствует вас: "Аэдхиарр рад встрече-с-вами, хевьяры. Властитель вас-видеть-хочет". 
 
            ]];
 
        else
 
            return [[
 
                Едва вы ступаете на твердую землю, как навьяр в человеческой одежде приветствует вас: "Аэдхиарр рад встрече-с-тобой, хевьяр. Властитель тебя-видеть-хочет". 
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {"Властитель?", [[
 
            "Среди хевьяров он известен под именем Адриан Блэк".
 
        ]]};
 
        {"Ты знаешь Уильяма Дрейка?", [[
 
            Аэдхиарр склоняет голову: "Он покинул нас в Нлейисланотре".
 
        ]]};
 
        {"Что ты знаешь об этом месте?", [[
 
            "Немногое. Древние машины хранят несчетное количество тайн, но вскоре они все откроются нам, когда властитель пробудит спящего мудреца".
 
        ]]};
 
        {"Что ты знаешь о Наэтвьирре?", [[
 
            "Спящий мудрец -- истинный хранитель этих тайн. Блэк говорит, что знает как разбудить его".
 
        ]]};
 
        {"Что если я откажусь идти?",  [[
 
            Аэдхиарр указывает на собравшихся вокруг навьяров: "Властитель будет недоволен. А мы не любим, когда кто-то огорчает властителя".
 
        ]]};
 
        {"Я готов идти", [[
 
            Аэдхиарр выводит вас из зала и вы оказываетесь в месте, которое могли бы назвать улицей - длинный коридор, слева и справа огражденный массивными металлическими стенами зданий, построенных вплотную друг к другу. 
 
        ]], code [[
 
            walk("lse_walk_intro");
 
        ]]};
 
    };
 
};
 

	
 
lse_walk_intro = cutscene("lse_walk_intro", "Лсэрианотр", function(s)
 
    pr [[
 
        Вы идете почти целый час. За это время вы успели увидеть значительную часть города. Как вы и предполагали - город выстроен тремя кольцами вокруг центрального обелиска. Проход между кольцами возможен лишь через врата, в остальных местах здания расположены так плотно друг к другу, что гораздо более похоже на одно колоссальное сооружение, чем на город с множеством отдельных домов. Высоко над вами возвышается купол города, над которым плещется бескрайний океан. Аэдхиарр не говорит ни слова в течение всего пути. ^
 
    ]];
 
    
 
    if (lse_intro_with_learr) then
 
        if (rel_learr < 0) then
 
            pr [[
 
                Леарр старается держаться подальше от вас. Она почти не обращает внимания на происходящее вокруг - ее взгляд сосредоточен на Аэдхиарре. ^
 
            ]];
 
        else
 
            pr [[
 
                Леарр почти не обращает внимания на происходящее вокруг - ее взгляд сосредоточен на Аэдхиарре. Лишь изредка она посматривает в вашу сторону, видимо ожидая ваших действий. ^
 
            ]];
 
        end;
 
    end;
 
    
 
    if (lse_intro_with_jack) then
 
        pr [[
 
            Джек полностью поглощен древним городом. Он с восхищением разглядывает металлическую дорогу, строения, врата, купол. ^
 
        ]];
 
    end;
 
    
 
    if (lse_intro_with_anna) then
 
        pr [[
 
            Анну, похоже, крайне заинтересовал центральный обелиск. За время пути она несколько раз пыталась заговорить с Аэдхиарром о нем, но тот молчал. ^
 
        ]];
 
    end;
 
    
 
    if (lse_intro_with_walter) then
 
        if (lse_intro_with_anna) then
 
            pr [[
 
                Уолтер молча идет рядом с сестрой. Кажется, его совершенно не интересует происходящее вокруг. ^
 
            ]];
 
        else
 
            if (rel_radcliffe < 0) then
 
                pr [[
 
                    Уолтер молча следует за вами. Кажется, его совершенно не интересует происходящее вокруг. ^
 
                ]];
 
            else
 
                pr [[
 
                    Уолтер молча следует за вами. Кажется, его совершенно не интересует происходящее вокруг. Лишь один раз он позволил себе небольшой комментарий: "Никогда не думал, что Блэк на такое способен. Запудрить мозги несчастным рыбням и прибрать к своим рукам целый город. Их город". ^
 
                ]];
 
            end;
 
        end;
 
    end;
 
end, "lse_black_intro");
 

	
 
lse_black_intro = dlg {
 
    nam = "lse_black_intro";
 
    disp = "Лсэрианотр, центральный зал";
 
    entered = function(s)
 
        pr [[
 
            Когда вы входите в центральный зал, ваш взгляд падает на статую навьяра, стоящую в центре комнаты. Вокруг статуи расположено четыре невысоких стеклянных пилона, а со всех сторон круглого зала к статуе в центре и к пилонам тянутся толстые провода. ^
 
            Адриан Блэк стоит в дальнем конце комнаты. ^
 
        ]];
 
        
 
        if (lse_intro_with_learr) then
 
            pr [[
 
                Леарр застыла в замешательстве и ждет развития событий. 
 
            ]];
 
        end;
 
        
 
        if (lse_intro_with_jack) then
 
            pr [[
 
                Джек окидывает взглядом комнату. На его лице явно читается интерес к расположенным в комнате вещам, однако, он не говорит ни слова. 
 
            ]];
 
        end;
 
        
 
        if (lse_intro_with_anna) then
 
            pr [[
 
                Анна что-то записывает в своем блокноте. 
 
            ]];
 
        end;
 
        
 
        if (lse_intro_with_walter) then
 
            pr [[
 
                Взгляд Уолтера устремлен в сторону Адриана Блэка. 
 
            ]];
 
        end;
 
        
 
        if (have("item_naethvjirr_key")) then
 
            pon("control");
 
        end;
 
        
 
        pr [[
 
            Аэдхиарр подходит к Блэку и сообщает ему: "Гости прибыли". Блэк оборачивается к вам: "Добро пожаловать. Мое имя - Адриан Блэк. Я веду здесь исследовательскую деятельность". 
 
        ]];
 
        
 
        if (lse_intro_with_walter) then
 
            pr [[
 
                Как только Блэк заканчивает, слово берет Уолтер Рэдклифф: "Думаю, мы знакомы. Где остальной экипаж Надежды?" Блэк спокойно отвечает: "К сожалению, сюда добрались не все. Я единственный остался из экипажа Надежды". Рэдклифф задает следующий вопрос: "Вы знаете навьяра по имени Фаэтларр?" Адриан пожимает плечами: "Я не знаю каждого из них по имени. Что с ним?" Уолтер продолжает свой допрос: "Мы встретили его в Нлейисланотре. Он говорит, что был на борту Надежды". В глазах Блэка на секунду мелькает страх, но потом он успокаивается: "А, припоминаю. К сожалению, у нас не получилось вернуться за ним после неудачной вылазки в храм Нлейисланотра. Скажите, он с вами?" Леарр прислушалась и нервно сжала кулаки, а Рэдклифф все так же спокойно ответил: "Нет, он вернулся в Венаэданотр". Леарр облегченно вздохнула, а Блэк лишь печально произнес: "Очень жаль. Я думал, он хочет увидеть наш триумф".
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {"Мое имя - Дэвид Дрейк", [[
 
            "Рад знакомству, Дэвид. Ты должно быть искал своего отца? Жаль, что так получилось. Последние несколько лет он стремился попасть сюда", - Блэк делает короткую паузу, после чего продолжает, - "Но не смог. Однако я собираюсь продолжить его дело".
 
        ]]};
 
        {"О каких исследованиях идет речь?", [[
 
            "Вас не удивляет то, что видели перед тем как попасть сюда, в этот зал? Начиная от древних храмов со светящимися экранами и заканчивая этим городом. Очевидно, что древние навьяры знали и умели гораздо больше теперешних. И, самое главное, гораздо больше нас. Но здесь, в этом зале, находится вершина их достижений. Тот, кого называют Наэтвьирром - спящим в глубинах".
 
        ]], code [[ psub("naethvjirr"); ]]};
 
        {"Вы хотите пробудить Наэтвьирра?", [[
 
            "Да".
 
        ]], code [[ psub("naethvjirr"); ]]};
 
        {tag="naethvjirr"};
 
        {"Вы понимаете, какой опасности вы подвергаете мир?", [[
 
            "Если мы все сделаем правильно, Наэтвьирр будет подвластен мне и не сможет сделать ничего без моего ведома. И мне не помешает ваша помощь".
 
        ]], code [[ psub("choise"); ]]};
 
        {tag="choise"};
 
        {tag="control", false, "[Показать ключ из древнего храма]Вы не сможете управлять Наэтвьирром без этого", [[
 
        {tag="control", false, "[Показать ключ из древнего храма] Вы не сможете управлять Наэтвьирром без этого", [[
 
            В глазах Блэка мелькнуло любопытство: "Дайте его сюда, господин Дрейк". Вы не успеваете среагировать, как Аэдхиарр вырывает ключ из ваших рук. 
 
        ]], code [[ lse_key = true; ]]};
 
        {"Я готов помочь", function(s)
 
            walk("lse_help_black");
 
        end};
 
        {"Я не стану вам помогать", function(s)
 
            walk("lse_confront");
 
        end}
 
    };
 
};
 

	
 
lse_confront = cutscene("lse_confront_intro", "Лсэрианотр", function(s)
 
    if (have("item_naethvjirr_key")) then
 
        lse_key = true;
 
    end;
 
    if (lse_intro_with_learr or lse_intro_with_jack or lse_intro_with_walter or lse_intro_with_anna) then
 
        return [[
 
            Блэк недовольно поправляет галстук: "Не хотите по-хорошему - будет по-плохому". ^
 
            В помещение входят несколько вооруженнных стражников. "Обыщите их и отведите в тюрьму. Аэдхиарр, осмотри Левиафан", - приказывает Блэк и возвращается к своим делам. Навьяры делают свое дело тщательно - они забирают все, что было при вас. Сопротивляться бесполезно - их слишком много. Они уводят вас в тюремную камеру и запирают там. Ваших спутников схватили вместе с вами. Вы садитесь на пол и обхватываете голову руками с мыслью: "Все пропало. Это конец".
 
        ]];
 
    else
 
        return [[
 
            Блэк недовольно поправляет галстук: "Не хотите по-хорошему - будет по-плохому". ^
 
            В помещение входят несколько вооруженнных стражников. "Обыщите их и отведите в тюрьму. Аэдхиарр, осмотри Левиафан", - приказывает Блэк и возвращается к своим делам. Навьяры делают свое дело тщательно - они забирают все, что было при вас. Сопротивляться бесполезно - их слишком много. Они уводят вас в тюремную камеру и запирают там. Вы садитесь на пол и обхватываете голову руками с мыслью: "Все пропало. Это конец".
 
        ]];
 
    end;
 
end, "lse_phaetlarr_intro");
 

	
 
lse_phaetlarr_intro = cutscene("lse_phaetlarr_intro", "Левиафан, грузовой отсек", function(s)
 
    pr [[Когда последователи Блэка вошли в Левиафан, Фаэтларр был на складе. Услышав приближение врагов, навьяр спрятался за один из стеллажей в углу помещения. Через узкую щель между ящиками он легко мог видеть все, что делалось в отсеке. К счастью, стражники, не слишком хорошо знакомые с хевьярской техникой не уделили должного внимания комнате. Впрочем, Фаэтларр все равно почерпнул много нового из разговоров захватчиков: Дрейк схвачен]];
 
    
 
    if (#player_drake.party > 1) then
 
        pr [[ и, вместе с ним, скорее всего и весь остальной экипаж]];
 
    end;
 
    
 
    pr [[, а Левиафан и все материалы попали в руки Блэку. Через некоторое время, когда стражники осмотрели все, что посчитали нужным, они покинули субмарину и Левиафан остался пустым. Настало время действовать.
 
    ]];
 
end, "lse_switch");
 

	
 
lse_switch = room {
 
    nam = "lse_switch";
 
    disp = "limbo";
 
    entered = function()
 
        player_phaetlarr.where = "lse_leviathan_cargo_hold";
 
        pl = player_phaetlarr;
 
    end;
 
};
 

	
 
player_phaetlarr = player {
 
    nam = "player_phaetlarr";
 
    obj = {};
 
}
 
\ No newline at end of file
wright.lua
Show inline comments
 
door_wright = obj {
 
    var {
 
        locked = true;
 
    };
 
	nam = "door_wright";
 
	disp = "Дверь";
 
	act = function(s)
 
		if (s.locked) then
 
			walkin "wright_entry_dlg";
 
		end;
 
		return true;
 
	end;
 
	dsc = function(s)
 
		if (s.locked) then
 
			return [[Обшарпанная деревянная {дверь}, ведущая в дом, заперта изнутри. ]];
 
		else
 
			return [[Обшарпанная деревянная {дверь}, ведущая в дом, незаперта. ]];
 
		end;
 
	end;
 
};
 
 
char_wright_home = obj {
 
    var {
 
        known = false;
 
        documents = false;
 
        known_leviathan = false;
 
    };
 
	nam = "char_wright_home";
 
	disp = "Джек Райт";
 
	dsc = function(s)
 
		if (s.documents) then
 
			return [[За столом сидит {Джек Райт} и с интересом рассматривает схемы, которые вы ему отдали. ]];
 
		else
 
            if (s.known) then
 
                return [[За столом сидит {Джек Райт}, неспешно просматривая какие-то бумаги. ]];
 
            else
 
			    return [[За столом сидит {молодой человек}, неспешно просматривающий какие-то бумаги. ]];
 
            end;         
 
		end;
 
	end;
 
	act = function(s)
 
		walkin(wright_dlg);
 
	end;
 
};
 
 
wright_dlg = dlg {
 
    var {
 
        state = 1;
 
    };
 
	nam = "wright_dlg";
 
	disp = "Джек Райт";
 
	entered = function(s)
 
        if (submarine_leviathan.power_on and submarine_leviathan.airpump and submarine_leviathan.battery and submarine_leviathan.air_level < 432000) then
 
            submarine_leviathan.air_level = 432000;
 
            lifeoff(s);
 
        end;   
 
		if (atlantis_found and submarine_leviathan.air_level > 400000 and submarine_leviathan.circuit_breaks == 0 and submarine_leviathan.power_on) then
 
			psub('leviathan_restored');
 
			return [[Джек Райт отвлекается от газеты: "Добрый день". ]];
 
		elseif (s.state == 1) then
 
			--First meeting
 
            char_wright_home.known = true;
 
			psub('first_visit');
 
			return [[Перед вами молодой человек, одетый в недорогой, но опрятный костюм. Его бледное лицо украшает короткая темная борода и пышные усы. Темные волосы коротко острижены. Серые глаза с интересом разглядывают вас. Он протягивает вам руку и представляется: "Добрый день. Мое имя -- Джек Райт. Майкл -- мой отец, но он пропал несколько лет назад". ]];
 
		elseif (s.state == 2) then
 
			--Documents not given
 
			psub('ask_documents');
 
			return [[Джек отвлекается от газеты: "Добрый день. Вы обещали принести какие-то документы". ]];
 
		elseif (s.state == 3) then
 
			--Documents given
 
			if (not leviathan_discovered) then
 
				psub('checking_documents');
 
				return [[Джек отвлекается от документов: "Добрый день. Если вы по поводу документов, то я еще ничего не нашел". ]];
 
			else
 
				s.state = 5;
 
				warehouse32_found = true;
 
				psub('warehouse_discovered');
 
                pl.money = pl.money + 100;
 
				return [[Джек отвлекается от документов: "Добрый день. У меня хорошие новости. Я нашел склад 32", -- он достает карту города и показывает вам место. Потом он достает из стола мешочек денег и протягивает вам со словами: "Надеюсь, это поможет тебе в поисках". ]];
 
			end;
 
		elseif (s.state == 4) then
 
			--Documents taken back
 
			psub('ask_documents2');
 
			return [[Джек отвлекается от газеты: "Добрый день. Я хотел бы еще раз вглянуть на эти бумаги". ]];
 
		elseif (s.state == 5) then
 
			psub('warehouse_discovered2');
 
            poff("phr_warehouse_visited");
 
            poff("phr_leviathan");
 
            if (warehouse32_visited) then
 
                pon("phr_warehouse_visited");
 
            end;
 
            if (not char_wright_home.known_leviathan) then
 
                pon("phr_leviathan");
 
            end;
 
			return [[Джек отвлекается от газеты: "Добрый день". ]];
 
		elseif (s.state == 6) then
 
			psub('warehouse_discovered3');
 
			return [[Джек отвлекается от газеты: "Добрый день". ]];
 
		end;
 
	end;
 
	phr = {
 
		{tag='first_visit'};
 
		{"Мое имя -- Дэвид Дрейк. Мне удалось найти кое-какие документы в одном из тайников отца. Этот адрес был среди них. Вы что-то знаете о судьбе моего отца? ", [[Джек вздыхает: "Это бесполезно. Я изучил практически все, до чего сумел дотянуться: газеты, судебные дела. И ничего -- никаких зацепок. Компания обанкротилась, руководители пропали". ]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]};
 
		{tag='ask_documents'};
 
		{always = true, "[Отдать документы]Посмотрите это. Не думаю, что вы это видели. ", [[Джек нехотя забирает бумаги из ваших рук и бегло их осматривает. Пожимая плечами, он комментирует: "Ничего интересного, просто планы старых зданий. Док 2? Отец там часто бывал, впрочем не думаю, что после 10 лет там что-то осталось. Если хотите, можете оставить документы, я попробую разузнать побольше". ]], code [[ 
 
		{always = true, "[Отдать документы] Посмотрите это. Не думаю, что вы это видели. ", [[Джек нехотя забирает бумаги из ваших рук и бегло их осматривает. Пожимая плечами, он комментирует: "Ничего интересного, просто планы старых зданий. Док 2? Отец там часто бывал, впрочем не думаю, что после 10 лет там что-то осталось. Если хотите, можете оставить документы, я попробую разузнать побольше". ]], code [[ 
 
			dock_found = true;
 
			wright_dlg.state = 3; 
 
			remove(item_charts, pl); 
 
			psub("checking_documents");
 
		]]};
 
		{always = true, "У меня есть несколько вопросов.", [[Джек кивает: "Чем смогу -- помогу". ]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже.", [[ Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{tag='checking_documents'};
 
		{always = true, "Вы можете вернуть мне бумаги?", [["Конечно. Если принесете их снова -- я возобновлю поиски", -- Джек возвращает вам документы. ]], code [[
 
			wright_dlg.state = 4;
 
			put(item_charts, pl);
 
			back();
 
		]]};
 
		{always = true, "У меня есть несколько вопросов.", [[Джек кивает: "Чем смогу -- помогу". ]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже.", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{tag='questions'};
 
		{"Вы знаете, чем занимался ваш отец в Вестхейвен Трансоушен?", [["Частично", -- Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому -- никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и вашего отца". ]]};
 
		{always = true, "Вернемся к делу.", [[Джек кивает: "Хорошо". ]], code [[ pret(); ]]};
 
		{tag='ask_documents2'};
 
		{always = true, "[Отдать документы]Вот документы.", [[Джек забирает бумаги и раскладывает их на своем столе: "Спасибо, я посмотрю, что смогу найти". ]], code[[ wright_dlg.state = 3; remove(item_charts, pl); back(); ]]};
 
		{always = true, "[Отдать документы] Вот документы.", [[Джек забирает бумаги и раскладывает их на своем столе: "Спасибо, я посмотрю, что смогу найти". ]], code[[ wright_dlg.state = 3; remove(item_charts, pl); back(); ]]};
 
		{always = true, "У меня есть несколько вопросов.", [[Джек кивает: "Чем смогу -- помогу". ]], code [[psub('questions')]]};
 
		{always = true, "Я вернусь позже.", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{tag='warehouse_discovered'};
 
		{"[Рассказать о Левиафане]Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[
 
		{"[Рассказать о Левиафане] Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[
 
            char_wright_home.known_leviathan = true;
 
            rel_jack = rel_jack + 1;
 
            walkin('wright_leviathan_cutscene1a'); 
 
        ]]};
 
		{always = true, "Отлично, я съезжу туда и посмотрю, что удастся найти.", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{tag='warehouse_discovered2'};
 
        {tag="phr_leviathan", "[Рассказать о Левиафане]Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[
 
        {tag="phr_leviathan", "[Рассказать о Левиафане] Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[
 
            char_wright_home.known_leviathan = true;
 
            rel_jack = rel_jack + 1;
 
            walkin('wright_leviathan_cutscene1a'); 
 
        ]]};      
 
		{tag="phr_warehouse_visited", always = true, "На склад мне попасть не удалось.", function(s)
 
            if (char_wright_home.known_leviathan) then
 
                psub("warehouse_break_in");
 
                return [[Джек с досадой стучит по столу: "Черт!"^ Еще пару минут он задумчиво сидит в кресле, после чего предлагает идею: "Мы можем попробовать проникнуть туда тайком. Я довезу вас туда, но внутри все делать придется вам". ]]
 
            else
 
                psub('warehouse_break_in_reluctant');
 
                return [[Джек вздыхает: "Ну вот и все. Боюсь, больше мы ничего не узнаем". ]];
 
            end;
 
        end};
 
		{always = true, "Я вернусь позже.", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
 
		{tag='warehouse_break_in'};
 
		{always = true, "Надо попробовать.", [["Хорошо", -- отвечает Джек. ]], code [[ 
 
            wright_dlg.state = 6;      
 
            walk('wright_warehouse_32_entry'); 
 
        ]]};
 
		{always = true, "Лучше не стоит.", [[Джек разочарованно отвечает: "Очень жаль". ]], code [[ pret(); ]]};
 
        {tag='warehouse_break_in_reluctant'};
 
        {always = true, "Мы можем попробовать проникнуть туда. Вдруг там что-то сохранилось?", [[Джек удивленно переспрашивает: "Проникнуть? Дэвид, вы в своем уме?"]], code [[ psub("w_bir2");]]};
 
        {always = true, "Я пойду.", [[Джек возвращается к своим делам: "До встречи". ]]};
 
        {tag="w_bir2"};
 
        {always = true, "Если мы хотим найти моего и вашего отца -- нам нужно действовать вместе.", [[Джек отрицательно качает головой: "Я не готов действовать такими методами". ]], code [[ psub("w_bir3");]]};
 
        {always = true, "Вы правы, это глупо.", [[Джек молча кивает. ]], code [[ pret(); ]]};
 
        {tag="w_bir3"};
 
        {"Вы готовы остановиться в шаге от цели?", [[Джек отвечает не сразу: "Мы не знаем, насколько мы близко".]]};
 
        { "У нас нет другого выбора. Это наша единственная зацепка.", [[Джек берет карандаш, вертит его в руках несколько минут, потом смотрит на картину. Наконец, он соглашается: "Будь по-вашему". ]], code [[
 
            wright_dlg.state = 6;
 
            walk("wright_warehouse_32_entry");
 
        ]]};
 
        {"У вас есть другие предложения?", [[Джек вздыхает: "Нет. Придется признать, поиски зашли в тупик". ]]};
 
        {always = true, "Вы правы, это глупо.", [[Джек молча кивает. ]], code [[ psub("warehouse_break_in_reluctant"); ]]};
 
		{tag='warehouse_discovered3'};
 
		{always = true, "Надо еще раз попасть на склад.", [["Хорошо", -- отвечает Джек. После наступления темноты, вы садитесь в повозку Джека, и он привозит вас к складу 32. ]], code [[ psub('warehouse_break_in'); ]]};
 
		{always = true, "Я вернусь позже.", [["До встречи". ]], code [[ back(); ]]};
 
		{tag='leviathan_restored_known'};
 
		{always = true, "Мне удалось починить \"Левиафан\". Мне понадобится помощник на борту.", [[Джек поднимается с кресла и одевает пальто: "Безусловно, я готов", -- сообщает вам он. "Здесь меня ничто не держит". ]], code [[ 
 
			lifeon("char_wright");
 
			table.insert(pl.party, 'wright');
 
			walk('leviathan_wardroom'); 
 
		]]};
 
		{always = true, "Я вернусь позже.", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
        {tag='leviathan_restored'};
 
        {always = true, "Я нашел подводный корабль. Мне понадобится помощь в управлении им. ", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе! Я должен это видеть!". ]], code [[ 
 
            lifeon("char_wright");
 
            table.insert(pl.party, 'wright');
 
            walk('wright_leviathan_cutscene2'); 
 
        ]]};
 
        {always = true, "Я вернусь позже.", [[Джек возвращается к своим делам: "До встречи".]], code [[ back(); ]]};
 
	};
 
};
 
 
wright_warehouse_32_entry = cutscene("wright_warehouse_32_entry", "Склад 32", [[Приготовления занимают все время до вечера. Наконец, после наступления темноты, вы садитесь в повозку, и Джек привозит вас к складу 32. ]], 'warehouse_32_night');
 
 
wright_leviathan_cutscene2 = cutscene("wright_leviathan_cutscene2", "Причал", [[Вместе с Джеком вы приезжаете в док. Райт долго и с интересом осматривает корпус _"Левиафана"_. Внутри, Джек долго обходит отсеки, разглядывая все узлы. Наконец, вы оказываетесь в кают-компании и он сообщает: "Я готов". ]], 'leviathan_wardroom');
 
 
wright_leviathan_cutscene1a = cutscene("wright_leviathan_cutscene1a", "Причал", [[Вместе с Джеком Райтом вы отправляетесь в док 2. После прибытия на место, Джек долго и с интересом осматривает металлический корпус субмарины. С задумчивым видом он ходит туда-сюда вдоль причала. ]], 'wright_leviathan_cutscene1b');
 
 
wright_leviathan_cutscene1b = dlg {
 
	nam = "wright_leviathan_cutscene1b";
 
	disp = "Причал";
 
	entered = [[После очередного круга, он спрашивает: "Она работает?"]];
 
	phr = {
 
		{"Десять лет под водой. Не думаю, что там хоть что-то сохранилось.", [[Джек задумчиво смотрит на металлический корпус, на табличку с выгравированным названием. Наконец он говорит: "Надо попытаться попасть внутрь, а затем посмотрим". Еще немного постояв, он возвращается к кэбу. Повернувшись к вам он сообщает: "Вы можете расчитывать на меня, если вам потребуется помощь в управлении этой посудиной". ]], code [[ psub('choice'); ]]};
 
		{"Не уверен, но, думаю, да.", [[Джек задумчиво смотрит на металлический корпус, на табличку с выгравированным названием. Наконец он говорит: "Надо попытаться попасть внутрь, а затем посмотрим". Еще немного постояв, он возвращается к кэбу. Повернувшись к вам он сообщает: "Вы можете расчитывать на меня, если вам потребуется помощь в управлении этой посудиной". ]], code [[ psub('choice'); ]]}; 
 
        {tag='choice'};
 
        {"Несомненно, я сообщу вам, если получится ее оживить.", [[Джек кивает и спрашивает: "Пора ехать. Вы со мной?" ]], code [[ psub('end'); ]]};
 
        {"Спасибо, но я справлюсь и сам.", [[Джек пожимает плечами, но отвечает: "Тем не менее, мое предложение остается в силе", -- и, чуть выждав, спрашивает -- "Пора ехать. Вы со мной?" ]], code [[ psub('end'); ]]};
 
		{tag='end'};
 
		{"Да, поехали.", [[	Вы садитесь в кэб и возвращаетесь домой к Джеку. ]], [[
 
			walk('wright_house_cabinet');
 
		]]};
 
		{"Я останусь тут.", [[Джек садится в кэб и уезжает домой, вы остаетесь в доке один. ]], [[
 
			walk('dock_mooring');
 
		]]};
 
	};
 
};
 
 
wright_entry_dlg = dlg {
 
	nam = "wright_entry_dlg";
 
	disp = "Голос за дверью";
 
	entered = function(s)
 
		psub("start");
 
		return [[Вы стучите в дверь. Через некоторое время вам отвечает сонный голос: "Кто здесь?" ]];
 
	end;
 
	hideinv = true;
 
	phr = {
 
		{tag = "start"};
 
		{always = true, "Могу я увидеть Майкла Райта?", [[Голос за дверью повторяет вопрос: "Кто спрашивает?"]], code [[ psub('who') ]]};
 
		{always = true, "Извините, я ошибся адресом.", code [[ back(); ]]},
 
		{tag = 'who'};
 
		{"Вы знаете Уильяма Дрейка?", [["Понятия не имею. Кто спрашивает?" -- В голосе собеседника явно прослеживается некоторое недовольство. ]], code [[ psub('irritated') ]]};
 
		{"Майкл Райт здесь живет?", [["Кто спрашивает?" -- В голосе собеседника явно прослеживается некоторое недовольство. ]], code [[ psub('irritated') ]]};
 
		{always = true, "У меня важное сообщение для него.", [["Он тут не живет уже много лет. Уходите" -- вам показалось, что голос собеседника слегка дрогнул при этих словах. ]], code [[ back(); ]]};
 
		{tag = 'irritated'};
 
		{"Мой отец -- Уильям Дрейк, работал с Майклом Райтом. Так вы знаете его?", [[Вы слышите звук отодвигающегося засова и ответ: "Проходите". ]], code [[ 
 
			door_wright.locked = false;
 
			path("В дом", wright_house):enable();
 
			back();
 
		]]};
 
	};
 
};
 
 
wright_drawing = obj {
 
	nam = 'wright_drawing';
 
	dsc = [[На стене напротив двери висит большая {картина}, изображающая пароход. ]];
 
	act = [[На картине во всех деталях изображен пароход _"Огненная стрела"_, принадлежавший Вестхейвен Трансоушен, полным ходом идущий по бескрайнему океану. Яркое солнце освещает палубу, на которой находится множество пассажиров, прогуливающихся, общающихся, сидящих на скамейках. Из всех трех труб парохода идет густой черный дым, а на корме развевается флаг Соединенного Королевства. Под картиной вы видите небольшую табличку с надписью: _"Майклу Райту, создателю ,,Огненной стрелы''. Альберт Мур, 1889"_. ]];
 
};
 
 
wright_table = obj {
 
	nam = "wright_table";
 
	disp = "Стол";
 
	dsc =[[В центре комнаты стоит массивный дубовый стол. На его полированной поверхности разбросаны в кажущемся беспорядке бумаги, письменные принадлежности, старые газеты и другие предметы. ]];
 
};
 
 
wright_house_cabinet = room {
 
	nam = "wright_house_cabinet";
 
	disp = "Дом Райта, кабинет";
 
	dsc = [[Стены комнаты оклеены старыми обоями с полустершимся рисунком. Сквозь большие окна в комнату проникает достаточно света. ]];
 
	obj = {
 
        'wright_drawing',   
 
		'wright_table',
 
		'char_wright_home'
 
	};
 
	way = {
 
		vroom("В гостиную", "wright_house_front_room");
 
	};
 
};
 
 
wright_house_front_room = room {
 
	nam = "wright_house_front_room";
 
	disp = "Дом Райта, гостиная";
 
	dsc = [[Окна в гостиной завешены тяжелыми занавесками и в полутьме вы с трудом различаете очертания предметов интерьера: дорогих старых кресел, изящно украшенных шкафов, покрытых многолетним слоем пыли канделябров. ]];
 
	entered = function(s)
 
		if (not s.visited) then
 
			s.visited = true;
 
			pn([[У двери стоит молодой человек, примерно вашего возраста. Как только вы заходите, он закрывает за вами дверь и просит проследовать за ним в кабинет. ]]);
 
		end;
 
	end;
 
	way = {
 
		vroom("На улицу", "wright_house");
 
		vroom("В кабинет", "wright_house_cabinet");
 
	};
 
};
 
 
wright_house = room {
 
	nam = "wright_house";
 
	disp = "Дом Райта";
 
	enter = function(s)
 
		put(char_coachman, here());
 
	end;
 
    dsc = [[Небольшой кирпичный особняк, принадлежащий Майклу Райту, стоит на одной из тихих улочек, на окраине Лондона. Дом выглядит неухоженным -- штукатурка местами осыпалась, лужайка заросла высокой травой, часть окон закрыта ставнями, явно давно не открывавшимися. ]];
 
	obj = {'door_wright'};
 
	way = {
 
		vroom("В дом", "wright_house_front_room"):disable();
 
	};
 
};
 
\ No newline at end of file
0 comments (0 inline, 0 general)