Files @ 14fd72163e4b
Branch filter:

Location: games/Awakening/warehouse18.lua

Silverwing
Progress on dlg rewrite; Mochael Wright dlg rewrite
--[[
Игрок может попасть сюда только после диалога с Майклом.
Эта локация имеет владельца, который будет готов сотрудничать.
Здесь игрок найдет чертеж подводной лодки.
]]

global {
    warehouse18_initialized = false;
};

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 = [[Рядом с воротами склада скучает {охранник}. Он насвистывает какую-то мелодию и поглядывает на изредка проходящих мимо людей. ]];
	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, "У меня срочное дело к управляющему. ", [[Охранник чешет подбородок: "Я не могу вас пропустить". ]], [[ pon(5);pon(6); ]]};
		{5, false, "Может эти 5 шиллингов помогут вам принять решение? ", function(s)
            if (pl.pay(5)) then
                walkin('warehouse_18_manager');
                return [[Глаза охранника заблестели. Он выхватывает монеты из ваших рук и говорит: "Следуйте за мной". ]]
            else
                return [[Охранник с непониманием смотрит на вас: "Какие 5 шиллингов? Здесь их нет". ]]
            end;
        end};
		{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',
        'w18_shelves',
        'w18_table',
		'char_w18_mgr',
	};
};

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

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

char_w18_sec_mgr = npc {
    var {
        dlg = undefined;
    };
	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("Не отрываясь от своего занятия, управляющий сообщает вам: \"Все принадлежащее старой компании мы перенесли в отдельное помещение. Охранник проводит вас туда\". ");
                back();
			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("Не отрываясь от своего занятия, управляющий сообщает вам: \"Все принадлежащее старой компании мы перенесли в отдельное помещение. Охранник проводит вас туда\". ");
                back();            
			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("Не отрываясь от своего занятия, управляющий сообщает вам: \"Все принадлежащее старой компании мы перенесли в отдельное помещение. Охранник проводит вас туда\". ");
                back();            
			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 {
    var {
        item = nil;
    };
	nam = "w18_box1";
	disp = "Ящик";
	dsc = [[Рядом с дверью стоит {стеллаж}, заполненный всякой всячиной. ]];	
    act = w18_box_act;
};

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

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

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

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

function warehouse18_init()
    if (warehouse18_initialized) then
        return;
    end;
    warehouse18_initialized = true;
	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;