Files @ 515b20cf25e0
Branch filter:

Location: games/Awakening/wright.lua

Silverwing
Various fixes
--[[
Здесь игрок получает адреса всех ключевых локаций первой части
]]
door_wright = obj {
    var {
        locked = true;
    };
	nam = "door_wright";
	disp = "Дверь";
	act = function(s)
		if (s.locked) then
			walkin "wright_entry_dlg";
		end;
		return true;
	end;
	dsc = function(s)
		if (s.locked) then
			return [[Обшарпанная деревянная {дверь}, ведущая в дом, заперта изнутри. ]];
		else
			return [[Обшарпанная деревянная {дверь}, ведущая в дом, незаперта. ]];
		end;
	end;
};

char_wright_home = obj {
    var {
        known = false;
        documents = false;
        known_leviathan = false;
    };
	nam = "char_wright_home";
	disp = "Джек Райт";
	dsc = function(s)
		if (s.documents) then
			return [[За столом сидит {Джек Райт} и с интересом рассматривает схемы, которые вы ему отдали. ]];
		else
            if (s.known) then
                return [[За столом сидит {Джек Райт}, неспешно просматривая какие-то бумаги. ]];
            else
			    return [[За столом сидит {молодой человек}, неспешно просматривающий какие-то бумаги. ]];
            end;         
		end;
	end;
	act = function(s)
		walkin(wright_dlg);
	end;
};

