Files @ 730fdc8be55f
Branch filter:

Location: games/Awakening/final_scene.lua - annotation

Silverwing
Progress on dlg rewrite; Svetlova dlg rewrite
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
e56198c202cf
c4b207ce4252
e56198c202cf
e56198c202cf
e56198c202cf
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
e56198c202cf
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
e56198c202cf
c4b207ce4252
e56198c202cf
e56198c202cf
e56198c202cf
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
c4b207ce4252
c4b207ce4252
bda865ce65bd
bda865ce65bd
c4b207ce4252
c4b207ce4252
bda865ce65bd
bda865ce65bd
c4b207ce4252
c4b207ce4252
bda865ce65bd
bda865ce65bd
bda865ce65bd
bda865ce65bd
bda865ce65bd
bda865ce65bd
bda865ce65bd
c4b207ce4252
bda865ce65bd
bda865ce65bd
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
bda865ce65bd
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
bda865ce65bd
bda865ce65bd
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
c4b207ce4252
e56198c202cf
e56198c202cf
e56198c202cf
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
c4b207ce4252
e56198c202cf
bda865ce65bd
e56198c202cf
e56198c202cf
c4b207ce4252
bda865ce65bd
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
bda865ce65bd
bda865ce65bd
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
c4b207ce4252
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
e56198c202cf
adrian_helper = obj {
	nam = "adrian_helper";
	life = function(s)
		if (char_adrian.state > 1 and char_adrian.state < 5) then 
			char_adrian.state = char_adrian.state + 1;
		elseif (char_adrian.state == 5) then
			char_naethvjirr.active = true;
			p([[
				Адриан что-то делает с пультом управления и Наэтвьирр оживает
			]]);
			lifeoff(s);
			walk("pre_battle_scene_normal");
		end;
	end;
};

char_adrian = obj {
	nam = "adrian";
	disp = "Adrian";
	state = 1;
	dsc = function(s)
		if (char_naethvjirr.active) then
			return [[
				Вы видите {Адриана Блэка}, стоящего рядом с автоматоном. ^
			]];
		else
			if (s.state == 1) then
				return [[
					Вы видите {Адриана Блэка}, стоящего рядом с автоматоном. Он что-то делает с ним. ^
				]];
			elseif (s.state < 6) then
				return [[
					{Адриан Блэк} собирается включить Наэтвьирра. ^
				]];
			end;
		end;
	end;
	life = function(s)
		if (s.state < 5) then 
			s.state = s.state + 1;
		elseif (s.state == 5) then
			char_naethvjirr.active = true;
			p([[
				Адриан что-то делает с пультом управления и Наэтвьирр оживает
			]]);
			lifeoff(s);
			walk("pre_battle_scene_normal");
		end;
	end;
	act = function(s)
		if (s.state == 1) then 
			walkin "adrian_dlg";
		elseif (s.state < 5) then
			return "Надо как-то остановить его, но как?";
		else 
			-- TODO: Вы сбиваете Адриана с ног
		end;
	end;
};

adrian_dlg = dlg {
	nam = "adrian_dlg";
	disp = "Адриан Блэк";
	hideinv = true;
	entered = [[
		Блэк поворачивается к вам. Его лицо выражает крайнюю степень удивления: 
		"Кто вы, черт возьми, такие?!". Он отвлекся от работы с Наэтвьирром. Кажется, он не рад вас видеть.
	]];
	phr = {
		{"Адриан Блэк?", [[
			"Предположим. "
		]]},
		{"Что здесь происходит?", [[
			"Завершаю то, что должно было закончиться тысячелетия назад. Эта машина, Наэтвьирр - спящий разум глубин, как его называют Навьяры, или если точнее - Эйлеслвьихенарр - вечный разум глубин и поверхности. Он таит знания тысяч поколений Навьяр - они не должны скрываться под толщей воды, они должны быть открыты нам! "
		]], [[ pstart 'more_naethvjirr' ]]},
		{
			tag="more_naethvjirr"
		},
		{"Что вы знаете о Наэтвьирре?", [[
			"Согласно легендам, собранным мной в разных поселениях навьяров, Наэтвьирр был построен в глубокой древности навьярами, которые тогда господствовали как под водой, так и на суше. Единственной целью существования Наэтвьирра было стать "вечным мудрецом" - "эйлеслэйлайхевьирр", как его называют до сих пор в некоторых местах. Имена менялись, как всегда было у навьяров, но всегда отражали суть - частично или полностью - мыслящая, всезнающая машина, способная ответить на многие вопросы и помочь принять многие трудные решения. Только по чудовищному недоразумению он не был активирован раньше. "
		]]},
		{"Вы понимаете, насколько опасно включать эту машину, как бы она ни называлась?", [[
			"Во-первых, не тебе учить меня. Во-вторых, я все предусмотрел - в случае опасности я смогу отключить его."
		]], [[ pstart 'halt_naethvjirr' ]]},
		{
			tag="halt_naethvjirr", 
			empty = function()
				char_adrian.state = 2;
				p("^^С этими словами, Адриан подходит к рубильнику. У вас есть несколько мгновений, чтобы отреагировать");
				walk("final_scene");
				char_naethvjirr.canshoot = true;
				lifeon(adrian_helper);
			end
		},
		{"Как вы собираетесь управлять им, если ключ утерян? *Вы показываете Адриану табличку со схемой работы Наэтвьирра*", [[
			Адриан показывает вам серебристую пластинку небольшого размера(около 20х15см), на которой отсвечивают красноватые круги и линии. - "Я все предусмотрел. Без этой деталюшки Наэтвьирр будет серьезно ограничен в возможностях - это тот самый компонент, который должен блокироваться или разблокироваться ключом. "
		]]}
	};
};

