require "timer"
function init()
	lifeon 'timof'
	lifeon 'people'
end
blade = obj {
	nam = 'лезвие';
	inv = 'Лезвие от пилы по металлу.';
	use = function(s, on)
		if on == pila then
			on.blade = true
			p [[Я установил лезвие взамен сломанного.]]
			inv():del(s)
			return false
		end
		return "Лезвие от пилы тут не поможет.", false
	end
}
tdlg = dlg {
	nam = 'Тимофей';
	pic = function(s)
		if timof.pogran then
			return 'gfx/timof-mask.png';
		end
		return 'gfx/timof.png';
	end;
	dsc = [[ Я смотрю в мудрые и честные глаза Тимофея. ]];
	left = code [[ poff(1, 4) ]];
	entered = function(s, f)
		poff(1,2,3,4)
		if f == volnorez and visited(fishdlg) then
			pon(2);
		elseif f == coast1 or f == dumb then
			pon(1);
		elseif visited 'insea' then
			pon(3);
		elseif visited 'club' then
			pon(4);
		end
		
	end;
	obj = {
		[1] = _phr('Мы добрались до моря!!!',
			[[ -- Да, сынок, мы добрались!!!]]);
		[2] = _phr('Какой-то странный рыбак...',
			[[ -- Да, он не любит море...]]);
		[3] = _phr('Мы в порту!!!',
			[[ -- Да, сынок, я сам удивляюсь этому.]]);
		[4] = _phr('Я очень привязался к вам, Тимофей!',
			'-- Я тоже, сынок, я тоже!');
		[5] = _phr('У нас есть документы! Что теперь?',
			'-- Надо идти за Горацием, сынок!');
		[6] = _phr('Почему мы здесь?',
			'-- Сынок, я думаю мы должны выбраться отсюда...');
		[98] = _phr('Я рад, что не один в этом чужом месте!',
			[[ -- Сынок, этот мир все еще держится на дружбе. ]]),
		[99] = phr ('Я рад, что не один в эту ночь!',
			[[ -- Сынок, этот мир все еще держится на дружбе. ]],
			[[ pon(); inv():del 'timof'; back(); ]]);
	};
}

ship = obj {
	nam = 'корабль';
	dsc = function(s)
		if here() == prich2 then
			p [[Здесь пришвартовано {судно}, которое уставлено контейнерами.]]
		elseif here() == prich1 then
			p [[К причалу пришвартовано белое {судно} с массой грузовых стрел на борту.]]
		elseif here() == prich3 then
			p [[К причалу пришвартовано небольшое {судно}.]]
		end
	end;
	act = function(s)
		if here() == prich2 then
			p [[Контейнеровоз? Называется: "Ассоль". Красивое название.]];
		elseif here() == prich1 then
			p [[На борту написано "Поплавок". Да это же банановоз!]]
		elseif here() == prich3 then
			p [[Затрудняюсь назвать тип этого небольшого судна красного цвета.
			Кажется, на борту есть контейнеры.]]
		end
	end;
}

global { know_cont = false };

docs = obj {
	nam = 'документы';
	inv = function(s)
		p [[Гм, права, документы на груз. Номер контейнера...]];
		know_cont = true
	end
}

fake = xroom {
	hideinv = true;
	var { pic = 'gfx/shofer.png' };
	forcedsc = true;
	timer = function(s)
		timer:del();
		s.pic = 'gfx/timof-mask.png';
		return true
	end;
	exit = code [[ timer:stop() ]];
	entered = function(s)
		timer:set(2000);
		restore_music(club);
		tdlg:pon(5);
	end;
	nam = '...';
	dsc = function(s)
		p [[Тимофей подошел к шоферу. Я остался стоять у входа в клуб.
		В тусклом освещении я не был заметен, но все еще мог различать разговор:^
		-- Машина 816 ваша?^
		-- Да.. А в чем дело?^
		-- На территорию порта проник мальчик, утверждает что 
		вы его провезли. Мне нужны все ваши документы.^
		-- Что за бред, какой мальчик?^
		-- Вы слышали, мне нужны ваши документы!!! -- я затаил дыхание.^
		-- Хорошо, в-в-вот они...^
		-- Что в контейнере?^
		-- Х-х-химикаты...^
		-- Ладно, оставайтесь здесь, я проверю... -- с этими словами Тимофей
		быстро направился к выходу. Шофер был подавлен и потупив взгляд,
		нервно крутил в руках чашку с кофе.]]
	end;
	obj = {
		vway('next', '{Дальше}', 'auto');
	};
}

timof = obj {
	var { pogran = false; number = false; time = 0;};
	nam = 'Тимофей';
	dsc = function(s)
		if here() == containers and s.time ~= 2 then
			if s.time == 0 then
				p '{Тимофей} открывает двери грузовика.'
				s.time = 1
			elseif s.time == 1 then
				p '{Тимофей} открыл двери грузовика.'
				s.time = 2
			end
			return
		end
		p 'Со мной {Тимофей}.';
		if rnd(30) < 3 then
			if s.barsik then
				p (txtem 'Я вижу как Барсик высовывается из-за пазухи Тимофея.')				
			else
				p (txtem 'Я вижу, как он достал из-за пазухи небольшую фляжку и сделал глоток.')
			end
		end
	end;
	inv = function(s)
		if isDialog(here()) then
			return true
		end
		goin 'tdlg'
	end;
	act = function(s, w)
		if not have(s) then
			inv():add(s);
			return "-- Да, сынок?";
		end
		inv():del(s);
		p "-- Ничего... Я так..."
	end;
	use = function(s, w, ww)
		inv():del(s);
		if w == gruzchik then
			if rifle.arms == 0 then
				return [[-- Кончились шприцы, сынок!!!]];
			end
			rifle.arms = rifle.arms - 1;
			p [[Тимофей выхватил ружье и выстрелил в 
			грузчика... Тот негромко вскрикнул и 
			сделал несколько шагов... Потом упал...
			Тимофей утащил спящего грузчика за ящики...]];
			timer:stop();
			remove (w);
			gruzchik.started = false
			containers.alarm = 0;
			return
		end
		if nameof(w) == 'шофер' and s.pogran then
			if not s.number or not visited 'shofdlg' then 
				p [[-- Но что я ему скажу, сынок???]];
				return
			end
			take 'docs'
			inv():del 'docs' -- for Timofey ;)
			goin 'fake'
			return
		end
		if nameof(w) == 'охранник' then
			p [[Тимофей подошел к КПП один. Через пару минут он вернулся, 
			разводя руками... -- Не выходит, сынок!]];
			return false
		end
		if w == fisher then
			p [[Тимофей потянулся было за ружьем, но рыбак, почувствовав
			неладное встрепенулся. -- Только попробуйте!!! -- в его руках
			сверкнул нож. -- Думаете меня легко взять? Я двадцать 
			лет помогал контрабандистам!!!]]
			return false
		end
		if nameof(w) == 'рыбак' and here() == dumb then
			return "-- Я не попаду в него отсюда, сынок!"
		end
		if w == car and ww == 'помост' then
			if car.pomost == 1 then
				car.pomost = 2
				p [[-- Выдвинуть помост? Гм... -- Тимофей напряг свои силы и
				выдвинул помост наружу.]]
				return false
			end
			car.pomost = false
			put 'pomost'
			p [[-- Вытащить его из машины? Ладно, сынок... -- Тимофей 
			окончательно вытащил помост и бросил его на землю.]]
			return false
		end
		if w == pomost then
			return pomost:act()
		end
		if w == people then
			p [[-- Усыпить их из ружья? Это опасно... Для нас...]];
			return
		end
		p [[-- Не понимаю тебя, сынок.]]
	end;
	life = function(s)
		if where(s) == containers then
			return
		end
		if here() ~= where(s) and not isDialog(here()) and not here().hideinv then -- follow player
			move(s, here(), where(s));
			inv():del(s);
			return true
		end
	end
}

