Files @ bfeee99a1619
Branch filter:

Location: games/Awakening/warehouse18.lua - annotation

Silverwing
Fix dypatreanotrr red stone puzzle
c4b207ce4252
c4b207ce4252
6e7519136e47
c4b207ce4252
6e7519136e47
6e7519136e47
e713ba125275
e713ba125275
e713ba125275
e713ba125275
6e7519136e47
6e7519136e47
6e7519136e47
a76a965e22a0
a76a965e22a0
a76a965e22a0
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f02901977ca4
ad9cfec00932
ad9cfec00932
ad9cfec00932
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
3670b7b4b449
3670b7b4b449
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
3670b7b4b449
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f0e0b6ba67f3
6e7519136e47
f0e0b6ba67f3
f0e0b6ba67f3
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f0e0b6ba67f3
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
f0e0b6ba67f3
5c96fecbef4e
f0e0b6ba67f3
f0e0b6ba67f3
f4f6aa0eac72
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4331abd833a
6e7519136e47
6e7519136e47
6e7519136e47
f4331abd833a
f4331abd833a
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4331abd833a
f4331abd833a
f02901977ca4
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
5c96fecbef4e
6e7519136e47
f4f6aa0eac72
6e7519136e47
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
6e7519136e47
6e7519136e47
6e7519136e47
f02901977ca4
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
c582b0f6e74c
6e7519136e47
6e7519136e47
5c96fecbef4e
c582b0f6e74c
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
6e7519136e47
c582b0f6e74c
c582b0f6e74c
6e7519136e47
f2ede022c193
5c96fecbef4e
c582b0f6e74c
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
6e7519136e47
c582b0f6e74c
c582b0f6e74c
6e7519136e47
f2ede022c193
5c96fecbef4e
c582b0f6e74c
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
6e7519136e47
c582b0f6e74c
c582b0f6e74c
5c96fecbef4e
c582b0f6e74c
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
0c2323215e40
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f02901977ca4
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
38255c2dc001
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
e713ba125275
f4f6aa0eac72
f4f6aa0eac72
e713ba125275
39940ecc871b
0c2323215e40
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
--[[
Игрок может попасть сюда только после диалога с Майклом.
Эта локация имеет владельца, который будет готов сотрудничать.
Здесь игрок найдет чертеж подводной лодки.
]]

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 {
	var {
		first_time = true;
	};
	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;
};

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, "Может эти 10 шиллингов помогут вам принять решение? ", function(s)
            if (pl:pay(10)) then
                walkin('warehouse_18_manager');
                return [[Глаза охранника заблестели. Он выхватывает монеты из ваших рук и говорит: "Следуйте за мной". ]]
            else
                return [[Охранник с непониманием смотрит на вас: "Какие 10 шиллингов? Здесь их нет". ]]
            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, 'Мое имя Дэвид Дрейк, я сын владельца Вестхейвен Трансоушен. ', function(s)
			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;
		end};
		{2, 'Этот склад ранее принадлежал "Вестхейвен Трансоушен". ', function(s)
			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;
		end};
		{3, 'Меня интересуют некоторые вещи, которые остались здесь от предыдущего владельца. ', code = function(s)
			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;
		end};
		{255, always = true, 'Нет, ничего.', "До свидания", function(s)
			back();
		end};
	};
};

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;