char_naethvjirr = obj {
	nam = "naethvjirr";
	disp = "Наэтвьирр";
	disp2 = "Наэтвьирра";
	canshoot = false;	
	dsc = function(s)
		if (s.active) then
			return [[
				В центре зала перед массивной конструкцией, напоминающей трон, стоит {автоматон навьяр}. Конструкт выглядит совершенно как живой, сияющие белым светом глаза оглядывают помещение и вас в ожидании ваших действий. Тысячи проводов тянутся от "трона" к стенам, подобно щупальцам. ^
			]];
		else
			return [[
				В центре зала на массивной конструкции, напоминающей трон, сидит {навьяр}. Конструкт выглядит совершенно как живой, однако он абсолютно неподвижен. Покрытые серебристой чешуей, его руки покоятся на коленях. Тысячи проводов тянутся от "трона" и фигуры к стенам, подобно щупальцам. Глаза навьяра закрыты. ^
			]];
		end;
	end;
	act = [[
		Я пока не знаю, что с этим делать
	]];
	noshootmsg = "Я не знаю, к чему это приведет, пока лучше этого не делать";
	nohitmsg = "Я не знаю, к чему это приведет, пока лучше этого не делать";
	onshoot = function(s)
		p("^^Ваш выстрел повреждает Наэтвьирра, но вы не замечаете, сказалось ли это на его работоспособности");
		fb_naethvjirr.hitpoints = 2;
		char_adrian.state = 6;
		-- TODO Адриан стреляет в одного из членов партии
		if (#pl.party ~= 0) then
			local chosen_one;
			local chosen_one_index = rnd(#pl.party);
			local chosen_one_name = pl.party[chosen_one_index];
			if (chosen_one_name == "learr") then
				chosen_one = char_learr_fb;
			elseif (chosen_one_name == "phaetlarr") then
				chosen_one = char_phaetlarr_fb;
			elseif (chosen_one_name == "radcliffe") then
				chosen_one = char_radcliffe_fb;
			else
				chosen_one = char_wright_fb; 
			end;
			table.remove(pl.party, chosen_one_index);
			p("^^Адриан вскидывает пистолет и стреляет в вашу сторону. " .. chosen_one.disp .. " падает замертво");
			
			walk("pre_battle_scene_fight");
		else
			-- TODO Адриан стреляет в вас
			walk("game_over_shot");
		end;
	end;
};

char_learr_fb = obj {
	nam = "learr_fb";
	disp = "Леарр";
	dsc = function()
		return [[
			{Леарр} смотрит попеременно то на вас, то на Адриана ^
		]];
	end;
};

char_phaetlarr_fb = obj {
	nam = "phaetlarr_fb";
	disp = "Фаэтларр";
	dsc = function()
		return [[
			{Фаэтларр} оглядывает зал ^
		]];
	end;
};

char_radcliffe_fb = obj {
	nam = "radcliffe_fb";
	disp = "Уолтер Рэдклифф";
	dsc = function()
		return [[
			{Уолтер Рэдклифф} с интересом разглядывает Наэтвьирра ^
		]];
	end;
};

char_wright_fb = obj {
	nam = "wright_fb";
	disp = "Джек Райт";
	dsc = function()
		return [[
			{Джек Райт} ждет ваших действий ^
		]];
	end;
};

final_scene= room {
	nam = "final_scene";
	disp = "Лсэрианотр, центральный зал";
	dsc = [[
		Вы находитесь в центральном зале древнего города Навьяр. Вдоль стен стоят огромные металлические шкафы, из которых тысячи проводом тянутся к громадной конструкции в центре зала. Мягкий свет льется сверху, практически ослепляя вас после полумрака остальной части мертвого города. 
	]];
	obj = {
		"char_naethvjirr",
		"char_adrian",
		"adrian_helper",
		"char_learr_fb",
		"char_phaetlarr_fb",
		"char_radcliffe_fb",
		"char_wright_fb"
	};
};

pre_battle_scene_fight = room {
	nam = "pre_battle_scene_fight";
	disp = "Лсэрианотр, центральный зал";
	dsc = [[
		Вы не успеваете опомниться, как Блэк снова стоит у пульта, а Наэтвьирр открывает глаза и оглядывает помещение. Адриан тут же издает приказ, указывая на вас:"Убей их"
	]];
	obj = {
		vway("Продолжить", "{Продолжить}", 'final_battle')
	};
};

pre_battle_scene_normal = room {
	nam = "pre_battle_scene_normal";
	disp = "Лсэрианотр, центральный зал";
	dsc = [[
		В глазах автоматона зажигается мягкий синий свет и он поворачивается к Адриану. Какое-то время он молчит, видимо, пытаясь подобрать наиболее подходящий язык для общения. В итоге по головным плавникам Навьяра побежали цветные полосы - ставший уже столь привычным для вас, способ общения среди Навьяров. Он "говорит" быстро, и вы успеваете понять лишь отдельные слова: "время", "пробуждение", "повелитель". Вы понимаете, что у вас есть еще немного времени, чтобы остановить его. Едва вы достаете оружие, как из пола перед троном поднимаются два небольших пилона. Очевидно, что город будет защищать своего хозяина. 
	]];
	obj = {
		vway("Продолжить", "{Продолжить}", 'final_battle')
	};
};