part3 = room {
	hideinv = true;
	inside = true;
	forcedsc = true;
	nam = 'У моря';
	pic = 'gfx/dark.png';
	dsc = [[ Я проснулся от тишины. Мотор грузовика молчал, зато я слышал шум моря
	и чувствовал его запах, который вливался сквозь разбитое окно машины...^
	-- Ну что сынок, приехали!!! Любишь море?^
	-- Люблю. Те, кто живут у моря, часто привыкают к нему,
	но я всегда буду любить море.^
	-- Я тоже люблю море, сынок...^
	-- А где же порт?^
	-- В порт нам нельзя, это режимная зона, сынок. С машиной мы точно
	туда не попадем, пока не придумаем что-нибудь... Так что мы стоим
	в нескольких сотнях метрах от КПП, съехали с дороги, сынок...^
	Мы вылезли по очереди сквозь разбитое стекло и осмотрелись... Барсик остался дремать в кабине.
	]];
	obj = { vway('дальше', '{Дальше}', 'coast1') };
}

pomost = obj {
	nam = 'помост';
	dsc = function(s)
		if have(s) then
			return "Мы держим с Тимофеем {помост}."
		end
		p [[На земле лежит деревянный {помост}.]]
	end;
	use = function(s, w)
		if w == car then
			inv():del(s);
			lifeoff(s);
			remove(s);
			car.pomost = 1
			return "Мы затолкали помось в машину."
		end
		if w == sea then
			if not have 'veslo' then
				p [[-- Отличная идея, сынок... Но руками мы далеко не выгребем. ]];
				return false
			end
			inv():del(s)
			lifeoff(s)
			return goto 'insea'
		end
		p [[Не понятно, как это поможет?]]
	end;
	act = function(s)
		if have(s) then
			inv():del(s)
			p [[Мы отпустили помост.]]
			lifeoff(s)
			return
		else
			inv():add(s);
			lifeon(s)
			return "Мы ухватились за помост."
		end
	end;
	life = function(s)
		if here() ~= where(s) and not isDialog(here()) and not here().hideinv then -- follow player
			if here() == kpp or here() == volnorez then
				p [[Помост мы бросили.]]
				inv():del(s)
				lifeoff(s)
				return true
			end
			move(s, here(), where(s));
			return true
		end
	end;
	inv = [[Тяжелый, деревянный, прочный!]];
}

car = obj {
	nam = 'машина';
	var { opened = false; pomost = 1; };
	dsc = function(s)
		if here() == containers then
			p [[Здесь стоит наш {грузовик}.]]
			return
		end
		p [[Недалеко от дороги, с противоположной от моря стороны, стоит 
		{грузовик}.]];
		if s.pomost == 2 then
			p "Деревянный {(помост):помост} стоит одной стороной на земле."
		end
	end;
	act = function(s, w)
		if here() == containers then
			return "Мы попали в порт!!!"
		end
		if w == 'помост' then
			return [[Деревянный помост. Невероятно прочный! Он выдержал половину массы Горация!]];
		end
		if not s.opened then
			s.opened = true
			return [[-- Посмотрю, как там Гораций! С этими словами я 
			попробовал открыть фуру. Тимофей подошел и 
			помог мне.]]
		end
		pr "Внутри я вижу {Гораций:Горация}"
		if s.pomost then
			if s.pomost == 1 then
				pr " и деревянный {машина(помост):помост}"
			end
		end
		p "."
	end;
}

coast1 = room {
	nam = 'У дороги';
	pic = 'gfx/port-road.png';
	entered = code [[ set_music 'snd/waves.ogg' ]];
	dsc = [[ Мы стоим у пустынной дороги. До нас доносится запах и шум моря. ]];
	obj = {
		car;
		xact('Гораций', [[Кажется, с ним все в порядке. Не буду его беспокоить.]]);
	};
	way = { vroom('В сторону порта', 'kpp'), vroom('К морю', 'dumb') };
}

sea = obj {
	nam = 'море';
	act = 'Я люблю море...';
}

dumb = xroom {
	nam = 'У моря';
	pic = 'gfx/sea.png';
	entered = code [[ make_snapshot() ]];
	dsc = [[Вот оно, море!!! Отсюда видны очертания сооружений порта и оградительных молов.]];
	xdsc = [[ Длинный {волнорез:волнорез} уходит в {sea:море}. В конце волнореза я замечаю какую-то
		{рыбак:фигурку}.]];
	obj = {
		sea;
		xact('волнорез', code [[goto 'volnorez']]);
		xact('рыбак', [[Кажется, это рыбак!!!]]);
	};
	way = { vroom('К дороге', 'coast1') };
}

