Changeset - a6d3ecc230b1
[Not reviewed]
default
0 3 0
Silverwing - 7 years ago 2017-04-30 17:13:53

502; Syntax errors
3 files changed with 14 insertions and 6 deletions:
0 comments (0 inline, 0 general)
atlantis_ignis.lua
Show inline comments
 
atl_ignis_main_center = room {
 
	nam = "Атлантида, Игнис, у лифта";
 
    dsc = [[Огромный круглый зал залит ярким светом электрических ламп. Вокруг установлено большое количество заполненных кинопленками и образущих широкие коридоры высоких стеллажей, упирающихся в металлический потолок зала. Вы находитесь в центре зала, рядом с шахтой лифта.  ]];
 
	way = {
 
		vroom("В лифт", "atl_dom_lift");
 
		vroom("На север", "atl_ignis_main_toa");
 
		vroom("На юго-запад", "atl_ignis_main_toc");
 
		vroom("На юго-восток", "atl_ignis_main_tob");
 
		vroom("На юг", "atl_ignis_main_emex");
 
		vroom("На северо-запад", "atl_ignis_main_nw_wall");
 
		vroom("На северо-восток", "atl_ignis_main_tos");
 
	};
 
};
 
 
atl_ignis_main_emex = room {
 
	nam = "Атлантида, Игнис, у аварийного выхода";
 
	dsc = [[Огромный круглый зал залит ярким светом электрических ламп. Вокруг установлено большое количество заполненных кинопленками и образущих широкие коридоры высоких стеллажей, упирающихся в металлический потолок зала. Вы находитесь в южной части зала, рядом со шлюзом аварийного выхода. ]];
 
	way = {
 
		kh_vroom("В шлюз", function()
 
			pr("Вам там нечего делать. ");
 
			return false;
 
		end);
 
		vroom("На север", "atl_ignis_main_center");
 
		vroom("На запад", "atl_ignis_main_toc");
 
		vroom("На восток", "atl_ignis_main_tob");
 
	};
 
};
 
 
atl_ignis_main_toc = room {
 
	nam = "Атлантида, Игнис, у входа в зал C";
 
	dsc = [[Огромный круглый зал залит ярким светом электрических ламп. Вокруг установлено большое количество заполненных кинопленками и образущих широкие коридоры высоких стеллажей, упирающихся в металлический потолок зала. Вы находитесь в юго-западной части зала, рядом со входом в зал C. ]];
 
	way = {
 
		kh_vroom("В зал C", function()
 
			atl_lfc_hallrooms = 1;
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
		vroom("На северо-восток", "atl_ignis_main_center");
 
		vroom("На север", "atl_ignis_main_nw_wall");
 
		vroom("На восток", "atl_ignis_main_emex");
 
	};
 
};
 
 
atl_ignis_main_nw_wall = room {
 
	var {
 
		seen = 0;
 
	};
 
	nam = "Атлантида, Игнис, у стены";
 
	dsc = [[Огромный круглый зал залит ярким светом электрических ламп. Вокруг установлено большое количество заполненных кинопленками и образущих широкие коридоры высоких стеллажей, упирающихся в металлический потолок зала. Вы находитесь в северо-западной части зала. ]];
 
	entered = function(s) 
 
		if (s.seen == 0) then
 
			pr("Ваш взгляд зацепляется за открытый электрический щиток. Атлантида обычно содержится в полном порядке и инженеры редко позволяют себе забыть все вернуть как было после проведения работ. ");
 
			s.seen = 1;
 
			atl_lfc_board = 1;
 
			return "";
 
		end;
 
	end;
 
	way = {
 
		vroom("На юго-восток", "atl_ignis_main_center");
 
		vroom("На юг", "atl_ignis_main_toc");
 
		vroom("На восток", "atl_ignis_main_toa");
 
	};
 
	obj = {
 
		'atl_ignis_main_nw_wall_panel';
 
	};
 
};
 
 
atl_ignis_main_nw_wall_panel = obj {
 
	nam = "Щиток";
 
	dsc = [[В стену вмонтирован {электрический щиток}. Сейчас он открыт. ]];
 
};
 
 
atl_ignis_main_toa = room {
 
	nam = "Атлантида, Игнис, у входа в зал A";
 
	dsc = [[Огромный круглый зал залит ярким светом электрических ламп. Вокруг установлено большое количество заполненных кинопленками и образущих широкие коридоры высоких стеллажей, упирающихся в металлический потолок зала. Вы находитесь в северо-западной части зала, рядом со входом в зал A. ]];
 
	way = {
 
		vroom("В зал A", "atl_ignis_hall_a");
 
		vroom("На юг", "atl_ignis_main_n");
 
		vroom("На запад", "atl_ignis_main_nw_wall");
 
		vroom("На восток", "atl_ignis_main_tos");
 
	};
 
};
 
 
atl_ignis_main_tos = room {
 
	nam = "Атлантида, Игнис, у входа в служебное помещение";
 
	dsc = [[Огромный круглый зал залит ярким светом электрических ламп. Вокруг установлено большое количество заполненных кинопленками и образущих широкие коридоры высоких стеллажей, упирающихся в металлический потолок зала. Вы находитесь в северо-восточной части зала, рядом со входом в служебное помещение. ]];
 
	way = {
 
		kh_vroom("В служебное помещение", function()
 
			pr("Вам там нечего делать сейчас");
 
			return false;
 
		end);
 
		vroom("На юго-запад", "atl_ignis_main_center");
 
		vroom("На юг", "atl_ignis_main_tob");
 
		vroom("На запад", "atl_ignis_main_toa");
 
	};
 
};
 
 
atl_ignis_main_tob = room {
 
	nam = "Атлантида, Игнис, у входа в зал B";
 
	dsc = [[Огромный круглый зал залит ярким светом электрических ламп. Вокруг установлено большое количество заполненных кинопленками и образущих широкие коридоры высоких стеллажей, упирающихся в металлический потолок зала. Вы находитесь в юго-западной части зала, рядом со входом в зал B. ]];
 
	way = {
 
		kh_vroom("В зал B", function()
 
			atl_lfc_hallrooms = 1;
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
		vroom("На северо-запад", "atl_ignis_main_center");
 
		vroom("На север", "atl_ignis_main_tos");
 
		vroom("На запад", "atl_ignis_main_emex");
 
	};
 
};
 
 
atl_ignis_hall_a = room {
 
	nam = "Атлантида, Игнис, зал А";
 
	enter = function(s)
 
		if (seen(char_learr_atlantis, atl_ignis_hall_a) and ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
			if (where(char_jack_wright_atlantis) ~= atl_ignis_hall_a) then
 
				put('char_jack_wright_atlantis', 'atl_ignis_hall_a');
 
			end;
 
		end;
 
	end;
 
	dsc = [[Средних размеров прямоугольный зал погружен во тьму. ]];
 
	obj = {
 
		'atl_ignis_illuminator';
 
		'atl_ignis_screen';
 
		'atl_ignis_projector';
 
		--'atl_ignis_lightswitch';
 
	};
 
	way = {
 
		vroom("В коридор", "atl_ignis_main_toa");
 
	};
 
};
 
 
atl_ignis_illuminator = obj {
 
	var {
 
		state = 1;
 
	};
 
	nam = "Иллюминатор";
 
	dsc = function(s)
 
		if (s.state == 1) then
 
			return [[Огромное панорамное {окно} открывает великолепный вид на океан вокруг. ]];
 
		else
 
			return [[Металлические жалюзи скрывают огромное панорамное {окно}. ]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 1) then
 
			s.state = 0;
 
			return [[Вы дергаете рычаг рядом с окном и металлические жалюзи со скрежетом закрывают его, полностью блокируя проникновение света извне. ]];
 
		else
 
			s.state = 1;
 
			return [[Вы дергаете рычаг рядом с окном и металлические жалюзи со скрежетом отъезжают в стороны, открывая его. ]];
 
		end;
 
	end;
 
};
 
 
atl_ignis_screen = obj {
 
	nam = "Экран";
 
	dsc = function(s)
 
		return [[На одной из стен закреплен экран. ]];
 
	end;
 
};
 
 
atl_ignis_projector = obj {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Проектор";
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return [[{Проектор} готов к работе. ]];
 
		else
 
			return [[{Проектор} не работает. ]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			atl_lfc_electric = 1;
 
			return [[Вы включаете проектор, однако он не работает. ]];
 
		elseif (s.state == 1)
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			return [[Вы выключаете проектор. ]];
 
        else
 
            return [[Проектор не работает. ]];         
 
		end;
 
	end;
 
};
 
\ No newline at end of file
atlantis_ignis_on_fire.lua
Show inline comments
 
@@ -52,724 +52,724 @@ char_wright_iof = obj {
 
	end;
 
	act = function(s)
 
		return [[Некогда разговаривать. ]];
 
	end;
 
};
 
 
char_learr_faint = obj {
 
	nam = "Леарр";
 
	inv = [[На руках вы держите Леарр. Она дышит очень слабо. Вам нужно поторопиться, если вы не хотите, чтобы она умерла. ]];
 
	life = function(s)
 
		if (rnd(12) > 11) then
 
			pr([[Вы чувствуете слабое дыхание Леарр, лежащей у вас на руках. ]]);
 
		end;
 
	end;
 
};
 
 
char_learr_iof = obj {
 
	var {
 
		faint = false;
 
	};
 
	nam = "Леарр";
 
	dsc = function(s)
 
		if (s.faint) then
 
			return [[{Леарр} лежит на полу без сознания. ]];
 
		end;
 
		if (atl_iof_time_state.learr_safe) then
 
			return [[{Леарр} облачена в скафандр и ждет ваших указаний. ]];
 
		else
 
			if (atl_iof_time_state.life_left > 3) then
 
				return [[{Леарр} ждет ваших указаний. ]];
 
			else
 
				return [[{Леарр} с трудом стоит на ногах. ]];
 
			end;
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(s) ~= where(pl) and where(pl).iof) then
 
			move(s, where(pl));
 
		end;
 
	end;
 
	act = function(s)
 
		if (where(s) == atl_iof_ignis_service_room and not dlg_learr_suit.state) then
 
			walkin('dlg_learr_suit');
 
		elseif (s.faint) then
 
			walkin('atl_iof_learr_faint_alone');
 
		else		
 
			return [[Некогда разговаривать. ]];
 
		end;
 
	end;
 
};
 
 
dlg_learr_suit = dlg {
 
	var {
 
		state = false;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = function(s)
 
		s.state = true;
 
		return [[Леарр вопросительно смотрит на вас. ]];
 
	end;
 
	phr = {
 
		{"Я хочу, чтобы ты одела скафандр. ", [[Леарр недоуменно смотрит на вас: "Ззачем он мне? Ссама-я в-воде-дышшу. Мне не-нужжны вашши-пррисспоссобления". ]], code [[
 
			psub('tag1');
 
		]]};
 
		{"Мы сейчас наденем скафандры. Продолжай следовать за нами. ", [[Леарр молча кивает. ]], code [[
 
			back();
 
		]]};
 
		{tag="tag1"};
 
		{"Не спорь, полезай внутрь. ", [[Леарр все еще не понимает: "Я в-этой-шштуке-двигатьсся-не-ссмогу". ]], code [[
 
			psub('tag2');
 
		]]};
 
		{"Ладно, обойдемся без этого, просто следуй за нами. ", [[Леарр молча кивает. ]], code [[
 
			back();
 
		]]};
 
		{tag="tag2"};
 
		{"Хорошо. Просто следуй за нами. ", [[Леарр молча кивает. ]], code [[
 
			back();
 
		]]};
 
		{"Эта штука защитит тебя от жара. И тебе будет легче дышать, пока мы не выбрались. ", [[Леарр кивает: "Хорошо. Я по-вашему-сделаю". Вы помогаете навьярессе забраться в скафандр и надеваете на нее шлем. ]], code [[
 
			atl_iof_time_state.learr_safe = true;
 
			back();
 
		]]};
 
	};
 
};
 
 
dlg_learr_iof = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = [[Леарр подбегает к вам и спрашивает: "Что происходит?" ]];
 
	phr = {
 
		{'Надеюсь, все в порядке, следуй за мной', [[Леарр молча кивает. ]], code [[
 
			lifeon('char_learr_iof');
 
			char_learr_iof.state = 1;
 
			walk('atl_iof_ignis_hall_a');
 
		]]};
 
		{'Такое уже происходило?', [[Леарр пожимает плечами: "Я не-видела". ]]};
 
	};
 
};
 
 
atl_iof_intro = room {
 
	nam = "Атлантида, Игнис, зал А";
 
	disp = "Атлантида, Игнис, зал А";
 
	dsc = [[Внезапно свет в зале гаснет и вы оказываетесь в полной темноте. Вскоре вы начинаете ощущать запах дыма, проникающего из вентиляционных отверстий. Леарр кажется очень удивленной. В темноте вы видите слабое свечение цветных полос, бегущих по ее головным плавникам: пурпурная, зеленая, серая, -- тонкая, едва заметная, голубая, зеленая, ярко-розовая, снова серая -- на этот раз заметно толще, оранжевая, желтая, желто-зеленая и снова оранжевая. Цвета сменяют друг-друга за несколько мгновений и вы с трудом успеваете различить их все.]];
 
	obj = {
 
		vobj('Продолжить','{Продолжить}', 'dlg_learr_iof');
 
	};
 
};
 
 
atl_iof_ignis_hall_a = room {
 
	var {
 
		ready = false;
 
	};
 
	nam = "Атлантида, Игнис, зал А";
 
	disp = "Атлантида, Игнис, зал А";
 
	dsc = [[Средних размеров прямоугольный зал. Из вентиляционных отверстий выплывают тонкие струйки дыма. ]];
 
	entered = function(s)
 
		if (not s.ready) then
 
			s.ready = true;
 
			lifeon('char_learr_iof');
 
			if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
				atl_iof_time_state.wright_here = true;
 
				if (where(char_jack_wright_atlantis) == atlantis_ignis_hall_a) then
 
					lifeon('char_wright_iof');
 
				end;
 
			else
 
				atl_iof_time_state.wright_here = false;
 
			end;
 
 
		end;
 
	end;
 
	obj = {
 
		'char_learr_iof'
 
	};
 
	way = {
 
		vroom("В коридор",'atl_iof_main_n3');
 
	};
 
};
 
 
atl_iof_blocked_by_fire = function() 
 
	pr("Огонь преграждает вам путь");
 
	return false;
 
end;
 
 
atl_iof_blocked_by_rubble = function() 
 
	pr("Обломки обрушившихся стеллажей преграждают вам путь");
 
	return false;
 
end;
 
 
atl_iof_time_state = obj {
 
	nam = 'atl_iof_time_state';
 
	var {
 
		life_left = 6;
 
		pl_safe = false;
 
		learr_safe = false;
 
		wright_here = false;
 
		carry_learr = false;
 
	};
 
	life = function(s)
 
		if (not where(pl).iof) then 
 
			return;
 
		end;
 
		s.life_left = s.life_left - 1;
 
		if (s.life_left == 5) then
 
			if (not s.pl_safe) then 
 
				pr("Вы чувствуете жар");
 
			end;
 
		elseif (s.life_left == 4) then
 
			if (s.wright_here and not s.pl_safe and where(char_wright_iof) == where(pl)) then 
 
				pr("Джек утирает пот со лба");
 
			end;
 
		elseif (s.life_left == 3) then
 
			if (not s.learr_safe) then
 
				pr("Леарр тяжело дышит");
 
			end;
 
		elseif (s.life_left == 2) then
 
			if (not s.pl_safe) then 
 
				pr("Вам трудно дышать, жар становится нестерпимым");
 
			end;
 
		elseif (s.life_left == 1) then
 
			if (s.wright_here and not s.pl_safe and where(char_wright_iof) == where(pl)) then 
 
				pr("Джек с трудом следует за вами");
 
			end;
 
		elseif (s.life_left == 0) then
 
			if (not s.learr_safe) then
 
				pr("Леарр едва передвигает ногами");
 
			end;
 
		else
 
			lifeoff(s);
 
			lifeoff(char_learr_iof);
 
			if (not s.pl_safe) then
 
				walkin("game_over_ignis");
 
			elseif (not s.learr_safe)
 
			elseif (not s.learr_safe) then
 
                if (s.wright_here) then
 
                    walkin("atl_iof_learr_faint_wright");
 
                else
 
                    walkin("atl_iof_learr_faint_alone");
 
                end;
 
            end;
 
		end;
 
	end;
 
};
 
 
atl_iof_learr_faint_alone = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	dsc = [[Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-идти". ]];
 
	phr = {
 
		{"Совсем немного осталось, пойдем. [Помочь Леарр подняться]", [[Леарр пытается подняться опираясь на вашу руку, но снова падает, теряя сознание. ]], code [[
 
			tag('faint');
 
		]]};
 
		{"Оставайся здесь, я вернусь. ", [[Леарр теряет сознание, обессилев. ]], code [[
 
			char_learr_iof.faint = true;
 
			back();
 
		]]};
 
		{"Оставайся здесь. ", [[Леарр теряет сознание, обессилев. ]], code [[
 
			char_learr_iof.faint = true;
 
			back();
 
		]]};
 
		{"[Взять Леарр на руки]", [[Леарр теряет сознание, обессилев. Вы берете навьярессу на руки. Она весит не больше обычного человека. Вы вполне в состоянии донести ее до выхода. ]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			put(char_learr_faint, pl);
 
			lifeon(char_learr_faint);
 
			atl_iof_time_state.carry_learr = true;
 
			back(); 
 
		]]};
 
		{tag='faint'};
 
		{"[Взять Леарр на руки]", [[Леарр теряет сознание, обессилев. Вы берете навьярессу на руки. Она весит не больше обычного человека. Вы вполне в состоянии донести ее до выхода. ]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			put(char_learr_faint, pl);
 
			lifeon(char_learr_faint);
 
			atl_iof_time_state.carry_learr = true; 
 
			back(); 
 
		]]};
 
		{"[Уйти]", "", code [[ back(); ]]};
 
	};
 
};
 
 
atl_iof_learr_faint_wright = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	dsc = [[Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-идти". Райт подходит к ней и пытается помочь ей подняться. ]];
 
	phr = {
 
		{"Все в порядке?", [[По радио вы слышите голос Райта: "Да, я помогу ей. Идем". Джек аккуратно берет Леарр на руки и идет к вам. ]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			atl_iof_time_state.carry_learr = true;
 
			back();
 
		]]};
 
	};
 
};
 
 
atl_iof_wright_dlg = dlg {
 
	nam = "Джек Райт";
 
	disp = "Джек Райт";
 
	entered = [[Едва вы оказываетесь в главном зале, Джек Райт спрашивает: _"У вас все в порядке? Здесь все в огне. Здесь недалеко должно быть служебное помещение со скафандрами. Нам следует добраться до туда. Без них мы до выхода не дотянем"_. ]];
 
	phr = {
 
		{"А лифт?", [[Джек отрицательно качает головой: _"Без скафандров мы туда не попадем. К тому же, он наверняка отключен"_. ]]};
 
		{"Ты знаешь куда идти?", [[Джек неуверенно пожал плечами: _"Насколько я помню, совсем рядом если идти по часовой стрелке вдоль стены зала"_. ]], code [[
 
			psub('next');
 
		]]};
 
		{tag = "next"};
 
		{"Идем", [[Джек молча кивает. ]], code [[
 
			lifeon('char_wright_iof');
 
			back();
 
		]]};
 
	};
 
};
 
 
atl_iof_main_n3 = room {
 
	var {
 
		ready = false;
 
	};
 
	nam = "Атлантида, Игнис, главный зал, вход в зал А";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал А";
 
	iof = true;
 
	dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северной части зала у самого его края. ]];
 
	enter = function(s) 
 
		if (not s.ready) then
 
			s.ready = true;
 
			if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
				if (where(char_wright_iof) ~= s) then
 
					walkin("atl_iof_wright_dlg");
 
				end;
 
			end;
 
		else
 
			lifeon(atl_iof_time_state);
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_nw3");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", "atl_iof_main_n2");
 
		kh_vroom("В зал А", "atl_iof_ignis_hall_a");
 
	};
 
};
 
 
atl_iof_main_n2 = room {
 
	nam = "Атлантида, Игнис, главный зал, север";
 
	disp = "Атлантида, Игнис, главный зал, север";
 
	iof = true;
 
 dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северной части зала. ]];   
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_ne2");
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_n3");
 
	};
 
};
 
 
atl_iof_main_n1 = room {
 
	nam = "Атлантида, Игнис, главный зал, север, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, север, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к северу от лифта. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_nw1");
 
		kh_vroom("По часовой", "atl_iof_main_ne1");
 
		kh_vroom("В Лифт", function()
 
			pr("Лифт не работает");
 
			return false;
 
		end);
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_main_ne3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в служебное помещение";
 
	disp = "Атлантида, Игнис, главный зал, вход в служебное помещение";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-восточной части зала у самого его края. Рядом с вами расположен вход в служебное помещение. ]];   
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_se3");
 
		kh_vroom("К центру", "atl_iof_main_ne2");
 
		kh_vroom("В служебное помещение", "atl_iof_ignis_service_room");
 
	};
 
};
 
 
atl_iof_main_ne2 = room {
 
	nam = "Атлантида, Игнис, главный зал, северовосток";
 
	disp = "Атлантида, Игнис, главный зал, северовосток";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-восточной части зала. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_n2");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_ne3");
 
	};
 
};
 
 
atl_iof_main_ne1 = room {
 
	nam = "Атлантида, Игнис, главный зал, северовосток, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, северовосток, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к северо-востоку от лифта. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_n1");
 
		kh_vroom("По часовой", "atl_iof_main_se1");
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_main_se3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в зал B";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал B";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-восточной части зала у самого его края. ]];   
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_ne3");
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", atl_iof_blocked_by_fire);
 
		kh_vroom("В зал B", function()
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_iof_main_se2 = room {
 
	nam = "Атлантида, Игнис, главный зал, юговосточная часть";
 
	disp = "Атлантида, Игнис, главный зал, юговосточная часть";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-восточной части зала. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", "atl_iof_main_se1");
 
		kh_vroom("К краю", atl_iof_blocked_by_fire);
 
	};
 
};
 
 
atl_iof_main_se1 = room {
 
	nam = "Атлантида, Игнис, главный зал, юговосточная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, юговосточная часть, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к юго-востоку от лифта. ]];      
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_ne1");
 
		kh_vroom("По часовой", "atl_iof_main_s1");
 
		kh_vroom("К краю", "atl_iof_main_se2");
 
	};
 
};
 
 
atl_iof_main_s3 = room {
 
	nam = "Атлантида, Игнис, главный зал, экстренный выход";
 
	disp = "Атлантида, Игнис, главный зал, экстренный выход";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в южной части зала у самого его края. Рядом с вами расположен шлюз экстренного выхода. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", "atl_iof_main_s2");
 
		kh_vroom("Выход", "atl_iof_outside");
 
	};
 
};
 
 
atl_iof_main_s2 = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть";
 
	disp = "Атлантида, Игнис, главный зал, южная часть";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в южной части зала. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", "atl_iof_main_s1");
 
		kh_vroom("К краю", "atl_iof_main_s3");
 
	};
 
};
 
 
atl_iof_main_s1 = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, южная часть, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь югу от лифта. ]];      
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_se1");
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_s2");
 
	};
 
};
 
 
atl_iof_main_sw3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в зал C";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал C";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-западной части зала у самого его края. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", "atl_iof_main_nw3");
 
		kh_vroom("К центру", atl_iof_blocked_by_fire);
 
		kh_vroom("В зал C", function()
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_iof_main_sw2 = room {
 
	nam = "Атлантида, Игнис, главный зал, югозападная часть";
 
	disp = "Атлантида, Игнис, главный зал, югозападная часть";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в юго-западной части зала. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", "atl_iof_main_nw2");
 
		kh_vroom("К центру", "atl_iof_main_sw1");
 
		kh_vroom("К краю", atl_iof_blocked_by_fire);
 
	};
 
};
 
 
atl_iof_main_sw1 = room {
 
	nam = "Атлантида, Игнис, главный зал, югозападная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, югозападная часть, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к юго-западу от лифта. ]];      
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_nw1");
 
		kh_vroom("К краю", "atl_iof_main_sw2");
 
	};
 
};
 
 
atl_iof_main_nw3 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад, внешний край";
 
	disp = "Атлантида, Игнис, главный зал, северозапад, внешний край";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-западной части зала у самого его края. ]];      
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw3");
 
		kh_vroom("По часовой", "atl_iof_main_n3");
 
		kh_vroom("К центру", "atl_iof_main_nw2");
 
	};
 
};
 
 
atl_iof_main_nw2 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад";
 
	disp = "Атлантида, Игнис, главный зал, северозапад";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь в северо-западной части зала. ]];         
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw2");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_nw3");
 
	};
 
};
 
 
atl_iof_main_nw1 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	iof = true;
 
    dsc = [[Огромный круглый зал охвачен пожаром. Освещение не работает. Множество стеллажей расположеныпо всему залу. Часть их пылает, другие обрушились, блокируя проходы. Клубы черного дыма заволакивают все вокруг. Вы находитесь к северо-западу от лифта. ]];         
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw1");
 
		kh_vroom("По часовой", "atl_iof_main_n1");
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_suits = obj {
 
	nam = "Скафандры";
 
	dsc = "Вдоль стен помещения расставлено несколько {скафандров}. ";
 
	act = function(s)
 
		atl_iof_time_state.pl_safe = true;
 
		walkin("atl_iof_external_radio_dlg");
 
	end;
 
};
 
 
atl_iof_external_radio_dlg = dlg {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	entered = return [[Забравшись в скафандр, вы настраиваете радио. Наконец, вы натыкаетесь на основную частоту станции и слышите голос Моро: "... вытащить их с Игниса. Что мы можем сделать?"^Даркстар отвечает: "Мы подойдем на Наутилусе к аварийному выходу и попробуем проникнуть внутрь". ]];
 
	entered = [[Забравшись в скафандр, вы настраиваете радио. Наконец, вы натыкаетесь на основную частоту станции и слышите голос Моро: "... вытащить их с Игниса. Что мы можем сделать?"^Даркстар отвечает: "Мы подойдем на Наутилусе к аварийному выходу и попробуем проникнуть внутрь". ]];
 
	phr = {
 
		{"Вы слышите меня?", [[В динамике вы слышите встревоженный голос начальника станции: "Моро на связи! Дрейк, вы там все в порядке?" ]], code [[psub('is_ok')]]};
 
		{tag = "is_ok"};
 
		{"Да, все здесь. Мы одеваем скафандры.", [[В динамике раздается голос Майкла Райта: "Отлично. Они защитят вас от жара и обеспечат воздухом. Лифт не работает, поэтому воспользуйтесь аварийным шлюзом в южной части секции. Наутилус подхватит вас там". ]], code [[psub('clear')]]};
 
		{"Да, все здесь. Как нам выбраться?", [[В динамике раздается голос Майкла Райта: "Лифт не работает, поэтому воспользуйтесь аварийным шлюзом в южной части секции. Оденьте скафандры - они защитят вас от жара и обеспечат воздухом. Наутилус подхватит вас у выхода". ]], code [[psub('clear')]]};
 
		{tag = "clear"};
 
		{"Вас понял, конец связи[Выключить радио].", code [[back();]]};  
 
	};
 
};
 
 
atl_iof_ignis_service_room = room {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	disp = "Атлантида, Игнис, служебное помещение";
 
	iof = true;
 
	dsc = [[Небольшое помещение, используемое для хранения различного оборудования, необходимого для обслуживания секции. ]];
 
	way = {
 
		kh_vroom("В главный зал", function(s)
 
			if (atl_iof_time_state.pl_safe) then
 
				return "atl_iof_main_ne3";
 
			else
 
				pr("Я не вернусь туда без снаряжения");
 
				return false;
 
			end;
 
		end);
 
	};
 
	obj = {
 
		'atl_iof_suits'
 
	};
 
};
 
 
atl_iof_outside = room {
 
	nam = "Атлантида, Игнис";
 
	iof = true;
 
	entered = function(s)
 
		lifeoff(atl_iof_time_state);
 
	end;
 
	dsc = function(s)
 
		if (have(char_learr_faint)) then
 
			if (atl_iof_time_state.wright_here) then
 
				return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Как только вы задраиваете внутренний люк, Райт опускает Леарр на пол и начинает вместе с вами отдраивать внешний люк. ^Вода быстро заполняет отсек. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы берете Леарр и выходите наружу. Тяжелый скафандр тянет вас вниз и вы плавно опускаетесь на верхнюю обшивку Наутилуса. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
			else
 
				return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Вы кладете Леарр на пол и снова задраиваете внутренний люк и, тяжело вздохнув, начинаете открывать внешний. ^Вода быстро заполняет отсек. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы берете Леарр и выходите наружу. Тяжелый скафандр тянет вас вниз и вы плавно опускаетесь на верхнюю обшивку Наутилуса. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
			end;
 
		else
 
            if (atl_iof_time_state.learr_safe) then
 
			    return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Задраив люк изнутри, вы приступаете к открытию внешнего. ^Вода быстро заполняет отсек и вы замечаете некоторую растерянность Леарр. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы спрыгиваете вниз. Леарр следует за вами. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
            else
 
                return [[Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Задраив люк изнутри, вы приступаете к открытию внешнего. ^Вода быстро заполняет отсек. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы спрыгиваете вниз. Группа людей, облаченных в скафандры помогает вам забраться внутрь Наутилуса. ]];
 
            end;         
 
		end;
 
	end;
 
	obj = {
 
		vobj("Продолжить", "{Продолжить}", "atl_iof_part2_dlg");
 
	};
 
};
 
 
atl_iof_part2_dlg = dlg {
 
	nam = "Атлантида, Игнис";
 
	entered = [[Вы слышите голос, доносящийся из динамика: "Все в порядке. Наутилус доставит вас на станцию". ]];
 
	phr = {
 
		{"Хорошо[Войти в шлюз Наутилуса].", [[Вы забираетесь внутрь Наутилуса - эта субмарина заметно меньше вашего Левиафана, но также вмещает довольно большой экипаж. Вы снимаете скафандры и проходите в кают-компанию. По радио вы слышите голос Моро: "Как только вы придете в себя после произошедшего, я жду вас в моем кабинете". ^Через считанные минуты вы оказываетесь в доке. Вы с трудом добираетесь до своей каюты, где без сил засыпаете. ]], code [[ walk('atlantis_luna_drake_room'); ]]};
 
		{"Я могу чем-то помочь?", function(s)
 
            if (atl_iof_time_state.carry_learr or atl_iof_time_state.learr_safe or not char_learr_iof.faint) then
 
                psub('help');      
 
                return [[По радио вы слышите голос Райта: "Было бы очень здорово, если бы вы смогли отключить подачу кислорода в Игнис". ]];
 
            else
 
                walk("atl_iof_end");
 
                return [[По радио вы слышите голос Даркстара: "Возвращайтесь на станцию. Вам нужен отдых, а мы попытаемся спасти Леарр". ]];
 
            end;
 
        end};
 
		{tag="help"};
 
		{"Хорошо, я готов", [[Райт продолжает: "Спускайтесь вниз, на крышу Доминуса, и идите к лифту. Где-то с южной стороны должна быть панель управления. С ней вы, думаю, разберетесь". Вы аккуратно спрыгиваете с Наутилуса вниз и идете к лифту. ]], code [[ walk('atl_iof_outside_lift'); ]]};
 
		{"Я передумал", [[Райт отвечает: "Хорошо, возвращайтесь на станцию. Мои люди все сделают". ]], code [[ walk('atl_iof_end'); ]]};
 
	};
 
};
 
 
atl_iof_outside_lift = room {
 
	nam = "Атлантида";
 
	dsc = [[Над вами нависает громада Игниса, покоящаяся на множестве опор. Вы находитесь снаружи шахты лифта, одновременно служащей центральной опорой секции. Сверху вы слышите скрежет металла, подвергаемого сильному термальному воздействию. ]];
 
	obj = {
 
		"atl_iof_air_valves"
 
	};
 
};
 
 
atl_iof_air_valves = room {
 
	var {
 
		valves = { 0,0,0,0,0,0 };
 
		selected = 0;
 
	};
 
	nam = "Кислородные клапаны";
 
	entered = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		atl_iof_air_valves.selected = 0;
 
	end;
 
	pic = function(s)
 
		local image = 'images/air_bg.png';
 
		for i = 1, #s.valves do
 
			image = image .. ";images/air_" .. tostring(s.valves[i]) .. ".png@" .. tostring(((i - 1) % 3) * 32) .. "," .. tostring(math.floor((i - 1) / 3) * 32);
 
		end;
 
		
 
		return image;
 
	end;
 
	dsc = function(s)
 
		if (s.selected == 0) then
 
			return [[Перед собой вы видите 6 клапанов. Каждый из них пропускает через себя воздух только в одном направлении. По показаниям манометра вы видите, что воздух продолжает поступать в Игнис. ]];
 
		else
 
			return "Перед собой вы видите 6 клапанов. Каждый из них пропускает через себя воздух только в одном направлении. По показаниям манометра вы видите, что воздух продолжает поступать в Игнис. В какую сторону вы хотите повернуть выбранный клапан (" .. tostring(s.selected) .. ")?";
 
		end;
 
	end;
 
	obj = {
 
		'atl_iof_select1';
 
		'atl_iof_select2';
 
		'atl_iof_select3';
 
		'atl_iof_select4';
 
		'atl_iof_select5';
 
		'atl_iof_select6';
 
		'atl_iof_air_ccw';
 
		'atl_iof_air_cw';
 
		'atl_iof_air_cancel';
 
	};
 
	is_solved = function(s)
 
		local current = 1;
 
		local visited = {false, false, false, false, false, false};
 
		while not visited[current] do
 
			visited[current] = true;
 
			if (s.valves[current] == 0) then
 
				if (current == 3 or current == 6) then 
 
					return false;
 
				else
 
					current = current + 1;
 
				end;
 
			elseif (s.valves[current] == 1) then
 
				current = current + 3;
 
			elseif (s.valves[current] == 2) then
 
				current = current - 1;
 
			elseif (s.valves[current] == 3) then
 
				current = current - 3;
 
			end;
 
		end;
 
		current = 4;
 
		visited = {false, false, false, false, false, false};
 
		while not visited[current] do
 
			visited[current] = true;
 
			if (s.valves[current] == 0) then
 
				if (current == 3 or current == 6) then 
 
					return false;
 
				else
 
					current = current + 1;
 
				end;
 
			elseif (s.valves[current] == 1) then
 
				current = current + 3;
 
			elseif (s.valves[current] == 2) then
 
				current = current - 1;
 
			elseif (s.valves[current] == 3) then
 
				current = current - 3;
 
			end;
 
		end;
 
		return true;
 
	end;
 
};
 
 
atl_iof_select = function(index)
 
	return obj {
 
		nam = "Клапан " .. tostring(index);
 
		dsc = "{Выбрать клапан " .. tostring(index) .. "}^";
 
		act = function(s)
 
			atl_iof_select1:disable();
 
			atl_iof_select2:disable();
 
			atl_iof_select3:disable();
 
			atl_iof_select4:disable();
 
			atl_iof_select5:disable();
 
			atl_iof_select6:disable();
 
			atl_iof_air_ccw:enable();
 
			atl_iof_air_cw:enable();
 
			atl_iof_air_cancel:enable();
 
			atl_iof_air_valves.selected = index;
 
			return "Вы беретесь за клапан " .. tostring(index);
 
		end;
 
	};
 
