Files @ 976ab8b9b44b
Branch filter:

Location: games/Awakening/warehouse18.lua

Silverwing
Worker fix
--[[
Игрок может попасть сюда только после диалога с Майклом.
Эта локация имеет владельца, который будет готов сотрудничать.
Здесь игрок найдет чертеж подводной лодки.
]]

warehouse_18_entry = room {
	nam = "warehouse_18_entry";
	disp = "Вход на склад 18";
	entered = function(s)
		move(char_coachman, here());
	end;
	dsc = [[
		Вы находитесь на улице перед закрытыми воротами, ведущими на территорию склада 18. За высоким забором находятся несколько крупных строений. Склад расположен на окраине одного из промышленных районов Лондона. Здесь грязно, а небо затянуто дымом от многочисленных фабрик. Дышать здесь еще тяжелее чем в других районах этого города и вы вряд ли явились бы сюда, не будь у вас важного дела. 
	]];
	way = {
		'to_warehouse_18'
	};
	obj = {
		'char_w18_sec'
	};
};

to_warehouse_18 = room {
	nam = "warehouse_18_entry";
	disp = "На склад";
	enter = function(s)
		pr("Охранник не пропустит вас. ");
		return false;
	end;
};

char_w18_sec = npc {
	nam = 'char_w18_sec';
	disp = "Охранник";
	dsc = function(s)
		return [[
			Рядом с воротами скучает {охранник}. Он насвистывает какую-то мелодию и поглядывает на изредка проходящих мимо людей. 
		]];
		
	end;
	act = function(s)
		if (s.first_time) then
			walkin('dlg_w18_sec_out_first');
		else
			walkin('dlg_w18_sec_out');
		end;
	end;
	first_time = true;
};

dlg_w18_sec_out_first = dlg {
	nam = 'dlg_w18_sec_out_first';
	disp = "Охранник";
	entered = [[
		Как только вы подходите, охранник недовольно бурчит: "Слушаю".
	]];
	phr = {
		{1, "Вы можете пропустить меня внутрь?", [[
			Почесав затылок, охранник отвечает: "На склад допускаются только сотрудники". 
		]]};
		{2, "Я Дэвид Дрейк. ", [[
			Охранник пожимает плечами: "Мне это ни о чем не говорит".
		]]};
		{3, "Могу я поговорить с управляющим?", [[
			Охранник отрицательно качает головой: "Управляющий занят".
		]], [[ pon(4); ]]};
		{4, false, always = true, "У меня срочное дело к управляющему. ", [[
			Охранник чешет подбородок: "Я не могу вас пропустить". 
		]], [[ pon(5);pon(6); ]]};
		{5, false, "Может эти 5 шиллингов помогут вам принять решение? ", [[
			Глаза охранника заблестели. Он выхватывает монеты из ваших рук и говорит: "Следуйте за мной". 
		]], [[ walkin('warehouse_18_manager'); ]]};
		{6, false, "Может есть способ договориться? ", [[
			Охранник отрицательно качает головой: "Что тебе нужно от управляющего?"
		]], [[ pon(7);pon(8); ]]};
		{7, false, "Это касается только меня и его. ", [[
			Охранник недовольно осматривает вас: "Ладно, пойдемте".
		]], [[ walkin('warehouse_18_manager'); ]]};
		{8, false, "Дело касается собственности Вестхейвен Трансоушен. ", [[
			Охранник отрывисто отвечает: "Здесь нет собственности никаких компаний, кроме Атлантик Транспорт. Можете уходить".
		]], [[ poff(7); ]]};
		{255, always = true, "Нет, ничего. ", "До свидания. ", [[ back(); ]]};
	};
};

dlg_w18_sec_out = dlg {
	nam = 'dlg_w18_sec_out';
	disp = "Охранник";
	entered = [[
		"Слушаю". 
	]];
	phr = {
		{1, always = true, "Проводите меня к управляющему", [[
			"Следуйте за мной". 
		]], [[ walkin('warehouse_18_manager'); ]]};
		{2, always = true, "Проводите меня на склад", [[
			"Следуйте за мной".
		]], [[ walkin('warehouse_18_inside'); ]]};
		{255, always = true, "Нет, ничего", [[
			"До свидания". 
		]], [[ back(); ]]};
	};
};

dlg_w18_sec_in = dlg {
	nam = 'dlg_w18_sec_in';
	disp = "Охранник";
	entered = [[
		"Слушаю". 
	]];
	phr = {
		{1, always = true, "Я закончил. ", [[
			"Следуйте за мной. 
		]], [[ walkin('warehouse_18_entry'); ]]};
		{255, always = true, "Нет, ничего", "До свидания", [[ back(); ]]};
	};
};

dlg_w18_sec_mgr = dlg {
	nam = 'dlg_w18_sec_out';
	disp = "Охранник";
	entered = [[
		"Слушаю". 
	]];
	phr = {
		{1, always = true, "Проводите меня к выходу.", [[
			"Следуйте за мной". 
		]], [[ walkin('warehouse_18_entry'); ]]};
		{2, always = true, "Проводите меня на склад.", [[
			"Следуйте за мной".
		]], [[ walkin('warehouse_18_inside'); ]]};
		{255, always = true, "Нет, ничего.", [[
			"До свидания". 
		]], [[ back(); ]]};
	};
};

warehouse_18_manager = room {
	nam = "warehouse_18_manager";
	disp = "Склад 18, кабинет управляющего";
	dsc = [[
		Вы находитесь в кабинете управляющего складом 18. Это небольшая комната, со столом в центре.
	]];
	obj = {
		'char_w18_sec_mgr',
		'char_w18_mgr',
		'w18_shelves'
	};
};