fishdlg = dlg {
	nam = 'Разговор с рыбаком';
	pic = 'gfx/fisher.png';
	entered = [[-- Здравствуйте!!! -- он даже не повернулся к нам.]];
	dsc = [[ Сгорбленная спина рыбака, кажется, излучает молчаливую меланхолию. ]];
	obj = {
		[1] = phr('Здравствуйте, меня зовут Павлик, а это Тимофей!!!',
			'Нет ответа.', [[ if punseen(1,2) then pon(3) end; ]]);
		[2] = phr('Красивая у вас зюйдвестка!!!',
			'Только молчаливое пренебрежение.', [[ if punseen(1,2) then pon(3); end ]]);
		[3] = _phr('Как клев?',
			[[Плечи рыбака дрогнули, он что-то пробурчал, а затем посмотрел на нас.^
			-- Вам ведь в порт надо??? Уходите!!! Нет переправы больше!!! Нет!!! --
			его сухой голос звучал как вороний крик.]],
			[[ pon(4, 5)]]);
		[4] = _phr('Нам и правда нужно в порт!',
			[[-- Поздравляю!!! 20 лет я возил людей в порт, но теперь
			лодка разбита. Нет лодки!!! Уходите!!!]]);
		[5] = _phr('А клюет?', 
			[[-- НЕТ!!! НЕ КЛЮЕТ!! -- дед явно вышел из себя. -- 20 Лет я зарабатывал
			тем, что возил людей в порт!!! Меня кормило море!!!
			А теперь??? Теперь я какой-то рыбак!!!]], [[poff(4); pon(6);]]);
		[6] = _phr('А что случилось с лодкой?',
			[[-- ЗАТОНУЛА ЛОДКА!!! Только весло выловил... Весло нужно? Могу продать?]],
			[[ pon(7); ]]);
		[7] = _phr('У нас денег нет...',
			[[-- Тем хуже для вас! -- рыбак потерял к нам всякий интерес.]],
			[[ pon(8) ]]);
		[8] = _phr('А подарите нам весло?',
			[[-- Никогда!!! Просто так я его не отдам. Вам нужно весло?
			Тогда я должен с вас что-то получить! Это закон жизни!!!]],
			[[ pon(9); fisher.trading = true ]]);
		[9] = _phr('Но у нас Слон, ему нужно на Кубу, пожалуйста...',
			[[ -- НЕТ! И не надо давить на совесть!!!]],
			[[ pon(7) ]]);
		[97] = _phr('Чехол совсем старый!', 'Нет ответа.', [[ pon() ]]);
		[98] = _phr('Спасибо за весло!', 'Нет ответа.', [[ pon() ]]);
		[99] = phr('Ладно, простите за беспокойство!', 'Нет ответа.', [[ pon(); back() ]]);
	}
}

veslo = obj {
	var { price = false };
	nam = 'весло';
	inv = [[Выглядит как весло.]];
	dsc = [[Справа от рыбака лежит {весло}.]];
	act = function(s)
		if s.price then
			p [[Мы забрали весло у рыбака. На этот раз он не возражал.]]
			fishdlg:prem(6,7,8,9);
			fishdlg:pon(98);
			take(s)
			return
		end
		p [[-- Руки прочь от моего весла!!!]];
	end;
	use = function(s, on)
		if on == timof then
			return "-- Отличное весло, сынок!"
		end
		return "Веслом?";
	end
}

chehol = obj {
	var { price = false };
	nam = 'чехол';
	dsc = [[Слева, рядом с наживкой, лежит скомканный брезентовый {чехол} от удочки.]];
	inv = [[Драный чехол от удочки.]];
	use = function(s, to)
		if to == timof then
			p [[Я отдал чехол Тимофею и он спрятал в него ружье.]]
			rifle.hidden = true
			inv():del(s);
			delete_snapshot();
			return
		end
		return [[Драный чехол не поможет...]]
	end;
	act = function(s)
		if s.price then
			p [[Я забрал чехол от удочки. По-моему не честный обмен.]]
			fishdlg:pon(97);
			take(s)
			return
		end
		p [[-- Руки прочь от моего чехла!!!]];
	end
}

fisher = obj {
	var { trading = false };
	nam = 'рыбак';
	dsc = [[На краю волнореза сидит сгорбленная {фигура} с удочкой.]];
	act = code [[ goto 'fishdlg' ]];
	obj = {
		chehol;
		veslo;
	}
}

volnorez = room {
	nam = 'На волнорезе';
	pic = 'gfx/volnorez.png';
	entered = [[Пройдя по длинному волнорезу мы остановились у человека в
		зюйдвестке.]];
	dsc = [[Волны ударяются о край волнореза, несильный бриз дует с берега
		в сторону моря.]];
	obj = { fisher };
	way = { vroom('Назад', dumb) };
}

ohr = dlg {
	nam = 'Пограничник';
	pic = 'gfx/pogran.png';
	entered = [[Мы подошли поближе к КПП, и тогда охрана, наконец,
		проявила к нам интерес.]];
	dsc = [[ Я вижу охранника в зеленом берете. Ой -- да это же пограничник!!! Выглядит сонным.]];
	obj = {
		[1] = phr('Нам нужно в порт!',
			'-- И чо? -- похоже, пограничника уже утомляет наша беседа.', [[ pon(2) ]]);
		[2] = _phr('Вы нас пропустите?',
			'-- Паспорт моряка или пропуск!', [[ pon(3) ]]);
		[3] = _phr('У нас этого нет... Но у нас есть слон, которого...',
			'-- Тогда отойдите от КПП.', [[ pon(4)]]);
		[4] = _phr('Ну пожалуйста, послушайте!!!',
			'-- Иди отсюда, мальчик, вообще, откуда ты взялся?...', [[ pon(2) ]]);
		[5] = phr('А вы пограничники?',
			[[ -- Да, это пограничная зона. Торговый порт находится под нашим наблюдением, 
			я прошу отойти вас от КПП, папаша, и заберите вашего сына. --
			похоже мы им надоели.]]);
		[99] = phr('Ну мы пошли...', '-- Правильное решение...', [[ pon(); back() ]]);
	}
}

kpp = xroom {
	nam = 'У входа в порт';
	pic = 'gfx/kpp.png';
	entered = [[Мы пошли вдоль дороги по направлению к порту.]];
	dsc = [[Перед нами контрольно-пропускной пункт. Ночную тишину
		нарушает шум порта.]];
	xdsc = [[Дорога в порт проходит дальше, через закрытые {ворота:ворота}.
		В будке КПП я различаю {охранник:охранников}, пока они не проявляют к
		нам никакого интереса.]];
	obj = {
		xact('ворота', [[Закрытые ворота, в зоопарке были похожие...]]);
		xact('охранник', code [[ goin 'ohr' ]]);
	};
	way = { vroom('К машине', 'coast1') };
}
kran = obj {
	nam = 'краны';
	dsc = [[Над нами нависают стрелы портовых {кранов}.]];
	act = [[Опасно находиться под краном...]];
}

