Files @ 61a5987f06f0
Branch filter:

Location: games/Awakening/first_city_outer_rim.lua

Silverwing
iyh rewrite progress
--dependencies
dofile "service_tunnels.lua";
dofile "hope.lua";
dofile "hope_cutscene.lua";

-- TODO (приватная бета-версия) добавить описания ворот открытых и закрытых

char_first_city_guardian = obj {
	nam = "first_city_guardian";
	disp = "Страж";
	dsc = [[
		Вы видите фигуру {Навьяра}, стоящего около ворот. Приглядевшись внимательнее, вы понимаете, что это автоматон.^
	]];
	act = function()
		return [[
			Автоматон выглядит намного совершеннее тех, что вам доводилось видеть на Атлантиде. Его тело покрыто чешуей, как и тело живых Навьяр. Его выдают лишь стеклянные немигающие глаза и полная неподвижность.
			Головные плавники автоматона плавно меняют цвета, но даже если бы вы понимали, что это значит, вы не смогли бы ему ответить.
		]];
	end
};

first_city_entrance = room {
	nam = "first_city_entrance";
	disp = "Лсэрианотр, врата";
	dsc = function(s)
		if (not s.open) then
			return [[
				Вы находитесь на глубине нескольких километров под водой. Прожектор вашего скафандра с трудом пробивает непроглядную толщу воды. 
				Почти вплотную перед вами расположены огромные ворота из неизвестного материала. 
			]];
		else
			return [[
				Вы находитесь на глубине нескольких километров под водой. Прожектор вашего скафандра с трудом пробивает непроглядную толщу воды. 
				Огромные ворота открыты и Левиафан легко пройдет в них.
			]];
		end;
	end;
	view = function(s)
		if (not s.open) then
			return [[
				"Левиафан" находится на глубине нескольких километров под водой. Мощный прожектор субмарины с трудом пробивает непроглядную толщу воды. 
				Огромные ворота из неизвестного материала преграждают вам путь внутрь. 
			]];
		else
			return [[
				"Левиафан" находится на глубине нескольких километров под водой. Мощный прожектор субмарины с трудом пробивает непроглядную толщу воды. 
				Огромные ворота открыты и Левиафан легко пройдет в них.
			]];
		end;
	end;
	obj = {
		"char_first_city_guardian";
	};
	way = {
		vroom("Левиафан", "leviathan_airlock");
	};
};

first_city_outer_south = room {
	nam = "first_city_outer_south";
	disp = "Лсэрианотр, внешнее кольцо, юг";
	gate = "first_city_entrance";
	east = "first_city_outer_east";
	west = "first_city_outer_west";
	navigatable = true;
	entered = function(s)
		s.entered = nil;
		-- Должно выполняться только один раз:
		-- 1. Генерируем сервисные тоннели
		-- 2. Генерируем табличку сервисных тоннелей для библиотеки
		-- 3. Генерируем ссылки на документы на Надежде
	end;
	dsc = [[
		Вы находитесь в южной части внешнего кольца Лсэрианотра. Это огромный коридор, опоясывающий город по периметру. 
		Высоко над головой виден прозрачный купол, не дающий проникнуть в город минуя ворота. 
	]];
	view = [[
		Вы находитесь в южной части внешнего кольца Лсэрианотра. Это огромный коридор, опоясывающий город по периметру. 
		Высоко над головой виден прозрачный купол, не дающий проникнуть в город минуя ворота.
	]];
	way = {
		vroom("Левиафан", "leviathan_airlock");
	};
};

