Files @ 2b06d0a1d1c7
Branch filter:

Location: games/Awakening/wright.lua

Silverwing
Fix dock2 and some typos
--[[
Здесь игрок получает адреса всех ключевых локаций первой части
]]
door_wright = obj {
	nam = "door_wright";
	disp = "Дверь";
	locked = true;
	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 {
	nam = "char_wright_home";
	disp = "Джек Райт";
	dsc = function(s)
		if (s.documents) then
			return [[ ^{Джек Райт} с интересом рассматривает схемы, которые вы ему отдали^ ]];
		else
			return [[ ^Вы видите {молодого человека} одетого в недорогой, но опрятный костюм. ^ ]];
		end;
	end;
	act = function(s)
		walkin(wright_dlg);
	end;
};

wright_dlg = dlg {
	nam = "wright_dlg";
	disp = "Джек Райт";
	state = 1;
	enter  = function(s)
		--Небольшой костылик - вырубаем проверку на пустой диалог. Логика тут довольно запутанная и движок скорее всего ниасилит все условия
	end;
	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
			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('empty');
			return [[
				"Привет". 
			]];
		elseif (s.state == 6) then
			psub('warehouse_discovered2');
			return [[
				"Привет". 
			]];
		elseif (s.state == 7) then
			psub('warehouse_discovered3');
			return [[
				"Привет". 
			]];
		end;
	end;
	phr = {
		{tag='first_visit'};
		{"У меня есть кое-какие документы и этот адрес. Возможно они помогут понять, что произошло и куда пропали мой и твой отец. ", [[
			"Я просмотрел много материала. Тогда пропало больше двух десятков сотрудников Вестхейвен Трансоушен, но конкретнее я ничего сказать не могу. Если покажешь мне свои бумаги, возможно я смогу что-то сказать".
		]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]};
		{200, tag='ask_documents'};
		{always = true, "[Отдать документы Джеку]", [[
			Джек забирает бумаги из ваших рук и тщательно их рассматривает. Через некоторое время он говорит: "Док 2 мне знаком. Отец там часто бывал. Остальные - затрудняюсь ответить. Если оставишь документы мне, я попробую поискать".
		]], code[[ 
			dock_found = true;
			wright_dlg.state = 3; 
			remove(item_charts, pl); 
			back(); 
		]]};
		{always = true, "У меня есть несколько вопросов", [[
			"Чем смогу - помогу".
		]], code [[psub('questions')]]};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{300, tag='checking_documents'};
		{always = true, "Можешь вернуть мне бумаги?", [[
			"Забирай, только без них я ничего не смогу найти", - Джек возвращает вам документы.
		]]};
		{always = true, "У меня есть несколько вопросов", [[
			"Чем смогу - помогу".
		]], code [[psub('questions')]]};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{400, tag='questions'};
		{"Ты знаешь, чем Майкл занимался в Вестхейвен Трансоушен?", [[
			"Частично", - Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому - никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и господина Дрейка. "
		]]};
		{always = true, "Вернемся к делу", [[
			"Слушаю"
		]], code [[ pret(); ]]};
		{500, tag='ask_documents2'};
		{always = true, "[Отдать документы Джеку]", [[
			Джек забирает бумаги и раскладывает их на своем столе.
		]], code[[ wright_dlg.state = 3; remove(item_charts, pl); back(); ]]};
		{always = true, "У меня есть несколько вопросов", [[
			"Чем смогу - помогу".
		]], code [[psub('questions')]]};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{600, tag='warehouse_discovered'};
		{"Знаешь, что я нашел в доке? [Рассказать о Левиафане]", [[
			Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть! "
		]], code [[ walkin('wright_leviathan_cutscene1'); ]]};
		{always = true, "Отлично, я съезжу туда и посмотрю, что удастся найти. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{700, tag='warehouse_discovered2'};
		{always = true, "На склад мне попасть не удалось. ", [[
			Джек с досадой стучит по столу: "Черт! "^
			Еще пару минут он задумчиво сидит в кресле, после чего предлагает идею: "Может попробуем попасть туда ночью? Я сам довезу тебя, но внутри все придется делать тебе. "
		]], code [[ 
			s.state = 6;
			psub('warehouse_break_in'); 
		]]};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{750, tag='empty'};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{800, tag='warehouse_break_in'};
		{always = true, "Надо попробовать. ", [[
			"Хорошо". Приготовления занимают все время до вечера. Наконец, после наступления темноты, вы садитесь в повозку и Джек привозит вас к складу 32. 
		]], code [[ walk('warehouse_32_night'); ]]};
		{always = true, "Лучше не стоит. ", [[
			Джек разочарованно отвечает: "Дело твое".
		]], code [[ pret(); ]]};
		{900, tag='warehouse_discovered3'};
		{always = true, "Надо еще раз попасть на склад. ", [[
			"Могу устроить сегодня ночью. Устроит? "
		]], code [[ psub('warehouse_break_in'); ]]};
		{always = true, "Я вернусь позже. ", [[
			"До встречи".
		]], code [[ back(); ]]};
		{1000, tag='leviathan_restored'};
		{always = true, "Мне удалось починить \"Левиафан\". Мне понадобится помощник на борту ", [[
			Джек поднимается с кресла и одевает пальто: "Безусловно, я готов", - сообщает вам он. "Здесь меня ничто не держит, а там... Я хочу попытаться найти моего отца, раз уж выдался такой шанс".
		]], code [[ 
			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 =[[
		В центре комнаты стоит массивный дубовый стол. На полированной поверхности стола разбросаны в кажущемся беспорядке листы бумаги, письменные принадлежности и множество других полезных и не очень предметов. 
	]];
	obj = {
		
	};
};

wright_house_cabinet = room {
	nam = "wright_house_cabinet";
	disp = "Дом Райта, кабинет";
	dsc = [[
		Вы находитесь в кабинете Райта. Сквозь большие окна в комнату проникает достаточно света. Стены оклеены старыми обоями с полустершимся рисунком.
	]];
	obj = {
		'wright_table',
		'wright_drawing',
		'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();
	};
};