pogran_end = xroom {
	hideinv = true;
	forcedsc = true;
	enter = code [[ game.lifes:zap(); set_music 'mus/story.ogg' ]];
	pic = 'gfx/gora-cage.png';
	nam = 'Конец';
	dsc = [[Один из пограничников заметил ружье, которое нес Тимофей.
		К сожалению, для нас это означало крах всей затеи.
		Или, может быть все было {restart:по-другому}?]];
	obj = {
		xact('restart', code [[ restore_snapshot() ]]);
	};
}

people = obj {
	var { typ = 1 };
	nam = 'люди';
	dsc = function(s)
		if s.typ == 1 then
			p "Я вижу несколько {матросов}."
		elseif s.typ == 2 then
			p "Мимо нас проходят {пограничники} в зеленых беретах."			
		elseif s.typ == 3 then
			p "Я вижу бегущего {матроса}."
		elseif s.typ == 4 then
			p "Какие-то {люди}, возможно грузчики, прошли мимо нас."
		else
			p "Здесь никого нет."
		end
	end;
	act = function(s)
		if s.typ == 3 then
			if not taken 'beret' then
				p [[Я вгляделся в лицо матроса и оно показалось мне знакомым.
				Матрос тоже заметил меня и замедлил свой бег.^^
				-- Пацан? Это ты? -- это был тот самый моряк
				из зоопарка. Он подошел ко мне. Вид у него был запыхавшийся.^
				-- Все-таки хочешь в море? Эх, пацан, как ты меня выручил!!! Знаешь,
				у меня для тебя есть подарок!!! -- С этими словами он достал откуда то
				смятый белый кусок ткани -- На, держи!!! Такие раньше носили!!! До того
				как пилотки ввели. -- Он протянул мне что-то в руку.^
				-- Ну все, я побежал, удачи пацан!!!]]
				take 'beret'
			else
				p [[Какой-то незнакомый матрос.]];
			end
		elseif s.typ == 2 then
			p [[Пограничников лучше не беспокоить.]];
		else
			p [[Они мне незнакомы.]]
		end
	end;
	life = function(s)
		if not seen(s) then
			return
		end
		if player_moved() and s.typ ~= 2 then
			s.typ = rnd(5);
			if taken 'beret' and s.typ == 3 then
				s.typ = 1
			end
		else		
			if s.typ == 1 then
				p "Матросы скрылись в темноте."
			elseif s.typ == 2 then
				if not rifle.hidden then
					p "Кажется, пограничники обратили внимание на ружье.";
					if timof.pogran then
						p "Не помогла и маскировка Тимофея..."
					end
					goto 'pogran_end';
					return true
				end			
				p "Пограничники скрылись в темноте."
			elseif s.typ == 3 then
				p "Матрос быстро скрылся в темноте."
			elseif s.typ == 4 then
				p "Грузчики, негромко переговариваясь, скрылись в темноте."
			end
			s.typ = 0;
		end
	end
}

insea = xroom {
--	inv = list {};
	hideinv = true;
	pic = 'gfx/insea.png';
	nam = 'В море';
	entered = code [[ inv():purge 'veslo'; set_music 'mus/ohck-sn.it'; ]];
--	entered = code [[ self.inv:cat(inv()); inv():zap(); ]];
	dsc = [[-- Ну что, сынок, рискнем???  
		Мы столкнули помост в море. Я сел на помост,
		а Тимофей взял в руки весло и некоторое время шел в воде,
		толкая помост подальше в море. Наконец, он, мокрый, взобрался
		на наш плот и уселся рядом. Проплывая мимо рыбака я зачем-то
		помахал ему рукой... Не знаю, зачем. Мне было жаль его...^
		Мы старались держаться поближе к откосу, к счастью, восход еще
		не начинался... Я слушал плеск воды, когда весло опускалось то
		слева, то справа от нашего плота и, затаив дыхание, ждал
		что нас обнаружат...^
		-- Сынок, попробуем взобраться здесь??? -- вывел меня 
		из оцепенения такой уже почти родной голос Тимофея.^
		И мы взобрались каким-то чудом на бетонную поверхность...]];
	obj = { vway('дальше', '{Дальше}', 'zavod') };
}
kraska = obj {
	var { draw = 0 };
	nam = 'краска';
	inv = 'Зеленая спрей-краска!';
	use = function(s, on)
		if on == beret then
			if not on.seen then
				p "Да это же морской берет!"
				on.seen = true
			end
			if on.green then
				p "Уже и так зеленый!"
				return
			end
			p [[Я взял спрей и нанес на берет зеленую краску равномерным тонким слоем.]]
			p [[Теперь берет зеленый!]];
			on.green = true
			return
		end
		if on == graf then
			if s.draw == 2 then
				p [[Я уже написал самое лучшее, что смог придумать.]]
				return
			end
			if s.draw == 0 then
				p [[Я не удержался и вывел на заборе: "Куба".]];
				s.draw = 1
			elseif s.draw == 1 then
				p [[Я нарисовал кота и Горация.]];
				s.draw = 2
			end
			return
		end 
		return "Не стоит это красить."
	end
}

graf = obj {
	nam = 'граффити';
	act = function(s)
		if here() == zavod then
			if not taken 'blade' and not pila.blade then
				p [[У подножия забора я заметил продолговатый
				предмет. Я нагнулся и взял его в руки. Похоже, лезвие для
				пилы по металлу!]];
				take 'blade'
				return
			end
			p [[Я разглядываю граффити.
			Что-то про президента... Ух, красивая картинка!!!
			А вот странное слово из трех букв, начинается на "Q".
			Надо же, и сюда добрались!!!]]
			return
		end
		p [[Здесь нарисован парусник. Очень сильная работа!!!]]
		if not taken 'kraska' then
			take 'kraska'
			p [[Разглядывая граффити я подошел к стене. Ой, что это?
			Кажется я наступил на какой-то баллон... Гм, спрей-краска!!!]]			
		end
	end;
}

