Changeset - 387d673c520d
[Not reviewed]
default
0 3 1
Silverwing - 8 years ago 2016-05-15 10:18:23

LFC partially implemented
4 files changed with 339 insertions and 3 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -10,6 +10,8 @@ global {
 
	atl_iyh_state = 0;
 
	atl_iyh_ryveerr_spoken = false;
 
	
 
	atl_lfc_state = 0;
 
	
 
	atl_rep_moreau = 0;
 
	atl_rep_darkstar = 0;
 
	atl_rep_svetlova = 0;
atlantis_ignis_on_fire.lua
Show inline comments
 
@@ -1162,10 +1162,11 @@ atl_iof_electr_panel_open = dlg {
 
atl_iof_end = room {
 
	nam = "Атлантида";
 
	dsc = [[
 
		Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. При выходе из дока вас встречает Моро и говорит: "Дрейк. Я понимаю, вам нужен отдых. Как сможете - посетите меня и других лидеров станции". Вы приходите в свою комнату и сразу же засыпаете...^
 
		Вы просыпаетесь утром, полностью готовый заняться новыми делами. 
 
		Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. Вы просыпаетесь утром, полностью готовый заняться новыми делами. ^
 
		Почти сразу к вам в комнату входят двое охранников. Они просят вас проследовать за ними к начальнику службы безопасности - Винсенту Даркстару. У вас нет никакого выхода, кроме как пойти с ними...
 
	]];
 
	entered = function(s)
 
		atl_lfc_state = 1;
 
		if (atl_iof_time_state.learr_safe) then
 
			atl_iof_learr_suit = true;
 
		end;
 
@@ -1179,7 +1180,7 @@ atl_iof_end = room {
 
		atl_iof_completed = true;
 
	end;
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atlantis_luna_drake_room");
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_darkstar_dlg");
 
	};
 
	
 
};
 
\ No newline at end of file
atlantis_looking_for_clues.lua
Show inline comments
 
new file 100644
 
atl_lfc_darkstar_dlg = dlg {
 
	var {
 
		total_limit = 3;
 
		limit = 3;
 
		q2_states = 0;
 
	};
 
	nam = "Винсент Даркстар";
 
	disp = "Винсент Даркстар";
 
	entered = function(s)
 
		psub("q1");
 
		s.limit = 3;
 
		q2_states = 0;
 
		if (atl_jack_in_party) then
 
			pon("random_lie", "wright_said");
 
			poff("random_true");
 
		else
 
			poff("random_lie", "wright_said");
 
			pon("random_true");
 
		end;
 
		return [[
 
			Винсент Даркстар сидит за столом в своем кабинете. Он приглашает вас сесть напротив, а охранников просит покинуть помещение. ^
 
			Как только они выходят, Даркстар достает из под стола папку с какими-то бумагами и начинает спрашивать вас: "Где вы были, когда начался пожар?"
 
		]];
 
	end;
 
	phr = {
 
		{tag="q1"};
 
		{"Вы меня подозреваете?", [[
 
			"Отвечайте на поставленный вопрос. Это не имеет значения".
 
		]]};
 
		{always=true,"Мы с Леарр разговаривали в зале А", [[
 
			"Хорошо. Дальше. Заметили ли вы что-то необычное в секции?"
 
		]], code [[ psub("q2"); ]]};
 
		{always=true,"Я не хочу отвечать", [[
 
			"Нет проблем. Следующий вопрос. Заметили ли вы что-то необычное в секции?"
 
		]], code [[
 
			atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			psub("q2");
 
		]]};
 
		{tag="q2"};
 
		{always=true,"Больше ничего.", function(s)
 
			if (atl_lfc_darkstar_dlg.q2_states < 2) then
 
				atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			end;
 
			pr [[
 
				"Хорошо, идем дальше. 
 
			]];
 
			if (atl_jack_in_party) then
 
				psub("q3_1");
 
				return [[
 
					Что делал в это время ваш друг, Джек?"
 
				]];
 
			else
 
				psub("q3_2");
 
				return [[
 
					Кроме вас кто-нибудь еще был в секции?"
 
				]];
 
			end;
 
			
 
		end};
 
		{always=true,"Двери в залы B и C не работали.", [[
 
			"Техники..."
 
		]], code [[ 
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{always=true,"Один из электрощитов не был закрыт.", [[
 
			"Обычное дело на Атлантиде. Наши техники порой позволяют себе невероятную неаккуратность".
 
		]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{always=true,"В зале А не работали электроприборы.", [[
 
			"Это уже совсем ни в какие ворота не лезет".
 
		]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{tag="q3_1"};--Что делал в это время ваш друг, Джек?
 
		{always=true,"Он вышел в главный зал, чтобы не мешать нам", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{always=true,"Он был с нами", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{always=true,"Не помню", function(s)
 
			atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{tag="q3_2"};--Кроме вас с Леарр кто-нибудь еще был в секции?
 
		{always=true,"Я никого не видел", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{always=true,"Не помню", function(s)
 
			atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{tag="i1"};
 
		{always=true,"Поговорить с Леарр.", function(s)
 
			if (atl_iof_learr_dead) then
 
				if (atl_lfc_darkstar_dlg.total_limit > 1) then
 
					psub("i2_1");
 
					return [[
 
						"Почему вы оставили Леарр там?"
 
					]];
 
				else
 
					psub("i3");
 
					return [[
 
						"Откуда вы узнали про скафандры?"
 
					]];
 
				end;
 
			else
 
				psub("i2_2");
 
				return [[
 
					"Почему вы спасли Леарр?"
 
				]];
 
			end;
 
		end;};
 
		{always=true,"Посмотреть Игнис.", [[
 
			"Вы знали, что Леарр там?"
 
		]], code [[ psub("i2_3"); ]]};
 
		{always=true,"Это имеет значение?", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_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');
 
		]]};
 
		{always=true,"Я рассчитывал вернуться за ней позже", [[
 
			"Вы идиот", - Даркстар встает из-за стола и начинает ходить по комнате. Вы явно вывели его из себя. Через некоторое время он успокаивается и садится на место.
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{always=true,"С чего я должен был думать об этом чудище?", [[
 
			_"Выкинуть бы вас за борт. Без скафандра Жаль, что мы не ,,чудища'', как вы выражаетесь"_, - Даркстар встает из-за стола и начинает ходить по комнате. Вы явно вывели его из себя. Через некоторое время он успокаивается и садится на место.
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 3;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{tag="i2_2"};
 
		{always=true,"Я не мог оставить ее умирать", [[
 
			"Откуда вы узнали про скафандры?"
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{tag="i2_3"};
 
		{always=true,"Светлова говорила, что она может быть в Игнисе", [[
 
			"Откуда вы узнали про скафандры?"
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{always=true,"Нет", [[
 
			"Откуда вы узнали про скафандры?"
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{always=true,"Это имеет значение?", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования".
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{tag = "i3"};
 
		{always=true,tag="wright_said", "Джек Райт сказал", [[
 
			"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
		]], code = [[
 
			walk("atl_ifc_darkstar_interlude");
 
		]]};
 
		{always=true,"Леарр сказала", [[
 
			"Она не могла этого знать", - Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "А я терпеть не могу, когда мне врут".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_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');
 
		]]};
 
		{always=true,tag="random_true", "Я случайно наткнулся", [[
 
			"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
		]], code = [[
 
			walk("atl_ifc_darkstar_interlude");
 
		]]};
 
		
 
	};
 
};
 
 
atl_ifc_darkstar_interlude = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		Винсент раскрывает папку лежающую на столе и раскладывает перед собой несколько бумаг: _"У нас есть основания полагать, что события в Игнисе - следствие саботажа. Мы считаем, что саботажник не рассчитывал, что в секции в момент пожара будет кто-либо - обычно в это время в Игнисе никого нет. Должен сказать, на станции уже давно некоторые выступают за сворачивание проекта и возвращение на поверхность. Вы прекрасно понимаете, что мы не можем просто так отправить их на поверхность - их слишком много, и если они начнут болтать - существование станции будет раскрыто. А нам этого не хотелось бы"_. Внезапно раздается звонок. Даркстар поднимает трубку телефона и отрывисто бросает туда: "Сейчас буду". Он встает и направляется к выходу, при этом просит вас: "Ждите здесь, я не надолго".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_ifc_darkstar_office");
 
	};
 
};
 
 
atl_ifc_darkstar_office = room {
 
	nam = "Атлантида, Доминус, кабинет начальника СБ";
 
	dsc = [[
 
		Кабинет начальника службы безопасности почти пуст - здесь нет ничего кроме массивного металлического стола(судя по всему - бронированного) в центре и кресла перед ним. 
 
	]];
 
	entered = function()
 
	end;
 
	life = function()
 
	end;
 
	way = {
 
		kh_vroom("В коридор", function()
 
			pr("Дверь заперта");
 
			return false;
 
		end);
 
	};
 
	obj = {
 
		'atl_darkstar_papers'
 
	};
 
};
 
 
atl_darkstar_papers = obj {
 
	nam = "atl_darkstar_papers";
 
	dsc = [[
 
		На столе лежит оставленная Винсентом {папка с бумагами}.
 
	]];
 
	act = function(s)
 
		walk("atl_ifc_darkstar_interlude_2")
 
		return [[
 
			Вы просматриваете бумаги - это список подозреваемых в саботаже. Здесь присутствует большая часть обитателей Атлантиды. На отдельном листе записаны несколько моментов: во-первых, Даркстар не подозревает никого из руководства, поскольку каждый из них напрямую заинтересован в развитии станции. Во-вторых, к вашему удивлению, он не подозревает вас, поскольку саботажник, судя по всему, был хорошо знаком с устройством системы электроснабжения Игниса. Основными подозреваемыми он считает Мишеля Леруа, Леонарда Голдмана и Чарльза Джонса. Все они сторонники закрытия проекта и обладают достаточными знаниями, чтобы устроить подобный саботаж. ^
 
			Вы слышите звук открывающегося замка и поспешно возвращаете папку в ее изначальное положение. 
 
		]];
 
	end;
 
};
 
 
atl_ifc_darkstar_interlude_2 = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		В комнату входит Винсент Даркстар и садится на свое место. Вам он говорит: "С учетом цели саботажника, я предполагаю, что следующая атака будет направлена на вывод из строя субмарин. В любом случае - я прошу вас никому не говорить о том, что я вам тут рассказал. В случае необходимости я вас вызову. Вы свободны".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_dom_security_office");
 
	};
 
};
 
 
atl_ifc_non_coop = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		После этого он снимает телефонную трубку и отдает туда приказ: "Заберите Дрейка". ^
 
		В комнату входят два стражника и сопровождают вас в вашу комнату.
 
	]];
 
	obj = {
 
		kh_vway("Продолжить", "{Продолжить}", function()
 
			if (atl_lfc_darkstar_dlg.total_limit < 1) then
 
				return "atl_ifc_game_over";
 
			else
 
				return "atl_lfc_waiting";
 
			end;
 
		end);
 
	};
 
};
 
 
atl_ifc_game_over = room {
 
	nam = "Игра окончена";
 
	disp = "Игра окончена";
 
	dsc = [[
 
		Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Вы останетесь под стражей до тех пор, пока мы не найдем саботажника. После этого, мы решим, что делать с вами".^
 
		Вам ничего не остается, кроме как ждать. Через несколько дней стражники сопровождают вас на Левиафан. Там вас запирают в одной из кают. Несколько недель Левиафан полным ходом движется в неизвестном направлении. Наконец, вас выпускают из каюты. Один из охранников сообщает вам: "В нескольких милях к северу вдоль побережья находится небольшой городок. Оттуда вы сможете добраться куда вам угодно. Мы дадим вам немного еды и достаточно денег, чтобы вы могли добраться домой".^
 
		Вы забираете переданные вам вещи и через несколько мгновений Левиафан скрывается под поверхностью воды. Никаких средств для возвращения на Атлантиду у вас не остается и, скорее всего, вы никогда не узнаете что стало с вашим отцом.
 
	]];
 
};
 
 
atl_lfc_waiting = room {
 
	nam = "Атлантида, Луна, ваша комната";
 
	dsc = [[
 
		Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Отдохните. Завтра мы попробуем поговорить еще раз".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_waiting");
 
	};
 
};
 
\ No newline at end of file
main.lua
Show inline comments
 
@@ -27,9 +27,11 @@ dofile "leviathan.lua"
 
dofile "atlantis.lua"
 
dofile "atlantis_intro.lua"
 
dofile "atlantis_ignis_on_fire.lua"
 
dofile "atlantis_looking_for_clues.lua"
 
dofile "navjiarr_settlement.lua"
 
dofile "navjiarr_hostile_settlement.lua"
 
-- Часть 3
 
-- Часть 4
 
dofile "final_scene.lua";
 
dofile "final_battle.lua";
 
dofile "first_city_inner_rim.lua"
0 comments (0 inline, 0 general)