Files @ 16044f7fdf9f
Branch filter:

Location: games/Awakening/warehouse18.lua - annotation

Silverwing
0.10.5
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
2041ef5206fe
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4331abd833a
6e7519136e47
6e7519136e47
6e7519136e47
f4331abd833a
f4331abd833a
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4331abd833a
f4331abd833a
f02901977ca4
f4f6aa0eac72
db2d4d268631
f4f6aa0eac72
5c96fecbef4e
6e7519136e47
f4f6aa0eac72
6e7519136e47
77de5cc05059
77de5cc05059
77de5cc05059
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
6a96148a2ef9
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f02901977ca4
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
b65501875ef2
6e7519136e47
8bac0dc32edc
6e7519136e47
3f6d9854dd14
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
b65501875ef2
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
b65501875ef2
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
b65501875ef2
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
b65501875ef2
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
b65501875ef2
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
b65501875ef2
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
b65501875ef2
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 = false;
    };
	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 = false;
		take(item);
		return stead.ref(item).tak;
	else
		return "Здесь ничего нет. ";
	end;
end;

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

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

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

w18_box4 = obj {
    var {
        item = false;
    };
	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 = false;
		end;
	end;
	while item2 do
		local t = rnd(#w18_boxes);
		if (not w18_boxes[t].item) then
			w18_boxes[t].item = item2;
			item2 = false;
		end;
	end;
	while item3 do
		local t = rnd(#w18_boxes);
		if (not w18_boxes[t].item) then
			w18_boxes[t].item = item3;
			item3 = false;
		end;
	end;
end;