zavod = xroom {
	pic = 'gfx/zavod.png';
	entered = function(s)
		if from() == insea then
			p [[Отряхнув ладони я встал и осмотрелся... Надо мной
			нависли очертания какого-то сооружения. Я вопросительно
			посмотрел на Тимофея.^
			-- Судоремонтный завод, сынок!!! Судоремонтный завод...]]
		end
	end;
	nam = 'Судоремонтный завод';
	obj = { graf, kran, people };	
	dsc = [[Очертания судоремонтного завода зловеще выступают из
		темноты. Неподалеку расположены причалы.]];
	xdsc = [[Бетонный забор, которым окружена территория завода,
		весь разрисован {граффити:граффити}.]];
	way = { vroom('К причалам 4 и 5', 'prich45') };
}


prich45 = xroom {
	nam = 'Причалы 4 и 5';
	pic = 'gfx/ports45.png';
	dsc = [[Мы стоим у причалов. Кораблей здесь нет.]];
	xdsc = [[Бетонный забор, которым окружена территория завода,
		весь разрисован {граффити:граффити}.]];
	obj = {
		graf;
		kran;
		people;
	};
	way = { vroom('К заводу', zavod), vroom('К администрации', 'admin') };
}

beret = obj {
	nam = 'берет';
	var { seen = false; green = false; gerb = false; };
	disp = function(s)
		if s.seen then
			return "берет"
		end
		return "что-то белое"
	end;
	inv = function(s)
		s.seen = true
		p [[Ух ты!!! Морской берет!!!]];
		if s.green then
			p [[Причем зеленый, почти как у пограничника!]]
			if not s.gerb then
				p [[Только кокарды нет.]]
			end
		end
		if s.gerb then
			p [[С гербом!]]
		end
	end;
	use = function(s, on)
		if on == timof then
			if not s.green then
				return "Я показал Тимофею белый берет, но он только хмыкнул."
			end
			if not s.gerb then
				return "-- Мог бы сойти за берет пограничника, сынок, жаль кокарды нет."
			end
			if here().inside then
				return "Тут это будет слишком заметно."
			end
			inv():del(s);
			on.pogran = true
			p [[Я протянул берет Тимофею. Он повертел его в руках.^
			-- Ну что же, сынок, может быть это идея... -- С этими словами
			он одел берет, затем снял и вывернул на изнанку свой ватник.
			Подкладка ватника была сделана из камуфляжной ткани,
			мне кажется, теперь Тимофея можно спутать с пограничником!!!]]
			return
		end
		return "Странная идея.."
	end
}

gerb = obj {
	nam = 'герб';
	inv = [[Небольшой герб, золотого цвета.]];
	act = [[Красивый! Даже в темноте виден его золотой цвет.]];
	use = function(s, on)
		if on == beret then
			p [[Я прикрепил герб к берету.]]
			inv():del(s)
			on.gerb = true
			return
		end
		return "Герб здесь не поможет."
	end
}

admin = xroom {
	pic = 'gfx/post.png';
	nam = 'Администрация';
	dsc = [[Мы находимся в центре торгового порта.]];
	xdsc = [[Неподалеку находится административное {здание:здание}.
	Рядом с ним я вижу {почта:почту}.]];
	obj = { 
		gerb;
		xact('здание',
			[[Нечего там делать.]]);
		xact('почта',
			[[Почта закрыта. Но у двери установлен почтовый {ящик:ящик}.]]);
		xact('ящик',
			function(s)
				if taken(gerb) then
					p [[Без герба он выглядит не так красиво.]]
				else
					p [[На почтовом ящике я вижу {герб:герб}.]]
				end
			end),
		people };	
	way = { vroom('К причалам 4 и 5', prich45), 
		vroom('К автостоянке', 'auto'),
		vroom('К 3-му причалу', 'prich3') }
}

nomer = obj {
	nam = 'номер';
	inv = 'Мама говорит, у меня отличная память! Номер машины я запомнил хорошо.';
	use = function(s, on)
		if on == timof then
			if on.number then
				p [[-- Я помню его, сынок!]]
				return
			end
			on.number = true
			p [[Я сказал номер машины Тимофею. -- Хорошо, я запомнил его, сынок!]]
			return
		end
		p [[Я проговорил номер вслух, чтобы не забыть.]]
	end
}

car2 = obj {
	nam = 'машина';
	dsc = [[Сейчас здесь стоит одна грузовая {машина} с прицепом.
	Прицеп пуст.]];
	act = function(s)
		if not taken 'nomer' then
			p [[Я вгляделся и смог прочитать номер машины.]]
			take 'nomer'
			return
		end
		p [[Мне кажется, на таких прицепах возят контейнеры.]]
	end;
}

money = obj {
	nam = 'деньги';
	inv = 'Эти деньги Тимофей собирал на корм Коту...';
	use = 'Деньги здесь не помогут.';
}

auto = xroom {
	nam = 'Автостоянка';
	pic = 'gfx/club.png';
	dsc = [[Автостоянка освещена фонарями. К ней примыкает небольшое одноэтажное здание
	с надписью "Клуб" над входной дверью.]];
	obj = { car2, people };
	exit = function(s, to)
		if to == kpp and taken 'docs' and not taken 'money' then
			tdlg:poff(5);
			p [[-- Ну что, сынок, я пошел за нашей машиной. Иди к 1-му причалу,
			я подвезу Горация, если... -- Тимофей помолчал -- если все пройдет
			как надо, если пограничники не будут слишком внимательны... Если... Если... 
			Жди меня там, если я не приеду, вот, возьми немного денег,
			возьми, сынок, возьми и иди к пассажирскому порту, поймай такси...
			Так, ну вроде бы все... С Богом... -- И Тимофей ушел в сторону КПП.]]
			inv():del(timof);
			lifeoff 'timof'
			remove 'timof'
			take 'money'
			return false
		end
		if to == kpp then
			return [[Если сейчас туда пойти, можно назад уже не вернуться...]], false
		end
	end;
	way = { vroom('К администрации', 'admin'),
		vroom('В клуб', 'club'),
		vroom('К КПП', 'kpp') }
}

