Changeset - b3ed678c42a4
[Not reviewed]
default
0 4 0
Silverwing - 8 years ago 2016-06-27 10:44:30

LFC part 2
4 files changed with 487 insertions and 29 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
global {
 
	atl_jack_in_party = false;
 
	atl_lev_available = false;
 
	
 
	atl_iof_completed = false;
 
	atl_iof_learr_dead = false;
 
@@ -18,6 +19,11 @@ global {
 
	atl_lfc_suspect = nil;
 
	atl_lfc_leroy_spoken = 0;
 
	atl_lfc_goldman_spoken = 0;
 
	atl_lfc_goldman_known = false;
 
	atl_lfc_goldman_exposed = false;
 
	atl_lfc_saboteur_known = false;
 
	atl_lfc_sab_active = false;
 
	atl_lfc_sab_alive = false;
 
	
 
	atl_fta_state = 0;
 
	
 
@@ -109,7 +115,13 @@ atl_aqua_corridor_a = room {
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В док \"Наутилуса\"", "atl_aqua_nautilus_dock");
 
		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 = {
atlantis_dlg.lua
Show inline comments
 
@@ -12,12 +12,17 @@ char_darkstar_dlg = dlg {
 
		if (atl_lfc_goldman_spoken) then
 
			pon("goldman");
 
		end;
 
	
 
		
 
		if (s.state == 0) then
 
			psub("first_meeting");
 
			return [[
 
				За столом сидит средних лет мужчина в деловом костюме. Как только вы обращаетесь к нему он говорит первым: "Добрый день, господин Дрейк. Я Винсент Даркстар, мы уже общались по радио. Надеюсь, вы понимаете мое решение касательно Левиафана. Безопасность станции - моя основная работа".
 
			]];
 
		elseif (atl_fta_state == 2) then
 
			psub("fta");
 
			return [[
 
				Винсент Даркстар достает из ящика папку с бумагами и кладет перед собой. Не глядя на вас он говорит: "Рассказывайте".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
@@ -49,6 +54,40 @@ char_darkstar_dlg = dlg {
 
		{always=true, "Я пойду", [[
 
			"До встречи"
 
		]], code [[ back(); ]]};
 
		{tag="fta"};
 
		{"Что рассказывать?", [[
 
			"Что произошло в Солисе. Прежде всего - все, что вам показалось подозрительным"
 
		]]};
 
		{"Первый взрыв раздался, когда я был у входа в секцию[Кратко пересказать основные события]", [[
 
			"Хорошо, что подозрительного вы заметили?"
 
		]]};
 
		{"Один из клапанов работал неправильно - давление в нем было выше нормы", [[
 
			"Интересно. За десять лет работы станции такого никогда не было".
 
		]]};
 
		{tag="clock", "[Показать часы]А еще я нашел там вот это", [[
 
			"Так-так-так. Франсуа Голдман. Значит Леонард однозначно в этом замешан. Но, зная его, я скажу, что действовал он не один. Я снова ставлю на то, что они попытаются вывести из строя одну из субмарин. И, скорее всего их целью будет Наутилус".
 
		]], code [[ atl_lfc_goldman_exposed = true; psub("why_lev"); ]]};
 
		{tag="why_lev"};
 
		{"Почему Наутилус?", [[
 
			"Потому что саботажник не хочет нашей смерти. Он хочет остановить работу станции. Наутилус используется только для операций поблизости от станции. Энтерпрайз же и Левиафан способны доставить нас на континенты".
 
		]]};
 
		{"Соглашусь с вашим предположением", [[
 
			"Отлично. Я попрошу вас помочь мне с этим заданием".
 
		]], code [[ psub("lfc_help"); ]]};
 
		{"Мне кажется, целью будет другая субмарина", [[
 
			"Можете не волноваться, мы будем следить за всеми доками - я не хочу, чтобы ситуация вышла из под контроля. Кроме того, я попрошу вас помочь мне с этим заданием".
 
		]], code [[ psub("lfc_help"); ]]};
 
		{tag="lfc_help"};
 
		{"Почему я?", [[
 
			"Вы один из немногих в курсе ситуации. Я не хотел бы посвящать слишком многих в происходящее - это увеличит риск утечки и может спровоцировать панику".
 
		]]};
 
		{"Я слушаю", [[
 
			"Я хочу, чтобы в семь часов вечера вы отправились в док Наутилуса и в течение ближайшей ночи наблюдали за происходящим. Если вы заметите что-то подозрительное - принимаете меры на ваше усмотрение", -- Даркстар достает из ящика стола револьвер и кладет перед вами: "Это вам понадобится".
 
		]], code [[
 
			take(item_colt);
 
			atl_lfc_state = 2;
 
			back();
 
		]]};
 
	};
 
};
 
 
@@ -60,6 +99,46 @@ char_moreau_dlg = dlg {
 
	nam = "Фредерик Моро";
 
	disp = "Фредерик Моро";
 
	entered = function(s)
 
		if (atl_lfc_state == 3) then
 
			atl_lfc_state = 4;
 
			
 
			local reputation = 0;
 
			if (atl_rep_darkstar > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_moreau > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_svetlova > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_wright > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			
 
			if (reputation > 2 and atl_rep_moreau > 0) then
 
				psub("lfc_debrief_good");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника. Огромное спасибо. Посовещавшись, мы решили позволить вам свободно пользоваться Левиафаном".
 
				]];
 
			elseif (reputation > 2) then
 
				psub("lfc_debrief_good");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника, однако я все еще не считаю, что вам можно доверять и не хотел бы возвращать вам Левиафан. Впрочем, поскольку большинство более благосклонно к вам -- катитесь на все четыре стороны. Свободны".
 
				]];
 
			elseif (atl_rep_moreau > 0)
 
				psub("lfc_debrief_bad");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника. Огромное спасибо. Хотя я считаю, что вы оказали нам неоценимую услугу, некоторые с этим несогласны. Поэтому, хотя мы и возвращаем вам Левиафан, мы вынуждены запретить вам посещать Атлантиду".
 
				]];
 
			else
 
				psub("lfc_debrief_bad");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника, однако я все еще не считаю, что вам можно доверять и не хотел бы возвращать вам Левиафан. Впрочем, поскольку большинство более благосклонно к вам -- катитесь на все четыре стороны. Отныне Атлантида для вас закрыта. Свободны".
 
				]];
 
			end;
 
		end;
 
	
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
@@ -78,7 +157,9 @@ char_moreau_dlg = dlg {
 
			]];
 
		else
 
			psub("generic");
 
			
 
			return [[
 
				Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день, чем могу помочь?"
 
			]];
 
		end;		
 
	end;
 
	phr = {
 
@@ -87,7 +168,7 @@ char_moreau_dlg = dlg {
 
			"Рад это слышать. Но нам нужно больше чем ваши слова".
 
		]]};
 
		{"Навьяров?", [[
 
			_"Na'vji'a'rr - с их языка это переводится, как ,,Живущие в глубинах''. Если вы еще не были в окулусе, то скорее всего вы их не видели. Эти существа - полурыбы полулюди. О них, конечно, вам лучше с учеными в том же окулусе поговорить"_.
 
			_"Na'vji'a'rr - с их языка это переводится, как ,,Живущие в глубинах''. Если вы еще не были в окулусе, то скорее всего вы их не видели. Эти существа -- полурыбы-полулюди. О них, конечно, вам лучше с учеными в том же окулусе поговорить"_.
 
		]]};
 
		{"И как они повлияли на ваши планы?", [[
 
			_"Кардинально. Нельзя сказать, что наши отношения сразу наладились - первые встречи были, мягко говоря, напряженными. Но через какое-то время нам удалось наладить контакт. Тогда началось строительство станции - мы еще не думали об автономности или последствиях. Мы просто хотели изучить этих рыбней получше. Уже позже мы смогли достичь автономности благодаря гениальным идеям Светловой - тогда же были созданы Наутилус и Энтерпрайз - наши субмарины"_.
 
@@ -114,6 +195,15 @@ char_moreau_dlg = dlg {
 
		{"Я пойду", [[
 
			Моро кивает головой и прощается с вами: "Если вам что-то понадобится - не стесняйтесь, заходите".
 
		]], code [[ back(); ]]};
 
		{tag="lfc_debrief_good"};
 
		{"Спасибо, это все", [[
 
			Моро кивает головой и спрашивает вас: "Вам что-нибудь нужно?".
 
		]], code [[ psub("generic");]]};
 
		{tag="lfc_debrief_bad"};
 
		{"Я пойду", [[
 
			Моро кивает головой.
 
		]], code [[ walk("game_over_banished"); ]]};
 
		
 
	};
 
};
 
 
@@ -824,7 +914,7 @@ char_michael_wright_dlg = dlg {
 
			return [[
 
				Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. У меня есть для вас работа. Сейчас все наши бригады заняты, поэтому я прошу вас помочь с обслуживанием Солиса. Приходите туда и свяжитесь со мной по телефону, я дам вам инструкции".
 
			]];
 
		if (atl_fta_state == 2) then
 
		elseif (atl_fta_state == 2) then
 
			atl_fta_state = 3;
 
			psub("fta_deb");
 
			return [[
 
@@ -1173,6 +1263,10 @@ char_goldman_dlg = dlg {
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (have(item_goldmans_clock)) then
 
			pon('show_clock');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
@@ -1192,6 +1286,9 @@ char_goldman_dlg = dlg {
 
			Леонард кивает, но ничего не говорит
 
		]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="show_clock", false, "[Показать часы]Это ваше?", [[
 
			Голдман протягивает руку, чтобы взять часы и удивленно спрашивает: "Мои. Где вы их взяли?"
 
		]], code [[ atl_lfc_goldman_known = true; psub("give_clock"); ]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", [[
 
			Вы видите удивление и страх на лице Голдмана. Он неуверенно спрашивает: "С чего вы взяли?"
 
		]], code [[ psub("sabotage2"); atl_lfc_leroy_spoken = 1; ]]};
 
@@ -1210,11 +1307,48 @@ char_goldman_dlg = dlg {
 
		]]};
 
		{"Эээ... Я пошутил", [[
 
			"Вы вообще нормальный?!"
 
		]], code [[ psub('back'); ]]};
 
		]], code [[ back(); ]]};
 
		{tag="give_clock"};
 
		{"[Отдать часы]Нашел", [[
 
			"Благодарю. Это часы моего деда, они очень важны для меня".
 
		]], code [[ remove("item_goldmans_clock"); pret(); ]]};
 
		{"[Убрать часы]Не так быстро. Что ты делал в Солисе?", [[
 
			Ваш запрос похоже застал Леонарда врасплох. Заикаясь, он спрашивает: "С ч-чего вы вз-взяли?"
 
		]], code [[ psub("give_clock_2");]]};
 
		{tag="give_clock_2"};
 
		{"Эти часы я подобрал на месте саботажа. Теперь ты не отвертишься", [[
 
			Леонард садится на кровать. Тяжело вздохнув он сознается: "Хорошо, я все скажу. Только если обещаете, что меня больше не будут держать на этой станции"
 
		]], code [[ psub('promise'); ]]};
 
		{tag="promise"};
 
		{always = true, "Я сделаю все, что в моих силах", [[
 
			"Это все Мишель придумал. У меня бы мозгов не хватило. Он и в Игнисе пожар устроил. Солис он тоже хотел взорвать сам, но Даркстар, кажется подозревает его. Поэтому он упросил меня это сделать... И зачем я согласился?!"
 
		]], code [[ atl_lfc_saboteur_known = true; psub("leroy");]]};
 
		{always = true, "Я ничего не обещаю",[[
 
			"Тогда я ничего не скажу"
 
		]], code [[ psub("threaten"); ]]};
 
		{tag = "threaten"};
 
		{always = true, "Тогда пусть Даркстар с тобой разбирается", [[
 
			"Это все Мишель придумал. У меня бы мозгов не хватило. Он и в Игнисе пожар устроил. Солис он тоже хотел взорвать сам, но Даркстар, кажется подозревает его. Поэтому он упросил меня это сделать... И зачем я согласился?!"
 
		]], code [[ atl_lfc_saboteur_known = true; psub("leroy");]]};
 
		{"[Отдать часы]Черт с тобой, забирай свои часы", [[
 
			Голдман крайне удивлен: "Вот так просто?"
 
		]], code [[ remove("item_goldmans_clock"); psub("tired_of_you"); ]]};
 
		{"[Уйти]", code = [[ back(); ]]};
 
		{tag = "tired_of_you"};
 
		{"Даю тебе последний шанс сказать все, что знаешь", [[
 
			"Я назвал свои условия"
 
		]], code [[ psub('promise'); ]]};
 
		{"[Уйти]", code = [[ back(); ]]};
 
		{tag = "leroy"};
 
		{"И что вы еще намереваетесь сломать?", [[
 
			"Не знаю. Мишель хотел сломать станцию... Так чтобы никто не пострадал. Все бы просто вернулись на поверхность и дело с концом".
 
		]]};
 
		{"Я пойду", [[
 
			"Помни, что ты обещал!"
 
		]], code = [[ back(); ]]};
 
	};
 
};
 
 
 