w18_shelves = obj {
	nam = "w18_shelves";
	dsc = "Вдоль стен комнаты расположены {шкафы}, заполненные какими-то папками. ";
	act = "Вы пробегаетесь взглядом по папкам. По большей части, это описи содержимого склада, какие-то отчетные документы и прочая бесполезная для вас макулатура. Даже если бы здесь и было что-то важное, охранник с управляющим вряд ли позволили бы вам взять это. ";
};

char_w18_sec_mgr = npc {
	nam = 'char_w18_sec_mgr';
	disp = "Охранник";
	dsc = [[
		{Охранник} стоит у двери и внимательно наблюдает за вами. 
	]];
	phrases = {
		[["Говорите с управляющим, не со мной". ]],
		[["Мне нечего вам сказать". ]],
		[["Я не управляющий". ]]
	};
};

char_w18_mgr = npc {
	nam = "char_w18_mgr";
	disp = "Управляющий складом";
	dsc = [[
		За столом сидит {управляющий} и разбирает какие-то бумаги. Кажется, он не обращает на вас никакого внимания.
	]];
	dlg = "dlg_w18_mgr"
};

dlg_w18_mgr = dlg {
	nam = "dlg_w18_mgr";
	disp = "Управляющий складом";
	entered = [[
		"Добрый день, что вы хотели?"
	]];
	phr = {
		{1, 'Мое имя Дэвид Дрейк, я сын владельца "Вестхейвен Трансоушен". ', code = [[
			if (punseen(2, 3)) then
				char_w18_sec.first_time = false;
				char_w18_sec_mgr.dlg = 'dlg_w18_sec_mgr';
				pr("\"Все принадлежащее старой компании мы перенесли в отдельное помещение. Охранник проводит вас туда. \"");
			else
				pr("\"И?\"");
			end;
		]]};
		{2, 'Этот склад ранее принадлежал "Вестхейвен Трансоушен". ', code = [[
			if (punseen(1, 3)) then
				char_w18_sec.first_time = false;
				char_w18_sec_mgr.dlg = 'dlg_w18_sec_mgr';
				pr("\"Все принадлежащее старой компании мы перенесли в отдельное помещение. Охранник проводит вас туда. \"");
			else
				pr("\"И?\"");
			end;
		]]};
		{3, 'Меня интересуют некоторые вещи, которые остались здесь от предыдущего владельца. ', code = [[
			if (punseen(1, 2)) then
				char_w18_sec.first_time = false;
				char_w18_sec_mgr.dlg = 'dlg_w18_sec_mgr';
				pr("\"Все принадлежащее старой компании мы перенесли в отдельное помещение. Охранник проводит вас туда. \"");
			else
				pr("\"И?\"");
			end;
		]]};
		{255, always = true, 'Нет, ничего', "До свидания", code = [[
			back();
		]]};
	};
};

warehouse_18_inside = room {
	nam = "warehouse_18_inside";
	disp = "Склад 18, комната с хламом";
	dsc = [[
		Вы находитесь в небольшой комнате, куда, по словам управляющего, было перенесено все оставшееся от "Вестхейвен Трансоушен". Все покрыто толстым слоем пыли - очевидно сюда нечасто заходят. 
	]];
	obj = {
		'char_w18_sec_in';
		'w18_box1';
		'w18_box2';
		'w18_box3';
		'w18_box4';
	};
};

char_w18_sec_in = npc {
	nam = "char_w18_sec_in";
	disp = "Охранник";
	dsc = [[
		Рядом со входом стоит скучающий {охранник}. 
	]];
	dlg = 'dlg_w18_sec_in';
};

w18_box_act = function(s)
	if (s.item) then
		local item = s.item;
		s.item = nil;
		take(item);
		return stead.ref(item).disp;
	else
		return "Здесь ничего нет";
	end;
end;

w18_box1 = obj {
	nam = "w18_box1";
	disp = "Ящик";
	dsc = [[
		В центре комнаты составлено множество {ящиков}. 
	]];
	act = w18_box_act;
};

w18_box2 = obj {
	nam = "w18_box2";
	disp = "Ящик";
	dsc = [[
		Возле одной из стен комнаты свалены в кучу какие-то {обломки}. 
	]];
	act = w18_box_act;
};

w18_box3 = obj {
	nam = "w18_box3";
	disp = "Ящик";
	dsc = [[
		Рядом с дверью стоит {стеллаж}, заполненный всякой всячиной.
	]];
	act = w18_box_act;
};

w18_box4 = obj {
	nam = "w18_box4";
	disp = "Ящик";
	dsc = [[
		Еще несколько {ящиков} валяется в углу. 
	]];
	act = w18_box_act;
};

w18_boxes = {
	w18_box1;
	w18_box2;
	w18_box3;
	w18_box4;
};

function warehouse18_init()
	local item1 = "item_cogs";
	local item2 = "item_unknown_schematics";
	local item3 = "item_map";
	while item1 do
		local t = rnd(#w18_boxes);
		if (not w18_boxes[t].item) then
			w18_boxes[t].item = item1;
			item1 = nil;
		end;
	end;
	while item2 do
		local t = rnd(#w18_boxes);
		if (not w18_boxes[t].item) then
			w18_boxes[t].item = item2;
			item2 = nil;
		end;
	end;
	while item3 do
		local t = rnd(#w18_boxes);
		if (not w18_boxes[t].item) then
			w18_boxes[t].item = item3;
			item3 = nil;
		end;
	end;
end;