shofdlg = dlg {
	nam = 'Разговор';
	pic = 'gfx/shofer.png';
	enter = function(s)
		p [[Тимофей остался стоять у двери, а я подошел к посетителю и попросил разрешения присесть за его столик.
		Он удивленно взглянул на меня, но не отказал.]]
	end;
	dsc = [[ Плохо различимые в тусклом освещении клуба
		черты усталого лица и крупные крепкие ладони выдают в посетителе шофера.]];
	obj = {
		[1] = phr('Здравствуйте!',
			'-- Здравствуй, парень.', [[ pon(2) ]]);
		[2] = _phr('Вы тоже привезли груз?',
			[[-- Да, привез... Контейнер уже оттранспортировали на 1-й причал,
			но остались какие-то формальности. Вот торчу здесь... -- шофер уныло посмотрел
			на игроков в бильярд. -- Я вижу, ты тоже?...]],
			[[ pon(3,4) ]]);
		[3] = _phr('Да, мы привезли слона, он отправляется в Кубу.',
			[[-- Гм, судя по документам мой контейнер с химикатами тоже идет
			в Кубу... Но зачем им там слон?... Хотя, это банановоз,
			а туда отправляют химикаты, чтобы порожняком не идти...
			Проклятые капиталисты.]], [[ poff(4); pon(5);]]);
		[4] = _phr('Я юнга с "Поплавка".',
			[[-- Юнга? Гм -- шофер посмотрел на меня удивленным взглядом --
			а впрочем, "Поплавок" как раз на первом причале, отходит в Кубу.
			Повезет туда мои химикаты. Хотя, это банановоз. Бред?
			А у них это называется экономикой.]],[[poff(3); pon(5); ]]);
		[5] = _phr('Да, на Кубе хорошо...',
			'-- Я тоже так думаю, парень... Уж получше чем в нашей дыре.',
			[[ pon(6) ]]);
		[6] = _phr('А скоро отправляется корабль?',
			[[ Шофер взглянул на часы.^ --Да часа полтора осталось. Надеюсь,
			меня скоро выпустят отсюда.]], [[ pon (7) ]]);
		[7] = _phr('Вы любите море?',
			[[-- Да надоело оно мне... Что толку от него?]],
			[[ pon(7, 99) ]]);
		[99] = _phr('Ну мне пора идти.',
			'-- Удачи на дорогах, парень!', [[ pon(); goout() ]]);
	}
}
club = xroom {
	nam = 'Клуб';
	pic = 'gfx/inclub.png';
	dsc = [[В клубе неяркое освещение. Играет спокойная музыка.]];
	xdsc = [[В центре помещения клуба установлен {биллиард:бильярд}.
	К потолку прикреплен {телевизор:телевизор}. Здесь также есть барная {стойка:стойка}.
	В клубе есть немногочисленные {люди:посетители}. ]];
	enter = function(s)
		if taken 'docs' then
			p [[Лучше сейчас не показываться там.]]
			return false
		end
		save_music(s);
		set_music 'mus/wnd_land.it'
	end;
	left = code [[ if arg1 == auto then restore_music(self); end ]];
	obj = {
		xact('биллиард', 'Я всегда восхищался теми, кто умеет играть в эту игру!');
		xact('телевизор', 'Футбол... Какая-то зарубежная спортивная программа.');
		xact('люди', [[{игроки:Двое} играют в бильярд. Один, по виду {матрос:матрос}, смотрит телевизор.
		Последний из {шофер:посетителей}, сидит за круглым столиком в дальнем конце клуба и пьет кофе.]]);
		xact('стойка', 'У Тимофея и так есть спиртное, а есть нам некогда.');
		xact('игроки', 'Я некоторое время следил за игрой. Жаль, что я не умею играть в бильярд.');
		xact('матрос', 'Я попытался заговорить с ним, но матрос явно был увлечен игрой.');
		xact('шофер', function(s)
			if timof.pogran and visited 'shofdlg' then
				p [[Мне кажется, у меня есть план.
				И я думаю, в соответствии с этим планом,
				мы лучше не будем подходить к нему вдвоем.]]
				return
			end
			goto 'shofdlg'
		end);
	};
	way = { vroom('Выйти', 'auto') };
}

prich3 = xroom {
	nam = 'Причал 3';
	pic = 'gfx/port3.png';
	dsc = [[Мы находимся на третьем причале. ]];
	obj = { ship, kran, people };
	way = { vroom('К причалу 2', 'prich2'),
		vroom('К администрации', 'admin')}
}

prich2 = xroom {
	nam = 'Причал 2';
	pic = 'gfx/port2.png';
	dsc = [[Мы находимся на втором причале. ]];
	obj = { ship, kran, 
		obj {
			nam = 'контейнеры';
			dsc = 'Рядом с причалом стоят {контейнеры}.';
			act = 'Как их много!';
		},
		people };
	way = { vroom('К причалу 1', 'prich1'),
		vroom('К причалу 3', 'prich3')}
}

gointim = xroom {
	hideinv = true;
	forcedsc = true;
	nam = 'Порт. 04:10';
	pic = 'gfx/port1.png';
	dsc = [[Я не спеша дошел до первого причала.
		На душе у меня скребли кошки...
		Тимофея все не было и я начинал подозревать
		худшее, как вдруг, я услышал шум мотора и
		к причалу подъехал наш грузовик!!!^
		Тимофей развернул его и заехал за
		контейнеры. Я бросился к нему...]];
	obj = { vway('дальше', '{Дальше}', 'containers') };
}

gruzchik = obj {
	var { started = false };
	nam = 'грузчик';
	dsc = 'Я вижу {грузчика}!';
	act = [[Нужно что-то делать, иначе все пропало!!!]];
}

gruzend = xroom {
	hideinv = true;
	forcedsc = true;
	pic = 'gfx/gora-cage.png';
	entered = code [[ set_music 'mus/story.ogg' ]];
	nam = 'Конец';
	dsc = [[Грузчик скрылся за ящиками... Он рассказал о нас портовой охране. Это означало
		провал нашего плана. Или все было {back:по-другому}?]];
	obj = { xact('back', code [[restore_snapshot() ]]) };
}

badend = xroom {
	hideinv = true;
	forcedsc = true;
	pic = 'gfx/gora-cage.png';
	entered = code [[ set_music 'mus/story.ogg' ]];
	nam = 'Конец';
	dsc = [[Мы открыли двери контейнера... О нет!!!
	Мы ошиблись, внутри контейнера находились макароны. Потом пришли грузчики 
	и нам пришлось скрываться. "Поплавок"
	ушел без Горация.... Наш план провалился. Или все было {back:по-другому}?]];
	obj = { xact('back', code [[restore_snapshot() ]]) };
}

