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 81 insertions and 37 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -105,48 +105,52 @@ atl_aqua_corridor_b = room {
 
};
 
 
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');
 
			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 {
atlantis_dlg.lua
Show inline comments
 
@@ -1574,49 +1574,49 @@ char_ryveerr_dlg = dlg {
 
        {"Я пришел говорить о другом. ", [[Ривеерр отворачивается от вас. ]], 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 [[Ривеерр отказывается отвечать:"Я не-говорю-с-тобой-об-этом". ]];
 
@@ -1734,49 +1734,49 @@ char_winterlight_dlg = dlg {
 
	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 добавить несколько легенд
 
		{"Что-нибудь связанное с храмами и реликвиями", [[
 
			Сильвия задуиывается: _"Храмы, реликвии и скаты... Да, есть кое-что", -- она откидивыет волосы назад и продолжает: "Согласно этой легенде, хранителей одного из святилищ навьяров был могучий затмевающий свет по имени Излучающий Тьму. Это было в те времена, когда навьяры и затмевающие свет были связаны узами дружбы. Излучающий тьму был мудрым хранителем - он не только принимал священные реликвии на сохранение, но и многое знал о них - об их предназначении и истинной ценности. Однажды Излучающий Тьму узнает о необычнайно ценной реликвии, хранящейся в одном из городов и скрывающей в себе древние знания навьяров. Узнает он и о том, что живущие навьяры не в силах прочитать. Тогда он прибыл в город, чтобы просить навьяров отдать ему реликвию на сохранение. Но навьяры отказывают ему. Вернувшись в святилище, Излучающий Тьму придумал план. Ночью он пробрался в город и выкрал реликвию. Когда наутро навьяры обнаружили пропажу, они направились к Излучающему Тьму с требованием вернуть им реликвию. На это могучий затмевающий свет спросил их: ,,Знаете ли вы, что скрывает этот предмет?''^ -- кстати, в некоторых переводах я встречала слово ,,светодиск'', как описание реликвии. 
 
			,,Знания наших предков'', -- ответили навьяры. Излучающий Тьму продолжил: ,,Можете ли вы прочитать его?''^
 
			,,Нет'', --сказали навьяры. Тогда Излучающий Тьму рассказал им легенду о храме в глубинах, которую он прочитал из данной реликвии(Нам, кстати, так и не довелось получить хоть какой-либо целостный текст этой легенды), и сказал им: ,,Можете приходить сюда когда захотите и я расскажу вам то, что вы захотите знать. Но только, если реликвия ваша остается у меня''. Навьяры поняли, что если заберут реликвию, то навсегда утратят древние знания и согласились". 
atlantis_iyhehevjiarr.lua
Show inline comments
 
@@ -283,49 +283,53 @@ iyh_fight_torpedo_temple = obj {
 
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 [[
 
				Цель слишком далеко
 
@@ -1341,120 +1345,156 @@ iyh_near_temple = dlg {
 
		]], 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;
 
        
 
@@ -1494,29 +1534,29 @@ iyh_outro_learr = dlg {
 
			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
 
@@ -4,157 +4,157 @@ party_accompany = function(s, value)
 
	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 [[{Анна Рэдклифф} смотрит в иллюминатор. ^]];
0 comments (0 inline, 0 general)