wright_dlg = dlg {
    var {
        state = 1;
    };
	nam = "wright_dlg";
	disp = "Джек Райт";
	entered = function(s)
		if (atlantis_found and submarine_leviathan.air_level > 400000 and submarine_leviathan.circuit_breaks == 0 and submarine_leviathan.power_on) then
			psub('leviathan_restored');
			return [[Джек Райт отвлекается от газеты: "Добрый день". ]];
		elseif (s.state == 1) then
			--First meeting
            char_wright_home.known = true;         
			psub('first_visit');
			return [[Перед вами молодой человек, одетый в недорогой, но опрятный костюм. Его бледное лицо украшает короткая темная борода и пышные усы. Темные волосы коротко острижены. Серые глаза с интересом разглядывают вас. Он протягивает вам руку и представляется: "Добрый день. Мое имя -- Джек Райт. Майкл -- мой отец, но он пропал несколько лет назад". ]];
		elseif (s.state == 2) then
			--Documents not given
			psub('ask_documents');
			return [[Джек отвлекается от газеты: "Добрый день. Вы обещали принести какие-то документы". ]];
		elseif (s.state == 3) then
			--Documents given
			if (not leviathan_discovered) then
				psub('checking_documents');
				return [[Джек отвлекается от документов: "Добрый день. Если вы по поводу документов, то я еще ничего не нашел". ]];
			else
				s.state = 5;
				warehouse32_found = true;
				psub('warehouse_discovered');
				return [[Джек отвлекается от документов: "Добрый день. У меня хорошие новости. Я нашел склад 32", - он достает карту города и показывает вам место. ]];
			end;
		elseif (s.state == 4) then
			--Documents taken back
			psub('ask_documents2');
			return [[Джек отвлекается от газеты: "Добрый день. Я хотел бы еще раз вглянуть на эти бумаги". ]];
		elseif (s.state == 5) then
			psub('warehouse_discovered2');
            poff("phr_warehouse_visited");
            poff("phr_leviathan");
            if (warehouse32_visited) then
                pon("phr_warehouse_visited");
            end;
            if (not char_wright_home.known_leviathan) then
                pon("phr_leviathan");
            end;
			return [[Джек отвлекается от газеты: "Добрый день". ]];
		elseif (s.state == 7) then
			psub('warehouse_discovered3');
			return [[Джек отвлекается от газеты: "Добрый день". ]];
		end;
	end;
	phr = {
		{tag='first_visit'};
		{"Мое имя -- Дэвид Дрейк. Мне удалось найти кое-какие документы в одном из тайников отца. Этот адрес был среди них. Вы что-то знаете о судьбе моего отца? ", [[Джек вздыхает: "Это бесполезно. Я изучил практически все, до чего сумел дотянуться - газеты, судебные дела. И ничего - никаких зацепок. Компания обанкротилась, руководители пропали". ]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]};
		{tag='ask_documents'};
		{always = true, "[Отдать документы]Посмотрите это. Не думаю, что вы это видели. ", [[Джек нехотя забирает бумаги из ваших рук и бегло их осматривает. Пожимая плечами, он комментирует: "Ничего интересного, просто планы старых зданий. Док 2? Отец там часто бывал, впрочем не думаю, что после 10 лет там что-то осталось. Если хотите - можете оставить документы, я попробую разузнать побольше". ]], code [[ 
			dock_found = true;
			wright_dlg.state = 3; 
			remove(item_charts, pl); 
			psub("checking_documents");
		]]};
		{always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]};
		{always = true, "Я вернусь позже. ", [[ Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
		{tag='checking_documents'};
		{always = true, "Вы можете вернуть мне бумаги? ", [["Конечно. Если принесете их снова -- я возобновлю поиски", - Джек возвращает вам документы. ]], code [[
			wright_dlg.state = 4;
			put(item_charts, pl);
			back();
		]]};
		{always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]};
		{always = true, "Я вернусь позже. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
		{tag='questions'};
		{"Чем ваш отец занимался в Вестхейвен Трансоушен? ", [["Частично", - Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому - никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и вашего отца". ]]};
		{always = true, "Вернемся к делу. ", [[Джек кивает: "Хорошо". ]], code [[ pret(); ]]};
		{tag='ask_documents2'};
		{always = true, "[Отдать документы]Вот документы. ", [[Джек забирает бумаги и раскладывает их на своем столе: "Спасибо, я посмотрю, что смогу найти". ]], code[[ wright_dlg.state = 3; remove(item_charts, pl); back(); ]]};
		{always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]};
		{always = true, "Я вернусь позже. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
		{tag='warehouse_discovered'};
		{"[Рассказать о Левиафане]Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[
            char_wright_home.known_leviathan = true;
            rel_jack = rel_jack + 1;
            walkin('wright_leviathan_cutscene1'); 
        ]]};
		{always = true, "Отлично, я съезжу туда и посмотрю, что удастся найти. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]};
		{tag='warehouse_discovered2'};
        {tag="phr_leviathan", "[Рассказать о Левиафане]Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[
            char_wright_home.known_leviathan = true;
            rel_jack = rel_jack + 1;
            walkin('wright_leviathan_cutscene1'); 
        ]]};      
		{tag="phr_warehouse_visited", always = true, "На склад мне попасть не удалось. ", function(s)
            psub('warehouse_break_in');       
            return [[
                Джек с досадой стучит по столу: "Черт! "^
                Еще пару минут он задумчиво сидит в кресле, после чего предлагает идею: "Может попробуем попасть туда ночью? Я сам довезу тебя, но внутри все придется делать тебе. "
            ]]
        end};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{tag='warehouse_break_in'};
		{always = true, "Надо попробовать. ", [[
			"Хорошо". Приготовления занимают все время до вечера. Наконец, после наступления темноты, вы садитесь в повозку и Джек привозит вас к складу 32. 
		]], code [[ walk('warehouse_32_night'); ]]};
		{always = true, "Лучше не стоит. ", [[
			Джек разочарованно отвечает: "Дело твое".
		]], code [[ pret(); ]]};
		{tag='warehouse_discovered3'};
		{always = true, "Надо еще раз попасть на склад. ", [[
			"Могу устроить сегодня ночью. Устроит? "
		]], code [[ psub('warehouse_break_in'); ]]};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{tag='leviathan_restored'};
		{always = true, "Мне удалось починить \"Левиафан\". Мне понадобится помощник на борту ", [[
			Джек поднимается с кресла и одевает пальто: "Безусловно, я готов", - сообщает вам он. "Здесь меня ничто не держит, а там... Я хочу попытаться найти моего отца, раз уж выдался такой шанс".
		]], code [[ 
			lifeon("char_wright");
			table.insert(pl.party, 'wright');
			walk('leviathan_wardroom'); 
		]]};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
	};
};

wright_leviathan_cutscene1 = dlg {
	nam = "wright_leviathan_cutscene1";
	disp = "Джек Райт";
	entered = [[
		Вместе с Джеком вы приехали в док 2. Райт долго и с интересом осматривает металлический корпус субмарины. С задумчивым видом он ходит вокруг, рассматривая его. Наконец он спрашивает: "Она работает?"
	]];
	phr = {
		{"10 лет под водой. Не думаю, что там хоть что-то сохранилось... ", [[
			Джек задумчиво смотрит на металлический корпус, на табличку с выгравированным названием. Наконец он говорит: "Надо попытаться попасть внутрь, а затем посмотрим". Еще немного постояв, он возвращается к кэбу. Джек оборачивается к вам и спрашивает: "Едешь?"
		]], code [[ psub('choice'); ]]};
		{"Не уверен, но, думаю, да. ", [[
			Джек задумчиво смотрит на металлический корпус, на табличку с выгравированным названием. Наконец он говорит: "Надо попытаться попасть внутрь, а затем посмотрим". Еще немного постояв, он возвращается к кэбу. Джек оборачивается к вам и спрашивает: "Едешь?"
		]], code [[ psub('choice'); ]]};
		{tag='choice'};
		{"Да, поехали. ", [[	
			Вы садитесь в кэб и возвращаетесь домой к Джеку. 
		]], [[
			walk('wright_house_cabinet');
		]]};
		{"Я останусь тут. ", [[	
			Джек садится в кэб и уезжает домой. 
		]], [[
			walk('dock_mooring');
		]]};
	};
};

wright_entry_dlg = dlg {
	nam = "wright_entry_dlg";
	disp = "Голос за дверью";
	entered = function(s)
		psub("start");
		return [[
			Вы стучите в дверь. Через некоторое время вам отвечает сонный голос: "Кто здесь?"
		]];
	end;
	hideinv = true;
	phr = {
		{tag = "start"};
		{always = true, "Могу я увидеть Майкла Райта?", [[
			"Кто спрашивает?"
		]], code [[ psub('who') ]]};
		{always = true, "Извините, я ошибся адресом", code [[ back(); ]]},
		{tag = 'who'};
		{"Вы знаете Уильяма Дрейка?", [[
			"Понятия не имею. Кто спрашивает?" - В голосе собеседника явно прослеживается некоторое недовольство. 
		]], code [[ psub('irritated') ]]};
		{"Майкл Райт здесь живет?", [[
			"Кто спрашивает?" - В голосе собеседника явно прослеживается некоторое недовольство. 
		]], code [[ psub('irritated') ]]};
		{always = true, "У меня важное сообщение для него", [[
			"Он тут не живет уже много лет. Уходите" - вам показалось, что голос собеседника слегка дрогнул при этих словах. 
		]], code [[ back(); ]]};
		{tag = 'irritated'};
		{"Мой отец - Уильям Дрейк, работал с Майклом Райтом. Так вы знаете его?", [[
			Вы слышите звук отодвигающегося засова и ответ: "Проходите". 
		]], code [[ 
			door_wright.locked = false;
			path("В дом", wright_house):enable();
			back();
		]]};
	};
};

wright_drawing = obj {
	nam = 'wright_drawing';
	dsc = [[На стене напротив двери висит большая {картина}, изображающая пароход. ]];
	act = [[На картине во всех деталях изображен пароход _"Огненная стрела"_, принадлежавший Вестхейвен Трансоушен, полным ходом идущий по бескрайнему океану. Яркое солнце освещает палубу, на которой находится множество пассажиров, прогуливающихся, общающихся, сидящих на скамейках. Из всех трех труб _"Огненной стрелы"_ идет густой черный дым, а на корме развевается флаг Соединенного Королевства. Под картиной вы видите небольшую табличку с надписью: _"Майклу Райту, создателю ,,Огненной стрелы''. Альберт Мур, 1889"_. ]];
};

wright_table = obj {
	nam = "wright_table";
	disp = "Стол";
	dsc =[[В центре комнаты стоит массивный дубовый стол. На его полированной поверхности разбросаны в кажущемся беспорядке бумаги, письменные принадлежности, старые газеты и другие предметы. ]];
};

wright_house_cabinet = room {
	nam = "wright_house_cabinet";
	disp = "Дом Райта, кабинет";
	dsc = [[Стены комнаты оклеены старыми обоями с полустершимся рисунком. Сквозь большие окна в комнату проникает достаточно света. ]];
	obj = {
        'wright_drawing',   
		'wright_table',
		'char_wright_home'
	};
	way = {
		vroom("В гостиную", "wright_house_front_room");
	};
};

wright_house_front_room = room {
	nam = "wright_house_front_room";
	disp = "Дом Райта, гостиная";
	dsc = [[Окна в гостиной завешены тяжелыми занавесками и в полутьме вы с трудом различаете очертания предметов интерьера - дорогих старых кресел, изящно украшенных шкафов, покрытых многолетним слоем пыли канделябров. ]];
	entered = function(s)
		if (not s.visited) then
			s.visited = true;
			pn([[У двери стоит молодой человек, примерно вашего возраста. Как только вы заходите, он закрывает за вами дверь и просит проследовать за ним в кабинет. ]]);
		end;
	end;
	way = {
		vroom("На улицу", "wright_house");
		vroom("В кабинет", "wright_house_cabinet");
	};
};

wright_house = room {
	nam = "wright_house";
	disp = "Дом Райта";
	enter = function(s)
		put(char_coachman, here());
	end;
    dsc = [[Небольшой кирпичный особняк, принадлежащий Майклу Райту, стоит на одной из тихих улочек, на окраине Лондона. Дом выглядит неухоженным - штукатурка местами осыпалась, лужайка заросла высокой травой, часть окон закрыта ставнями, явно давно не открывавшимися. ]];
	obj = {'door_wright'};
	way = {
		vroom("В дом", "wright_house_front_room"):disable();
	};
};