Changeset - 1f8b118150d5
[Not reviewed]
default
0 1 0
Silverwing - 7 years ago 2017-06-17 09:04:27

iyh rewrite progress
1 file changed with 39 insertions and 22 deletions:
0 comments (0 inline, 0 general)
atlantis_iyhehevjiarr.lua
Show inline comments
 
atl_lev_first_sail = room {
 
	nam = "Левиафан";
 
	hideinv = true;
 
	dsc = [[
 
		Вы поднимаетесь на борт Левиафана и ждете, когда соберется команда. Меньше, чем через пятнадцать минут все поднимаются на борт и вы можете отправляться. 
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "leviathan_captains_cabin");
 
	};
 
};
 
 
char_aikerjarr_lev = obj {
 
	var {
 
		follow = true;
 
	};
 
	nam = "aikerjarr";
 
	disp = "Аикерьярр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[
 
				{Аикерьярр} стоит перед иллюминатором. ^
 
			]];
 
		else
 
			return [[
 
				{Аикерьярр} смотрит на вас. ^
 
			]];
 
		end;
 
	end;
 
	home = "leviathan_wheelhouse";
 
	accompany = function(s, value)
 
		s.follow = value;
 
		if (value) then
 
			lifeon(s);
 
		else
 
			move(s, s.home, where(s));
 
			lifeoff(s);
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(pl).leviathan) then
 
			if (stead.nameof(where(s)) ~= s.home) then
 
				move(s, s.home, where(s));
 
			end;
 
		else
 
			move(s, where(pl), where(s));
 
		end;
 
	end;
 
	act = function(s)
 
		if (not where(pl).leviathan) then
 
			return [[
 
				Вы не можете говорить с ним сейчас.
 
			]];
 
		end;
 
		if (atl_iyh_shockfish_dead) then
 
			return [[
 
				Аикерьярр молчит.
 
			]];
 
		else
 
			return [[
 
				"Вы что-нужно-делайте. Я наблюдаю". 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_far_from_entrance_foot = room {
 
	nam = "Океан";
 
	handwheel_room = "iyh_far_from_entrance";
 
	underwater = true;
 
	no_exit = [[
 
		Нет смысла покидать Левиафан здесь. 
 
	]];
 
	dsc = [[
 
		Вы видите вдалеке высокую скалу, простирающуюся на многие километры в обе стороны. Прямо перед вами, в скале вы видите массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. 
 
	]];
 
	view = [[
 
		Через иллюминаторы вы видите вдалеке высокую скалу, простирающуюся на многие километры в обе стороны. Прямо перед вами, в скале вы видите массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. 
 
	]];
 
	way = {
 
		kh_vroom("В Левиафан", "leviathan_airlock");
 
	};
 
};
 
 
iyh_far_from_entrance = dlg {
 
	var {
 
		visited = false;
 
	};
 
	no_exit = [[
 
		Нет смысла покидать Левиафан здесь. 
 
	]];
 
	nam = "Левиафан, рубка";
 
	hideinv = true;
 
	entered = function(s)
 
		atl_iyh_state = 7;
 
		if (not s.visited) then
 
			return [[
 
				Вы прибываете на место.
 
			]];
 
		end;
 
	end;
 
	dsc = function(s)
 
		pr [[Через иллюминаторы вы видите высокую скалу, простирающуюся на многие километры в обе стороны. В скале вырезаны массивные каменные двери храма, застывшие в открытом состоянии. Над дверьми вы видите небольшой козырек, поддерживаемый массивными колоннами. ]];
 
		
 
		if (not s.visited) then
 
			s.visited = true;
 
			if (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then
 
				return [[
 
					Аиверьярр молча рассматривает храм через иллюминаторы. ]];
 
			elseif (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
				return [[Леарр поднимается в рубку. При виде храма, она восклицает: "Мы должны-попасть туда!" ]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
		{tag="advance", always=true, "[Подойти ближе]", [[Послушные вашей воле, двигатели Левиафана приводят субмарину в движение и вы плавно приближаетесь ко входу в храм. ]], code [[ walk('iyh_near_temple'); ]]};
 
		{tag="wait", "[Ждать]", [[Вы решаете подождать до наступления ночи и это правдывает себя. Как только последние лучи солнца перестают пробиваться сквозь толщу воды, скат выбирается из своего логова и отправляется на охоту. ]], code [[ 
 
			lifeon(iyh_far_from_entrance);
 
			atl_iyh_shockfish_away = 30;
 
		]]};
 
		{tag="light_temple", always=true, "[Осветить вход в храм]", [[Мощный луч света падает на вход в храм. Вы видите внутри какое-то движение и изнутри выплывает огромный скат. ]], code [[ iyh_fight.distance = 1000; walk('iyh_fight'); ]]};
 
		{tag="light_wall_r", "[Осветить скалы справа от храма]", [[Мощный луч света освещает скалы по правую сторону от храма. Он плавно скользит по поверхности скалы, пока вы не натыкаетесь на то, что отсюда кажется вам каким-то ущельем. Возможно следует изучить его? ]], code [[ 
 
			iyh_near_temple:pon('ravine');
 
			pon('ravine'); 
 
		]]};
 
		{tag="light_wall_l", "[Осветить скалы слева от храма]", [[Мощный луч света освещает скалы по левую сторону от храма. Он плавно скользит по поверхности скалы, однако так и не натыкается ни на что интересное. ]]};
 
		{tag="ravine", false, always=true, "[Подойти ко входу в ущелье]", [[Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье. ]], code [[ walk('iyh_ravine_entry'); ]]};
 
		{tag="away", always=true, "[Отойти от штурвала]", code = [[
 
			walk('leviathan_wheelhouse');
 
		]]};
 
		{tag="return", always=true, "[Покинуть храм]", code = [[
 
			walk('leviathan_dlg');
 
		]]};
 
	};
 
	life = function(s)
 
		if (not atl_iyh_shockfish_left) then
 
			atl_iyh_shockfish_away = atl_iyh_shockfish_away - 1;
 
			if (atl_iyh_shockfish_away == 0) then
 
				if (where(pl) == iyh_temple_main_hall_entry or where(pl) == iyh_temple_main_hall_middle or where(pl) == iyh_temple_main_hall_end or where(pl) == iyh_near_temple_foot) then
 
					walk("game_over_shockfish");
 
				elseif (where(pl).leviathan == true and (where(submarine_leviathan) == "iyh_near_temple_foot")) then
 
					pr [[Скат возвращается и, заметив Левиафан, тут же нападает на субмарину. Вы поднимаетесь на мостик, чтобы принять управление. ]];
 
					walk("iyh_fight");
 
				end;
 
			elseif (atl_iyh_shockfish_away < 5) then
 
				pr "Приближается рассвет. Скат скоро вернется. ";
 
			end;
 
		end;
 
	end;
 
};
 
 
iyh_fight = room {
 
	var {
 
		temple_distance = 0;
 
		distance = 0;
 
		shockfish_health = 100;
 
		timing = 0;
 
	};
 
	nam = "Штурвал Левиафана";
 
	entered = function(s)
 
		s.temple_distance = s.distance;
 
		s.shockfish_health = 100;
 
	end;
 
	hideinv = true;
 
	forcedsc = true;
 
	leviathan = true;
 
	dsc = function(s)
 
		pr("Вы находитесь от ската на расстоянии около "..tostring(s.distance).." метров. ");
 
		pr("Храм находится примерно на расстоянии " .. tostring(s.temple_distance) .. " метров. ");
 
		pr("На приборной панели вы видите, что ");
 
		iyh_fight_torpedo:enable();
 
		iyh_fight_recharge:disable();
 
		if (submarine_leviathan.torpedoes == 2) then
 
			pr "оба торпедных аппапата заряжены и готовы к бою. ";
 
		elseif (submarine_leviathan.torpedoes == 1) then
 
			pr "только один из торпедных аппаратов заряжен. ";
 
		else
 
			iyh_fight_recharge:enable();
 
			iyh_fight_torpedo:disable();
 
			pr "у вас не осталось заряженных торпед. ";
 
		end;
 
		if (submarine_leviathan.electric_integrity < 30) then
 
			pr "Свет в рубке периодически моргает, чувствуется запах горелой проводки, часть проводов искрит. ";
 
		elseif (submarine_leviathan.electric_integrity < 70) then	
 
			pr "Свет в рубке периодически моргает. ";
 
		end;
 
		if (submarine_leviathan.hull_integrity < 30) then
 
			pr "Обшивка Левиафана сильно повреждена. ";
 
		elseif (submarine_leviathan.hull_integrity < 70) then	
 
			pr "Обшивка Левиафана повреждена. ";
 
		end;
 
	end;
 
	maketurn = function(s)
 
		if (s.distance > 1000) then
 
			if (s.shockfish_health < 20 or atl_iyh_entrance_destroyed) then
 
				pr "Скат уплывает и вы остаетесь одни. ";
 
				atl_iyh_shockfish_left = true;
 
				walk("iyh_far_from_entrance");
 
			else
 
				pr "Вы удаляетесь достаточно далеко и скат возвращается к себе в жилище. ";
 
				walk("iyh_far_from_entrance");
 
			end;
 
		end;
 
		if (s.shockfish_health < 20 or (atl_iyh_entrance_destroyed and s.shockfish_health < 70)) then
 
			if (s.distance < 0) then
 
				s.distance = s.distance - 75;
 
			else
 
				s.distance = s.distance + 75;
 
			end;
 
			pr "Скат пытается сбежать от вас. ";
 
		else
 
			if (math.abs(s.distance) <= 75) then
 
				if (math.abs(s.distance) > 0) then
 
					s.distance = 0;
 
					pr "Скат приближается к вам. ";
 
				end;
 
				
 
				if (s.timing <= 0) then
 
					s.timing = 5;
 
					pr "Скат атакует Левиафан электрическим разрядом. ";
 
					submarine_leviathan.electric_integrity = submarine_leviathan.electric_integrity - 10;
 
					if (submarine_leviathan.electric_integrity > 50) then
 
						pr "Атака не оказывает видимого эффекта на субмарину. ";
 
					elseif (submarine_leviathan.electric_integrity > 0) then
 
						pr "Свет моргает, проводка искрит. ";
 
						if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Райта: \"Мы так долго не протянем\". ";
 
						elseif (ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
							pr "По телефону вы слышите встревоженный голос Рэдклиффа: \"Мы так долго не протянем\". ";
 
						end;
 
					else
 
						walk('game_over_powerless');
 
					end;
 
				else
 
					s.timing = s.timing - 1;
 
					pr "Скат пытается пробить обшивку Левиафана хвостовым шипом. ";
 
					submarine_leviathan.hull_integrity = submarine_leviathan.hull_integrity - 5;
 
					if (submarine_leviathan.hull_integrity > 50) then
 
						pr ", но не наосит ощитимого ущерба. ";
 
					elseif (submarine_leviathan.hull_integrity > 0) then
 
						pr ". Сильный удар повреждает внешнюю обшивку, в резервуары проникает вода. ";
 
					else
 
						walk('game_over_sunk');
 
					end;
 
				end;
 
			else
 
				pr "Скат приближается к вам. ";
 
				if (s.distance < 0) then
 
				s.distance = s.distance + 75;
 
			else
 
				s.distance = s.distance - 75;
 
			end;
 
			end;
 
		end;
 
	end;
 
	obj = {
 
		"iyh_fight_torpedo",
 
		"iyh_fight_sonic",
 
		"iyh_fight_recharge",
 
		"iyh_advance_full",
 
		"iyh_advance_half",
 
		"iyh_advance_quarter",
 
		"iyh_retreat_full",
 
		"iyh_retreat_half",
 
		"iyh_retreat_quarter"
 
	};
 
};
 
 
iyh_fight_torpedo_temple = obj {
 
	nam = "iyh_fight_torpedo_temple";
 
	dsc = "{Выстрелить торпедой в храм}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.temple_distance) < 50) then
 
			return [[Цель слишком близко. ]];
 
		elseif (math.abs(iyh_fight.temple_distance) > 200) then
 
			return [[Цель слишком далеко. ]];
 
		else
 
			atl_iyh_entrance_destroyed = true;
 
			return [[Торпеда попадает в аккурат над храмом и вход оказывается завален тяжелыми глыбами. ]];
 
		end;
 
	end;
 
};
 
 
iyh_fight_torpedo = obj {
 
	nam = "iyh_fight_torpedo";
 
	dsc = "{Выстрелить торпедой в ската}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.distance) < 50) then
 
			return [[Цель слишком близко. ]];
 
		elseif (math.abs(iyh_fight.distance) > 200) then
 
			return [[Цель слишком далеко. ]];
 
		else
 
			if (iyh_fight.shockfish_health > 70) then
 
				local meters = 25 * rnd(3) + 25;
 
				iyh_fight.shockfish_health = iyh_fight.shockfish_health - 70;
 
				if (iyh_fight.distance >= 0) then
 
					iyh_fight.distance = iyh_fight.distance + meters;
 
				else
 
					iyh_fight.distance = iyh_fight.distance - meters;
 
				end;
 
				pr("Вы стреляете торпедой в ската. Торпеда достигает цели. Ската отбрасывает назад на ".. tostring(meters) .. " метров. ");
 
			else
 
				iyh_fight.shockfish_health = 0;
 
				atl_iyh_shockfish_dead = true;
 
				pr "Вы стреляете торпедой в ската. Торпеда взрывается достигнув цели и разрывает ската. Вода краснеет от крови, а вы теперь можете безопасно приблизиться к храму. ";
 
				
 
				if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
					pr [[Леарр в ярости поднимается в рубку и кричит на вас: "Что ты делаешь ненавистный-a'rr?!" ]];
 
				elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then
 
					pr [[Аикерьярр отворачивается от иллюминатора и со злобой смотрит на вас: "Ты за-это-ответишь he'rr". ]];
 
				end;
 
				
 
				if (math.abs(iyh_fight.temple_distance) < 100) then
 
					walk("iyh_near_temple");
 
				else
 
					walk("iyh_far_from_entrance");
 
				end;
 
				
 
				return;
 
			end;
 
			return iyh_fight:maketurn();
 
		end;
 
	end;
 
};
 
 
iyh_fight_sonic = obj {
 
	nam = "iyh_fight_sonic";
 
	dsc = "{Выстрелить из звуковой пушки}^";
 
	act = function(s)
 
		if (math.abs(iyh_fight.distance) > 200) then
 
			return [[
 
				Цель слишком далеко
 
			]];
 
		else
 
			if (iyh_fight.shockfish_health > 50) then
 
				iyh_fight.shockfish_health = iyh_fight.shockfish_health - 10;
 
				pr "Вы стреляете в ската из звуковой пушки. Это лишь слегка ранит его. ";
 
			else
 
				pr "Вы стреляете в ската из звуковой пушки. Это не наносит ему серьезного ущерба. ";
 
			end;
 
			return iyh_fight:maketurn();
 
		end;
 
	end;
 
};
 
 
iyh_fight_recharge = obj {
 
	nam = "iyh_fight_torpedo";
 
	dsc = "{Перезарядить торпеды}^";
 
	act = function(s)
 
		--Если в партии нет никого кроме Леарр/Аикерьярра, то игрок перезаряжает торопеды сам, иначе - отдает преказ
 
		if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0 or ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
			pr "Вы отдаете по телефону приказ перезарядить торпедные аппараты. ";
 
		else
 
			pr "Вы спускаетесь вниз, чтобы перезарядить торпедные аппараты. ";
 
			iyh_fight:maketurn();
 
			iyh_fight:maketurn();
 
			pr "Вы возвращаетесь в рубку, чтобы продолжить бой. "
 
		end;
 
	end;
 
};
 
 
iyh_advance_full = obj {
 
	nam = "iyh_advance_full";
 
	dsc = "{Полный вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на полную мощность. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 100;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 100;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_advance_half = obj {
 
	nam = "iyh_advance_half";
 
	dsc = "{1/2 вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на половину мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 50;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 50;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_advance_quarter = obj {
 
	nam = "iyh_advance_quarter";
 
	dsc = "{1/4 вперед}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на четверть мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance - 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 25;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance + 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 25;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_retreat_full = obj {
 
	nam = "iyh_retreat_full";
 
	dsc = "{Полный назад}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на полную мощность. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance + 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 100;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance - 100;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 100;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_retreat_half = obj {
 
	nam = "iyh_retreat_half";
 
	dsc = "{1/2 назад}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на половину мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance + 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 50;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance - 50;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 50;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_retreat_quarter = obj {
 
	nam = "iyh_retreat_quarter";
 
	dsc = "{1/4 назад}^";
 
	act = function(s)
 
		pr "Вы включаете двигатели на четверть мощности. ";
 
		if (iyh_fight.distance >= 0) then
 
			iyh_fight.distance = iyh_fight.distance + 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance + 25;
 
			if (iyh_fight.distance < 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		else
 
			iyh_fight.distance = iyh_fight.distance - 25;
 
			iyh_fight.temple_distance = iyh_fight.temple_distance - 25;
 
			if (iyh_fight.distance >= 0) then
 
				pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
			end;
 
		end;
 
		iyh_fight:maketurn();
 
	end;
 
};
 
 
iyh_ravine_entry = room {
 
	nam = "Штурвал Левиафана";
 
	no_exit = [[
 
		Нет смысла покидать Левиафан здесь. 
 
	]];
 
	dsc = [[Левиафан находится у входа в ущелье. Вдалеке по левому борту, на юго-западе, вы видите вход в навьярский храм. ]];
 
	hideinv = true;
 
	way = {
 
		kh_vway("Отойти от штурвала", function(s)
 
			return "leviathan_wheelhouse";
 
		end);
 
		kh_vway("Войти в ущелье", function(s)
 
			iyh_labyrinth.position = 1;
 
			iyh_labyrinth.direction = 1;
 
			return "iyh_labyrinth";
 
		end);
 
		kh_vway("Ко входу в храм", "iyh_near_temple");
 
		kh_vway("Отойти назад", "iyh_far_from_entrance");
 
	};
 
};
 
 
--[[
 
	Описание структуры лабиринта. Каждый узел описан в двух направлениях
 
	1 - прямое
 
	2 - обратное
 
	направления обозначены как 
 
	l - налево
 
	r - направо
 
	f - прямо
 
	выход описывается одной строкой, невыходы описываются парой "узел+направление"
 
]]
 
iyh_labyrinth_template = {
 
	[1]= {[1]={l={32, 1}, r={2, 1}}, 			[2]={f="iyh_ravine_entry"}};
 
	[2]= {[1]={f={3, 1}}, 						[2]={f={1,2}}};
 
	[3]= {[1]={l={5, 1}, f={4,1}},				[2]={f={2,2}}};
 
	[4]= {[1]={}, 								[2]={f={3,2}}};
 
	[5]= {[1]={l={37, 1}, f={6,1} },			[2]={f={3,2}}};
 
	[6]= {[1]={l={7,1}, r={33, 1}},  			[2]={f={5,2}}};
 
	[7]= {[1]={l={12,1}, f={11,1}, r={8,1}},	[2]={f={6,2}}};
 
	[8]= {[1]={l={10,1}, r={9,1}}, 				[2]={f={7,2}}};
 
	[9]= {[1]={}, 								[2]={f={8,2}}};
 
	[10]={[1]={}, 								[2]={f={8,2}, r={11,2}}};
 
	[11]={[1]={f={10,1}}, 						[2]={f={7,2}}};
 
	[12]={[1]={l={14,1}, f={13,1}}, 			[2]={f={7,2}}};
 
	[13]={[1]={}, 								[2]={f={12,2}}};
 
	[14]={[1]={f={15,1}, l={20,1}}, 			[2]={f={12,2}}};
 
	[15]={[1]={l={17,1}, r={16,1}}, 			[2]={f={14,2}}};
 
	[16]={[1]={}, 								[2]={f={15,2}}};
 
	[17]={[1]={l={19,1}, r={18,1}}, 			[2]={f={15,2}}};
 
	[18]={[1]={}, 								[2]={f={17,2}}};
 
	[19]={[1]={}, 								[2]={f={17,2}}};
 
	[20]={[1]={l={22,1}, f={21,1}}, 			[2]={f={14,2}}};
 
	[21]={[1]={}, 								[2]={f={20,2}}};
 
	[22]={[1]={l={25,1}, r={23,1}}, 			[2]={f={20,2}}};
 
	[23]={[1]={l="iyh_rear_entrance", r={24,1}},[2]={f={22,2}}};
 
	[24]={[1]={}, 								[2]={f={23,2}}};
 
	[25]={[1]={l={27,1},r={26,1}}, 				[2]={f={22,2}}};
 
	[26]={[1]={}, 								[2]={f={25,2}}};
 
	[27]={[1]={l={30,2}, f={29,1}, r={28,1}}, 	[2]={f={25,2}}};
 
	[28]={[1]={}, 								[2]={f={27,2}}};
 
	[29]={[1]={}, 								[2]={f={27,2}}};
 
	[30]={[1]={l={27,2}, r={36,1}}, 			[2]={f={31,2}}};
 
	[31]={[1]={l={30,1}, r={35,1}}, 			[2]={f={32,2}}};
 
	[32]={[1]={l={31,1}, r={34,1}}, 			[2]={f={1,2}}};
 
	[33]={[1]={}, 								[2]={l={6,2}, r={37,2}}};
 
	[34]={[1]={}, 								[2]={f={32,2}}};
 
	[35]={[1]={}, 								[2]={f={31,2}}};
 
	[36]={[1]={}, 								[2]={f={30,2}}};
 
	[37]={[1]={f={33,1}}, 						[2]={f={5,2}}};
 
};
 
 
iyh_labyrinth = room {
 
	var {
 
		location = 1;
 
		direction = 1;
 
	};
 
	no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
	nam = "Штурвал Левиафана";
 
	dsc = function(s)
 
		pr [[Вы находитесь в глубоком и узком ущелье. ]];
 
		if (iyh_labyrinth_template[s.location]["f"]) then
 
			pr [[Ущелье продолжается вперед. ]];
 
		end;
 
		if (iyh_labyrinth_template[s.location]["l"] and iyh_labyrinth_template[s.location]["r"]) then
 
			pr [[Влево и вправо уходят ответвления. ]];
 
		elseif (iyh_labyrinth_template[s.location]["l"]) then
 
			pr [[Влево уходит ответвление. ]];
 
		elseif (iyh_labyrinth_template[s.location]["r"]) then
 
			pr [[Вправо уходит ответвление. ]];
 
		elseif (not iyh_labyrinth_template[s.location]["f"]) then
 
			pr [[Дальше пути нет. ]];
 
		end;
 
	end;
 
	update = function(s)
 
	end;
 
	obj = {
 
		"iyh_lab_forward",
 
		"iyh_lab_left",
 
		"iyh_lab_right",
 
		"iyh_lab_turn"
 
	};
 
};
 
 
iyh_lab_forward = obj {
 
	nam = "iyh_lab_forward";
 
	dsc = "{Вперед}^";
 
	act = function(s)
 
		pr [[Вы продолжаете движение. ]];
 
		local p = iyh_labyrinth.position;
 
		local d = iyh_labyrinth.direction;
 
		
 
		if (type(iyh_labyrinth_template[p][d]) == 'string') then
 
			walk(iyh_labyrinth_template[p][d]);
 
		else
 
			iyh_labyrinth.position = iyh_labyrinth_template[p][d]["f"][1];
 
			iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["f"][2];
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_lab_left = obj {
 
	nam = "iyh_lab_left";
 
	dsc = "{Налево}^";
 
	act = function(s)
 
		pr [[Вы сворачиваете налево. ]];
 
		local p = iyh_labyrinth.position;
 
		local d = iyh_labyrinth.direction;
 
		
 
		if (type(iyh_labyrinth_template[p][d]) == 'string') then
 
			walk(iyh_labyrinth_template[p][d]);
 
		else
 
			iyh_labyrinth.position = iyh_labyrinth_template[p][d]["l"][1];
 
			iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["l"][2];
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_lab_right = obj {
 
	nam = "iyh_lab_right";
 
	dsc = "{Направо}^";
 
	act = function(s)
 
		pr [[Вы сворачиваете направо. ]];
 
		local p = iyh_labyrinth.position;
 
		local d = iyh_labyrinth.direction;
 
		
 
		if (type(iyh_labyrinth_template[p][d]) == 'string') then
 
			walk(iyh_labyrinth_template[p][d]);
 
		else
 
			iyh_labyrinth.position = iyh_labyrinth_template[p][d]["r"][1];
 
			iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["r"][2];
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_lab_turn = obj {
 
	nam = "iyh_lab_turn";
 
	dsc = "{Развернуться}^";
 
	act = function(s)
 
		pr [[Вы разворачиваете субмарину. ]];
 
		if (iyh_labyrinth.direction == 1) then
 
			iyh_labyrinth.direction = 2;
 
		else
 
			iyh_labyrinth.direction = 1;
 
		end;
 
		
 
		iyh_labyrinth:update();
 
	end;
 
};
 
 
iyh_rear_entrance = room {
 
	nam = "Левиафан";
 
	dsc = [[
 
		Вы находитесь в конце ущелья. Луч прожектора освещает небольшой проход в скале. 
 
	]];
 
	way = {
 
		kh_vway("Отойти от штурвала", "iyh_rear_entrance_foot");
 
		kh_vway("В ущелье", function(s)
 
			iyh_labyrinth.position = 23;
 
			iyh_labyrinth.direction = 2;
 
			return "iyh_labyrinth";
 
		end);
 
	};
 
	entered = function(s)
 
		move(submarine_leviathan, iyh_rear_entrance_foot);
 
	end;
 
};
 
 
iyh_rear_entrance_foot = room {
 
	nam = "Ущелье";
 
	dsc = [[
 
		Узкое глубокое ущелье. Вы находитесь в одном из его концов. В скале вы видите небольшой проход явно искусственного происхождения.
 
	]];
 
	way = {
 
		kh_vway("В Левиафан", "leviathan_airlock");
 
		kh_vway("Внутрь", "iyh_temple_rear_corridor_entry");
 
	};
 
	entered = function(s)
 
		if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and not char_learr.accompany) then
 
			pr [[
 
				Леарр входит в шлюз вслед за вами: "Я вместе-с-тобой-пойду".
 
			]];
 
			
 
			char_learr:accompany(true);
 
			char_radcliffe:accompany(false);
 
			char_wright:accompany(false);
 
			char_anna:accompany(false);
 
		elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0 and not char_aikerjarr_lev.accompany) then
 
			pr [[
 
				Аикерьярр входит в шлюз вслед за вами: "Я вместе-с-тобой-пойду".
 
			]];
 
			char_aikerjarr_lev:accompany(true);
 
			char_radcliffe:accompany(false);
 
			char_wright:accompany(false);
 
			char_anna:accompany(false);
 
		end;
 
		
 
		way("В Левиафан"):disable();
 
		if (where(submarine_leviathan) == here()) then
 
			way("В Левиафан"):enable();
 
		end;
 
	end;
 
};
 
 
iyh_temple_rear_corridor_entry = room {
 
	nam = "Коридор";
 
	dsc = [[
 
		Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. 
 
	]];
 
	way = {
 
		kh_vway("Выйти", "iyh_rear_entrance_foot");
 
		kh_vway("В левую комнату", "iyh_left_room_1");
 
		kh_vway("В правую комнату", "iyh_right_room_1");
 
		kh_vway("Пройти дальше", "iyh_temple_rear_corridor_middle");
 
	};
 
};
 
 
iyh_temple_rear_corridor_middle = room {
 
	nam = "Коридор";
 
	dsc = [[
 
		Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. 
 
	]];
 
	way = {
 
		kh_vway("К выходу", "iyh_temple_rear_corridor_entry");
 
		kh_vway("В левую комнату", "iyh_left_room_2");
 
		kh_vway("В правую комнату", "iyh_right_room_2");
 
		kh_vway("Пройти дальше", "iyh_temple_rear_corridor_end");
 
	};
 
};
 
 
iyh_temple_rear_corridor_end = room {
 
	nam = "Коридор";
 
	dsc = [[
 
		Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. 
 
	]];
 
	way = {
 
		kh_vway("К выходу", "iyh_temple_rear_corridor_entry");
 
		kh_vway("В левую комнату", "iyh_left_room_3");
 
		kh_vway("В правую комнату", "iyh_right_room_3");
 
		kh_vway("В главный зал", "iyh_temple_main_hall_end"):disable();
 
	};
 
};
 
 
iyh_left_room_1 = room {
 
	nam = "Комната";
 
	dsc = [[
 
		Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. 
 
	]];
 
	dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
	way = {
 
		vway("В коридор", "iyh_temple_rear_corridor_entry");
 
	};
 
	obj = {
 
		"item_navjiarr_chart_2"
 
		--"item_navjiarr_chart_2"
 
	};
 
};
 
 
iyh_right_room_1 = room {
 
	nam = "Комната";
 
	dsc = [[
 
		Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось.  Единственный дверной проем ведет в коридор. 
 
	]];
 
	dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
	way = {
 
		vway("В коридор", "iyh_temple_rear_corridor_entry");
 
	};
 
	obj = {
 
		"item_legend_of_hunter"
 
	};
 
};
 
 
iyh_left_room_2 = room {
 
	nam = "Комната";
 
	dsc = [[
 
		Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. 
 
	]];
 
	dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
	way = {
 
		vway("В коридор", "iyh_temple_rear_corridor_middle");
 
	};
 
	obj = {
 
		"item_navjiarr_chart_3"
 
		--"item_navjiarr_chart_3"
 
	};
 
};
 
 
iyh_right_room_2 = room {
 
	nam = "Комната";
 
	dsc = [[
 
		Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось.  Единственный дверной проем ведет в коридор. 
 
	]];
 
	dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
	way = {
 
		vway("В коридор", "iyh_temple_rear_corridor_middle");
 
	};
 
	obj = {
 
		"item_legend_of_first_city"
 
	};
 
};
 
 
iyh_left_room_3 = room {
 
	nam = "Комната";
 
	dsc = [[
 
		Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. 
 
	]];
 
	dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. ]];
 
	way = {
 
		vway("В коридор", "iyh_temple_rear_corridor_end");
 
	};
 
	obj = {
 
		"item_navjiarr_chart_1"
 
		--"item_navjiarr_chart_1"
 
        "iyh_old_navjiarr_body",
 
        "iyh_item_record",
 
        "iyh_room_wall"
 
	};
 
};
 
 
iyh_old_navjiarr_body = obj {
 
    nam = "iyh_old_navjiarr_body";
 
    dsc = [[В одной из ниш справа от входа лежит старый {навьяр}. Серая чешуя давно поблекла, глаза закрыты. Руки сложены на груди. ]];
 
    act = [[Навьяр никак не реагирует на вас. Он мертв. ]];
 
};
 
 
iyh_item_record = obj {
 
    nam = "iyh_item_record";
 
    dsc = [[Рядом с ним лежит каменная {табличка} с письменами. ]];
 
    tak = [[Вы забираете табличку. ]];
 
    inv = function(s)
 
        --Написать исходный навьярский вариант таблички
 
        if (language_known) then
 
            return [[Табличка гласит: "Те, кто найдут это, пусть знают, что здесь покоится истинный глаз Дипатреанотра, служащий разгадкой этого храма. Знайте, читающие это, что реликвию я взял для способствования осуществления пророчества о спящем в глубине. Для открытия храма, взгляните истинным глазом напротив моего ложа". Чуть ниже дописано: "Если Вилрьярр еще здесь, отпустите его. Ему незачем оставаться здесь". ]];
 
        else
 
            return [[Табличка содержит навьярские письмена, которые вы не понимаете. ]];
 
        end;
 
    end;
 
};
 
 
iyh_room_wall = obj {
 
    nam = "iyh_room_wall";
 
    dsc = [[{Стена} слева от входа не содержит никаких ниш и глубоких выемок, в отличие от стен в других комнатах. ]];
 
    act = [[Гладкая каменная стена. Вы не видите ничего необычного. ]];
 
};
 
 
iyh_right_room_3 = room {
 
	nam = "Комната";
 
	dsc = [[
 
		Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось.  Единственный дверной проем ведет в коридор. 
 
	]];
 
	dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
	way = {
 
		vway("В коридор", "iyh_temple_rear_corridor_end");
 
	};
 
	obj = {
 
		"item_legend_of_temple"
 
        "item_legend_of_temple"
 
	};
 
};
 
 
iyh_temple_main_hall_end = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь в дальнем конце зала. 
 
	]];
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and atl_iyh_shockfish_away and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			walk("game_over_shockfish_2");
 
		end;
 
	end;
 
	entered = function(s)
 
		if (iyh_back_door.open) then
 
			path("В заднюю зверь"):enable();
 
		end;
 
	end;
 
	way = {
 
		kh_vway("В центр зала", "iyh_temple_main_hall_middle");
 
		kh_vway("В заднюю дверь", "iyh_temple_rear_corridor_end"):disable();
 
	};
 
};
 
 
iyh_back_door = obj {
 
	var {
 
		open = false;
 
	};
 
	nam = "iyh_back_door";
 
	dsc = function(s)
 
		if (s.open) then
 
			return [[
 
				В конце зала находится открытая {дверь}. 
 
			]];
 
		else
 
			return [[
 
				В конце зала находится массивная {дверь}, закрытая на засов.
 
			]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.open) then
 
			return [[
 
				Дверь уже открыта. 
 
			]];
 
		else
 
			path("В главный зал"):enable();
 
			return [[
 
				Вы отодвигаете засов и открываете дверь. 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_back_door_main = obj {
 
	nam = "iyh_back_door_main";
 
	dsc = function(s)
 
		if (iyh_back_door.open) then
 
			return [[
 
				В конце зала находится открытая {дверь}. 
 
			]];
 
		else
 
			return [[
 
				В конце зала находится закрытая {дверь}. 
 
			]];
 
		end;
 
	end;
 
	act = [[
 
		Не удается открыть дверь. Она заперта с другой стороны. 
 
	]];
 
};
 
 
iyh_temple_main_hall_middle = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Слева и справа от вас вы видите небольшие проемы, ведущие в боковые помещения. 
 
	]];
 
	obj = {
 
		"iyh_pedestal"
 
	};
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			walk("game_over_shockfish_2");
 
		end;
 
	end;
 
	way = {
 
		kh_vway("К выходу", "iyh_temple_main_hall_entry");
 
		kh_vway("В конец зала", "iyh_temple_main_hall_end");
 
		kh_vway("Налево", "iyh_temple_left_hall");
 
		kh_vway("Направо", "iyh_temple_right_hall");
 
	};
 
};
 
 
iyh_temple_main_hall_entry = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь у входа в зал. 
 
	]];
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			walk("game_over_shockfish_2");
 
		end;
 
	end;
 
	entered = function(s)
 
		if (atl_iyh_entrance_destroyed) then
 
			path("Выйти"):disable();
 
		end;
 
	end;
 
	way = {
 
		kh_vway("Выйти", "iyh_near_temple_foot");
 
		kh_vway("Пройти дальше", "iyh_temple_main_hall_middle");
 
	};
 
	obj = {
 
		"item_temple_disk"
 
	};
 
};
 
 
iyh_temple_left_hall = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Вы находитесь в одной из боковых комнат храма. Небольшое помещение - не более десятка метров в ширину. 
 
	]];
 
	way = {
 
		kh_vway("В главный зал", "iyh_temple_main_hall_middle");
 
	};
 
	obj = {
 
		"iyh_temple_rubble_left",
 
		"iyh_temple_niche_left"
 
	};
 
};
 
 
iyh_temple_right_hall = room {
 
	nam = "Храм";
 
	dsc = [[
 
		Вы находитесь в одной из боковых комнат храма. Небольшое помещение - не более десятка метров в ширину. 
 
	]];
 
	way = {
 
		kh_vway("В главный зал", "iyh_temple_main_hall_middle");
 
	};
 
	obj = {
 
		"iyh_temple_rubble_right",
 
		"iyh_temple_niche_right"
 
	};
 
};
 
 
iyh_temple_rubble_left = obj {
 
	nam = "iyh_temple_rubble";
 
	dsc = [[
 
		В углу валяется {груда обломков}.
 
	]];
 
	act = [[
 
		Здесь ничего нет.
 
	]];
 
};
 
 
iyh_temple_niche_left = obj {
 
	var {
 
		taken = false;
 
	};
 
	nam = "iyh_temple_deep_niche_left";
 
	dsc = [[
 
		В одной из стен вы замечаете глубокую {нишу}. 
 
	]];
 
	act = function(s)
 
		if (s.taken) then
 
			return [[
 
				Здесь ничего нет. 
 
			]];
 
		else
 
			s.taken = true;
 
			take(item_statuette);
 
			return [[
 
				Внутри вы находите металлическую статуэтку, изображающую навьяра. 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_temple_rubble_right = obj {
 
	var {
 
		taken = false;
 
	};
 
	nam = "iyh_temple_rubble";
 
	dsc = [[
 
		В углу валяется {груда обломков}.
 
	]];
 
	act = function(s)
 
		if (s.taken) then
 
			return [[
 
				Здесь ничего нет. 
 
			]];
 
		else
 
			s.taken = true;
 
			take(item_legend_of_dark_source);
 
			return [[
 
				В куче обломков вы находите металлическую табличку. 
 
			]];
 
		end;
 
	end;
 
};
 
 
iyh_temple_niche_right = obj {
 
	nam = "iyh_temple_deep_niche_left";
 
	dsc = [[
 
		В одной из стен вы замечаете глубокую {нишу}. 
 
	]];
 
	act = [[
 
		Здесь ничего нет.
 
	]];
 
};
 
 
iyh_pedestal = obj {
 
	var {
 
		taken = false;
 
	};
 
	nam = "iyh_pedestal";
 
	dsc = function(s)
 
		if (s.taken) then
 
			return [[
 
				В центре комнаты расположен пустой {пьедестал}.
 
			]];
 
		else
 
			return [[
 
				В центре комнаты расположен {пьедестал}, на котором покоится какой-то блестящий предмет.
 
			]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.taken) then
 
			return [[
 
				Здесь ничего нет. 
 
			]];
 
		else
 
			s.taken = true;
 
			atl_iyh_state = 8;
 
			
 
			if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
				return [[
 
					Вы подходите к кубу, чтобы взять его, но Леарр вас опережает - она прячет куб к себе в сумку. По ее плавникам бегут цветные полосы: [Это наша-реликвия].
 
				]];
 
			elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0) then
 
				return [[
 
					Вы подходите к кубу, чтобы взять его, но Аикерьярр вас опережает - он прячет куб к себе в сумку. По его плавникам бегут цветные полосы: [Не трогай! Это наша-реликвия].
 
				]];
 
			else
 
				take(item_navjiarr_cube);
 
				return [[
 
					Вы поднимаете небольшой светящийся кубик. 
 
				]];
 
			end;
 
			
 
		end;
 
	end;
 
};
 
 
iyh_near_temple = dlg {
 
	nam = "Штурвал Левиафана";
 
	dsc = [[
 
		Через иллюминаторы вы видите прямо перед собой массивные каменные двери, вытесанные в скале, возвышающейся далеко над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы.
 
	]];
 
	enter = function(s)
 
		if (atl_iyh_shockfish_away == 0 and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
			pr [[
 
				Как только вы приближаетесь, скат выплывает из свого жилища, чтобы прогнать посмевших приблизиться к нему.
 
			]];
 
			iyh_fight.temple_distance = 50;
 
			iyh_fight.distance = 50;
 
			walk(iyh_fight);
 
		end;
 
	end;
 
	entered = function(s)
 
		move(submarine_leviathan, iyh_near_temple_foot);
 
	end;
 
	phr = {
 
		{tag="ravine", false, always=true, "[Ко входу в ущелье]", [[
 
			Вы поворачиваете штурвал и включаете двигатели Левиафана. Через несколько минут вы оказываетесь у входа в ущелье.
 
		]], code [[ walk('iyh_ravine_entry'); ]]};
 
		{tag="away", always=true, "[Отойти от штурвала]", code = [[
 
			walk('leviathan_wheelhouse');
 
		]]};
 
		{tag="back", always=true, "[Вернуться к исходной позиции]", code = [[
 
			walk('iyh_far_from_entrance');
 
		]]};
 
	};
 
};
 
 
iyh_near_temple_foot = dlg {
 
	nam = "Вход в храм";
 
	dsc = [[
 
		Прямо перед собой вы видите массивные каменные двери, вытесанные в скале, возвышающейся далеко над вами. Над ними вы видите небольшой козырек, поддерживаемый массивными колоннами. Древний камень все еще хранит орнамент, выгравированный на дверях, колоннах и ступенях лестницы.
 
	]];
 
	way = {
 
		kh_vway("В Левиафан", "leviathan_airlock");
 
		
 
	};
 
};
 
 
iyh_outro_svetlova = room {
 
	nam = "Атлантида, док Левиафана";
 
	dsc = function(s)
 
		pr [[
 
			При выходе из Левиафана, вас встречает Екатерина Светлова. Вы рассказываете ей обо всем произошедшем. 
 
		]];
 
		if (atl_iyh_shockfish_dead) then
 
			pr [[
 
				Она забирает у вас артефакты для изучения, но крайне недовольна убийством ската: "Артефакты, конечно будут полезны, но то что вы сделали ставит под угрозу дальнейшее существование станции. Хвала небесам, что рыбни об этом не знают и может быть, не узнают о произошедшем".^
 
			]];
 
		elseif (atl_iyh_entrance_destroyed) then
 
			pr [[
 
				Она забирает у вас артефакты для изучения, но огорчена разрушением святилища: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^
 
			]];
 
		else
 
			pr [[
 
				Она забирает у вас артефакты для изучения и благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^
 
			]];
 
		end;
 
		
 
		--[[pr [ [
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, к вам входит Екатерина и отдает часть табличек, найденных вами: "Это вам понадобится в поисках отца. Эти таблички помогут вам проследовать путем Уильяма. Я уже говорила, что он отправился на поиски древнего навьярского города, Лсэрианотра. Должно быть, он сделал копии этих диаграмм. Но здесь не все просто - это лишь фрагменты карт и чтобы воспользоваться ими, вам придется найти недостающие части. К сожалению, я не знаю, где их можно найти. Но, скорее всего, знают навьяры. 
 
		] ];
 
		if (not atl_iof_learr_dead) then
 
			pr [ [
 
				Вам следует начать с Ираафаанотра - родного города Леарр. Наверняка, она согласится отправиться туда с вами". 
 
			] ];
 
		else
 
			pr [ [
 
				Рядом с нами расположено два города - Дипатреанотр и Ираафаанотр, и я советую вам их посетить". 
 
			] ];
 
		end;]]
 
		pr [[
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас".
 
		]];
 
	end;
 
	entered = function(s)
 
		atl_iyh_artifacts_on_atlantis = true;
 
		remove(item_statuette);
 
		remove(item_temple_disk);
 
		remove(item_legend_of_temple);
 
		remove(item_legend_of_dark_source);
 
		remove(item_legend_of_first_city);
 
		remove(item_legend_of_hunter);
 
		remove(item_navjiarr_chart_1);
 
		remove(item_navjiarr_chart_2);
 
		remove(item_navjiarr_chart_3);
 
	end;
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
 
iyh_outro_aikerrjarr = room {
 
	nam = "Атлантида, док Левиафана";
 
	dsc = function(s)
 
		pr [[
 
			При выходе из Левиафана, вас встречает Екатерина Светлова. Аикерьярр сразу же требует: "Ты мне-отдашь взятое-тобой-в-храме-все". На что Светлова просит его: "Позвольте кратко взглянуть на все". Аикерьярр с явным недовольством соглашается. Пока Екатерина осматривает реликвии, вы рассказываете ей обо всем произошедшем. Как только вы заканчиваете рассказ, 
 
		]];
 
		
 
		if (atl_iyh_shockfish_dead) then
 
			pr [[
 
				она недовольно восклицает: "Зачем вы это сделали?!", - После чего, уже спокойнее добавляет: "Впрочем, можете не отвечать. Что сделано то сделано".^
 
			]];
 
		elseif (atl_iyh_entrance_destroyed) then
 
			pr [[
 
				она огорченно комментирует: "Очень жаль, что пришлось разрушить храм - там наверняка было еще много интересного".^
 
			]];
 
		else
 
			pr [[
 
				она благодарит вас: "Отлично, вы оказали нам неоценимую услугу. Скоро я верну реликвию в Дипатреанотр и ситуация будет исчерпана".^
 
			]];
 
		end;
 
		
 
		pr [[
 
			Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас".
 
		]];
 
	end;
 
	hideinv = true;
 
	entered = function(s)
 
		remove(item_statuette);
 
		remove(item_temple_disk);
 
		remove(item_legend_of_temple);
 
		remove(item_legend_of_dark_source);
 
		remove(item_legend_of_first_city);
 
		remove(item_legend_of_hunter);
 
		remove(item_navjiarr_chart_1);
 
		remove(item_navjiarr_chart_2);
 
		remove(item_navjiarr_chart_3);
 
	end;
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
 
iyh_outro_learr = dlg {
 
	nam = "Атлантида, док Левиафана";
 
	entered = function(s)
 
		if (rel_learr > 0) then
 
			psub('rel_ok');
 
			return [[
 
				При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр сразу же просит: "Ты мне-отдашь взятое-в-храме".^
 
				На что Светлова просит ее: "Может вы разрешите нам оставить реликвии на некоторое время?"^
 
				Леарр не слишком уверенно отвечает: "Старейшина это-не-одобрит. Другой-выход есть?"
 
				
 
			]];
 
		else
 
			psub('rel_not_ok');
 
			return [[
 
				При выходе из Левиафана, вас встречает Екатерина Светлова. Леарр сразу же просит: "Ты мне-отдашь взятое-в-храме".^
 
				На что Светлова просит ее: "Может вы разрешите нам оставить реликвии на некоторое время?"^
 
				Леарр не слишком уверенно отвечает: "Старейшина это-не-одобрит. Другой-выход есть?"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="rel_ok"};
 
		{"Это очень поможет нам в поисках Уильяма", [[
 
			Леарр все еще неуверенно: "Я что-смогу-сделаю. Вы пока-все-оставьте".
 
		]], code [[
 
			atl_iyh_artifacts_on_atlantis = true;
 
			atl_rep_svetlova = atl_rep_svetlova + 1;
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{"Хорошо, забирайте реликвии", [[
 
			Леарр благодарит вас: "Вы можете-наш-город-посетить и реликвии-смотреть".
 
		]], code [[
 
			rel_learr = rel_learr + 1;
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{tag="rel_not_ok"};
 
		{"Это очень поможет нам в поисках Уильяма", [[
 
			Леарр отвечает: "Я с-вами-не-говорю. Не позволю-реликвии-оставить. Вы можете-наш-город-посетить и реликвии-смотреть".
 
		]], code [[
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
		{"Хорошо, забирайте реликвии", [[
 
			Леарр отвечает: "Я с-вами-не-говорю. Не позволю-реликвии-оставить. Вы можете-наш-город-посетить и реликвии-смотреть".
 
		]], code [[
 
			rel_learr = rel_learr + 1;
 
			remove(item_statuette);
 
			remove(item_temple_disk);
 
			remove(item_legend_of_temple);
 
			remove(item_legend_of_dark_source);
 
			remove(item_legend_of_first_city);
 
			remove(item_legend_of_hunter);
 
			remove(item_navjiarr_chart_1);
 
			remove(item_navjiarr_chart_2);
 
			remove(item_navjiarr_chart_3);
 
			walk("iyh_outro_learr_2");
 
		]]};
 
	};
 
};
 
 
iyh_outro_learr_2 = room {
 
	nam = "Атлантида";
 
	dsc = [[
 
		Вы отправляетесь в свою комнату, чтобы отдохнуть. Утром, вас вызывает по телефону Екатерина Светлова: "Дрейк, пройдите ко мне. У меня есть кое что для вас".
 
	]];
 
	obj = {
 
		vroom("Продолжить", "atl_luna_drake_room");
 
	};
 
};
 
\ No newline at end of file
0 comments (0 inline, 0 general)