end;
 
 
atl_iof_select1 = atl_iof_select(1);
 
atl_iof_select2 = atl_iof_select(2);
london.lua
Show inline comments
 
@@ -53,477 +53,485 @@ port = room {
 
	};
 
    entered = function(s)
 
        if (not char_worker.bought and s.state == 0) then
 
            p("Сидящий у склада рабочий печально вздыхает: \"Выпить бы!\"");
 
        end;
 
        s.state = s.state + 1;
 
        if (s.state == 3) then
 
            s.state = 0;
 
        end;
 
    end;
 
	obj = {'char_worker', 'item_toolbox'};
 
};
 
 
port_street = room {
 
	nam = "port_street";
 
	disp = "Улица";
 
	entered = function(s)
 
		move(char_coachman, here());
 
	end;
 
	way = {
 
		vroom("В порт", "port");
 
		vroom("В пивную лавку", "ginshop");
 
	};
 
	dsc = [[Вы с трудом пробираетесь сквозь толпы людей, спешащих по своим делам. Из порта доносятся гудки пароходов. Со всех сторон доносится шум большого города. Тяжелые черные тучи медленно плывут по небу, грозя разразиться дождем в любую минуту. ]];
 
};
 
 
char_worker = npc {
 
    var {
 
        bought = false;
 
    };
 
	nam = "char_worker";
 
	disp = "Портовый рабочий";
 
	dsc = function(s)
 
        if (s.bought) then
 
            return [[На скамейке у стены склада сидит {рабочий} и курит трубку, попивая что-то из стоящей рядом бутылки. ]];
 
        else
 
            return [[На скамейке у стены склада сидит {рабочий} и курит трубку. ]];
 
        end;
 
    end;
 
	dlg = "char_worker_dlg";
 
	act = function(s)
 
		if (s.bought) then
 
			return "Мне от него больше ничего не надо. ";
 
		else
 
			walkin(s.dlg);
 
		end;
 
	end;
 
};
 
 
char_worker_dlg = dlg {
 
	nam = "char_worker_dlg";
 
	disp = "Портовый рабочий";
 
	entered = function(s)
 
		pjump('new');
 
		return [[Недовольно посмотрев в вашу сторону, рабочий спрашивает: "Чего надо?" ]];
 
	end;
 
	phr = {
 
		{tag='new'},
 
		{always=true, "Могу я воспользоваться вашими инструментами?", [[Рабочий отрывисто отвечает: "Нет", -- после чего отворачивается в другую сторону. ]], [[ pjump 'bribe_try' ]]};
 
		{always=true, "Нет, ничего. ", [[Рабочий недовольно рычит: "Тогда отвали", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{tag='bribe_try'};
 
		{always=true, "Могу я купить их у вас?", [[Рабочий снова повернулся к вам. Он с плохо скрываемым интересом спрашивает: "Сколько?" ]], [[ pjump 'bribing_20' ]]};
 
		{always=true, "Нет, ничего. ", [[Рабочий недовольно рычит: "Тогда отвали", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{tag='bribing_20'};
 
		{"5 шиллингов?", [[ Рабочий усмехнулся: "Издеваешься?" ]]};
 
		{always=true, "10 шиллингов?", [[
 
			"15"
 
		]], [[pjump 'bribing_15']]};
 
		{always=true, "20 шиллингов?", function(s)
 
			if (pl:pay(20)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ char_worker.bought = true; back();]]};
 
		{always=true, "30 шиллингов?", function(s)
 
			if (pl:pay(30)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ char_worker.bought = true; back();]]};
 
		{tag='bribing_15'};
 
		{always=true, "10. ", [["14". ]], [[pjump 'bribing_14']]};
 
		{always=true, "11. ", [[
 
			"14"
 
		]], [[pjump 'bribing_14']]};
 
		{always=true, "12. ", [["14". ]], [[pjump 'bribing_14']]};
 
		{always=true, "13. ", [["14". ]], [[pjump 'bribing_14']]};
 
		{always=true, "14. ", function(s)
 
			if (pl:pay(14)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ char_worker.bought = true; back(); ]]};
 
		{tag='bribing_14'};
 
		{always=true, "10. ", [["13". ]], [[pjump 'bribing_13']]};
 
		{always=true, "11. ", [["13". ]], [[pjump 'bribing_13']]};
 
		{always=true, "12. ", [["13". ]], [[pjump 'bribing_13']]};
 
		{always=true, "13. ", function(s)
 
			if (pl:pay(13)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[ char_worker.bought = true; back(); ]]};
 
		{tag='bribing_13'};
 
		{always=true, "10. ", [[Рабочий недовольно рычит: "Не хочешь -- не надо", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{always=true, "11. ", [[Рабочий недовольно рычит: "Не хочешь -- не надо", -- после чего отворачивается в другую сторону. ]], [[ back(); ]]};
 
		{always=true, "12. ", function(s)
 
			if (pl:pay(12)) then
 
				char_worker.bought = true;
 
				return [[Рабочий довольно потирает руки: "Идет". ]];
 
			else
 
				return [[Рабочий недовольно рычит: "Ты дурак?" ]];
 
			end;
 
		end, [[  back(); ]]};
 
	};
 
};
 
 
ginshop = room {
 
	nam = "ginshop";
 
	disp = "Пивная лавка";
 
    dsc = [[Свет с трудом проникает в небольшую комнатушку через давно не мытые окна. На полу многолетний слой грязи. Будучи излюбленным заведением самых отъявленных алкоголиков, этот магазинчик представляет огромный выбор дешевого и крепкого пойла. ]];   
 
	obj = {'ginshop_trader'};
 
	way = {
 
		vroom("На улицу", "port_street");
 
	};
 
};
 
 
ginshop_trader = npc {
 
    var {
 
        bought = false;
 
    };
 
	nam = "ginshop_trader";
 
	disp = "Продавец";
 
	dsc = [[За грязным прилавком, не раз залитым местными напитками, стоит пожилой {продавец}. Сквозь потрескавшееся мутное стекло в старых очках(второе отсутствует, судя по всему, уже давно) он пытается рассмотреть вас. ]];
 
	dlg = "ginshop_trader_dlg";
 
};
 
 
ginshop_trader_dlg = dlg {
 
	nam = "ginshop_trader_dlg";
 
	disp = "Торговец";
 
	enter = function(s)
 
		if (ginshop_trader.bought or char_worker.bought) then
 
			pr("Мне здесь ничего не нужно. ");
 
			return false;
 
		else
 
			return true;
 
		end;
 
	end;
 
	entered = [[Сняв очки, продавец смотрит на вас и спрашивает: "Добро пожаловать, господин. Чем могу помочь, господин?" ]];
 
	phr = {
 
		{always = true, "Бутылочку чего-нибудь покрепче, пожалуйста. ", [[Продавец кивает: "Сию секунду, господин". Почесав седую голову, он уходит в подвал, откуда возвращается через некоторое время с бутылкой. С громким стуком поставив бутылку на стол, он сообщает вам цену: "Это будет стоить вам 10 шиллингов, господин". ]], code = [[ psub("buy"); ]]};
 
		{always = true, "Это все, спасибо. ", [[Продавец одевает очки обратно и прощается с вами: "Приходите еще, господин". ]], function() 
 
				back();
 
			end;
 
		};
 
		{tag = "buy"};
 
		{always = true, "Беру. ", function(s)
 
			if (pl:pay(10)) then
 
				ginshop_trader.bought = true;
 
				take(item_bottle);
 
				return [[Расплывшись в широкой улыбке продавец подмигивает вам и говорит: "Приходите еще, господин!" ]];
 
			else
 
				return [[Одевая очки обратно, продавец прячет бутылку под прилавок: "Простите, господин, но я сказал 10 шиллингов". ]];
 
			end;
 
		end, code = [[ back(); ]]};
 
		{always = true, "Я передумал. ", [[Одевая очки обратно, продавец прячет бутылку под прилавок: "Подумайте еще, господин. Всего 10 шиллингов, господин!". ]], code = [[ pret(); ]]};
 
	};
 
};
 
 
hotel_street = room {
 
	nam = "hotel_street";
 
	disp = "Улица";
 
	entered = function(s)
 
		move(char_coachman, here());
 
	end;
 
    dsc = [[Перед вами стоит старое двухэтажное здание гостиницы. Массивные деревянные двери открыты, приглашая вас внутрь. Покосившаяся вывеска над ними гласит: "Гостиница Старого Фрэнки". Большинство домов поблизости выглядят старыми и неухоженными - очевидно, в этом районе живут не самые богатые горожане. Вокруг тихо - лишь редкие пешеходы проходят мимо, не обращая на вас никакого внимания. По небу неспешно плывут тяжелые темные тучи. ]];
 
	way = {
 
		vroom("В гостиницу", "hotel_hall");
 
	};
 
};
 
 
hotel_hall = room {
 
	nam = "hotel_hall";
 
	disp = "Гостиница";
 
	dsc = [[Холл гостиницы представляет собой просторный зал, высотой в два этаже. В задней части зала вы видите широкую лестницу, застеленную старой дорожкой, которая некогда была красной. Окна закрыты тяжелыми занавесками, не позволяя свету с улицы проникнуть в помещение. Огромная люстра под потолком дает достаточно света. Вдоль стен расположено несколько скамеек. ]];
 
	dsc = [[Холл гостиницы представляет собой просторный зал, высотой в два этаже. В задней части зала вы видите широкую лестницу, застеленную старой дорожкой, которая некогда была красной. Окна закрыты тяжелыми занавесками, не позволяя свету с улицы проникнуть в помещение. Огромная люстра под потолком дает достаточно света. Вдоль стен расположено несколько диванчиков. ]];
 
	obj = {
 
		'hotel_concierge'
 
		'hotel_concierge',
 
        'hotel_starlight'      
 
	};
 
    entered = function(s)
 
        if (rnd(20) > 19) then
 
            hotel_maid.state = #hotel_maid.actions;
 
            put(hotel_maid, here());
 
        else
 
            remove(hotel_maid, here());
 
        end;
 
    end;   
 
	way = {
 
		vroom("На улицу", "hotel_street");
 
		vroom("К номерам", "hotel_corridor_1"):disable();
 
		vroom("На второй этаж", "hotel_corridor_2"):disable();
 
	};
 
};
 
 
hotel_corridor_1 = room {
 
	nam = "hotel_corridor_1";
 
	disp = "Гостиница, первый этаж";
 
    dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]];
 
    entered = function(s)
 
        if (rnd(10) > 9) then
 
            hotel_maid.state = rnd(#hotel_maid.actions - 1);
 
            put(hotel_maid);
 
        else
 
            remove(hotel_maid);
 
        end;
 
    end;
 
	way = {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №2", "hotel_room_2"):disable();
 
	};
 
};
 
 
hotel_corridor_2 = room {
 
    var {
 
        room_visited = false;
 
    };
 
	nam = "hotel_corridor_2";
 
	disp = "Гостиница, второй этаж";
 
	dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]];
 
	way = {
 
		vroom("В холл", "hotel_hall");
 
		vroom("В комнату №7", "hotel_room_7");
 
	};
 
	enter = function(s)
 
		if (s.room_visited and not s.met_starlight) then
 
			s.met_starlight = true;
 
			walkin('starlight_first_dlg');
 
		end;
 
	end;
 
    entered = function(s)
 
        if (rnd(10) > 9) then
 
            hotel_maid.state = rnd(#hotel_maid.actions - 1);
 
            put(hotel_maid, here());
 
        else
 
            remove(hotel_maid, here());
 
        end;
 
    end;
 
	left = function(s)
 
		if (s.room_visited) then
 
			remove("char_starlight_corridor", where("char_starlight_corridor"));
 
			lifeoff("char_starlight_corridor");
 
		end;
 
	end;
 
};
 
 
hotel_room_2 = room {
 
	nam = "hotel_room_2";
 
	disp = "Гостиница, Комната №2";
 
    dsc = [[Небольшая чистая комната. На столике у окна стоит зажженная лампа, рядом брошена стопка газет. На кровати в углу валяется шляпа хозяина. Окно распахнуто, впуская внутрь прохладный и влажный воздух. ]];   
 
	obj = {
 
		"char_starlight"
 
	};
 
	way = {
 
		vroom("В коридор", "hotel_corridor_1");
 
	};
 
};
 
 
hotel_room_7 = room {
 
	nam = "hotel_room_7";
 
	disp = "Гостиница, Комната №7";
 
	dsc = [[Небольшая чистя комната. Деревянный столик в углу прикрыт белой скатертью. В углу стоит аккуратно сделанный стул. У окна расположена застеленная чистым бельем кровать. На скрипучем деревянном полу лежит старый коврик. ]];
 
	obj = {
 
		'item_lamp', 'room_7_window'
 
	};
 
	way = {
 
		vroom("В коридор", "hotel_corridor_2");
 
	};
 
	entered = function(s)
 
		hotel_corridor_2.room_visited = true;
 
	end;
 
};
 
 
room_7_window = obj {
 
	nam = "room_7_window";
 
	state = 0;
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return "{Окно} закрыто плотными ставнями. ";
 
		elseif (s.state == 1) then
 
			return "Через {окно} вы можете разглядеть мостовую, немногочисленных прохожих, прочные кирпичные дома на другой стороне улицы и тяжелые тучи, нависающие над городом. ";
 
		else
 
			return "Сквозь открытое {окно} до вас доносится шум большого, живущего своей жизнью города. Прохладный ветерок задувает в комнату. ";
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			return [[Вы открываете ставни. ]];
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			return [[Вы открываете окно. ]];
 
		elseif (s.state == 2) then
 
			s.state = 0;
 
			return [[Вы закрываете окно и захлопываете ставни. ]];
 
		end;
 
	end;
 
};
 
 
hotel_concierge = obj {
 
	nam = "hotel_concierge";
 
	disp = "Консьерж";
 
	dsc = [[За стойкой скучает пожилой {консьерж}. Поношенный костюм, выглаженный и начищенный, хорошо сидит на его худощавом теле. Аккуратно подстриженная седая борода украшает его морщинистое лицо. Руки его неподвижно лежат на стойке, а глаза наблюдают за входящими и выходящими посетителями. ]];
 
	act = function(s)
 
		if (hotel_concierge.paid) then
 
			pn("Я уже снял номер. ");
 
		else
 
			walkin(hotel_concierge_dlg);
 
		end;
 
	end;
 
};
 
 
hotel_starlight = npc {
 
    nam = "hotel_starlight";
 
    disp = "Старлайт";
 
    dsc = "На одном из диванчиков сидит мужчина лет сорока-пяти--пятидесяти, одетый в помятый костюм. Он читает газету и не обращает на вас внимания. ";
 
};
 
 
hotel_maid = npc {
 
    var {
 
        state = 1;
 
    };
 
	nam = "hotel_maid";
 
	disp = "Служанка";
 
	actions = {
 
		[[{Служанка} подметает пол. ]];
 
		[[{Служанка} протирает стены. ]];
 
        [[{Служанка} поправляет лампу. ]];
 
        [[На одну из скамеек присела отдохнуть {служанка}. ]];
 
        [[На один из диванчиков присела отдохнуть {служанка}. ]];
 
	};
 
	dsc = function(s)
 
		return s.actions[s.state];
 
	end;
 
	phrases = {
 
		[["Простите, я занята". ]];
 
		[["Вам понравилась ваша комната?" ]];
 
		[["У меня еще много дел сегодня". ]];
 
		[["Простите?" ]];
 
		[["Добрый день". ]];
 
	};
 
};
 
 
hotel_concierge_dlg = dlg {
 
	nam = "hotel_concierge_dlg";
 
	disp = "Консьерж";
 
	entered = [[Консьерж оживился, как только вы подошли: "Здравствуйте! Желаете снять номер?" ]];
 
	phr = {
 
		{1, "Да, мне нужна комната на неделю. ", [[Консьерж, посмотрев в журнал, называет цену: "С вас 100 монет". ]], code = [[ psub("pay"); ]]};
 
		{255, always = true, "Не сейчас. ", function()
 
			back();
 
			return [[Консьерж недовольно отвечает: "Приходите, когда соберетесь! "]];
 
		end};
 
		{tag = "pay"};
 
		{always = true, "Хорошо. ", function()
 
			if pl:pay(100) then
 
				hotel_concierge.paid = true;
 
				path("К номерам", hotel_hall):enable();
 
				path("На второй этаж", hotel_hall):enable();
 
				back();
 
				return [[Консьерж принимает ваши деньги и просит вас расписаться в гостевой книге. После чего вручает вам ключ, сообщая: "Вам на второй этаж, комната номер 7". ]];
 
			else
 
				pon(1);
 
				pret();
 
				back();
 
				return [[Консьерж недовольно отвечает: "Приходите, когда деньги будут!" ]];
 
			end;
 
		end};
 
		{always = true, "Я передумал. ", [[Консьерж недовольно отвечает: "Приходите, когда соберетесь!" ]], code = [[ pon(1); pret(); ]]}
 
	};
 
};
 
 
starlight_first_dlg = dlg {
 
    nam = "starlight_first_dlg";
 
	disp = "Гостиница, второй этаж";
 
	entered = [[Выйдя из своей комнаты, вы замечаете поднимающегося по лестнице человека. Это мужчина лет сорока-пяти--пятидесяти. Он одет в помятый темно-серый костюм, на носу -- маленькие очки в простой оправе. В левой руке он держит какую-то газету, а правой спешно ощупывает карманы в поисках чего-то. Заметив вас он улыбается и спрашивает: "Господин Дрейк?" ]];
 
	left = function(s)
 
        remove(hotel_starlight, hotel_hall);
 
		path('В комнату №2', hotel_corridor_1):enable();
 
		put(hotel_corridor_2, "char_starlight_corridor");
 
		lifeon("char_starlight_corridor");
 
	end;
 
	phr = {
 
		{ "Мы встречались?", [[Человек пожимает плечами: "Скорее всего нет, мое имя Джозеф Старлайт. Вы случайно не родственник Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-то говорит?" ]], code [[ pstart('have_we_met') ]]};
 
		{ "Кто вы?", [[Человек протягивает вам руку: "Джозеф Старлайт, адвокат. Название Вестхейвен Трансоушен вам о чем-то говорит?" ]], code [[ pstart('who_are_you') ]]};
 
		{ "Да, я Дэвид Дрейк.", [[Человек протягивает вам руку: "Здравствйте! Я Джозеф Старлайт. Вы сын Уильяма Дрейка? Название Вестхейвен Трансоушен вам о чем-нибудь говорит?" ]], code [[ pstart('i_am_drake') ]]};
 
		{ "Простите, я спешу.", [[Человек огорченно вздыхает: "Простите". Подойдя к лестнице он оборачивается и говорит: "Мое имя - Джозеф Старлайт. Если хотите поговорить о Вестхейвен Трансоушен, зайдите ко мне в комнату 2 когда у вас будет время". ]], code [[ back(); ]]};
 
		{tag = "have_we_met"};
 
		{ "Я сын Уильяма. Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже". ]], code [[ back(); ]]};
 
		{ "Кто вы?", [[Джозеф Старлайт отвечает: "Адвокат. Я занимался делом о банкротстве Вестхейвен Трансоушен". ]], code [[ pstart('who_are_you') ]]};
 
		{tag = "who_are_you"};
 
		{ "Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже". ]], code [[ back(); ]]};
 
		{tag = "i_am_drake"};
 
		{ "Да все верно. Это название компании моего отца. Вы знаете что произошло?", [[Джозеф Старлайт чешет подбородок: "Немного. Это было, без сомнения, самое запутанное мое дело. Нам лучше поговорить у меня в комнате. Номер 2, на первом этаже". ]], code [[ back(); ]]};
 
	};
 
};
 
 
char_starlight_corridor = obj {
 
	nam = "char_starlight_corridor";
 
	dsc = function(s)
 
		return [[{Джозеф Старлайт} продолжает ощупывать карманы, словно ищет что-то. ]];
 
	end;
 
	act = function(s)
 
		remove(s, where(s));
 
		lifeoff(s);
 
		return [[Раздраженно махнув рукой, Джозеф быстрым шагом спускается вниз по лестнице. ]];
 
	end;
 
	life = function(s)
 
		if (rnd(5) > 4) then
 
			remove(s, where(s));
 
			lifeoff(s);
 
			return [[Раздраженно махнув рукой, Джозеф быстрым шагом спускается вниз по лестнице. ]];
 
		end;
 
	end;
 
};
 
 
char_starlight = obj {
 
    var {
 
        forgetful = 0;
 
        complete = 0;
 
    };
 
	nam = "char_starlight";
 
	dsc = function(s)
 
		return [[{Джозеф Старлайт} сидит за столом и делает какие-то записи в блокноте. ]];
 
	end;
 
	act = function(s)
 
		walkin(starlight_dlg);
 
	end;
 
};
 
 
starlight_dlg = dlg {
 
	nam = "starlight_dlg";
 
	disp = "Джозеф Старлайт";
 
	entered = function(s)
 
		if (not char_starlight.forgetful) then
 
			pon(0);
 
		else
 
			poff(0);
 
		end;
 
		if (have(item_charts) and not warehouse18_found) then
 
			pon(14);
 
		else
 
			poff(14);
 
		end;
 
		char_starlight.forgetful = true;
 
		if (char_starlight.complete) then
 
			return [[Джозеф оборачивается к вам и удивленно вскакивает со стула: "Как вы сюда попали?!" Он подходит к двери, открывает ее и снова закрывает, после чего запирает замок: "Опять забыл, да что ж такое?!" Потом он снова оборачивается к вам и говорит: "Господин Дрейк? Мое имя Джозеф ..." - внезапно он делает паузу, после чего продолжает: "Мы же вроде все обсудили с вами?" ]];
 
		else
 
			return [[Джозеф оборачивается к вам и удивленно вскакивает со стула: "Как вы сюда попали?!" Он подходит к двери, открывает ее и снова закрывает, после чего запирает замок: "Опять забыл, да что ж такое?!" Потом он снова оборачивается к вам и говорит: "Господин Дрейк? Мое имя Джозеф Старлайт. Я думаю нам есть что обсудить касательно компании вашего отца". ]];
 
		end;
 
	end;
 
	phr = {
 
		{1, "Вы уже представлялись. ", [[Джозеф Старлайт удивленно переспрашивает: "Да?! Что-то я этого не помню. Впрочем я такими мелочами себе голову не забиваю. Давайте к делу". ]]};
 
		{2, "Я вас слушаю. ", [[Джозеф Старлайт чешет подбородок: "Как я уже говорил, это дело было одним из самых запутанных. Судите сами: верхушка преуспевающей компании, внезапно исчезает, не оставив следов. Сначала мы предполагали, что это дело рук конкурентов - прибрать компанию к рукам, прикрыть или использовать их разработки. Однако, когда начали копать, выяснили, что к этому моменту Вестхейвен Трансоушен была не в лучшем состоянии -- отдел исследований закрыт, документы уничтожены, некоторые подразделения проданы. Говоря проще -- компания разваливалась". ]], code [[ pstart('father_bankrupt') ]]};
 
		{3, tag = 'father_bankrupt'};
 
		{4, "Но зачем Уильяму разрушать собственную компанию? ", [[
 
			Джозеф Старлайт пожимает плечами: "Если бы я знал. Судя по той информации, что я о нем собрал, он весьма грамотный человек и у него были толковые помощники. Не знаю, сможете ли вы что-то сказать, господин Дрейк. Вам тогда сколько было? 10 лет?" Джозеф поправляет очки и продолжает: "У меня, конечно, есть предположение. Исследовательский отдел занимался чем-то принципиально новым, не связанным с основной деятельностью компании. Это подтверждают и отчеты компании - инженеры получали колоссальное финасирование, заказывалось огромное количество заказных деталей. Также компания зачем-то наняла нескольких видных ученых. В итоге, что бы там не планировалось - дело закончилось провалом и большими расходами, поэтому компанию пришлось закрыть. Чего я не понимаю - зачем он исчез? Любой банк бы выдал большой кредит такому человеку". ]], code [[ pstart('fathers_project') ]]};
 
		{5, tag = 'fathers_project', empty = code [[psub('final') ]]};
 
		{6, "А может у него наоборот все получилось? ", [[Джозеф Старлайт пожимает плечами: "Тогда почему он исчез? Почему оставил семью? Еще больше вопросов". ]]};
 
		{7, "Не думаю, что из-за простой неудачи мой отец мог бы бросить вообще все. ", [[Джозеф Старлайт чешет подбородок: "Я и не говорил, что это *простая* неудача. Судя по всему, проект был весьма перспективным. Настолько, что можно было рискнуть всем". ]]};
 
		{8, "И что это мог быть за проект? ", [[Джозеф Старлайт пожимает плечами: "Понятия не имею. Какое-то масштабное исследование, может быть экспедиция - это подтверждают и большое количество заказанных компанией деталей и нанятые ученые". ]], code [[ psub('submarine'); ]]};
 
		{9, tag = 'submarine'};
 
		{10, "Для чего это могло понадобиться Уильяму? ", [[Джозеф Старлайт снимает очки: "Понятия не имею. Совершенно". ]]};
 
		{11, "Это бы объяснило куда он исчез. ", [[Джозеф Старлайт чешет голову: "Может быть, только никаких документов не сохранилось. Впрочем они очень много денег на какие-то секретные проекты тратили последнее время". ]]};
 
		{13, tag = 'final'};
 
		{14, always = true, "Вы можете посмотреть эти бумаги? Вам знакомы эти места? [Показать Джозефу документы отца]", [["Так вот зачем вы здесь! Я догадывался. Давайте ваши бумаги сюда", - Джозеф выхватывает документы из ваших рук и бегло просматривает их. Почесав голову, он говорит: "Одно из этих мест я знаю". Он сообщает вам адрес склада 18. ]], code [[ warehouse18_found = true; poff(14); ]]};
 
		{15, always = true, "Мне пора. ", [[Джозеф Старлайт отворачивается к столу: "До встречи". ]], code [[ back(); ]]};
 
	};
 
};
 
\ No newline at end of file
0 comments (0 inline, 0 general)