first_city_outer_east = room {
	nam = "first_city_outer_east";
	disp = "Лсэрианотр, внешнее кольцо, восток";
	south = "first_city_outer_south";
	north = "first_city_outer_north";
	navigatable = true;
	dsc = [[
		Вы находитесь в восточной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. На востоке вы видите огромное здание с большим количеством труб, идущих до самого купола. Скорее всего, это какая-то древняя фабрика.
	]];
	view = [[
		Вы находитесь в восточной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	way = {
		vroom("Левиафан", "leviathan_airlock");
		vroom("В здание", "first_city_factory");
	};
};

first_city_outer_west = room {
	nam = "first_city_outer_west";
	disp = "Лсэрианотр, внешнее кольцо, запад";
	south = "first_city_outer_south";
	north = "first_city_outer_north";
	navigatable = true;
	dsc = [[
		Вы находитесь в западной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	view = [[
		Вы находитесь в западной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	way = {
		vroom("Левиафан", "leviathan_airlock");
		vroom("В здание", "first_city_library");
	};
};

first_city_outer_north = room {
	nam = "first_city_outer_north";
	disp = "Лсэрианотр, внешнее кольцо, север";
	gate = "first_city_middle_north";
	east = "first_city_outer_east";
	west = "first_city_outer_west";
	navigatable = true;
	dsc = [[
		Вы находитесь в северной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	view = [[
		Вы находитесь в северной части внешнего кольца Лсэрианотр. Это огромный коридор, опоясывающий город по периметру. 
	]];
	obj = {
		"submarine_hope"
	};
	way = {
		vroom("Левиафан", "leviathan_airlock");
		vroom("Надежда", "hope_airlock");
	};
};

path_first_city_tunnel = vroom("В сервисный тоннель", "service_tunnels");

first_city_factory = room {
	nam = "first_city_factory";
	disp = "Лсэрианотр, внешнее кольцо, завод";
	entered = function(s)
		service_tunnels.position = "3";
	end;
	dsc = [[
		Помещение, в котором вы находитесь, очевидно, некогда было заводом. Конвейеры, странные механизмы, разбросанные инструменты, долгие тысячелетия лежавшие без движения. 
	]];
	obj = {
		"item_pickaxe",
		"first_city_crack"
	};
	way = {
		disable(path_first_city_tunnel);
	};
};

first_city_crack = obj {
	nam = "first_city_crack";
	dsc = "В дальней стене вы видите {трещину}. Сквозь нее пробивается слабый свет, очевидно там какое-то помещение.";
	act = function(s)
		if (s.wide) then
			return [[
				Вы видите за щелью какие-то тоннели. Вы сможете пролезть туда.
			]];
		else
			return [[
				Нужно чем-то расширить эту щель, если вы хотите туда попасть
			]];
		end;
	end;
	canhit = true;
	onhit = function(s)
		if (s.wide) then
			return "Трещина уже достаточно большая для вас, нет смысла еще что-то с ней делать."
		else
			s.wide = true;
			enable(path_first_city_tunnel);
			return "Несколькими осторожными ударами кирки вы расширяете трещину достаточно, чтобы пролезть внутрь."
		end;
	end;
	
};

first_city_library = room {
	nam = "first_city_library";
	disp = "Лсэрианотр, внешнее кольцо, библиотека";
	dsc = [[
		В здании вы видите огромные стеллажи, заполненные табличками из неизвестного материала. Таблички исписаны письменами Навьяров и потускнели от времени. 
	]];
	obj = {
		'first_city_index',
		'first_city_maintenance_info'
	};
};

first_city_index = obj {
	nam = "first_city_index";
	dsc = "На стене возле входа висит большая {табличка}. ";
	act = function(s)
	end;
};

first_city_maintenance_info = obj {
	nam = "first_city_index";
	dsc = "Один из {стеллажей} рядом со входом содержит информацию об обслуживании Лсэрианотра. Вероятно, там вы найдете то, что поможет вам отключить охранную систему города. ";
	act = function(s)
		if (s.taken) then
			return "Врядли вы найдете здесь что-то еще полезное. ";
		else
			take("item_service_info")
			return "Вы просматриваете тысячи записей и уже почти теряете всякую надежду когда натыкаетесь на табличку, описывающую сервисные тоннели города. ";
		end;
	end;
};