Changeset - 0946ca600d70
[Not reviewed]
default
0 4 0
Silverwing - 7 years ago 2017-11-06 17:56:36

lfc fix/reimplementation in progress
4 files changed with 208 insertions and 146 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -32,8 +32,6 @@ global {
 
	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;
 
    atl_fta_darkstar_debrief = false;
atlantis_dlg.lua
Show inline comments
 
char_darkstar_dlg = dlg {
 
	var {
 
		state = 0;
 
        fta = 0;      
 
	};
 
	nam = "Винсент Даркстар";
 
	disp = "Винсент Даркстар";
 
@@ -72,9 +73,12 @@ char_darkstar_dlg = dlg {
 
		elseif (atl_fta_state == 2 or atl_fta_state == 3) and not atl_fta_darkstar_debrief then
 
	        atl_fta_darkstar_debrief = true;
 
            psub("fta");
 
            poff('show_clock');         
 
            poff("show_clock", "accuse_saboteur");
 
            if (have(item_goldmans_clock)) then
 
                pon('show_clock');
 
                pon("show_clock");
 
            end;
 
            if (atl_lfc_saboteur_known) then
 
                pon("accuse_saboteur");
 
            end;
 
			return [[Винсент Даркстар приказывает: "Рассказывайте". ]];
 
		else
 
@@ -227,19 +231,35 @@ char_darkstar_dlg = dlg {
 
		{tag="accuse_leroy", false, "Саботаж -- дело рук Леруа.", [[Даркстар недовольно отчитывает вас: "Во-первых, я вас просил не лезть в это дело. Во-вторых, я бы не был так уверен. В третьих, я еще раз прошу вас больше расследованию не мешать". ]], code [[ atl_lfc_suspect="leroy"; ]]};
 
        {tag="more_questions", "У меня есть несколько вопросов.", [[Даркстар кивает: "Слушаю".]], code [[ psub('ask_more'); ]]};
 
		{always=true, "Я пойду.", [[Даркстар прощается: "До встречи". ]], code [[ back(); ]]};
 
		{tag="fta"};
 
        {tag="fta"};
 
		{"Что вы хотите услышать?", [[Даркстар поясняет: "Все, что произошло в Солисе и показалось вам подозрительным". ]]};
 
		{"Первый взрыв раздался, когда я был у входа в секцию[Кратко пересказать основные события]", [[Даркстар молча кивает. ]]};
 
		{"Один из клапанов работал неправильно: давление в нем было выше нормы.", [[Даркстар с сомнением произносит: "Интересно. За десять лет работы станции такого никогда не было". ]]};
 
		{tag="show_clock", "[Показать часы]А еще я нашел там вот это", [[Даркстар забирает часы и вертит их в руках: "Так-так-так. Франсуа Голдман. Леонард однозначно в этом замешан, но действовал он не один. Я все еще думаю, что они попытаются вывести из строя одну из субмарин. Скорее всего их целью будет Наутилус". ]], code [[ atl_lfc_goldman_exposed = true; psub("why_nau"); ]]};
 
		{"Первый взрыв раздался, когда я был у входа в секцию... [Кратко пересказать основные события]", [[Даркстар молча кивает. ]], code [[
 
            char_darkstar_dlg.fta = char_darkstar_dlg.fta + 1;
 
            if char_darkstar_dlg.fta == 2 then
 
                psub("fta2");
 
            end;
 
        ]]};
 
		{"Один из клапанов работал неправильно: давление в нем было выше нормы.", [[Даркстар с сомнением произносит: "Интересно. За десять лет работы станции такого никогда не было". ]], code [[
 
            char_darkstar_dlg.fta = char_darkstar_dlg.fta + 1;
 
            if char_darkstar_dlg.fta == 2 then
 
                psub("fta2");
 
            end;
 
        ]]};
 
		{tag="show_clock", "[Показать часы]А еще я нашел там вот это.", [[Даркстар забирает часы и вертит их в руках: "Так-так-так. Франсуа Голдман. Леонард однозначно в этом замешан, но действовал он не один. Я все еще думаю, что они попытаются вывести из строя одну из субмарин. Скорее всего их целью будет Наутилус". ]], code [[ 
 
            atl_rep_darkstar = atl_rep_darkstar + 1;
 
            atl_lfc_goldman_exposed = true; 
 
            psub("why_nau"); 
 
        ]]};
 
        {tag="accuse_saboteur", "Голдман признался в саботаже и сдал Леруа... [Пересказать слова Голдмана]", [[Даркстар кивает: "Прекрасно. Вы далеко пойдете, Дрейк". ]], code [[ walkin("atl_lfc_outro_expose"); ]]};
 
        {tag="fta2"};
 
        {"Что-то еще?", [[Даркстар скрещивает руки на груди и откидывается на спинку кресла, продолжая смотреть прямо вам в глаза. Он подтверждает: "Да, Дрейк. Мне понадобится ваша помощь. Я все еще считаю, что следующей целью саботажника станет Наутилус". ]], code [[ psub("why_nau"); ]]};
 
		{tag="why_nau"};
 
		{"Почему именно Наутилус?", [[Даркстар объясняет:"Саботажник хочет не убить всех, а поломать станцию. Он хочет наверх, а не умереть здесь. Наутилус -- субмарина малого радиуса, а Энтерпрайз и Левиафан способны доставить нас на континенты". ]]};
 
		{"Соглашусь с вашим предположением", [[Даркстар кивает: "Хорошо. Я попрошу вас помочь мне с этим заданием". ]], code [[ psub("lfc_help"); ]]};
 
		{"Мне кажется, целью будет другая субмарина", [[Даркстар кивает: "Я это учел. Мы будем следить за всеми доками. Также, я попрошу вас помочь мне с этим заданием". ]], code [[ psub("lfc_help"); ]]};
 
		{tag="lfc_help"};
 
		{"Почему я?", [[Даркстар объясняет:"Я хочу свести количество людей, знающих о саботажах к минимуму, а вы уже в курсе ситуации". ]]};
 
		{"Что я должен сделать?", [[Даркстар рассказывает:"В семь часов вечера вы отправляетесь в док Наутилуса и наблюдаете за происходящим в течение ночи. Если вы замечаете что-то подозрительное -- принимаете меры на ваше усмотрение", -- Даркстар достает из ящика стола револьвер и кладет перед вами: "Это вам не помешает".
 
		]], code [[
 
		{"Что я должен сделать?", [[Даркстар рассказывает:"Сейчас отправляетесь в док Наутилуса и наблюдаете за происходящим в течение ночи. Если вы замечаете что-то подозрительное -- принимаете меры на ваше усмотрение", -- Даркстар достает из ящика стола револьвер и кладет перед вами: "Это вам не помешает". ]], code [[
 
			take(item_colt);
 
			atl_lfc_state = 2;
 
			back();
 
@@ -2306,11 +2326,10 @@ char_goldman_dlg = dlg {
 
		{tag="give_clock_2"};
 
		{"Эти часы я подобрал на месте саботажа. Теперь вы не отвертитесь.", [[Леонард поднимается и садится. Тяжело вздохнув он сознается: "Хорошо, я все скажу. Только если обещаете, что меня больше не будут держать на этой станции". ]], code [[ psub('promise'); ]]};
 
		{tag="promise"};
 
		{always = true, "Я сделаю все, что в моих силах.", [[Леонард Голдман вздыхает и начинает сбивчиво рассказывать: "Это все Мишель придумал. У меня бы мозгов не хватило. Он и в Игнисе пожар устроил. Солис он тоже хотел взорвать сам, но Даркстар, кажется подозревает его. Поэтому он упросил меня это сделать... И зачем я согласился?!"
 
		]], code [[ atl_lfc_saboteur_known = true; psub("leroy");]]};
 
		{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");]]};
 
		{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"};
atlantis_from_the_ashes.lua
Show inline comments
 
@@ -375,10 +375,7 @@ atl_fta_game_over_left_2 = room {
 
 
atl_fta_ending = room {
 
	nam = "Атлантида";
 
	dsc = [[
 
		Через шлюз вы выбираетесь из Солиса и оказываетесь снаружи. Через некоторое время вас подбирает Наутилус, чтобы вернуть на станцию. От экипажа вы узнаете, что потребление энергии на станции сокращено до восстановления Солиса. ^
 
		Вернувшись на станцию, вы сразу же отправляетесь в свою каюту, чтобы отдохнуть. 
 
	]];
 
	dsc = [[Через шлюз вы выбираетесь из Солиса и оказываетесь снаружи. Через некоторое время вас подбирает Наутилус, чтобы вернуть на станцию. От экипажа вы узнаете, что потребление энергии на станции сокращено до восстановления Солиса. ^Вернувшись на станцию, вы сразу же отправляетесь в свою каюту, чтобы отдохнуть. ]];
 
	entered = function(s)
 
		atl_fta_state = 2;
 
		remove(item_atl_fta_suit);
 
@@ -386,4 +383,4 @@ atl_fta_ending = room {
 
	obj = {
 
		vway('continue', '{Продолжить}', 'atl_luna_drake_room');
 
	};
 
};
 
\ No newline at end of file
 
};
atlantis_looking_for_clues.lua
Show inline comments
 
@@ -37,10 +37,7 @@ atl_lfc_darkstar_dlg = dlg {
 
			poff("random_lie", "wright_said");
 
			pon("random_true");
 
		end;
 
		return [[
 
			Винсент Даркстар сидит за столом в своем кабинете. Он приглашает вас сесть напротив, а охранников просит покинуть помещение. ^
 
			Как только они выходят, Даркстар достает из под стола папку с какими-то бумагами и начинает спрашивать вас: "Где вы были, когда начался пожар?"
 
		]];
 
		return [[Винсент Даркстар сидит за столом в своем кабинете. Он приглашает вас сесть напротив, а охранников просит покинуть помещение. ^Как только они выходят, Даркстар достает из под стола папку с какими-то бумагами и начинает спрашивать вас: "Где вы были, когда начался пожар?" ]];
 
	end;
 
	phr = {
 
		{tag="q1"};
 
@@ -247,10 +244,7 @@ atl_lfc_darkstar_interlude_2 = room {
 
 
atl_lfc_non_coop = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		После этого он снимает телефонную трубку и отдает туда приказ: "Заберите Дрейка". ^
 
		В комнату входят два стражника и сопровождают вас в вашу комнату.
 
	]];
 
	dsc = [[После этого он снимает телефонную трубку и отдает туда приказ: "Заберите его". ^В комнату входят два стражника и сопровождают вас в вашу комнату. ]];
 
	obj = {
 
		kh_vway("Продолжить", "{Продолжить}", function()
 
			if (atl_lfc_darkstar_dlg.total_limit < 1) then
 
@@ -265,33 +259,25 @@ atl_lfc_non_coop = room {
 
atl_lfc_game_over = room {
 
	nam = "Игра окончена";
 
	disp = "Игра окончена";
 
	dsc = [[
 
		Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Вы останетесь под стражей до тех пор, пока мы не найдем саботажника. После этого, мы решим, что делать с вами".^
 
		Вам ничего не остается, кроме как ждать. Через несколько дней стражники сопровождают вас на Левиафан. Там вас запирают в одной из кают. Несколько недель Левиафан полным ходом движется в неизвестном направлении. Наконец, вас выпускают из каюты. Один из охранников сообщает вам: "В нескольких милях к северу вдоль побережья находится небольшой городок. Оттуда вы сможете добраться куда вам угодно. Мы дадим вам немного еды и достаточно денег, чтобы вы могли добраться домой".^
 
		Вы забираете переданные вам вещи и через несколько мгновений Левиафан скрывается под поверхностью воды. Никаких средств для возвращения на Атлантиду у вас не остается и, скорее всего, вы никогда не узнаете что стало с вашим отцом.
 
	]];
 
	dsc = [[Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Вы останетесь под стражей до тех пор, пока мы не найдем саботажника. После этого, мы решим, что делать с вами". ^Вам ничего не остается, кроме как ждать. Через несколько дней стражники сопровождают вас на Левиафан. Там вас запирают в одной из кают. Несколько недель Левиафан полным ходом движется в неизвестном направлении. Наконец, вас выпускают из каюты. Один из охранников сообщает вам: "В нескольких милях к северу вдоль побережья находится небольшой городок. Оттуда вы сможете добраться куда вам угодно. Мы дадим вам немного еды и достаточно денег, чтобы вы могли добраться домой". ^Вы забираете переданные вам вещи и через несколько мгновений Левиафан скрывается под поверхностью воды. Никаких средств для возвращения на Атлантиду у вас не остается и, скорее всего, вы никогда не узнаете что стало с вашим отцом. ]];
 
};
 
 
atl_lfc_waiting = room {
 
	nam = "Атлантида, Луна, ваша комната";
 
	dsc = [[
 
		Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Отдохните. Завтра мы попробуем поговорить еще раз".
 
	]];
 
	dsc = [[Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Отдохните. Завтра мы попробуем поговорить еще раз". ]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_waiting");
 
	};
 
};
 
 
atl_lfc_dock_s = room {
 
	nam = "Атлантида, Аква, док Наутилуса, у входа";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. У западной стены вы видите пульт управления краном. У северной стены составлены какие-то ящики. 
 
	]];
 
	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");
 
		kh_vroom("К западной стене", "atl_lfc_dock_w");
 
		kh_vroom("К восточной стене", "atl_lfc_dock_e");
 
		kh_vroom("На мостик", "atl_lfc_bridge_s");
 
		
 
	};
 
	obj = {
 
@@ -307,60 +293,145 @@ atl_nd_crane = obj {
 
	};
 
	nam = "Кран";
 
	dsc = function(s)
 
		local r = [[
 
			Под потолком расположен {кран}, прикрепленный к балкам, служащим направляющими для его движения. 
 
		]];
 
		if px == 2 and py == 2 then
 
			r = r .. "Сейчас кран висит в центре комнаты над Наутилусом.";
 
		local r = [[Под потолком расположен {кран}, прикрепленный к балкам, служащим направляющими для его движения. ]];      
 
        if px == 1 and py == 1 then
 
            r = r .. "Сейчас кран висит в северо-западной части комнаты. ";
 
        elseif px == 1 and py == 2 then
 
            r = r .. "Сейчас кран висит в северной части комнаты. ";
 
        elseif px == 1 and py == 3 then
 
            r = r .. "Сейчас кран висит в северо-восточной части комнаты. ";
 
        elseif px == 1 and py == 2 then
 
            r = r .. "Сейчас кран висит над мостиком в западной части комнаты. ";
 
		elseif px == 2 and py == 2 then
 
			r = r .. "Сейчас кран висит в центре комнаты над Наутилусом. ";
 
        elseif px == 3 and py == 2 then
 
            r = r .. "Сейчас кран висит над мостиком в восточной части комнаты. ";
 
        elseif px == 1 and py == 3 then
 
            r = r .. "Сейчас кран висит над мостиком в юго-западной части комнаты. ";
 
        elseif px == 2 and py == 3 then
 
            r = r .. "Сейчас кран висит над мостиком в южной части комнаты. ";
 
        elseif px == 3 and py == 3 then
 
            r = r .. "Сейчас кран висит над мостиком в юго-восточной части комнаты. ";
 
		end;
 
		
 
		return r;
 
	end;
 
	act = [[
 
		Скорее всего, вы можете управлять краном с пульта управления в этой комнате.
 
	]];
 
	act = [[Скорее всего, вы можете управлять краном с пульта управления в этой комнате. ]];
 
};
 
 
atl_lfc_crane_control_obj = obj {
 
    nam = "atl_lfc_crane_control_obj";
 
    dsc = "Рядом с вами расположен пульт управления краном. ";
 
};
 
 
atl_lfc_crane_control = room {
 
    nam = "atl_lfc_crane_control";
 
    hideinv = true;
 
    way = {
 
        kh_vroom("Отойти от пульта", "atl_lfc_dock_w");
 
    };
 
    dsc = [[Вы стоите у панели управления краном. Перед вами три рычага: два из них, отмеченные как в<->з и c<->ю установлены в среднее положение, третий, отмеченный как "верх-низ", установлен в верхнее положение. ]];
 
    obj = {
 
        "atl_nd_crane";
 
        "atl_lfc_crane_ew_dec";
 
        "atl_lfc_crane_ew_inc";
 
        "atl_lfc_crane_ns_dec";
 
        "atl_lfc_crane_ns_inc";
 
        "atl_lfc_crane_ud_tgl";
 
    };
 
};
 
 
atl_lfc_crane_ew_dec = {
 
    nam = "atl_lfc_crane_ew_dec";
 
    dsc = "^^{Сдвинуть рычаг \"в<->з\" влево}^";
 
    act = {
 
        if atl_nd_crane.px == 1 then
 
            return [[Рычаг заклинило. ]];
 
        end;
 
        atl_nd_crane.px = atl_nd_crane.px - 1;
 
        return "Кран сдвигается на запад. ";
 
    };
 
};
 
 
atl_lfc_crane_ew_inc = {
 
    nam = "atl_lfc_crane_ew_inc";
 
    dsc = "{Сдвинуть рычаг \"в<->з\" вправо}^";
 
    act = {
 
        if atl_nd_crane.px == 3 then
 
            return [[Рычаг заклинило. ]];
 
        end;
 
        atl_nd_crane.px = atl_nd_crane.px + 1;
 
        return "Кран сдвигается на восток. ";
 
    };
 
};
 
 
atl_lfc_crane_ns_dec = {
 
    nam = "atl_lfc_crane_ns_dec";
 
    dsc = "^^{Сдвинуть рычаг \"с<->ю\" влево}^";
 
    act = {
 
        if atl_nd_crane.px == 1 then
 
            return [[Рычаг заклинило. ]];
 
        end;
 
        atl_nd_crane.py = atl_nd_crane.py - 1;
 
        return "Кран сдвигается на север. ";
 
    };
 
};
 
 
atl_lfc_crane_ns_inc = {
 
    nam = "atl_lfc_crane_ns_inc";
 
    dsc = "{Сдвинуть рычаг \"с<->ю\" вправо}^";
 
    act = {
 
        if atl_nd_crane.px == 3 then
 
            return [[Рычаг заклинило. ]];
 
        end;
 
        atl_nd_crane.py = atl_nd_crane.py + 1;
 
        return "Кран сдвигается на юг. ";
 
    };
 
};
 
 
atl_lfc_crane_ud_tgl = {
 
    nam = "atl_lfc_crane_ud_tgl";
 
    dsc = "{Повернуть рычаг \"Верх-низ\"}";
 
    act = "Вам это сейчас не нужно. ";
 
};
 
 
atl_nd_barrel = obj {
 
	nam = "Бочка";
 
	dsc = [[
 
		На крюке крана висит {бочка}, судя по всему -- пустая. 
 
	]];
 
	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;
 
		return 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 = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь у западной стороны. На небольшом расстоянии от вас вы видите пульт управления краном. У северной стены дока составлено несколько ящиков.
 
	]];
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь у западной стороны. На небольшом расстоянии от вас вы видите пульт управления краном. У северной стены дока составлено несколько ящиков. ]];
 
	way = {
 
		kh_vroom("По часовой стрелке", "atl_lfc_dock_n");
 
		kh_vroom("Против часовой стрелки", "atl_lfc_dock_s");
 
		kh_vroom("На мостик", "atl_lfc_dock_wb");
 
		kh_vroom("К северной стене", "atl_lfc_dock_n");
 
		kh_vroom("К южной стене", "atl_lfc_dock_s");
 
		kh_vroom("На мостик", "atl_lfc_bridge_w");
 
		kh_vroom("К пульту управления", "atl_lfc_control");
 
	};
 
    obj = {
 
        "atl_nd_crane";
 
    };
 
};
 
 
atl_lfc_dock_n = room {
 
	nam = "Атлантида, Аква, док Наутилуса, северная часть";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь в северной части помещения. У западной стены вы видите пульт управления краном. 
 
	]];
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь в северной части помещения. У западной стены вы видите пульт управления краном. ]];
 
	way = {
 
		kh_vroom("По часовой стрелке", "atl_lfc_dock_e");
 
		kh_vroom("Против часовой стрелки", "atl_lfc_dock_w");
 
		kh_vroom("К восточной стене", "atl_lfc_dock_e");
 
		kh_vroom("К западной стене", "atl_lfc_dock_w");
 
	};
 
	obj = {
 
        "atl_nd_crane";   
 
		"atl_lfc_boxes";
 
	};
 
};
 
@@ -372,75 +443,64 @@ atl_lfc_boxes = obj {
 
	nam = "Ящики";
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return [[
 
				У стены составлено несколько {ящиков}.
 
			]];
 
			return [[У стены составлено несколько {ящиков}. ]];
 
		elseif (s.state == 1) then
 
			return [[
 
				У стены составлено несколько {ящиков}, за которыми вы сможете спрятаться, поджидая саботажника.
 
			]];
 
			return [[У стены составлено несколько {ящиков}, за которыми вы сможете спрятаться, поджидая саботажника. ]];
 
		elseif (s.state == 2) then
 
			return [[
 
				У стены составлено несколько {ящиков}.
 
			]];
 
			return [[У стены составлено несколько {ящиков}. ]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 0) then
 
			s.state = 1;
 
			return [[
 
				За этими ящиками можно спрятаться!
 
			]];
 
			return [[За этими ящиками можно спрятаться! ]];
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			walk("atl_lfc_behind_boxes");
 
			return [[
 
				Вы прячетесь за ящиками. Через некоторое время дверь дока открывается и кто-то входит. В полумраке издалека вы не можете разглядеть кто это, но скорее всего, это саботажник.
 
			]];
 
			return [[Вы прячетесь за ящиками. Через некоторое время дверь дока открывается и кто-то входит. В полумраке издалека вы не можете разглядеть кто это, но скорее всего, это саботажник. ]];
 
		else
 
			return [[
 
				Вам это больше не нужно.
 
			]];
 
			return [[Вам это больше не нужно. ]];
 
		end;
 
	end;
 
};
 
 
atl_lfc_bridge_s = obj {
 
	nam = "Атлантида, Аква, док Наутилуса, мостик";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в южной части дока.
 
	]];
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в южной части дока. ]];
 
	way = {
 
		kh_vroom("Ко входу", "atl_lfc_dock_s");
 
		kh_vroom("На соседний мостик", "atl_lfc_bridge_e");
 
	};
 
    obj = {
 
        "atl_nd_crane";
 
    };   
 
};
 
 
atl_lfc_bridge_e = obj {
 
	nam = "Атлантида, Аква, док Наутилуса, мостик";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в восточной части дока.
 
	]];
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в восточной части дока. ]];
 
	way = {
 
		kh_vroom("К стене", "atl_lfc_dock_w");
 
		kh_vroom("На соседний мостик", "atl_lfc_bridge_s");
 
	};
 
    obj = {
 
        "atl_nd_crane";
 
    };   
 
};
 
 
atl_lfc_bridge_w = obj {
 
	nam = "Атлантида, Аква, док Наутилуса, мостик";
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в западной части дока.
 
	]];
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус.  Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. Вы находитесь на одном из этих мостиков, в западной части дока. ]];
 
	way = {
 
		kh_vroom("К стене", "atl_lfc_dock_e");
 
		kh_vroom("К субмарине", function(s)
 
			pr [[
 
				Мне там нечего делать
 
			]];
 
			pr [[Вам там нечего делать. ]];
 
			return false;
 
		end);
 
	};
 
    obj = {
 
        "atl_nd_crane";
 
    };   
 
};
 
 
atl_lfc_sab = obj {
 
@@ -449,13 +509,14 @@ atl_lfc_sab = obj {
 
	};
 
	nam = "Мишель Леруа";
 
	canshoot = true;
 
	dsc = [[
 
		В нескольких метрах от вас стоит {Мишель Леруа}. Он обращен к вам спиной и не видит вас.
 
	]];
 
	dsc = [[В нескольких метрах от вас стоит {Мишель Леруа}. Он обращен к вам спиной и не видит вас. ]];
 
	act = function(s)
 
		walkin("atl_lfc_sab_dlg");
 
	end;
 
	life = function(s)
 
        if (where(atl_lfc_sab_vis) ~= where(pl)) then
 
            move(atl_lfc_sab_vis, where(pl));
 
        end;   
 
		if (s.tick > 0) then
 
			s.tick = s.tick - 1;
 
		else
 
@@ -482,57 +543,33 @@ atl_lfc_sab_vis = obj {
 
	onshoot = function(s)
 
		if (s.shot == 0) then
 
			s.shot = 1;
 
			return [[
 
				Вы стреляете в силуэт, но промахиваетесь. Через мгновение, где-то рядом пролетает пуля.
 
			]];
 
			return [[Вы стреляете в силуэт, но промахиваетесь. Через мгновение, где-то рядом пролетает пуля. ]];
 
		else
 
			remove(char_leroy, where('char_leroy'));
 
			walk("atl_lfc_dock_end_shot");
 
			return [[
 
				Вы повторно стреляете в саботажника и, судя по всему, попадаете. Леруа хватается за грудь и медленно падает на пол.
 
			]];
 
			return [[Вы повторно стреляете в саботажника и, судя по всему, попадаете. Леруа хватается за грудь и медленно оседает на пол. ]];
 
		end;
 
	end;
 
	dsc = function(s)
 
		if (where(pl) == atl_lfc_behind_boxes and where(atl_lfc_sab) == atl_lfc_bridge_w) then
 
			return [[
 
				Вы видите {Мишеля Леруа}, идущего по мостику, ведущему к Наутилусу.
 
			]];
 
			return [[Вы видите {Мишеля Леруа}, идущего по мостику, ведущему к Наутилусу. ]];
 
		elseif (where(pl) == atl_lfc_behind_boxes and where(atl_lfc_sab) == atl_lfc_dock_w) then
 
			return [[
 
				Вы видите {Мишеля Леруа}, идущего вдоль западной стены дока.
 
			]];
 
			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));
 
			return [[Вы видите {Мишеля Леруа}, идущего по мостику в западной части дока. Он не видит вас. ]];
 
		end;
 
	end;
 
};
 
 
atl_lfc_sab_dlg = dlg {
 
	nam = "Мишель Леруа";
 
	dsc = [[
 
		Мишель Леруа стоит спиной к вам и не видит вашего приближения. Вы можете воспользоваться этим.
 
	]];
 
	dsc = [[Мишель Леруа стоит спиной к вам и не видит вашего приближения. Вы можете воспользоваться этим. ]];
 
	phr = {
 
		{"Застрелить его", [[
 
			Вы стреляете саботажнику в спину и, не успев понять, что произошло, он падает в воду, пронзенный пулей.
 
		]], code [[ 
 
		{"Застрелить его", [[Вы стреляете саботажнику в спину и, не успев понять, что произошло, он падает в воду, пронзенный пулей. ]], 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;
 
		{"Попытаться оглушить его", [[Вы оглушаете саботажника. ]], code [[ 
 
			walk("atl_lfc_dock_end_ko");
 
		]]};
 
	};
 
@@ -540,47 +577,58 @@ atl_lfc_sab_dlg = dlg {
 
 
atl_lfc_dock_end_shot = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[
 
		Через несколько минут в помещение входит охрана станции во главе с Винсентом Даркстаром. Винсент отдает приказ охранникам унести тело, а сам обращается к вам: "Хорошая работа. Вскоре мы сообщим о том, когда вы сможете забрать Левиафан".^
 
		Вы возвращаетесь в свою комнату, чтобы отдохнуть после тяжелой ночи... Проснувшись днем, вы слышите по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить".
 
	]];
 
	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;
 
        atl_lfc_leroy = 1;
 
        remove(char_leroy, where('char_leroy'));
 
        if (atl_lfc_goldman_exposed) then
 
            atl_lfc_goldman = 2;
 
            remove(char_goldman, where('char_goldman'));
 
        end;
 
	end;
 
};
 
 
atl_lfc_dock_end_barreled = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[
 
		Вы попадаете в один из тросов, на который крепилась бочка и она с грохотом катится вниз, сбивая с ног саботажника. Тот падает в воду. Он не успевает придти в себя, как в помещение входит охрана станции, привлеченная шумом, во главе с Винсентом Даркстаром. Винсент отдает приказ охранникам увести Мишеля, а сам обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним. Если нам потребуется ваша помощь, мы сообщим".^
 
		Прошло около недели, прежде чем вы услышали по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить".
 
	]];
 
	dsc = [[Вы попадаете в один из тросов, на который крепилась бочка и она с грохотом катится вниз, сбивая с ног саботажника. Тот падает в воду. Он не успевает придти в себя, как в помещение входит охрана станции, привлеченная шумом, во главе с Винсентом Даркстаром. Винсент отдает приказ охранникам увести Мишеля, а сам обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним. Если нам потребуется ваша помощь, мы сообщим". ^Прошло около недели, прежде чем вы услышали по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить". ]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_luna_drake_room");
 
	};
 
	entered = function(s)
 
		atl_lfc_state = 3;
 
        atl_lfc_leroy = 2;
 
        atl_lfc_goldman = 2;
 
        remove(char_leroy, where('char_leroy'));
 
        remove(char_goldman, where('char_goldman'));
 
	end;
 
};
 
 
atl_lfc_dock_end_ko = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[
 
		Вы оглушаете саботажника и ждете, когда в помещение придут охранники.^
 
		Они приходят через несколько минут вместе с Винсентом Даркстером. Охранники уносят неподвижного Леруа, а Даркстар обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним. Если нам потребуется ваша помощь, мы сообщим".^
 
		Прошло около недели, прежде чем вы услышали по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить".
 
	]];
 
	dsc = [[Вы оглушаете саботажника и ждете, когда в помещение придут охранники. ^Они приходят через несколько минут вместе с Винсентом Даркстером. Охранники уносят неподвижного Леруа, а Даркстар обращается к вам: "Хорошая работа. Нам надо будет немного поработать с ним. Если нам потребуется ваша помощь, мы сообщим". ^Прошло около недели, прежде чем вы услышали по радио голос Моро: "Дрейк, подойдите в мой кабинет. Нам надо поговорить". ]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_luna_drake_room");
 
	};
 
	entered = function(s)
 
		atl_lfc_state = 3;
 
        atl_lfc_leroy = 2;
 
        atl_lfc_goldman = 2;
 
        remove(char_leroy, where('char_leroy'));
 
        remove(char_goldman, where('char_goldman'));
 
	end;
 
};
 
 
atl_lfc_outro_expose = cutscene("Атлантида", "Атлантида", [[Даркстар поднимает трубку телефона и отдает приказ: "Приведите ко мне Леруа и Голдмана". Вас он просит отойти в угол комнаты и ждать там. ^Допрос продолжался недолго. Сперва Леруа упирался, но подельник сдал его с потрохами и в итоге ему осталось только признать свою вину. ^Подозреваемых заперли в их комнатах, а вас Даркстар отпустил отдыхать. Придя в свою комнату, вы тут же ложитесь спать. ^Вы просыпаетесь от телефонного звонка. Подняв трубку вы слышите голос Даркстара: "Дрейк, зайдите ко мне". ]], "atl_luna_drake_room", function(s)
 
    atl_lfc_state = 3;
 
    atl_lfc_leroy = 2;
 
    atl_lfc_goldman = 2;
 
    atl_rep_moreau = atl_rep_moreau + 1;
 
    atl_rep_darkstar = atl_rep_darkstar + 1;
 
    rel_walter = rel_walter + 1;
 
    remove(char_leroy, where('char_leroy'));
 
    remove(char_goldman, where('char_goldman'));
 
end);
0 comments (0 inline, 0 general)