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
 
@@ -379,841 +379,858 @@ iyh_advance_full = obj {
 
		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);
0 comments (0 inline, 0 general)