char_jones_dlg = dlg {
 
	var {
 
		state = 0;
atlantis_looking_for_clues.lua
Show inline comments
 
@@ -89,7 +89,7 @@ atl_lfc_darkstar_dlg = dlg {
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
@@ -102,7 +102,7 @@ atl_lfc_darkstar_dlg = dlg {
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
@@ -116,7 +116,7 @@ atl_lfc_darkstar_dlg = dlg {
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
@@ -130,7 +130,7 @@ atl_lfc_darkstar_dlg = dlg {
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
@@ -144,7 +144,7 @@ atl_lfc_darkstar_dlg = dlg {
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
@@ -178,26 +178,26 @@ atl_lfc_darkstar_dlg = dlg {
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{tag="i2_1"};
 
		{always=true,"У меня не было выбора", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Вам стоит еще подумать".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{always=true,"Я рассчитывал вернуться за ней позже", [[
 
			"Вы идиот", - Даркстар встает из-за стола и начинает ходить по комнате. Вы явно вывели его из себя. Через некоторое время он успокаивается и садится на место.
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{always=true,"С чего я должен был думать об этом чудище?", [[
 
			_"Выкинуть бы вас за борт. Без скафандра. Жаль, что мы не ,,чудища'', как вы выражаетесь"_, - Даркстар встает из-за стола и начинает ходить по комнате. Вы явно вывели его из себя. Через некоторое время он успокаивается и садится на место.
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 3;
 
			walk('atl_ifc_non_coop');
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{tag="i2_2"};
 
		{always=true,"Я не мог оставить ее умирать", [[
 
@@ -225,40 +225,40 @@ atl_lfc_darkstar_dlg = dlg {
 
		{always=true,tag="wright_said", "Джек Райт сказал", [[
 
			"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
		]], code = [[
 
			walk("atl_ifc_darkstar_interlude");
 
			walk("atl_lfc_darkstar_interlude");
 
		]]};
 
		{always=true,"Леарр сказала", [[
 
			"Она не могла этого знать", - Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "А я терпеть не могу, когда мне врут".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{always=true,tag="random_lie", "Я случайно наткнулся", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Я думаю вам стоит еще подумать".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{always=true,tag="random_true", "Я случайно наткнулся", [[
 
			"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
		]], code = [[
 
			walk("atl_ifc_darkstar_interlude");
 
			walk("atl_lfc_darkstar_interlude");
 
		]]};
 
		
 
	};
 
};
 
 
atl_ifc_darkstar_interlude = room {
 
atl_lfc_darkstar_interlude = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		Винсент раскрывает папку лежающую на столе и раскладывает перед собой несколько бумаг: _"У нас есть основания полагать, что события в Игнисе - следствие саботажа. Мы считаем, что саботажник не рассчитывал, что в секции в момент пожара будет кто-либо - обычно в это время в Игнисе никого нет. Должен сказать, на станции уже давно некоторые выступают за сворачивание проекта и возвращение на поверхность. Вы прекрасно понимаете, что мы не можем просто так отправить их на поверхность - их слишком много, и если они начнут болтать - существование станции будет раскрыто. А нам этого не хотелось бы"_. Внезапно раздается звонок. Даркстар поднимает трубку телефона и отрывисто бросает туда: "Сейчас буду". Он встает и направляется к выходу, при этом просит вас: "Ждите здесь, я не надолго".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_ifc_darkstar_office");
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_darkstar_office");
 
	};
 
};
 
 
atl_ifc_darkstar_office = room {
 
atl_lfc_darkstar_office = room {
 
	nam = "Атлантида, Доминус, кабинет начальника СБ";
 
	dsc = [[
 
		Кабинет начальника службы безопасности почти пуст - здесь нет ничего кроме массивного металлического стола(судя по всему - бронированного) в центре и кресла перед ним. 
 
@@ -284,7 +284,7 @@ atl_darkstar_papers = obj {
 
		На столе лежит оставленная Винсентом {папка с бумагами}.
 
	]];
 
	act = function(s)
 
		walk("atl_ifc_darkstar_interlude_2")
 
		walk("atl_lfc_darkstar_interlude_2")
 
		return [[
 
			Вы просматриваете бумаги - это список подозреваемых в саботаже. Здесь присутствует большая часть обитателей Атлантиды. На отдельном листе записаны несколько моментов: во-первых, Даркстар не подозревает никого из руководства, поскольку каждый из них напрямую заинтересован в развитии станции. Во-вторых, к вашему удивлению, он не подозревает вас, поскольку саботажник, судя по всему, был хорошо знаком с устройством системы электроснабжения Игниса. Основными подозреваемыми он считает Мишеля Леруа, Леонарда Голдмана и Чарльза Джонса. Все они сторонники закрытия проекта и обладают достаточными знаниями, чтобы устроить подобный саботаж. ^
 
			Вы слышите звук открывающегося замка и поспешно возвращаете папку в ее изначальное положение. 
 
@@ -292,7 +292,7 @@ atl_darkstar_papers = obj {
 
	end;
 
};
 
 
atl_ifc_darkstar_interlude_2 = room {
 
atl_lfc_darkstar_interlude_2 = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		В комнату входит Винсент Даркстар и садится на свое место. Вам он говорит: "С учетом цели саботажника, я предполагаю, что следующая атака будет направлена на вывод из строя субмарин. В любом случае - я прошу вас никому не говорить о том, что я вам тут рассказал. В случае необходимости я вас вызову. Вы свободны".
 
@@ -302,7 +302,7 @@ atl_ifc_darkstar_interlude_2 = room {
 
	};
 
};
 
 
atl_ifc_non_coop = room {
 
atl_lfc_non_coop = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		После этого он снимает телефонную трубку и отдает туда приказ: "Заберите Дрейка". ^
 
@@ -311,7 +311,7 @@ atl_ifc_non_coop = room {
 
	obj = {
 
		kh_vway("Продолжить", "{Продолжить}", function()
 
			if (atl_lfc_darkstar_dlg.total_limit < 1) then
 
				return "atl_ifc_game_over";
 
				return "atl_lfc_game_over";
 
			else
 
				return "atl_lfc_waiting";
 
			end;
 
@@ -319,7 +319,7 @@ atl_ifc_non_coop = room {
 
	};
 
};
 
 
atl_ifc_game_over = room {
 
atl_lfc_game_over = room {
 
	nam = "Игра окончена";
 
	disp = "Игра окончена";
 
	dsc = [[
 
@@ -337,4 +337,307 @@ atl_lfc_waiting = room {
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_waiting");
 
	};
 
};
 
\ No newline at end of file
 
};
 
 
atl_lfc_dock_s = room {
 
	nam = "Атлантида, Аква, док Наутилуса, у входа";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. У западной стены вы видите пульт управления краном. У северной стены составлены какие-то ящики. 
 
	]];
 
	way = {
 
		kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
		kh_vroom("По часовой стрелке", "atl_lfc_dock_w");
 
		kh_vroom("Против часовой стрелки", "atl_lfc_dock_e");
 
		kh_vroom("На мостик", "atl_lfc_dock_sb");
 
		
 
	};
 
	obj = {
 
		"atl_nd_crane";
 
		"atl_nd_barrel";
 
	};
 
};
 
 
atl_nd_crane = obj {
 
	var {
 
		px = 2;
 
		py = 2;
 
	};
 
	nam = "Кран";
 
	dsc = function(s)
 
		local r = [[
 
			Под потолком расположен {кран}, прикрепленный к балкам, служащим направляющими для его движения. 
 
		]];
 
		if px == 2 and py == 2 then
 
			r = r .. "Сейчас кран висит в центре комнаты над Наутилусом.";
 
		end;
 
		
 
		return r;
 
	end;
 
	act = [[
 
		Скорее всего, вы можете управлять краном с пульта управления в этой комнате.
 
	]];
 
};
 
 
atl_nd_barrel = obj {
 
	nam = "Бочка";
 
	dsc = [[
 
		На крюке крана висит {бочка}, судя по всему -- пустая. 
 
	]];
 
	canshoot = function(s)
 
		return atl_lfc_sab_active and where(atl_lfc_sab) == atl_lfc_bridge_w and atl_nd_crane.px == 1 and atl_nd_crane.py == 2;
 
	end;
 
	onshoot = function(s)
 
		remove(atl_nd_barrel);
 
		remove(char_leroy, where('char_leroy'));
 
		remove(char_goldman, where('char_goldman'));
 
		atl_lfc_sab_alive = true;
 
		walkin(atl_lfc_dock_end_barreled);
 
	end;
 
};
 
 
atl_lfc_dock_w = room {
 
	nam = "Атлантида, Аква, док Наутилуса, западная часть";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь у западной стороны. На небольшом расстоянии от вас вы видите пульт управления краном. У северной стены дока составлено несколько ящиков.
 
	]];
 
	way = {
 
		kh_vroom("По часовой стрелке", "atl_lfc_dock_n");
 
		kh_vroom("Против часовой стрелки", "atl_lfc_dock_s");
 
		kh_vroom("На мостик", "atl_lfc_dock_wb");
 
		kh_vroom("К пульту управления", "atl_lfc_control");
 
	};
 
};
 
 
atl_lfc_dock_n = room {
 
	nam = "Атлантида, Аква, док Наутилуса, северная часть";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь в северной части помещения. У западной стены вы видите пульт управления краном. 
 
	]];
 
	way = {
 
		kh_vroom("По часовой стрелке", "atl_lfc_dock_e");
 
		kh_vroom("Против часовой стрелки", "atl_lfc_dock_w");
 
	};
 
	obj = {
 
		"atl_lfc_boxes";
 
	};
 
};
 
 
atl_lfc_boxes = obj {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Ящики";
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return [[
 
				У стены составлено несколько {ящиков}.
 
			]];
 
		elseif (s.state == 1) then
 
			return [[
 
				У стены составлено несколько {ящиков}, за которыми вы сможете спрятаться, поджидая саботажника.
 
			]];
 
		elseif (s.state == 2) then
 
			return [[
 
				У стены составлено несколько {ящиков}.
 
			]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			return [[
 
				За этими ящиками можно спрятаться!
 
			]];
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			walk("atl_lfc_behind_boxes");
 
			return [[
 
				Вы прячетесь за ящиками. Через некоторое время дверь дока открывается и кто-то входит. В полумраке издалека вы не можете разглядеть кто это, но скорее всего, это саботажник.
 
			]];
 
		else
 
			return [[
 
				Вам это больше не нужно.
 
			]];
 
		end;
 
	end;
 
};
 
 
atl_lfс_bridge_s = obj {
 
	nam = "Атлантида, Аква, док Наутилуса, мостик";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в южной части дока.
 
	]];
 
	way = {
 
		kh_vroom("Ко входу", "atl_lfc_dock_s");
 
		kh_vroom("На соседний мостик", "atl_lfc_bridge_e");
 
	};
 
};
 
 
atl_lfс_bridge_e = obj {
 
	nam = "Атлантида, Аква, док Наутилуса, мостик";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в восточной части дока.
 
	]];
 
	way = {
 
		kh_vroom("К стене", "atl_lfc_dock_w");
 
		kh_vroom("На соседний мостик", "atl_lfc_bridge_s");
 
	};
 
};
 
 
atl_lfс_bridge_w = obj {
 
	nam = "Атлантида, Аква, док Наутилуса, мостик";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в западной части дока.
 
	]];
 
	way = {
 
		kh_vroom("К стене", "atl_lfc_dock_e");
 
		kh_vroom("К субмарине", function(s)
 
			pr [[
 
				Мне там нечего делать
 
			]];
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_lfc_sab = obj {
 
	var {
 
		tick = 1;
 
	}
 
	nam = "Мишель Леруа";
 
	canshoot = true;
 
	dsc = [[
 
		В нескольких метрах от вас стоит {Мишель Леруа}. Он обращен к вам спиной и не видит вас.
 
	]];
 
	act = function(s)
 
		walkin("atl_lfc_sab_dlg");
 
	end;
 
	life = function(s)
 
		if (s.tick > 0) then
 
			s.tick = s.tick - 1;
 
		else
 
			s.tick = 1;
 
			pr("Вы видите, как Мишель медленно крадется по доку.");
 
			if (where(s) == atl_lfc_dock_s) then
 
				move(s, atl_lfc_dock_w);
 
			elseif (where(s) == atl_lfc_dock_w) then
 
				move(s, atl_lfc_bridge_w);
 
			elseif (where(s) == atl_lfc_bridge_w) then
 
				pr("Леруа подходит к субмарине и забирается на нее, открывает люк и исчезает внутри. ");
 
				remove(s, where(s));
 
			end;
 
		end;
 
	end;
 
};
 
 
atl_lfc_sab_vis = obj {
 
	var {
 
		shot = 0;
 
	};
 
	nam = "Мишель Леруа";
 
	canshoot = true;
 
	onshoot = function(s)
 
		if (s.shot == 0) then
 
			s.shot == 1;
 
			return [[
 
				Вы стреляете в силуэт, но промахиваетесь. Через мгновение, где-то рядом пролетает пуля.
 
			]];
 
		else
 
			remove(char_leroy, where('char_leroy'));
 
			walk("atl_lfc_dock_end_shot");
 
			return [[
 
				Вы повторно стреляете в саботажника и, судя по всему, попадаете. Леруа хватается за грудь и медленно падает на пол.
 
			]];
 
		end;
 
	end;
 
	dsc = function(s)
 
		if (where(pl) == atl_lfc_behind_boxes and where(atl_lfc_sab) == atl_lfc_bridge_w) then
 
			return [[
 
				Вы видите {Мишеля Леруа}, идущего по мостику, ведущему к Наутилусу.
 
			]];
 
		elseif (where(pl) == atl_lfc_behind_boxes and where(atl_lfc_sab) == atl_lfc_dock_w) then
 
			return [[
 
				Вы видите {Мишеля Леруа}, идущего вдоль западной стены дока.
 
			]];
 
		elseif (where(atl_lfc_sab) == atl_lfc_bridge_w) then
 
			return [[
 
				Вы видите {Мишеля Леруа}, идущего по мостику в западной части дока. Он не видит вас.
 
			]];
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(s) ~= where(pl)) then
 
			move(s, where(pl));
 
		end;
 
	end;
 
};
 
 
atl_lfc_sab_dlg = dlg {
 
	nam = "Мишель Леруа";
 
	dsc = [[
 
		Мишель Леруа стоит спиной к вам и не видит вашего приближения. Вы можете воспользоваться этим.
 
	]];
 
	phr = {
 
		{"Застрелить его", [[
 
			Вы стреляете саботажнику в спину и, не успев понять, что произошло, он падает в воду, пронзенный пулей.
 
		]], code [[ 
 
			remove(char_leroy, where('char_leroy'));
 
			walk("atl_lfc_dock_end_shot");
 
		]]};
 
		{"Попытаться оглушить его", [[
 
			Вы оглушаете саботажника. 
 
		]], code [[ 
 
			remove(char_leroy, where('char_leroy'));
 
			remove(char_goldman, where('char_goldman'));
 
			atl_lfc_sab_alive = true;
 
			walk("atl_lfc_dock_end_ko");
 
		]]};
 
	};
 
};
 
 
atl_lfc_dock_end_shot = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[
 
		Через несколько минут в помещение входит охрана станции во главе с Винсентом Даркстаром. Винсент отдает приказ охранникам унести тело, а сам обращается к вам: "Хорошая работа. Вскоре мы сообщим о том, когда вы сможете забрать Левиафан".^
 
		Вы возвращаетесь в свою комнату, чтобы отдохнуть после тяжелой ночи... Проснувшись днем, вы слышите по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_luna_drake_room");
 
	};
 
	entered = function(s)
 
		atl_lfc_state = 3;
 
		if (atl_lfc_goldman_exposed) then
 
			remove(char_goldman, where('char_goldman'));
 
		end;
 
	end;
 
};
 
 
atl_lfc_dock_end_barreled = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[
 
		Вы попадаете в один из тросов, на который крепилась бочка и она с грохотом катится вниз, сбивая с ног саботажника. Тот падает в воду. Он не успевает придти в себя, как в помещение входит охрана станции, привлеченная шумом, во главе с Винсентом Даркстаром. Винсент отдает приказ охранникам увести Мишеля, а сам обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним. Если нам потребуется ваша помощь, мы сообщим".^
 
		Прошло около недели, прежде чем вы услышали по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_luna_drake_room");
 
	};
 
	entered = function(s)
 
		atl_lfc_state = 3;
 
	end;
 
};
 
 
atl_lfc_dock_end_ko = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[
 
		Вы оглушаете саботажника и ждете, когда в помещение придут охранники.^
 
		Они приходят через несколько минут вместе с Винсентом Даркстером. Охранники уносят неподвижного Леруа, а Даркстар обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним. Если нам потребуется ваша помощь, мы сообщим".^
 
		Прошло около недели, прежде чем вы услышали по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_luna_drake_room");
 
	};
 
	entered = function(s)
 
		atl_lfc_state = 3;
 
	end;
 
};
 
game_over.lua
Show inline comments
 
@@ -7,6 +7,15 @@ game_over_caught = room {
 
	]];
 
};
 
 
game_over_banished = room {
 
	nam = "game_over_banished";
 
	disp = "Игра окончена";
 
	hideinv = true;
 
	dsc = [[
 
		Охранники сопровождают вас до Левиафана. Без помощи Атлантиды, вы не сможете найти отца. Ваши поиски окончены. 
 
	]];
 
};
 
 
game_over_shot = room {
 
	nam = "game_over_shot";
 
	disp = "Игра окончена";
0 comments (0 inline, 0 general)