goodend = xroom {
	hideinv = true;
	forcedsc = true;
	nam = 'Первый причал. 04:53';
	pic = 'gfx/gora.png';
	entered = code [[ set_music 'mus/m5v-trfr.xm' ]];
	dsc = function(s)
		p [[Мы открыли двери контейнера, который наполовину был заполнен химикатами.
	Нам ничего не оставалось как выгрузить корм, вывести Горация и 
	таскать все эти пакеты в нашу машину.^
	Время все шло, мои руки нестерпимо болели, но к счастью, дело подходило к концу. Потом мы
	завели Горация в его новый дом. Ему предстояло провести в нем не меньше десяти дней.^
	-- Сынок, я отвезу машину подальше...^
	-- Я пока попрощаюсь с Горацием!^^
	Гораций стоял спокойно, в темноте контейнера и смотрел на меня своими спокойными глазами.
	Я взял банан и протянул его слону, почти сразу мягкий хобот скользнул по моей ладони...^
	-- Тимофей, а хватит ли корма???^
	-- Сынок, мы же на банановозе, что-то придумаем... Ох сынок... Мы же совсем забыли...^
	И тут я тоже понял: слон не может ехать на Кубу один, мы совсем упустили это из виду.
	Я посмотрел на Тимофея...^
	-- Да, сынок, дела...^
	-- Я поеду с ним...^
	-- Нельзя сынок, тебе в школу через 3 часа... Видимо, придется ехать мне...^
	-- Но что будет на корабле? Что будет в порту на Кубе???^
	-- Эх, сынок!! Где наша не пропадала, там посмотрим...^
	-- Но!^
	-- Нет времени, живей!!]];
	end;
	xdsc = [[{next:Дальше}]];
	obj = { xact('next', code [[ goto 'goodend2' ]]) };
}

goodend2 = xroom {
	hideinv = true;
	forcedsc = true;
	pic = 'gfx/theend.png';
	nam = 'Первый причал. 04:55';
	dsc = function(s)
		p [[Тимофей зашел к Горацию, я смотрел внутрь контейнера и все не мог закрыть двери...^
	-- Живей, сынок, живей! Иначе все пропало! Все зря, понимаешь?^
	И я начал закрывать двери контейнера, сначала одну, а потом и другую... Когда оставалась
	уже небольшая щель, Тимофей протянул свою руку и приобнял меня. Я почувствовал
	тепло Барсика, который сидел у него за пазухой.^
	-- Сынок, не забудь, такси у пассажирского порта!!! Денег должно хватить, ну все, сынок,
	бывай. -- он отпустил меня.^
	-- Тимофей, не забудьте мой адрес!!! -- я повторил ему мой адрес дважды,
	зная какая у него плохая память.^
	-- Запомню, сынок!!!^
	И я закрыл дверь. Срез на стержне не был сильно заметен.^
	Я вышел на причал и стал ждать, начиналась погрузка. 
	Контейнер с Горацием и Тимофеем взмыл в
	уже посветлевшее небо. "Поплавок" отчалил от причала, я провожал его до того момента,
	как взошло солнце, и в его свете я перестал различать корабль. "Как они там?" -- думал я.
	"Сможет ли Тимофей договориться с капитаном?". Потом я повернулся и не спеша зашагал
	по наполняющемуся людьми порту...]];
		if exist('compromat', me()) then
			p [[^Проходя мимо почты, я бросил письма, которые составил Тимофей,
			в почтовый ящик. Теперь я знал -- мы сделали все, что было в наших силах...]]
		end
	end;
	xdsc = [[{next:Дальше}]];
	obj = { xact('next', code [[ goto 'epilog' ]]) };
}

epilog = xroom {
	hideinv = true;
	forcedsc = true;
	pic = 'gfx/story.png';
	nam = 'Конец';
	dsc = function(s)
		p [[... Вот так все и было... В тот день я успел к первому уроку, 
		а после школы сонный вернулся домой...^
		Шло время, от Тимофея не было никаких вестей, пока однажды после школы,
		возвращаясь домой, я не увидел в прорезях нашего почтового ящика
		долгожданный конверт!^
		Я пулей сбегал домой за ключом от почтового ящика, прыгая через
		несколько ступенек вернулся на 1-й этаж и достал, дрожащими от волнения
		руками, драгоценный квадратик бумаги.]];
	end;
	xdsc = [[{next:Дальше}]];
	obj = { xact('next', code [[ goto 'epilog2' ]]) };
}

