Changeset - bd9caffc4c5a
[Not reviewed]
default
0 4 0
Silverwing - 7 years ago 2017-10-01 18:51:43

Learr behaviour on iyh improved partially
4 files changed with 83 insertions and 39 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -33,194 +33,198 @@ global {
 
	atl_lfc_saboteur_known = false;
 
	atl_lfc_sab_active = false;
 
	atl_lfc_sab_alive = false;
 
 
	atl_fta_state = 0;
 
	
 
	atl_rep_moreau = 0;
 
	atl_rep_darkstar = 0;
 
	atl_rep_svetlova = 0;
 
	atl_rep_wright = 0;
 
    atl_rep_iraa = 0;
 
    atl_rep_dyp = 0;
 
};
 
 
atl_illuminators = obj {
 
	nam = "Иллюминаторы";
 
	dsc = [[Через равные промежутки в стены встроены небольшие круглые {иллюминаторы}. ]];
 
	act = [[Через иллюминаторы видны несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_illuminator = obj {
 
    nam = "Иллюминатор";
 
    dsc = [[В стену встроен небольшой {иллюминатор}. ]];
 
    act = [[Через иллюминатор вы видите несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_intersect_phone = obj {
 
    nam = "Телефон";
 
    dsc = [[На одной из стен укреплен {телефонный аппарат} в герметичном контейнере. ]];
 
    act = function(s)
 
        if (atl_lfc_state == 1 and atl_lfc_panic == 1 and atl_lfc_panic_warning == 0) then
 
            walkin("panic_first_warning_dlg");
 
        else
 
            return [[Вам незачем кому-то звонить. ]];
 
        end;
 
    end;
 
};
 
 
atl_intersect_suit = obj {
 
    nam = "Скафандр";
 
    dsc = [[В углу стоит {скафандр}. ]];
 
    act = [[Сейчас нет смысла это делать. ]];
 
}
 
 
atl_aqua_corridor_b = room {
 
	nam = "Атлантида, Аква, коридор B";
 
	dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая в основной коридор секции _"Аква"_. По бокам коридора находятся еще несколько дверей, ведущих в другие помещения секции: гостевые доки A, B и С. ]];
 
	way = {
 
		kh_vroom("В гостевой док A", function()
 
			if (atl_lev_state == 0) then
 
				pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
				return false;
 
			elseif (atl_lev_state == 1) then
 
				return "atl_lev_radcliffe_dlg";
 
			else
 
				return "atl_aqua_leviathan_dock";
 
			end;
 
		end);
 
		kh_vroom("В гостевой док B", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В гостевой док C", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_b"
 
	};
 
};
 
 
atl_entry = lcutscene("atl_entry", "Левиафан, рубка", function(s)
 
    if (ArrayUtils.indexOf(pl.party, "wright") ~= 0) then
 
        return [[Несколько недель Левиафан полным ходом несется по направлению к танственной точке, отмеченной на карте. Путешествие происходит спокойно -- могучие машины субмарины уверенно двигают ее вперед. Хотя субмарина явно требует большего экипажа, чем вы с Райтом. Не имея никакого реального опыта, вам приходится постигать управление субмариной с нуля. К счастью, вы без проблем добираетесь до места назначения. Здесь, на океанском дне вы видите несколько больших металлических и стеклянных куполов, освещенных электрическими огнями. Приблизившись, вы быстро находите путь в одно из строений. Как только Левиафан проникает внутрь, массивные ворота закрываются, оставляя вас взаперти. ]];
 
    else
 
        return [[Несколько недель Левиафан полным ходом несется по направлению к танственной точке, отмеченной на карте. Путешествие происходит спокойно -- могучие машины субмарины уверенно двигают ее вперед. Управлять субмариной в одиночку нелегкая работа. Вы почти не спите, опасаясь оставлять движение корабль без внимания. К счастью, вы без проблем добираетесь до места назначения. Здесь, на океанском дне вы видите несколько больших металлических и стеклянных куполов, освещенных электрическими огнями. Приблизившись, вы быстро находите путь в одно из строений. Как только Левиафан проникает внутрь, массивные ворота закрываются, оставляя вас взаперти. ]];
 
    end;
 
end, "Вы прибыли на Атлантиду. ", leviathan_wheelhouse);
 
 
atl_aqua_leviathan_dock = room {
 
	var {
 
		visited = false;
 
	};
 
	nam = "Атлантида, Аква, гостевой док A";
 
	enter = function(s)
 
		if (not s.visited) then
 
			s.visited = true;
 
			walk(atlantis_intro_dock);
 
		end;
 
		if (atl_iyh_state == 8) then
 
			atl_iyh_state = 9;
 
			if (atl_iof_learr_dead) then
 
				walk('iyh_outro_aikerjarr');
 
			else
 
				walk('iyh_outro_learr');
 
			elseif atl_iyh_shockfish_dead then
 
                walk('iyh_outro_learr_shockfish_dead');
 
            elseif atl_iyh_entrance_destroyed then
 
				walk('iyh_outro_learr_temple_destoryed');
 
            else
 
                walk('iyh_outro_learr');
 
			end;
 
		end;
 
	end;
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Левиафан. Под потолком, на высоте примерно в пять метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Снизу, под водой, огромный люк закрывает доступ внутрь дока. Несколько легких подвижных мостиков находятся на поверхности воды. ]];
 
	view = [[Левиафан находится в просторном доке. Под потолком на высоте пяти метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Внизу расположен закрытый люк, закрывающий вам путь наружу. ]];
 
	way = {
 
		kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
	};
 
}; 
 
 
atl_aqua_nautilus_dock = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус. Под потолком, на высоте примерно в пять метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Снизу, под водой, огромный люк закрывает доступ внутрь дока. Несколько легких подвижных мостиков находятся на поверхности воды. ]];
 
	way = {
 
		kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
	};
 
	obj = {
 
		"char_page"
 
	};
 
};
 
 
atl_aqua_corridor_a = room {
 
	nam = "Атлантида, Аква, коридор A";
 
	dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая в основной коридор секции _"Аква"_. По бокам коридора находятся еще несколько дверей, ведущих к докам. ]];
 
	way = {
 
		kh_vroom("В док \"Надежды\"", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В док \"Энтерпрайза\"", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В док \"Наутилуса\"", function()
 
			if (atl_lfc_state == 2) then
 
				return "atl_lfc_dock_s";
 
			else
 
				return "atl_aqua_nautilus_dock";
 
			end;
 
		end);
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_a"
 
	};
 
};
 
 
atl_aqua_main_corridor = room {
 
    nam = "Атлантида, Аква, центральный коридор";
 
    dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая, в секцию _"Доминус"_. По бокам коридора находятся еще несколько дверей, ведущих в другие помещения секции -- по большей части это склады. Еще две двери ведут в коридоры A и B. ]];
 
    way = {
 
        kh_vroom("На склад A", function()
 
            pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
            return false;
 
        end);
 
        kh_vroom("На склад B", function()
 
            if atl_nih_state == 1 then
 
                return "atl_aqua_warehouse_b";
 
            else
 
                pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
                return false;
 
            end;
 
        end);
 
        kh_vroom("На склад C", function()
 
            pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
            return false;
 
        end);
 
        kh_vroom("На склад D", function()
 
            pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
            return false;
 
        end);
 
        kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
        kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
        kh_vroom("В секцию \"Доминус\"", "atl_intersection_aqua_dom");
 
    };
 
    obj = {
 
        "atl_illuminators",
 
        "atl_nih_tubes_aqua"
 
    };
 
};
 
 
atl_aqua_warehouse_b = darkroom {
 
    var {
 
        has_light = false;
 
    };
 
    nam = "Атлантида, Аква, склад B";
 
    dsc_dark = [[Большое помещение без окон погружено в кромешный мрак. В темноте вы с трудом различаете очертания предметов. ]];
 
    dsc_halflit = [[Слабый свет лампы позволяет вам с трудом ориентироваться в помещении,заставленном различными ящиками. ]];
 
    dsc_lit = [[Большое помещение без окон освещено яркими лектрическим лампами. По всему помещению аккуратно расставлено множество ящиков с различными материалами, необходимыми для поддержания жизнедеятельности станции. ]];
 
    way = {
 
        kh_vroom("В коридор", "atl_aqua_main_corridor");
 
    };
 
    obj = {
 
        "atl_aqua_warehouse_b_lightswitch";
 
        "atl_nih_tube_container2";
atlantis_dlg.lua
Show inline comments
 
@@ -1502,353 +1502,353 @@ char_ryveerr_dlg = dlg {
 
	disp = "Ривеерр";
 
	entered = function(s)
 
        poff("questions");   
 
        if (atl_rep_dyp < 0) then
 
            if (char_ryveerr.atlantis_asked == 0) then pon("on_atlantis", "questions"); end;
 
            if (char_ryveerr.learr_asked == 0) then pon("on_learr", "questions"); end;
 
            if (char_ryveerr.ryveerr_asked == 0) then pon("on_ryveerr", "questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.aikerjarr_asked == 0) then pon("on_aikerjarr", "questions"); end;
 
        else
 
            if (char_ryveerr.atlantis_asked < 2) then pon("on_atlantis", "questions"); end;
 
            if (char_ryveerr.learr_asked < 2) then pon("on_learr", "questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.learr_asked < 3) then pon("on_learr", "questions"); end;
 
            if (char_ryveerr.ryveerr_asked < 2) then pon("on_ryveerr", "questions"); end;
 
            if (atl_iof_learr_dead and char_ryveerr.aikerjarr_asked < 2) then pon("on_aikerjarr", "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;
 
           
 
        if (s.state == 0) then
 
            s.state = 1;
 
            psub("first_meeting");
 
            return [[Перед вами стоит навьяр. Серо-зеленая чешуя, несколько более темная, чем у Леарр блестит в свете электрических ламп. Красно-оранжевые глаза внимательно смотрят на вас. Он одет в темно-зеленые облегающие шорты и куртку из водорослей. Навьяр приветствует вас: "Ривеерр-из-Дипатреанотра рад-видеть тебя". ]];
 
        elseif (atl_iof_completed and char_ryveerr.iof_reaction == 0) then
 
            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
 
                poff('iyh1', 'iyh2');
 
                if (atl_iyh_state == 1) then
 
                    pon('iyh1');
 
                elseif (atl_iyh_state == 2 and not atl_iyh2_ryveerr_spoken) then
 
                    pon('iyh2');
 
                elseif (atl_iyh_state == 4) then
 
                    psub("situation");
 
                elseif (atl_iyh_state == 5) then
 
                    pon("legend");
 
                end;
 
            elseif (s.state == 2) then
 
                if (atl_iyh_state == 6) then
 
                    if (atl_iof_learr_dead) then
 
                        pon("take_aikerjarr");
 
                    else
 
                        pon("take_learr");
 
                    end;
 
                end;
 
                pon("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 [[ psub("more_on_relic"); ]]};
 
        {tag="iyh2", "Я собираюсь в храм Дипатреанотра.", [[Плавники на голове Ривеерра меняют цвет на сине-фиолетовый: "Ты туда-не-идешь".]], 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};
 
        {always=true, "Я хочу кое что спросить.", [[Ривеерр кивает: "Ты спрашивай". ]], code [[ psub("questions"); ]]};
 
        {always=true, "Я хочу кое-что спросить.", [[Ривеерр кивает: "Ты спрашивай". ]], code [[ psub("questions"); ]]};
 
        {always=true, "Я пойду.", [[Ривеерр прощается с вами: "Мы позже-поговорим". ]], code [[ back(); ]]};
 
        {tag="questions"};
 
        {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 [[ 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 = "Кристиан Эванс";
 
	entered = 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"};
 
		{"Я Дэвид Дрейк, очень приятно", [[
 
			Кристиан улыбается и отвечает: "Очень рад вас видеть. У вас есть вопросы? Я слушаю". ]], };
 
		{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 = "Сильвия Уинтерлайт";
 
	entered = 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"); ]]};
 
		{"Рад знакомству. Я чем-то могу быть полезен?", [[Сильвия улыбается и отвечает: "Вам лучше поговорить с госпожой Светловой, у нее наверняка найдется поручение для вас". ]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
        {"Расскажите об Атлантиде,", [[Сильвия вздыхает: "Боюсь, я тут могу долго рассказывать -- мы с господином Райтом многое придумывали вместе -- в частности системы подачи кислорода, я же помогала в разработке Аэриса. Аэрис вообще довольно значительное достижение -- мы сумели адаптировать некоторые виды растений с поверхности к условиям станции. Конечно, пришлось потрудиться -- очень много энергии уходит на освещение и обогрев секции, но и результат себя оправдывает -- думаю, нам быстро надоело бы питаться одними морепродуктами, а так у нас есть практически все, что может предложить поверхность. Ну, кроме мяса. Также мы выращиваем там несколько видов водорослей -- некоторые производят кислород, другие идут в пищу, третьи отправляются прямиком в печь".]]};
 
        {"Расскажите о себе.", [[Сильвия усмехается: "Не думаю, что тут есть что-то интересное, но слушайте -- я едва закончила университет и была в поисках работы, когда встретилась с госпожой Светловой. Уж не знаю, что привлекло ее во мне, но она предложила мне работу. Я сперва удивилась -- с чего транспортной компании нанимать таких видных ученых как она? Да и зачем там такие как я? Но после беседы с господином Дрейком, я загорелась идеей обустроить автономную подводную станцию. Тогда планы не были столь грандиозны -- мы не предполагали покидать поверхность, но благодаря нашим с господином Райтом успехам мы смогли достичь этого. Тогда же я впервые встретила живого навьяра. Нет, госпожа Светлова рассказывала мне про них и даже показывала фотографии и рисунки, но увидеть подобное вживую ни с чем не сравнимо. И еще более странно, когда такое существо спокойно так тебя приветствует на твоем языке". ]]};
 
        --[[{tag="legend", false, "Ты можешь рассказать мне навьярскую легенду о скате?", [ [Сильвия кажется заинтересованной: "У навьяров их много, какую конкретно вы хотите услышать?" ] ], code [ [ psub("which_legend"); ] ]};]]
 
        {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 = "Джек Райт";
 
	entered = 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(); 
atlantis_iyhehevjiarr.lua
Show inline comments
 
@@ -211,193 +211,197 @@ iyh_fight = room {
 
			if (math.abs(s.distance) <= 75) then
 
				if (math.abs(s.distance) > 0) then
 
					s.distance = 0;
 
					pr "Скат приближается к вам. ";
 
				end;
 
				
 
				if (s.timing <= 0) then
 
					s.timing = 5;
 
					pr "Скат атакует Левиафан электрическим разрядом. ";
 
					submarine_leviathan.electric_integrity = submarine_leviathan.electric_integrity - 10;
 
					if (submarine_leviathan.electric_integrity > 50) then
 
						pr "Атака не оказывает видимого эффекта на субмарину. ";
 
					elseif (submarine_leviathan.electric_integrity > 0) then
 
						pr "Свет моргает, проводка искрит. ";
 
						if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Райта: \"Мы так долго не протянем\". ";
 
						elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Рэдклиффа: \"Мы так долго не протянем\". ";
 
						end;
 
					else
 
						walk('game_over_powerless');
 
					end;
 
				else
 
					s.timing = s.timing - 1;
 
					pr "Скат пытается пробить обшивку Левиафана хвостовым шипом. ";
 
					submarine_leviathan.hull_integrity = submarine_leviathan.hull_integrity - 5;
 
					if (submarine_leviathan.hull_integrity > 50) then
 
						pr ", но не наосит ощитимого ущерба. ";
 
					elseif (submarine_leviathan.hull_integrity > 0) then
 
						pr ". Сильный удар повреждает внешнюю обшивку, в резервуары проникает вода. ";
 
					else
 
						walk('game_over_sunk');
 
					end;
 
				end;
 
			else
 
				pr "Скат приближается к вам. ";
 
				if (s.distance < 0) then
 
				s.distance = s.distance + 75;
 
			else
 
				s.distance = s.distance - 75;
 
			end;
 
			end;
 
		end;
 
	end;
 
	obj = {
 
		"iyh_fight_torpedo",
 
		"iyh_fight_sonic",
 
		"iyh_fight_recharge",
 
		"iyh_advance_full",
 
		"iyh_advance_half",
 
		"iyh_advance_quarter",
 
		"iyh_retreat_full",
 
		"iyh_retreat_half",
 
		"iyh_retreat_quarter"
 
	};
 
};
 
 
iyh_fight_torpedo_temple = obj {
 
	nam = "iyh_fight_torpedo_temple";
 
	dsc = "{Выстрелить торпедой в храм}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.temple_distance) < 50) then
 
			return [[Цель слишком близко. ]];
 
		elseif (math.abs(iyh_fight.temple_distance) > 200) then
 
			return [[Цель слишком далеко. ]];
 
		else
 
			atl_iyh_entrance_destroyed = true;
 
			return [[Торпеда попадает в аккурат над храмом и вход оказывается завален тяжелыми глыбами. ]];
 
		end;
 
	end;
 
};
 
 
iyh_fight_torpedo = obj {
 
	nam = "iyh_fight_torpedo";
 
	dsc = "{Выстрелить торпедой в ската}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.distance) < 50) then
 
			return [[Цель слишком близко. ]];
 
		elseif (math.abs(iyh_fight.distance) > 200) then
 
			return [[Цель слишком далеко. ]];
 
		else
 
			if (iyh_fight.shockfish_health > 70) then
 
				local meters = 25 * rnd(3) + 25;
 
				iyh_fight.shockfish_health = iyh_fight.shockfish_health - 70;
 
				if (iyh_fight.distance >= 0) then
 
					iyh_fight.distance = iyh_fight.distance + meters;
 
				else
 
					iyh_fight.distance = iyh_fight.distance - meters;
 
				end;
 
				pr("Вы стреляете торпедой в ската. Торпеда достигает цели. Ската отбрасывает назад на ".. tostring(meters) .. " метров. ");
 
			else
 
				iyh_fight.shockfish_health = 0;
 
				atl_iyh_shockfish_dead = true;
 
				pr "Вы стреляете торпедой в ската. Торпеда взрывается достигнув цели и разрывает ската. Вода краснеет от крови, а вы теперь можете безопасно приблизиться к храму. ";
 
				
 
				if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
					pr [[Леарр в ярости поднимается в рубку и кричит на вас: "Что ты делаешь ненавистный-a'rr?!" ]];
 
					pr [[Леарр в ярости поднимается в рубку и кричит на вас: "Что ты делаешь ненавистный-a'rr?!"^Она с неприязнью смотрит на вас и удаляется к себе в каюту. ]];
 
                    rel_learr = -99;
 
                    atl_rep_iraa = atl_rep_iraa - 1;
 
                    atl_rep_dyp = atl_rep_dyp - 1;
 
                    char_learr.home = "leviathan_cabin_3";
 
				elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then
 
					pr [[Аикерьярр отворачивается от иллюминатора и со злобой смотрит на вас: "Ты за-это-ответишь he'rr". ]];
 
				end;
 
				
 
				if (math.abs(iyh_fight.temple_distance) < 100) then
 
					walk("iyh_near_temple");
 
				else
 
					walk("iyh_far_from_entrance");
 
				end;
 
				
 
				return;
 
			end;
 
			return iyh_fight:maketurn();
 
		end;
 
	end;
 
};
 
 
iyh_fight_sonic = obj {
 
	nam = "iyh_fight_sonic";
 
	dsc = "{Выстрелить из звуковой пушки}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.distance) > 200) then
 
			return [[
 
				Цель слишком далеко
 
			]];
 
		else
 
			if (iyh_fight.shockfish_health > 50) then
 
				iyh_fight.shockfish_health = iyh_fight.shockfish_health - 10;
 
				pr "Вы стреляете в ската из звуковой пушки. Это лишь слегка ранит его. ";
 
			else
 
				pr "Вы стреляете в ската из звуковой пушки. Это не наносит ему серьезного ущерба. ";
 
			end;
 
			return iyh_fight:maketurn();
 
		end;
 
	end;
 
};
 
 
iyh_fight_recharge = obj {
 
	nam = "iyh_fight_torpedo";
 
	dsc = "{Перезарядить торпеды}^";
 
	act = function(s)
 
		--Если в партии нет никого кроме Леарр/Аикерьярра, то игрок перезаряжает торопеды сам, иначе - отдает преказ
 
		if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0 or ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
			pr "Вы отдаете по телефону приказ перезарядить торпедные аппараты. ";
 
		else
 
			pr "Вы спускаетесь вниз, чтобы перезарядить торпедные аппараты. ";
 
			iyh_fight:maketurn();
 
			iyh_fight:maketurn();
 
			pr "Вы возвращаетесь в рубку, чтобы продолжить бой. "
 
		end;
 
	end;
 
};
 
 
iyh_advance_full = obj {
 
	nam = "iyh_advance_full";
 
	dsc = "{Полный вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на полную мощность. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 100;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 100;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_advance_half = obj {
 
	nam = "iyh_advance_half";
 
	dsc = "{1/2 вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на половину мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 50;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 50;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
@@ -1269,254 +1273,290 @@ iyh_temple_rubble_right = obj {
 
	dsc = [[
 
		В углу валяется {груда обломков}.
 
	]];
 
	act = function(s)
 
		if (s.taken) then
 
			return [[
 
				Здесь ничего нет. 
 
			]];
 
		else
 
			s.taken = true;
 
			take(item_legend_of_dark_source);
 
			return [[
 
				В куче обломков вы находите металлическую табличку. 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_temple_niche_right = obj {
 
	nam = "iyh_temple_deep_niche_left";
 
	dsc = [[
 
		В одной из стен вы замечаете глубокую {нишу}. 
 
	]];
 
	act = [[
 
		Здесь ничего нет.
 
	]];
 
};
 
 
iyh_pedestal = obj {
 
	var {
 
		taken = false;
 
	};
 
	nam = "iyh_pedestal";
 
	dsc = function(s)
 
		if (s.taken) then
 
			return [[В центре комнаты расположен пустой {пьедестал}. ]];
 
		else
 
			return [[В центре комнаты расположен {пьедестал}, на котором покоится самая обычная, на первый взгляд, подзорная труба. ]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.taken) then
 
			return [[Пьедестал пуст. ]];
 
		else
 
			s.taken = true;
 
            take(iyh_looking_glass);
 
			return [[Вы поднимаете покоящуюся на пьедестале подзорную трубу. ]];
 
		end;
 
	end;
 
};
 
 
iyh_near_temple = dlg {
 
	nam = "Штурвал Левиафана";
 
	dsc = [[
 
		Через иллюминаторы вы видите прямо перед собой массивные каменные двери, вытесанные в скале, возвышающейся далеко над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы.
 
	]];
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			pr [[
 
				Как только вы приближаетесь, скат выплывает из свого жилища, чтобы прогнать посмевших приблизиться к нему.
 
			]];
 
			iyh_fight.temple_distance = 50;
 
			iyh_fight.distance = 50;
 
			walk(iyh_fight);
 
		end;
 
	end;
 
	entered = function(s)
 
		move(submarine_leviathan, iyh_near_temple_foot);
 
	end;
 
	phr = {
 
		{tag="ravine", false, always=true, "[Ко входу в ущелье]", [[
 
			Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье.
 
		]], code [[ walk('iyh_ravine_entry'); ]]};
 
		{tag="away", always=true, "[Отойти от штурвала]", code = [[
 
			walk('leviathan_wheelhouse');
 
		]]};
 
		{tag="back", always=true, "[Вернуться к исходной позиции]", code = [[
 
			walk('iyh_far_from_entrance');
 
		]]};
 
	};
 
};
 
 
iyh_near_temple_foot = room {
 
	nam = "Вход в храм";
 
	dsc = [[
 
		Прямо перед собой вы видите массивные каменные двери, вытесанные в скале, возвышающейся далеко над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы.
 
	]];
 
	way = {
 
		kh_vroom("В Левиафан", "leviathan_airlock");
 
        kh_vroom("В храм", "iyh_temple_main_hall_entry");
 
	};
 
};
 
 
iyh_outro_svetlova = room {
 
	nam = "Атлантида, док Левиафана";
 
	dsc = function(s)
 
		pr [[
 
			При выходе из Левиафана, вас встречает Екатерина Светлова. Вы рассказываете ей обо всем произошедшем. 
 
		]];
 
		pr [[При выходе из Левиафана, вас встречает Екатерина Светлова. Вы рассказываете ей обо всем произошедшем. ]];
 
		if (atl_iyh_shockfish_dead) then
 
			pr [[
 
				Она забирает у вас артефакты для изучения, но крайне недовольна убийством ската: "Артефакты, конечно будут полезны, но то что вы сделали ставит под угрозу дальнейшее существование станции. Хвала небесам, что рыбни об этом не знают и может быть, не узнают о произошедшем".^
 
			]];
 
			pr [[Она забирает у вас артефакты для изучения, но крайне недовольна убийством ската: "Артефакты, конечно будут полезны, но то что вы сделали ставит под угрозу дальнейшее существование станции. Хвала небесам, что рыбни об этом не знают и может быть, не узнают о произошедшем".^ ]];
 
		elseif (atl_iyh_entrance_destroyed) then
 
			pr [[
 
				Она забирает у вас артефакты для изучения, но огорчена разрушением святилища: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^
 
			]];
 
			pr [[Она забирает у вас артефакты для изучения, но огорчена разрушением святилища: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^ ]];
 
		else
 
			pr [[
 
				Она забирает у вас артефакты для изучения и благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^
 
			]];
 
			pr [[Она забирает у вас артефакты для изучения и благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^ ]];
 
		end;
 
		
 
		--[[pr [ [
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, к вам входит Екатерина и отдает часть табличек, найденных вами: "Это вам понадобится в поисках отца. Эти таблички помогут вам проследовать путем Уильяма. Я уже говорила, что он отправился на поиски древнего навьярского города, Лсэрианотра. Должно быть, он сделал копии этих диаграмм. Но здесь не все просто - это лишь фрагменты карт и чтобы воспользоваться ими, вам придется найти недостающие части. К сожалению, я не знаю, где их можно найти. Но, скорее всего, знают навьяры. 
 
		] ];
 
		if (not atl_iof_learr_dead) then
 
			pr [ [
 
				Вам следует начать с Ираафаанотра - родного города Леарр. Наверняка, она согласится отправиться туда с вами". 
 
			] ];
 
		else
 
			pr [ [
 
				Рядом с нами расположено два города - Дипатреанотр и Ираафаанотр, и я советую вам их посетить". 
 
			] ];
 
		end;]]
 
		pr [[
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас".
 
		]];
 
		pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
	end;
 
	entered = function(s)
 
		atl_iyh_artifacts_on_atlantis = true;
 
		remove(item_statuette);
 
		remove(item_temple_disk);
 
		remove(item_legend_of_temple);
 
		remove(item_legend_of_dark_source);
 
		remove(item_legend_of_first_city);
 
		remove(item_legend_of_hunter);
 
		remove(item_navjiarr_chart_1);
 
		remove(item_navjiarr_chart_2);
 
		remove(item_navjiarr_chart_3);
 
	end;
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
 
iyh_outro_aikerrjarr = room {
 
	nam = "Атлантида, док Левиафана";
 
	dsc = function(s)
 
		pr [[При выходе из Левиафана, вас встречает Екатерина Светлова. Аикерьярр сразу же требует: "Ты мне-отдашь взятое-тобой-в-храме-все". На что Светлова просит его: "Позвольте кратко взглянуть на все". Аикерьярр с явным недовольством соглашается. Пока Екатерина осматривает реликвии, вы рассказываете ей обо всем произошедшем. Как только вы заканчиваете рассказ, ]];		
 
		if (atl_iyh_shockfish_dead) then
 
			pr [[она недовольно восклицает: "Зачем вы это сделали?!", - После чего, уже спокойнее добавляет: "Впрочем, можете не отвечать. Что сделано то сделано".^ ]];
 
			pr [[она лишь тяжело вздыхает глядя на вас, после чего уходит, махнув рукой.^ ]];
 
		elseif (atl_iyh_entrance_destroyed) then
 
			pr [[она огорченно комментирует: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^ ]];
 
		else
 
			pr [[она благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^ ]];
 
		end;
 
		
 
		pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас". ]];
 
		pr [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
	end;
 
	hideinv = true;
 
	entered = function(s)
 
        for i in #pl.party do
 
            if pl.party[i] == 'aikerjarr' then 
 
                table.remove(pl.party, i);
 
                break;
 
            end;
 
        end;
 
        remove(char_aikerjarr_lev, where(char_aikerjarr_lev));
 
		remove(item_statuette);
 
		remove(item_temple_disk);
 
		remove(item_legend_of_temple);
 
		remove(item_legend_of_dark_source);
 
		remove(item_legend_of_first_city);
 
		remove(item_legend_of_hunter);
 
		remove(item_navjiarr_chart_1);
 
		remove(item_navjiarr_chart_2);
 
		remove(item_navjiarr_chart_3);
 
	end;
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
 
iyh_outro_learr_shockfish_dead = room {
 
    nam = "Атлантида, док Левиафана";
 
    dsc = function(s)
 
        return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр выходит следом за вами и сообщает: "Я забираю-артефакты-в-Ираафаанотр". Светлова спрашивает: "Вы не разрешите нам оставить их на несколько дней для изучения?"^ Леарр отрезает: "Нет", -- и выходит из дока. Светлова вопросительно смотрит на вас и вы пересказываете ей произошедшее. Она лишь тяжело вздыхает глядя на вас, после чего уходит, махнув рукой.^Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
    end;
 
    hideinv = true;
 
    entered = function(s)
 
        for i in #pl.party do
 
            if pl.party[i] == 'learr' then 
 
                table.remove(pl.party, i);
 
                break;
 
            end;
 
        end;
 
        remove(char_learr, where(char_learr));
 
        remove(item_statuette);
 
        remove(item_temple_disk);
 
        remove(item_legend_of_temple);
 
        remove(item_legend_of_dark_source);
 
        remove(item_legend_of_first_city);
 
        remove(item_legend_of_hunter);
 
        remove(item_navjiarr_chart_1);
 
        remove(item_navjiarr_chart_2);
 
        remove(item_navjiarr_chart_3);
 
    end;
 
    obj = {
 
        vroom("Продолжить", "atl_luna_drake_room");
 
    };
 
};
 
 
iyh_outro_learr_temple_destroyed = room {
 
    nam = "Атлантида, док Левиафана";
 
    dsc = function(s)
 
        return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр выходит следом за вами и сообщает: "Я забираю-артефакты-в-Ираафаанотр". Светлова спрашивает: "Вы не разрешите нам оставить их на несколько дней для изучения?"^ Леарр отрезает: "Нет", -- и выходит из дока. Светлова вопросительно смотрит на вас и вы пересказываете ей произошедшее. Она задумчиво чешет подбородок и сообщает: "Я поговорю с Леарр, отправляйтесь в свою комнату. Думаю, мне удастся все уладить".^Вы следуете ее совету и отправляетесь к себе. Утром, она выывает вас по телефону: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
    end;
 
    hideinv = true;
 
    entered = function(s)
 
        for i in #pl.party do
 
            if pl.party[i] == 'learr' then 
 
                table.remove(pl.party, i);
 
                break;
 
            end;
 
        end;
 
        remove(item_statuette);
 
        remove(item_temple_disk);
 
        remove(item_legend_of_temple);
 
        remove(item_legend_of_dark_source);
 
        remove(item_legend_of_first_city);
 
        remove(item_legend_of_hunter);
 
        remove(item_navjiarr_chart_1);
 
        remove(item_navjiarr_chart_2);
 
        remove(item_navjiarr_chart_3);
 
    end;
 
    obj = {
 
        vroom("Продолжить", "atl_luna_drake_room");
 
    };
 
};
 
 
iyh_outro_learr = dlg {
 
	nam = "Атлантида, док Левиафана";
 
	entered = function(s)
 
		if (rel_learr > 0) then
 
			psub('rel_ok');
 
        else
 
			psub('rel_not_ok');
 
		end;
 
        
 
        return [[При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр сразу же просит: "Ты мне-отдашь взятое-в-храме".^ В ответ Светлова просит ее: "Может, вы разрешите нам оставить реликвии на некоторое время?"^ Леарр не слишком уверенно отвечает: "Старейшина это-не-одобрит. Другой-выход есть?" ]];
 
	end;
 
	phr = {
 
		{tag="rel_ok"};
 
		{"Это очень поможет нам в поисках Уильяма", [[Леарр все еще неуверенно: "Я что-смогу-сделаю. Вы пока-все-оставьте". ]], code [[
 
            artifacts_returned = 0;      
 
			atl_iyh_artifacts_on_atlantis = true;
 
			atl_rep_svetlova = atl_rep_svetlova + 1;
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{"Хорошо, забирайте реликвии", [[Леарр благодарит вас: "Вы можете-наш-город-посетить и реликвии-смотреть". ]], code [[
 
			rel_learr = rel_learr + 1;
 
            artifacts_returned = 1;        
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{tag="rel_not_ok"};
 
		{"Это очень поможет нам в поисках Уильяма", [[Леарр отвечает: "Я не-позволю-реликвии-оставить. Вы не-надейтесь-даже". ]], code [[
 
            artifacts_returned = 1;
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{"Хорошо, забирайте реликвии", [[Леарр отвечает: "Я не-позволю-реликвии-оставить. Вы не-надейтесь-даже". ]], code [[
 
            artifacts_returned = 1;
 
			rel_learr = rel_learr + 1;
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
	};
 
};
 
 
iyh_outro_learr_2 = room {
 
	nam = "Атлантида";
 
	dsc = [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас". ]];
 
	dsc = [[Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое-что для вас". ]];
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
\ No newline at end of file
party.lua
Show inline comments
 
party_accompany = function(s, value)
 
	if (ArrayUtils.indexOf(pl.party, s.nam) == 0) then
 
		return;
 
	end;
 
	s.follow = value;
 
	if (value) then
 
		lifeon(s);
 
	else
 
		move(s, s.home, where(s));
 
		lifeoff(s);
 
	end;
 
end;
 
 
party_follow = function(s)
 
    if (where(pl).cutscene or where(pl).not_follow) then
 
    elseif (where(pl).leviathan) then
 
        if (stead.nameof(where(s)) ~= s.home) then
 
            move(s, s.home, where(s));
 
        end;
 
    else
 
        move(s, where(pl), where(s));
 
    end;
 
end;
 
 
-- TODO больше отвлеченных диалогов, дабы было о чем поговорить с сопартийцами. Не стоит делать их деревянными безжизненными манекенами
 
char_learr = obj {
 
	var {
 
        home = "leviathan_wardroom";
 
		follow = false;
 
        
 
        on_books = 0;
 
        on_join = 0;
 
        on_before = 0;
 
        on_atlantis = 0;
 
        on_conflict = 0;
 
	};
 
	nam = "learr";
 
	disp = "Леарр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Леарр} сидит в кресле, листая книгу. ^]];
 
		else
 
			return [[{Леарр} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(learr_home_dlg);
 
		else
 
			walkin(learr_dlg);
 
		end;
 
	end;
 
};
 
 
char_phaetlarr = obj {
 
	var {
 
        home = "leviathan_engines";   
 
		follow = false;
 
	};
 
	nam = "phaetlarr";
 
	disp = "Фаэтларр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Фаэтларр} с интересом наблюдает за работой двигателей "Левиафана" ^]];
 
		else
 
			return [[{Фаэтларр} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(phaetlarr_home_dlg);
 
		else
 
			walkin(phaetlarr_dlg);
 
		end;
 
	end;
 
};
 
 
char_radcliffe = obj {
 
	var {
 
        home = "leviathan_engines";   
 
		follow = false;
 
        
 
        rel_on_join = nil;
 
        
 
        on_walter = 0;
 
        on_atlantis = 0;
 
        on_black = 0;
 
        on_drake = 0;
 
        on_anna = 0;
 
        on_join = 0;
 
        on_conflict = 0;
 
	};
 
	nam = "radcliffe";
 
	disp = "Уолтер Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Уолтер Рэдклифф} задумчиво крутит в руках какую-то деталь. ^]];
 
		else
 
			return [[{Уолтер Рэдклифф} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(radcliffe_home_dlg);
 
		else
 
			walkin(radcliffe_dlg);
 
		end;
 
	end;
 
};
 
 
char_wright = obj {
 
	var {
 
        home = "leviathan_wardroom";
 
		follow = false;
 
        
 
        iof_reaction = 0;
 
        
 
        on_learr = 0;
 
        on_leviathan = 0;
 
        on_conflict = 0;
 
	};
 
	nam = "wright";
 
	disp = "Джек Райт";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Джек Райт} читает какую-то книгу. ^]];
 
		else
 
			return [[{Джек Райт} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		walkin(wright_main_dlg);
 
	end;
 
};
 
 
char_anna = obj {
 
	var {
 
        follow = false;
 
        
 
        anna_asked = 0;
 
        walter_asked = 0;
 
        atlantis_asked = 0;
 
        drake_asked = 0;
 
        join_asked = 0;
 
        black_asked = 0;
 
        rel_on_join = nil;
 
	};
 
	nam = "anna";
 
	disp = "Анна Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Анна Рэдклифф} смотрит в иллюминатор. ^]];
 
		else
 
			return [[{Анна Рэдклифф} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(anna_home_dlg);
 
		else
 
			walkin(anna_dlg);
 
		end;
 
	end;
 
};
 
 
learr_home_dlg = dlg {
 
	nam = "learr_dlg";
 
	disp = "Леарр";
 
	hideinv = true;
 
	entered = function(s)
 
        --on_books = 0;
 
        --on_join = 0;
 
        --on_before = 0;
 
        --on_atlantis = 0;
 
        poff("on_books", "on_join", "on_before", "on_atlantis", "talk");
 
        if (rel_learr < 0) then
 
            pon("talk");
 
        else
 
            --[[if (char_learr.on_books < 3) then
 
                pon("on_books");
 
                pon("talk");
 
            end;]]
 
            if (char_learr.on_join < 2) then
 
                pon("on_join");
 
                pon("talk");
 
            end;
 
            if (char_learr.on_before < 2) then
 
                pon("on_before");
 
                pon("talk");
 
            end;
 
            if (char_learr.on_atlantis < 2) then
 
                pon("on_atlantis");
 
                pon("talk");
 
            end;
 
        end;
 
    
 
		if (atl_iyh_state == 7) then
 
			pon("on_iyh");
 
		else
 
			poff("on_iyh");
 
		end;
 
	
 
		if (char_learr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
	    
 
        if char_learr.on_conflict == 0 and conflict_resolved then
 
            char_learr.on_conflict = 1;
 
            if rel_learr >= 0 then
 
                if (artifacts_returned == 0) then
 
                    psub("on_solution_not_returned_ok");
 
                    return [[Вы подходите к Леарр и она первая обращается к вам: "Я благодарна-тебе-Дрейк-за-помощь. Разногласия-с-Дипатреанотром улажены. Нам спокойнее-бы-было если бы ты вернул-артефакты-нам, но я твой-выбор-понимаю. Тебе важно-Дрейка-найти, а Светловой важно-лучше-понять-нас". ]];
 
                else
 
                    psub("on_solution_returned_ok");
 
                    return [[Вы подходите к Леарр и она первая обращается к вам: "Я благодарна-тебе-Дрейк-за-помощь. Разногласия-с-Дипатреанотром улажены. Я сожалею-что-мы-не-можем-дать-вам-артефакты-для-изучения. Это хевьярам-и-навьярам-вместе-помогло-бы". ]];
 
                end;
 
            else
0 comments (0 inline, 0 general)