Files @ 287dc9bc33ea
Branch filter:

Location: games/Awakening/warehouse18.lua - annotation

Silverwing
Progress on dlg rewrite; Learr intro dlg rewritten
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
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
6e7519136e47
f4331abd833a
6e7519136e47
6e7519136e47
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
6e7519136e47
6e7519136e47
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
f4f6aa0eac72
f4f6aa0eac72
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
f4f6aa0eac72
6e7519136e47
6e7519136e47
5c96fecbef4e
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4331abd833a
6e7519136e47
f2ede022c193
5c96fecbef4e
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
f4331abd833a
6e7519136e47
f2ede022c193
5c96fecbef4e
f4f6aa0eac72
f4f6aa0eac72
6e7519136e47
f4f6aa0eac72
6e7519136e47
6e7519136e47
5c96fecbef4e
5c96fecbef4e
5c96fecbef4e
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 {
	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;