epilog2 = xroom {
	hideinv = true;
	forcedsc = true;
	nam = 'Эпилог';
	pic = 'gfx/photo.png';
	dsc = function(s)
		p [["Сынок, у нас все хорошо..." -- писал Тимофей -- "С 
		капитаном удалось договориться. Правда, не сразу. Он никак
		не мог поверить в нашу историю. Тогда я сказал, что в Горации контрабанда и
		он сразу успокоился, сынок, сразу успокоился. С едой проблем не было.
		А к Барсику привык весь экипаж ,,Поплавка''...
		Когда сошли на берег, имели место небольшие осложнения, но к счастью, все они в прошлом...^
		Сынок, высылаю тебе нашу открытку!!! В национальном парке Гораций
		окреп, и вроде бы ему собираются привезти подружку, такие дела, сынок,
		такие дела...^
		Сам я тоже здоров и чувствую себя хорошо. Переезд на Кубу окончательно
		решил мои старые проблемы, о которых не могу, тем не менее,
		писать.^
		Всегда помню тебя, сынок, твой Тимофей."^^]];
		p (txtc "КОНЕЦ");
		p ([[^^]]..txtem('История и движок:')..[[^
			]]..txtnb('    ')..[[Петр Косых^^
			]]..txtem('Графика:')..[[^
			]]..txtnb('    ')..[[Петр Косых^^
			]]..txtem('Музыка:')..[[^
			]]..txtnb('    ')..[[Journey To The Skies by Ceekayed^
			]]..txtnb('    ')..[[beery by nula^
			]]..txtnb('    ')..[[Long Waiting by Xtense^
			]]..txtnb('    ')..[[lost by kalsu?^
			]]..txtnb('    ')..[[a little harp demo by ???^
			]]..txtnb('    ')..[[True friend by Teo/Fatal Rage^
			]]..txtnb('    ')..[[hesse's sovesang by xerxes^
			]]..txtnb('    ')..[[Sour Nights by Ceekayed^
			]]..txtnb('    ')..[[digital shadows by vibe/cornercut^
			]]..txtnb('    ')..[[Little sad 2ko! by ???^
			]]..txtnb('    ')..[[Lands of eternity by Wonder/Ins, Svg^
			]]..txtnb('    ')..[[the lion is dead by ???^^]]);
			pn (txtem [[Выражаю огромную признательность всем тем, кто дал мне закончить эту игру. 
				Если вам понравилась эта история, попробуйте написать свою!]]);
			
			p (txtr(txtem 'http://instead.syscall.ru^Август 2010{next:.}'))
	end;
	obj = {
		xact('next', code [[ goto 'hidden' ]]);
	}
}

hidden = xroom {
	nam = '???';
	kbd = 'text';
	entered = code [[ tdlg:pon(6, 98); tdlg:prem(1,2,3,4,5,99); timof.pogran = false; 
		set_music 'mus/ckjourney.it'; lifeon 'timof'; place 'timof' ]];
	pic = 'gfx/toilet.png';
	dsc = [[Я нахожусь в туалете.]];
	obj = { 
		obj {
			nam = 'унитаз';
			dsc = 'Здесь установлен {унитаз}.';
			act = function(s)
				p [[Я поднял крышку и заглянул в унитаз. Пусто.]]
			end;
		};
		obj  {
			nam = 'бумага';
			dsc = 'На стене висит {рулон} туалетной бумаги.';
			act = 'Какие-то странные буквы: 0xB0BA...'
		}
	};
}

entercode= xroom {
	forcedsc = true;
	hideinv = true;
	nam = 'Звонок';
	var { text = '' };
	entered = code [[ self.text = '' ]];
	dsc = function(s)
		p [[Набранный номер:]]
		pn (s.text)
		p (txtc[[{key(1):1} {key(2):2} {key(3):3} {key(4):4} {key(5):5}]]);
		pn (txtc[[{key(6):6} {key(7):7} {key(8):8} {key(9):9} {key(0):0}]]);
		pn (txtc[[{key(cancel):«Сброс»} {key(call):«Звонок»}]]);
	end,
	obj = {
		obj {
			nam = 'key';
			act = function(s, w)
				local o = entercode; -- name of room
				if w == 'call' then
					if o.text == '1101110' or o.text == '11001110' or o.text == '1011000010111010' then
						set_sound 'snd/teleport.ogg'
						goto 'goodend'
						return
					end
					p [[-- Неправильно набран номер...]];
					goback();
				elseif w == 'cancel' then
					o.text = '';
				elseif o.text:len() < 16 then
					o.text = o.text..w;
				end
				return true
			end
		}
	};
};

containers = xroom {
	var { alarm = 0 };
	pic = 'gfx/containers.png';
	nam = 'У контейнеров';
	timer = function(s)
		if s.alarm == 0 then
			put 'gruzchik'
			p (txtem[[Вдруг, я увидел как из-за контейнеров вышел грузчик.]])
			s.alarm = 1
		elseif s.alarm == 1 then
			p [[Грузчик заметил нас.]]
			s.alarm = 2
		elseif s.alarm == 2 then
			p [[Грузчик собирается убегать...]]
			s.alarm = 3
		elseif s.alarm == 3 then
			timer:stop();
			goin 'gruzend'
		end
	end;
	entered = function(s)
		if not seen 'timof' then
			make_snapshot();
			timof.barsik = true
			ways(prich1):add(vroom('К контейнерам', 'containers'));
			p [[Я подбежал к машине и услышал голос Тимофея.^
			-- Ну что, получилось, сынок?!!! -- Тимофей вывалился из окна
			и встал возле машины, Барсика он держал за пазухой. -- Я вернул документы тому парню, сынок, к счастью,
			мы успели! Но погрузка может начаться с минуты на минуту.
			Номер контейнера, который нам нужен, сынок... Ох, 
			я забыл его, я забыл!!... Но там была цифра 78... А я пока пойду открою Горация...]]
			lifeon 'timof'
			put 'timof'
			put 'car'
		end
	end;
	dsc = "Мы стоим у контейнеров. За их крышами видны краны банановоза.";
	obj = {
		obj {
			nam = 'контейнеры';
			dsc = 'Вокруг нас стоят {контейнеры}.';
			act = function(s)
				if exist 'контейнер'.opened then
					return "Я уже открыл один контейнер. На другие нет времени."
				end
				local tab = {
					"{conts:SZDU0343676}",
					"{conts:UZUU3814052}",
					"{conts:RZDU2038768}",
					"{conts(yes):RZDU3782583}",
					"{conts:RZDU9381184}",
					"{conts:RZDU1873486}",
				};
				local got = {1, 2, 3, 4, 5, 6}
				local i,v
				for i = 1, #tab do
					local k = rnd(#got)
					v = got[k]
					stead.table.remove(got, k);
					p (tab[v]);
				end
				if not gruzchik.started then
					timer:set(4000);
					gruzchik.started = true
				end
				p "Какой из них?"
			end
		};
		xact('conts', function(s, w)
			know_cont = true
			p [[Я думаю, это он!!!]];
			exist 'контейнер':enable();
			if w == 'yes' then
				exist 'контейнер'.itis = true
			else
				exist 'контейнер'.itis = false				
			end
		end),
		obj {
			var { opened = false; itis = false };
			nam = "контейнер";
			dsc = 'Среди них я вижу {контейнер}, который я нашел.';
			act = function(s)
				if seen 'gruzchik' then
					p [[Грузчик обнаружил нас!!!]]
					return
				end
				if not s.opened then
					p [[На контейнере установлен замок.
					Длинный стальной стержень с 
					фиксирующими механизмами.]]
					return
				end
				if not s.itis then
					goin 'badend'
					return
				end
				delete_snapshot()
				goin 'goodend';
			end;
		}:disable();
	};
	exit = function(s)
		if gruzchik.started then
			return [[Не сейчас.]], false;
		end
	end;
	way = { vroom('К причалу', 'prich1') };
}

prich1 = xroom {
	nam = 'Причал 1';
	pic = 'gfx/port1.png';
	dsc = [[Мы находимся на первом причале. ]];
	enter = function(s)
		if have 'money' and not live 'timof' then
			goto 'gointim'
		end
	end;
	obj = { ship, kran, 
		obj {
			nam = 'контейнеры';
			dsc = 'Рядом с причалом стоят {контейнеры}.';
			act = 'Как их много!';
		},
		people
	};
	way = { vroom('К причалу 2', 'prich2')}
}

-- vim:ts=4
