Changeset - 7a77759c31ff
[Not reviewed]
default
0 4 0
Silverwing - 8 years ago 2017-02-24 13:53:54

Atlantis overhaul progress; Progress on 238/239
4 files changed with 120 insertions and 170 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
global {
 
	atl_jack_in_party = false;
 
	atl_lev_state = 0;
 
	
 
	atl_iof_completed = false;
 
	atl_iof_learr_dead = false;
 
	atl_iof_learr_suit = false;
 
	
 
	atl_nih_state = 0;
 
	
 
	atl_iyh_state = 0;
 
	atl_iyh_ryveerr_spoken = false;
 
	atl_iyh_shockfish_dead = false;
 
	atl_iyh_shockfish_left = false;
 
	atl_iyh_shockfish_away = 0;
 
	atl_iyh_entrance_destroyed = false;
 
	atl_iyh_artifacts_on_atlantis = false;
 
	
 
	atl_lfc_state = 0;
 
	atl_lfc_panic = 0;
 
	atl_lfc_hallrooms = 0;
 
	atl_lfc_electric = 0;
 
	atl_lfc_board = 0;
 
	atl_lfc_suspect = nil;
 
	atl_lfc_leroy_spoken = 0;
 
	atl_lfc_goldman_spoken = 0;
 
	atl_lfc_goldman_known = false;
 
	atl_lfc_goldman_exposed = false;
 
	atl_lfc_saboteur_known = false;
 
	atl_lfc_sab_active = false;
 
	atl_lfc_sab_alive = false;
 
	
 
	atl_fta_state = 0;
 
	
 
	atl_rep_moreau = 0;
 
	atl_rep_darkstar = 0;
 
	atl_rep_svetlova = 0;
 
	atl_rep_wright = 0;
 
};
 
 
atl_illuminators = obj {
 
	nam = "Иллюминаторы";
 
	dsc = [[Через равные промежутки в стены встроены небольшие круглые {иллюминаторы}. ]];
 
	act = [[Через иллюминаторы видны несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_illuminator = obj {
 
    nam = "Иллюминатор";
 
    dsc = [[В стену встроен небольшой {иллюминатор}. ]];
 
    act = [[Через иллюминатор вы видите несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_intersect_phone = obj {
 
    nam = "Телефон";
 
    dsc = [[На одной из стен укреплен {телефонный аппарат} в герметичном контейнере. ]];
 
    act = [[Вам незачем кому-то звонить. ]];
 
};
 
 
atl_intersect_suit = obj {
 
    nam = "Скафандр";
 
    dsc = [[В углу стоит {скафандр}. ]];
 
    act = [[Сейчас нет смысла это делать. ]];
 
}
 
 
atl_aqua_corridor_b = room {
 
	nam = "Атлантида, Аква, коридор B";
 
	dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая в основной коридор секции _"Аква"_. По бокам коридора находятся еще несколько дверей, ведущих в другие помещения секции: гостевые доки A, B и С. ]];
 
	way = {
 
		kh_vroom("В гостевой док A", function()
 
			if (atl_lev_state == 0) then
 
				pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
				return false;
 
			elseif (atl_lev_state == 1) then
 
				return "atl_lev_radcliffe_dlg";
 
			else
 
				return "atl_aqua_leviathan_dock";
 
			end;
 
		end);
 
		kh_vroom("В гостевой док B", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В гостевой док C", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_b"
 
	};
 
};
 
 
atl_aqua_leviathan_dock = room {
 
	var {
 
		visited = false;
 
	};
 
	nam = "Атлантида, Аква, гостевой док A";
 
	enter = function(s)
 
		if (not s.visited) then
 
			s.visited = true;
 
			walk(atlantis_intro_dock);
 
		end;
 
		if (atl_iyh_state == 8) then
 
			atl_iyh_state = 9;
 
			if (atl_iof_learr_dead) then
 
				walk('iyh_outro_aikerjarr');
 
			else
 
				walk('iyh_outro_learr');
 
			end;
 
		end;
 
	end;
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Левиафан. Под потолком, на высоте примерно в пять метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Снизу, под водой, огромный люк закрывает доступ внутрь дока. Несколько легких подвижных мостиков находятся на поверхности воды. ]];
 
	view = [[Левиафан находится в просторном доке. Под потолком на высоте пяти метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Внизу расположен закрытый люк, закрывающий вам путь наружу. ]];
 
	way = {
 
		kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
	};
 
}; 
 
 
atl_aqua_nautilus_dock = room {
 
	nam = "Атлантида, Аква, док Наутилуса";
 
	dsc = [[Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен Наутилус. Под потолком, на высоте примерно в пять метров укреплены балки, по которым могут перемещаться крюки подъемных кранов. Снизу, под водой, огромный люк закрывает доступ внутрь дока. Несколько легких подвижных мостиков находятся на поверхности воды. ]];
 
	way = {
 
		kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
	};
 
	obj = {
 
		"char_xiao"
 
	};
 
};
 
 
atl_aqua_corridor_a = room {
 
	nam = "Атлантида, Аква, коридор A";
 
	dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая в основной коридор секции _"Аква"_. По бокам коридора находятся еще несколько дверей, ведущих к докам. ]];
 
	way = {
 
		kh_vroom("В док \"Надежды\"", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В док \"Энтерпрайза\"", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В док \"Наутилуса\"", function()
 
			if (atl_lfc_state == 2) then
 
				return "atl_lfc_dock_s";
 
			else
 
				return "atl_aqua_nautilus_dock";
 
			end;
 
		end);
 
		kh_vroom("В главный коридор", "atl_aqua_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua_a"
 
	};
 
};
 
 
atl_aqua_main_corridor = room {
 
	nam = "Атлантида, Аква, центральный коридор";
 
	dsc = [[Широкий коридор, заполненный ярким светом электрических ламп. В одном конце коридора расположена шлюзовая дверь, ведущая, в секцию _"Доминус"_. По бокам коридора находятся еще несколько дверей, ведущих в другие помещения секции -- по большей части это склады. Еще две двери ведут в коридоры A и B. ]];
 
	way = {
 
		kh_vroom("На склад A", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("На склад B", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("На склад C", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("На склад D", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В коридор A", "atl_aqua_corridor_a");
 
		kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_aqua_dom");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua"
 
	};
 
};
 
 
atl_intersection_aqua_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Аква\"", "atl_aqua_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_aqua");
 
	};
 
	obj = {
 
		"atl_illuminator",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"      
 
	};
 
};
 
 
atl_dom_main_near_aqua = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Аква\"";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами расположен шлюз, ведущий в соседнюю секцию. ]];
 
	way = {
 
		kh_vroom("В секцию \"Аква\"", "atl_intersection_aqua_dom");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_adm");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_a");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, табличку секции Аква
 
		"atl_nih_tubes_near_aqua"
 
	};
 
};
 
 
atl_dom_main_near_a = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в коридор А";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Вы находитесь в северной части зала. Рядом с вами расположен шлюз, ведущий в коридор А. ]];
 
	way = {
 
		kh_vroom("В коридор A", "atl_dom_corridor_a");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_aqua");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_luna");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
	obj = {
 
		-- TODO добавить табличку
 
		"atl_nih_panel_near_a"
 
	};
 
};
 
 
atl_dom_main_c = room {
 
	nam = "Атлантида, Доминус, центральный зал, центр";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Вы находитесь в центральной части зала, рядом с лифтом, ведущим в Игнис. ]];
 
	way = {
 
		kh_vroom("В лифт", "atl_dom_lift");
 
		kh_vroom("На север", "atl_dom_main_near_aqua");
 
		kh_vroom("На северо-восток", "atl_dom_main_near_adm");
 
		kh_vroom("На юго-восток", "atl_dom_main_se");
 
		kh_vroom("На юго-запад", "atl_dom_main_sw");
 
		kh_vroom("На северо-запад", "atl_dom_main_near_a");
 
		
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_sw = room {
 
	nam = "Атлантида, Доминус, центральный зал, юго-запад";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Вы находитесь в юго-западной части секции. ]];
 
	way = {
 
		kh_vroom("К секции Окулус", "atl_dom_main_near_oculus");
 
		kh_vroom("К секции Луна", "atl_dom_main_near_luna");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_a");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_se");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
};
 
 
atl_dom_main_se = room {
 
	nam = "Атлантида, Доминус, центральный зал, юго-восток";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса.Вы находитесь в юго-восточной части секции. ]];
 
	way = {
 
		kh_vroom("К секции Арктос", "atl_dom_main_near_arctos");
 
		kh_vroom("К секции Терра", "atl_dom_main_near_terra");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_sw");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_adm");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
};
 
 
atl_dom_main_near_adm = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в кабинет администратора";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в кабинет администратора. ]];
 
	way = {
 
		kh_vroom("В кабинет администратора", "atl_dom_administator_room");
 
		kh_vroom("По часовой стрелке", "atl_dom_main_near_arctos");
 
		kh_vroom("Против часовой стрелки", "atl_dom_main_near_aqua");
 
		kh_vroom("К центру зала", "atl_dom_main_c");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, воздуховоды
 
		"atl_nih_panel_near_admin"
 
	};
 
};
 
 
atl_dom_main_near_luna = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Луна\"";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса.Рядом с вами находится шлюз, ведущий в секцию "Луна". ]];
 
	way = {
 
		kh_vroom("В секцию \"Луна\"", "atl_intersection_luna_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_sw");
 
	};
 
	obj = {
 
		"atl_nih_panel_near_luna"
 
	};
 
};
 
 
atl_dom_main_near_oculus = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Окулус\"";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в секцию "Окулус". ]];
 
	way = {
 
		kh_vroom("В секцию \"Окулус\"", "atl_intersection_oculus_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_sw");
 
	};
 
	obj = {
 
		"atl_nih_boxes_near_oculus"
 
	};
 
};
 
 
atl_dom_main_near_terra = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Терра\"";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в секцию "Терра". ]];
 
	way = {
 
		kh_vroom("В секцию \"Терра\"", "atl_intersection_terra_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_se");
 
	};
 
	obj = {
 
		"atl_nih_boxes_near_terra"
 
	};
 
};
 
 
atl_dom_main_near_arctos = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Арктос\"";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами находится шлюз, ведущий в секцию "Арктос". ]];
 
	way = {
 
		kh_vroom("В секцию \"Арктос\"", "atl_intersection_arctos_dom");
 
		kh_vroom("Отойти от шлюза", "atl_dom_main_se");
 
	};
 
	obj = {
 
		"atl_nih_tubes_near_arctos"
 
	};
 
};
 
 
atl_dom_corridor_a = room {
 
	nam = "Атлантида, Доминус, коридор A";
 
	dsc = [[Просторный коридор, расположенный в западном крыле секции Доминус, заполнен ярким светом электрических ламп. В одном конце коридора расположена дверь, ведущая в главный зал. Две другие ведут в оружейную и кабинет начальника службы безопасности. ]];
 
	way = {
 
		kh_vroom("В кабинет начальника СБ", "atl_dom_security_office");
 
		kh_vroom("В оружейную", function()
 
			pr("Люк наглухо задраен и опечатан. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В центральный зал", "atl_dom_main_near_a");
 
	};
 
};
 
 
atl_dom_security_office = room {
 
	nam = "Атлантида, Доминус, кабинет начальника СБ";
 
	dsc = [[Спартанская обстановка кабинета начальника службы безопасности сразу бросается вам в глаза. небольшая комната почти пуста. Здесь нет ничего кроме массивного металлического стола в центре и двух кресел по разные стороны его. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_dom_corridor_a");
 
	};
 
	obj = {
 
		'char_darkstar'
 
	};
 
};
 
 
atl_dom_administator_room = room {
 
	nam = "Атлантида, Доминус, кабинет администратора";
 
	dsc = [[Кабинет администратора представляет собой небольшую комнату. Вдоль стен установлено несколько шкафов с какими-то бумагами. В центре расположен металлический стол. 
 
	]];
 
	way = {
 
		kh_vroom("В центральный зал", "atl_dom_main_near_adm");
 
	};
 
	obj = {
 
		'char_moreau'
 
	};
 
};
 
 
atl_intersection_luna_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Луна\"", "atl_luna_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_luna");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"      
 
	};
 
};
 
 
atl_intersection_arctos_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Арктос\"", "atl_arctos_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_arctos");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"  
 
	};
 
};
 
 
atl_luna_main_corridor = room {
 
	nam = "Атлантида, Луна, главный коридор";
 
	dsc = [[Узкий длинный коридор c дверьми, ведущими в комнаты персонала, по сторонам. Яркий свет электрических ламп заполняет помещение. ]];
 
	way = {
 
		kh_vroom("В вашу комнату", "atl_luna_drake_room");
 
		kh_vroom("В общую комнату", "atl_luna_common_room");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_luna_dom");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_luna"
 
	};
 
};
 
 
atl_luna_drake_room = room {
 
	nam = "Атлантида, Луна, ваша комната";
 
	dsc = [[Небольшая, но уютная комната, выделенная вам на Атлантиде. Хотя она расчитана на двух человек, пока нет необходимости расселять людей по двое. ]];
 
	way = {
 
		kh_vroom("В главный коридор", "atl_luna_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
	};
 
};
 
 
atl_arctos_main_corridor = room {
 
	nam = "Атлантида, Арктос, главный коридор";
 
	dsc = [[Узкий длинный коридор c дверьми, ведущими в комнаты персонала, по сторонам. Яркий свет электрических ламп заполняет помещение. ]];
 
	way = {
 
		kh_vroom("В комнату Голдмана", "atl_arctos_goldmans_room");
 
		kh_vroom("В комнату Джонса", "atl_arctos_jones_room");
 
	 	kh_vroom("В общую комнату", "atl_arctos_common_room");
 
		kh_vroom("В секцию \"Доминус\"", "atl_intersection_arctos_dom");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_arctos"
 
	};
 
};
 
 
atl_arctos_goldmans_room = room {
 
	nam = "Атлантида, Арктос, комната";
 
	dsc = [[Небольшая комната, рассчитанная на двух постояльцев. ]];
 
	obj = {
 
		"char_goldman"
 
	};
 
};
 
 
atl_arctos_jones_room = room {
 
	nam = "Атлантида, Арктос, комната";
 
	dsc = [[Небольшая комната, рассчитанная на двух постояльцев. ]];
 
	obj = {
 
		"char_jones"
 
	};
 
};
 
 
atl_luna_common_room = room {
 
	nam = "Атлантида, Луна, общая комната";
 
	dsc = [[Средних размеров комната с массивным металлическим столом в центре. Вокруг него расположено несколько стульев. ]];
 
	way = {
 
		kh_vroom("В главный коридор", "atl_luna_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
	};
 
};
 
 
atl_arctos_common_room = room {
 
	nam = "Атлантида, Луна, общая комната";
 
	dsc = [[Средних размеров комната с массивным металлическим столом в центре. Вокруг него расположено несколько стульев. ]];
 
	way = {
 
		kh_vroom("В главный коридор", "atl_arctos_main_corridor");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
	};
 
};
 
 
atl_intersection_terra_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Терра\"", "atl_terra_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_terra");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit" 
 
	};
 
};
 
 
atl_terra_main_corridor = room {
 
	nam = "Атлантида, Терра, главный коридор";
 
	dsc = [[Широкий просторный коридор, по обе стороны которого расположены двери, ведущие в мастерские. Вдоль стен стоят множество ящиков. В конце коридора находится дверь, ведущая в одну из технических секций станции. ]];
 
	way = {
 
		kh_vroom("В мастерскую A", "atl_terra_workshop_a");
 
		kh_vroom("В мастерскую B", "atl_terra_workshop_b");
 
		kh_vroom("В мастерскую C", "atl_terra_workshop_c");
 
		kh_vroom("В мастерскую D", "atl_terra_workshop_d");
 
		kh_vroom("В секцию Солис", function()
 
			if (atl_fta_state == 1) then
 
				return "atl_fta_is_terra_solis";
 
			else
 
				pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
				return false;
 
			end;
 
		end);
 
		kh_vroom("В секцию Доминус", "atl_intersection_terra_dom");
 
	};
 
	obj = {
 
		"atl_nih_boxes_terra"
 
	};
 
};
 
 
atl_terra_workshop_a = room {
 
	nam = "Атлантида, мастерская А";
 
	dsc = [[Просторное помещение, выделенное для производства и сборки различных машин под нужды Атлантиды. Вдоль стен расположены шкафы с инструментами, около входа составлено несколько ящиков с материалами. По всей комнате установлены верстаки, различные станки и другое оборудование. Под потолком видно большое количество вентиляционных решеток. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_terra_main_corridor");
 
	};
 
	obj = {
 
		"char_michael_wright"
 
	};
 
};
 
 
atl_terra_workshop_b = room {
 
	nam = "Атлантида, мастерская B";
 
	dsc = [[Просторное помещение, выделенное для производства и сборки различных машин под нужды Атлантиды. Вдоль стен расположены шкафы с инструментами, около входа составлено несколько ящиков с материалами. По всей комнате установлены верстаки, различные станки и другое оборудование. Под потолком видно большое количество вентиляционных решеток. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_terra_main_corridor");
 
	};
 
	obj = {
 
		"char_radcliffe_atlantis"
 
	};
 
};
 
 
atl_terra_workshop_c = room {
 
	nam = "Атлантида, мастерская C";
 
	dsc = [[Просторное помещение, выделенное для производства и сборки различных машин под нужды Атлантиды. Вдоль стен расположены шкафы с инструментами, около входа составлено несколько ящиков с материалами. По всей комнате установлены верстаки, различные станки и другое оборудование. Под потолком видно большое количество вентиляционных решеток. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_terra_main_corridor");
 
	};
 
	obj = {
 
		"char_legrand",
 
		"char_leroy"
 
	};
 
};
 
 
atl_terra_workshop_d = room {
 
	nam = "Атлантида, мастерская D";
 
	dsc = [[Просторное помещение, выделенное для производства и сборки различных машин под нужды Атлантиды. Вдоль стен расположены шкафы с инструментами, около входа составлено несколько ящиков с материалами. По всей комнате установлены верстаки, различные станки и другое оборудование. Под потолком видно большое количество вентиляционных решеток. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_terra_main_corridor");
 
	};
 
};
 
 
atl_intersection_oculus_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Окулус\"", "atl_oculus_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_oculus");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"  
 
	};
 
};
 
 
atl_oculus_main_corridor = room {
 
	var {
 
		first_visit = true;
 
	};
 
	nam = "Атлантида, Окулус, главный коридор";
 
    dsc = [[Широкий просторный коридор, по обе стороны которого расположены двери, ведущие в лаборатории. В конце коридора находится дверь, ведущая в одну из технических секций станции. ]];
 
	enter = function(s)
 
		if (s.first_visit) then
 
			s.first_visit = false;
 
			walkin("atlantis_learr_intro");
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("В лабораторию A", "atl_oculus_lab_a");
 
		kh_vroom("В лабораторию B", "atl_oculus_lab_b");
 
		kh_vroom("В лабораторию C", "atl_oculus_lab_c");
 
		kh_vroom("В библиотеку", "atl_oculus_library");
 
		kh_vroom("В секцию Аэрис", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В секцию Доминус", "atl_intersection_oculus_dom");
 
	};
 
	obj = {
 
		"atl_nih_panel_oculus"
 
	};
 
};
 
 
atl_oculus_lab_a = room {
 
	nam = "Атлантида, Окулус, лаборатория A";
 
	dsc = [[Просторное помещение уставлено множеством столов, шкафов и различных приборов. Вдоль стен над столами расположены многочисленные решетки вентиляции. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
	obj = {
 
		"char_svetlova"
 
	};
 
};
 
 
atl_oculus_lab_b = room {
 
	nam = "Атлантида, Окулус, лаборатория B";
 
	dsc = [[Просторное помещение уставлено множеством столов, шкафов и различных приборов. Вдоль стен над столами расположены многочисленные решетки вентиляции. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
	obj = {
 
		"char_winterlight"
 
	};
 
};
 
 
atl_oculus_lab_c = room {
 
	nam = "Атлантида, Окулус, лаборатория C";
 
	dsc = [[Просторное помещение уставлено множеством столов, шкафов и различных приборов. Вдоль стен над столами расположены многочисленные решетки вентиляции. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
	obj = {
 
		"char_ryveerr",
 
		"char_anna_atlantis",
 
		"char_loong"
 
	};
 
};
 
 
atl_oculus_library = room {
 
	nam = "Атлантида, Окулус, библиотека";
 
	dsc = [[Рядом со входом в библиотеку расположен небольшой столик, на котором покоится каталог. Практически все пространство комнаты занято высокими стеллажами, заполненными книгами, журналами и документами. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
};
 
 
atl_dom_lift = room {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Атлантида, лифт";
 
	dsc = [[Герметичная кабина лифта, рассчитанная на 5-6 человек. ]];
 
	way = {
 
		kh_vroom("Выйти", function()
 
			if (atl_dom_lift.state == 0) then
 
				return "atl_dom_main_c";
 
			else
 
				return "atl_ignis_main_center";
 
			end;
 
		end);
 
	};
 
	obj = {
 
		"atl_lift_lever"
 
	};
 
};
 
 
atl_lift_lever = obj {
 
	nam = "Рычаг";
 
	dsc = [[На стене укреплен массивный {рычаг}, повернув который, вы приведете в движение механизм лифта. ]];
 
	act = function(s)
 
		if (atl_dom_lift.state == 1) then
 
			atl_dom_lift.state = 0;
 
			return [[Вы поворачиваете рычаг и слышите грохот механизмов, плавно опускающих кабину лифта. ]];
 
		else
 
			atl_dom_lift.state = 1;
 
			return [[Вы поворачиваете рычаг и слышите грохот механизмов, плавно поднимающих кабину лифта. ]];
 
		end;
 
	end;
 
};
 
 
--[[
 
Персонажи
 
]]
 
 
char_darkstar = npc {
 
	nam = "Винсент Даркстар";
 
	dsc = function(s)
 
        if (char_darkstar_dlg == 0) then
 
            return [[В одном из кресел сидит средних лет {мужчина} с короткими черными волосами. Он одет в строгий деловой костюм черного цвета без каких-либо изысков. Лицо его гладко выбрито. Холодный взгляд его черных глаз устремлен на вас. Сложив руки на столе, он ждет ваших дальнейших действий. ]];
 
        else
 
            return [[В одном из кресел сидит {Винсент Даркстар}. Холодный взгляд его черных глаз устремлен на вас. Сложив руки на столе, он ждет ваших дальнейших действий. ]];
 
        end;
 
    end;   
 
	dlg = "char_darkstar_dlg";
 
};
 
 
char_moreau = npc {
 
	nam = "Фредерик Моро";
 
	dsc = function(s)
 
        if (char_moreau_dlg.state == 0) then
 
            return [[За столом в кресле сидит немолодой {мужчина}. Кудрявые седые волосы аккуратно подстрижены. Он одет в строгий деловой костюм. Аккуратные седые усы украшают его лицо. Его серые глаза, скрытые очками, внимательно рассматривают вас. В руках он вертит перо. ]];
 
        else
 
            return [[За столом в кресле сидит {Фредерик Моро} и внимательно наблюдает за вами сквозь стекла очков. В руках он вертит перо. ]];
 
        end;
 
    end;   
 
	dlg = "char_moreau_dlg";
 
};
 
 
char_svetlova = npc {
 
	nam = "Екатерина Светлова";
 
	dsc = function(s)
 
        if (char_svetlova_dlg.state == 0) then   
 
            return [[За столом сидит {женщина} лет сорока-пяти. Золотистые волосы собраны в пучок на затылке. Она одета в синее платье, почти без украшений. В правой руке она держит карандаш, которым периодически делает какие-то пометки в бумагах, лежащих на столе. Кажется, она не обращает на вас никакого внимания. ]];
 
        else
 
            return [[За столом сидит {Екатерина Светлова}. Периодически она делает какие-то пометки карандашом в ]];
 
        end;
 
    end;
 
	dlg = "char_svetlova_dlg";
 
};
 
 
char_anna_atlantis = npc {
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
	dsc = function(s)
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Анна Рэдклифф} внимательно слушает навьяра, иногда что-то спрашивая. 
 
			]];
 
            if (char_anna_atlantis_dlg.state == 0) then
 
                return [[{Девушка} лет двадцати-пяти внимательно слушает навьяра, иногда что-то спрашивая. ]];
 
            else
 
			    return [[{Анна Рэдклифф} внимательно слушает навьяра, иногда что-то спрашивая. ]];
 
            end;         
 
		else
 
			return [[
 
				{Анна Рэдклифф} внимательно слушает навьяров, иногда что-то спрашивая. 
 
			]];
 
            if (char_anna_atlantis_dlg.state == 0) then      
 
                return [[{Девушка} лет тридцати внимательно слушает навьяров, иногда что-то спрашивая. ]];
 
            else
 
			    return [[{Анна Рэдклифф} внимательно слушает навьяров, иногда что-то спрашивая. ]];
 
            end;         
 
		end;
 
	end;
 
	dlg = "char_anna_atlantis_dlg";
 
};
 
 
char_learr_atlantis = npc {
 
	var {
 
		offended = false;
 
	};
 
	nam = "Леарр";
 
	__where__ = 'atl_oculus_lab_c';
 
	dsc = function(s)
 
		-- TODO Описание Леарр меняется в зависимости от комнаты, где она находится
 
		return [[
 
			{Леарр} стоит, опершись одной рукой на стол. Другой рукой она активно жестикулирует, рассказывая что-то.
 
		]];
 
        if (stead.deref(here()) == "atl_oculus_lab_c") then
 
            return [[{Леарр} стоит, опершись одной рукой на стол. Другой рукой она активно жестикулирует, рассказывая что-то. ]];
 
        else
 
            if (where(char_jack_wright_atlantis) == atl_ignis_hall_a) then
 
                return [[{Леарр} стоит перед иллюминатором и что-то рассказывает ]];
 
            else
 
                return [[{Леарр} стоит перед иллюминатором и смотрит вдаль. ]];
 
            end;
 
        end;
 
	end;
 
	dlg = "char_learr_atlantis_dlg";
 
};
 
 
char_aikerjarr = npc {
 
	nam = "Аикерьярр";
 
	dsc = function(s)
 
		return [[
 
			{Аикерьярр} неподвижно стоит у одного из столов. 
 
		]];
 
        if (char_aikerjarr_dlg.state == 0) then
 
            return [[У одного из столов неподвижно стоит {навьяр}. ]];
 
        else
 
		    return [[У одного из столов неподвижно стоит {Аикерьярр}. ]];
 
        end;      
 
	end;
 
	dlg = "char_aikerjarr_dlg";
 
};
 
 
char_ryveerr = npc {
 
	nam = "Ривеерр";
 
	dsc = function(s)
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Ривеерр} что-то рассказывает. 
 
			]];
 
		else 
 
			return [[
 
				{Ривеерр} иногда прерывает рассказ Леарр, добавляя что-то. 
 
			]];
 
            if (char_ryveerr_dlg.state == 0) then
 
			    return [[У одного из столов стоит {навьяр} и что-то рассказывает. ]];
 
            else
 
                return [[У одного из столов стоит {Ривеерр} и что-то рассказывает. ]];
 
            end;         
 
		else
 
            if (char_ryveerr_dlg.state == 0) then
 
			    return [[Рядом стоит {навьяр} и иногда прерывает рассказ Леарр, добавляя что-то. ]];
 
            else
 
                return [[Рядом стоит {Ривеерр} и иногда прерывает рассказ Леарр, добавляя что-то. ]];
 
            end;
 
		end;
 
	end;
 
	dlg = "char_ryveerr_dlg";
 
};
 
 
char_loong = npc {
 
	nam = "Джинхэй Лун";
 
	dsc = function(s)
 
		-- TODO описание должно мелянться, если Леарр не здесь
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Джинхэй Лун} стоит рядом с блокнотом и делает записи по ходу рассказа навьяра. 
 
			]];
 
		else
 
			return [[
 
				{Джинхэй Лун} стоит рядом с блокнотом и делает записи по ходу рассказа навьяров. 
 
			]];
 
		end;
 
		if (char_loong_dlg.state == 0) then
 
            return [[Там же стоит немолодой {китаец} с блокнотом и делает какие-то записи. ]];
 
        else
 
            return [[Там же стоит {Джинхэй Лун} с блокнотом и делает какие-то записи. ]];
 
        end;
 
	end;
 
	dlg = "char_loong_dlg";
 
};
 
 
char_winterlight = npc {
 
	nam = "Сильвия Уинтерлайт";
 
	dsc = function(s)
 
        if (char_winterlight_dlg.state == 0) then
 
            return [[{Женщина} лет тридцати-пяти--сорока стоит, склонишись над картой. Длинные темные волосы спадают на плечи. Она одета в длинную черную юбку и серую блузку. Ее зеленые глаза внимательно изучают документ, лежащий перед ней. ]];
 
        else
 
            return [[{Сильвия Уинтерлайт} стоит возле одного из столов, рассматривая карту. ]];
 
        end;
 
    end;   
 
	dlg = "char_winterlight_dlg";
 
};
 
 
char_jack_wright_atlantis = npc {
 
	nam = "Джек Райт";
 
	dsc = function(s)
 
		if (where(char_jack_wright_atlantis) == atl_ignis_hall_a) then
 
			return [[
 
				{Джек Райт} сидит рядом и о чем-то с ней разговаривает. 
 
			]];
 
			return [[{Джеку Райт}, стоящему рядом. ]];
 
		else 
 
			return [[
 
				{Джек Райт}
 
			]];
 
			return [[{Джеком}. ]];
 
		end;
 
	end;
 
	dlg = "char_jack_wright_atlantis_dlg";
 
};
 
 
char_michael_wright = npc {
 
	nam = "Майкл Райт";
 
	dsc = [[
 
		{Майкл Райт} просматривает какие-то чертежи. 
 
	]];
 
	dsc = function(s)
 
        if (where(char_jack_wright_atlantis) == atl_ignis_hall_a) then
 
            return [[{Майкл Райт} оживленно беседует о чем-то с ]];
 
        else
 
            return [[{Майкл Райт} просматривает какие-то чертежи. ]];
 
        end;
 
    end;
 
	dlg = "char_michael_wright_dlg";
 
};
 
 
char_legrand = npc {
 
	nam = "Мари Легран";
 
	dsc = [[
 
		{Мари Легран} стоит у верстака, рассматривая какую-то деталь. 
 
	]];
 
	dsc = function(s)
 
        if (char_legrand_dlg.state == 0) then
 
            return [[У верстака стоит {женщина} лет сорока--сорока-пяти и рассматривает какую-то деталь.]];
 
        else
 
            return [[У верстака стоит {Мари Легран} и рассматривает какую-то деталь. ]];
 
        end;   
 
    end;   
 
	dlg = "char_legrand_dlg";
 
};
 
 
char_radcliffe_atlantis = npc {
 
	nam = "Уолтер Рэдклифф";
 
	dsc = [[
 
		{Уолтер Рэдклифф} стоит, навалившись на стену. 
 
	]];
 
	dsc = function(s)
 
        if (char_radcliffe_atlantis_dlg.state == 0) then
 
            return [[{Человек} лет пятидесяти стоит, навалившись на стену. ]];
 
        else
 
            return [[{Уолтер Рэдклифф} стоит, навалившись на стену. ]];
 
        end;
 
    end;
 
	dlg = "char_radcliffe_atlantis_dlg";
 
};
 
 
char_xiao = npc {
 
	nam = "Вейюан Сяо";
 
	dsc = [[
 
		{Вейюан Сяо} осматривает Наутилус.  
 
	]];
 
	dsc = function(s)
 
        if (char_xiao_dlg.state == 0) then
 
            return [[Немолодой {китаец} осматривает Наутилус. ]];
 
        else
 
            return [[{Вейюан Сяо} осматривает Наутилус. ]];
 
        end;   
 
    end;   
 
	dlg = "char_xiao_dlg";
 
};
 
 
char_leroy = npc {
 
	nam = "Мишель Леруа";
 
	dsc = [[
 
		{Мишель Леруа} что-то чертит. 
 
	]];
 
	dsc = function(s)
 
        if (char_leroy_dlg.state == 0) then
 
            return [[{Мужчина} лет пятидесяти работает над каким-то чертежом. ]];
 
        else
 
            return [[{Мишель Леруа} работает над каким-то чертежом. ]];
 
        end;
 
    end;   
 
    dlg = "char_leroy_dlg";   
 
};
 
 
char_atlantis_guards = npc {
 
	nam = "Охранники";
 
	dsc = [[
 
		Рядом с дверью в оружейную стоят два вооруженных {охранника}. 
 
	]];
 
	phr = {
 
		[[
 
			"Входа нет".
 
		]];
 
		[[
 
			"Вам сюда нельзя".
 
		]];
 
		[[
 
			"Начальник в соседнем кабинете".
 
		]];
 
	};
 
};
 
 
char_goldman = npc {
 
	nam = "Леонард Голдман";
 
	dsc = [[
 
		{Леонард Голдман} сидит на койке о чем-то раздумывая. 
 
	]];
 
	dsc = function(s)
 
        if (char_goldman_dlg.state == 0) then
 
            return [[На койке, закинув руки за голову, лежит светловолосый {мужчина} лет пятидесяти. ]];
 
        else
 
            return [[На койке, закинув руки за голову, лежит {Леонард Голдман}. ]];
 
        end;   
 
    end;   
 
	dlg = "char_goldman_dlg";
 
};
 
 
char_jones = npc {
 
	nam = "Чарли Джонс";
 
	dsc = [[
 
		{Чарли Джонс} осматривает свой револьвер. 
 
	]];
 
	dsc = function(s)
 
        if (char_jones_dlg.state == 0) then
 
            return [[Пожилой {человек}, одетый в простой серый костюм, сидит на койке и задумчиво вертит в руках карандаш. ]];
 
        else
 
            return [[{Чарли Джонс} сидит на койке и задумчиво вертит в руках карандаш. ]];
 
        end;
 
    end;
 
	dlg = "char_jones_dlg";
 
};
 
 
atl_nih_tubes_gen = function(nam, dsc)
 
	return obj {
 
		var {
 
			broken = false;
 
			fixed = false;
 
		};
 
		nam = nam;
 
		dsc = dsc;
 
		act = function(s)
 
			if (s.fixed) then
 
				return "Поврежденные трубы замотаны изолентой";
 
			elseif (s.broken) then
 
				return "Трубы повреждены и воздух со слабым шипением вырывается из них";
 
			else
 
				return "Трубы в порядке";
 
			end;
 
		end;
 
		use = function(s, o)
 
			if (o == item_ducttape and s.broken and not s.fixed) then
 
				s.fixed = true;
 
				atl_nih_state = 2;
 
				return [[
 
					Вы заматываете разрыв изолентой. На какое-то время такое решение сгодится. 
 
				]];
 
			end;
 
		end;
 
	};
 
end;
 
 
atl_nih_tubes_near_aqua = atl_nih_tubes_gen("atl_nih_tubes_near_aqua", [[
 
	Рядом со шлюзом из стены выходят несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_near_aqua = atl_nih_tubes_gen("atl_nih_tubes_near_aqua", [[Рядом со шлюзом из стены выходят несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_a = atl_nih_tubes_gen("atl_nih_tubes_near_a", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_near_admin = atl_nih_tubes_gen("atl_nih_tubes_near_admin", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_near_a = atl_nih_tubes_gen("atl_nih_tubes_near_a", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_luna = atl_nih_tubes_gen("atl_nih_tubes_near_luna", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_near_admin = atl_nih_tubes_gen("atl_nih_tubes_near_admin", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_oculus = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[
 
	Вдоль стены протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_near_luna = atl_nih_tubes_gen("atl_nih_tubes_near_luna", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_terra = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[
 
	Вдоль стены протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_near_oculus = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[Вдоль стены протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_arctos = atl_nih_tubes_gen("atl_nih_tubes_near_arctos", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_near_terra = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[Вдоль стены протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_oculus = atl_nih_tubes_gen("atl_nih_tubes_oculus", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_terra = atl_nih_tubes_gen("atl_nih_tubes_terra", [[
 
	За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_near_arctos = atl_nih_tubes_gen("atl_nih_tubes_near_arctos", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_luna = atl_nih_tubes_gen("atl_nih_tubes_luna", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
 
atl_nih_tubes_arctos = atl_nih_tubes_gen("atl_nih_tubes_arctos", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_oculus = atl_nih_tubes_gen("atl_nih_tubes_oculus", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_aqua = atl_nih_tubes_gen("atl_nih_tubes_aqua", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_terra = atl_nih_tubes_gen("atl_nih_tubes_terra", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_aqua_a = atl_nih_tubes_gen("atl_nih_tubes_aqua_a", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_luna = atl_nih_tubes_gen("atl_nih_tubes_luna", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_aqua_b = atl_nih_tubes_gen("atl_nih_tubes_aqua_b", [[
 
	Под потолком протянуто несколько {труб}, по которым подается воздух. 
 
]]);
 
atl_nih_tubes_arctos = atl_nih_tubes_gen("atl_nih_tubes_arctos", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_panel_near_a = obscured_obj("atl_nih_panel_near_a", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_near_a", true);
 
atl_nih_tubes_aqua = atl_nih_tubes_gen("atl_nih_tubes_aqua", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_panel_near_admin = obscured_obj("atl_nih_panel_near_admin", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_near_admin", true);
 
atl_nih_tubes_aqua_a = atl_nih_tubes_gen("atl_nih_tubes_aqua_a", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_panel_near_luna = obscured_obj("atl_nih_panel_near_luna", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_near_luna", true);
 
atl_nih_tubes_aqua_b = atl_nih_tubes_gen("atl_nih_tubes_aqua_b", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_panel_oculus = obscured_obj("atl_nih_panel_oculus", [[
 
	Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. 
 
]], [[
 
	Вы снимаете панель, открывая доступ к трубам. 
 
]], "atl_nih_tubes_oculus", true);
 
atl_nih_panel_near_a = obscured_obj("atl_nih_panel_near_a", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_near_a", true);
 
 
atl_nih_boxes_near_oculus = obscured_obj("atl_nih_boxes_near_oculus", [[
 
	За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. 
 
]], [[
 
	Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_near_oculus", false, [[
 
	У стены расположена груда ящиков. 
 
]], [[
 
	Вам незачем что-то еще здесь делать. 
 
]]);
 
atl_nih_panel_near_admin = obscured_obj("atl_nih_panel_near_admin", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_near_admin", true);
 
 
atl_nih_panel_near_luna = obscured_obj("atl_nih_panel_near_luna", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_near_luna", true);
 
 
atl_nih_panel_oculus = obscured_obj("atl_nih_panel_oculus", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_oculus", true);
 
 
atl_nih_boxes_near_terra = obscured_obj("atl_nih_boxes_near_terra", [[
 
	За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. 
 
]], [[
 
	Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_near_terra", false, [[
 
	У стены расположена груда ящиков. 
 
]], [[
 
	Вам незачем что-то еще здесь делать. 
 
]]);
 
atl_nih_boxes_near_oculus = obscured_obj("atl_nih_boxes_near_oculus", [[За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. ]], [[Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. ]], "atl_nih_tubes_near_oculus", false, [[У стены расположена груда ящиков. ]], [[Вам незачем что-то еще здесь делать. ]]);
 
 
atl_nih_boxes_terra = obscured_obj("atl_nih_boxes_terra", [[
 
	За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. 
 
]], [[
 
	Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_terra", false, [[
 
	У стены расположена груда ящиков. 
 
]], [[
 
	Вам незачем что-то еще здесь делать. 
 
]]);
 
atl_nih_boxes_near_terra = obscured_obj("atl_nih_boxes_near_terra", [[За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. ]], [[Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. ]], "atl_nih_tubes_near_terra", false, [[У стены расположена груда ящиков. ]], [[Вам незачем что-то еще здесь делать. ]]);
 
 
atl_nih_boxes_terra = obscured_obj("atl_nih_boxes_terra", [[За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. ]], [[Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_terra", false, [[У стены расположена груда ящиков. ]], [[Вам незачем что-то еще здесь делать. ]]);
 
 
atl_nih_tubes_near_aqua:disable();
 
atl_nih_panel_near_a:disable();
 
atl_nih_panel_near_admin:disable();
 
atl_nih_panel_near_luna:disable();
 
atl_nih_boxes_near_oculus:disable();
 
atl_nih_boxes_near_terra:disable();
 
atl_nih_tubes_near_arctos:disable();
 
atl_nih_panel_oculus:disable();
 
atl_nih_boxes_terra:disable();
 
atl_nih_tubes_luna:disable();
 
atl_nih_tubes_arctos:disable();
 
atl_nih_tubes_aqua:disable();
 
atl_nih_tubes_aqua_a:disable();
 
atl_nih_tubes_aqua_b:disable();
 
 
atl_nih_init = function()
 
	atl_nih_state = 1;
 
	local nih_array = {
 
		atl_nih_tubes_near_aqua,
 
		atl_nih_tubes_near_a,
 
		atl_nih_tubes_near_admin,
 
		atl_nih_tubes_near_luna,
 
		atl_nih_tubes_near_oculus,
 
		atl_nih_tubes_near_terra,
 
		atl_nih_tubes_near_arctos,
 
		atl_nih_tubes_oculus,
 
		atl_nih_tubes_terra,
 
		atl_nih_tubes_luna,
 
		atl_nih_tubes_arctos,
 
		atl_nih_tubes_aqua,
 
		atl_nih_tubes_aqua_a,
 
		atl_nih_tubes_aqua_b
 
	};
 
	
 
	local nih_array2 = {
 
		atl_nih_tubes_near_aqua,
 
		atl_nih_panel_near_a,
 
		atl_nih_panel_near_admin,
 
		atl_nih_panel_near_luna,
 
		atl_nih_boxes_near_oculus,
 
		atl_nih_boxes_near_terra,
 
		atl_nih_tubes_near_arctos,
 
		atl_nih_panel_oculus,
 
		atl_nih_boxes_terra,
 
		atl_nih_tubes_luna,
 
		atl_nih_tubes_arctos,
 
		atl_nih_tubes_aqua,
 
		atl_nih_tubes_aqua_a,
 
		atl_nih_tubes_aqua_b
 
	};
 
	
 
	nih_array[rnd(#nih_array)].broken = true;
 
	
 
	for i = 1, #nih_array2 do
 
		nih_array2[i]:enable();
 
	end;
 
end;
 
\ No newline at end of file
atlantis_dlg.lua
Show inline comments
 
char_darkstar_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Винсент Даркстар";
 
	disp = "Винсент Даркстар";
 
	entered = function(s)
 
		if (atl_lfc_leroy_spoken) then
 
			pon("leroy");
 
		end;
 
		
 
		if (atl_lfc_goldman_spoken) then
 
			pon("goldman");
 
		end;
 
		
 
		if (s.state == 0) then
 
			psub("first_meeting");
 
            s.state = 1;         
 
			return [[
 
				За столом сидит средних лет мужчина в деловом костюме. Как только вы обращаетесь к нему он говорит первым: "Добрый день, господин Дрейк. Я Винсент Даркстар, мы уже общались по радио. Надеюсь, вы понимаете мое решение касательно Левиафана. Безопасность станции - моя основная работа".
 
			]];
 
		elseif (atl_fta_state == 2) then
 
			psub("fta");
 
			return [[
 
				Винсент Даркстар достает из ящика папку с бумагами и кладет перед собой. Не глядя на вас он говорит: "Рассказывайте".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				"Я слушаю"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Что мне нужно сделать, чтобы мне вернули Левиафан?", [[
 
			"Вести себя хорошо и не пытаться навредить кому-либо на станции".
 
		]]};
 
		{"Когда мне вернут Левиафан?", [[
 
			"В свое время. Пока вы можете попытаться понять, куда вам следует направиться, если вы хотите найти отца".
 
		]]};
 
		{"Я пришел кое-что спросить", [[
 
			"Я слушаю".
 
		]], code [[psub("generic");]]};
 
		{tag="generic"};
 
		{"Расскажите об Уильяме", [[
 
			"Уильям - таланливый человек. Вместе с Райтом они построили эту станцию целиком на средства Уильяма".
 
		]]};
 
		{tag="goldman", "Саботаж - дело рук Голдмана", [[
 
			"Во-первых, я вас просил не лезть в это дело. Во-вторых, я бы не был так уверен. В третьих, я еще раз прошу вас больше расследованию не мешать".
 
		]], code [[ atl_lfc_suspect="goldman"; ]]};
 
		{tag="leroy", "Саботаж - дело рук Леруа", [[
 
			"Во-первых, я вас просил не лезть в это дело. Во-вторых, я бы не был так уверен. В третьих, я еще раз прошу вас больше расследованию не мешать".
 
		]], code [[ atl_lfc_suspect="leroy"; ]]};
 
		{always=true, "Я пойду", [[
 
			"До встречи"
 
		]], code [[ back(); ]]};
 
		{tag="fta"};
 
		{"Что рассказывать?", [[
 
			"Что произошло в Солисе. Прежде всего - все, что вам показалось подозрительным"
 
		]]};
 
		{"Первый взрыв раздался, когда я был у входа в секцию[Кратко пересказать основные события]", [[
 
			"Хорошо, что подозрительного вы заметили?"
 
		]]};
 
		{"Один из клапанов работал неправильно - давление в нем было выше нормы", [[
 
			"Интересно. За десять лет работы станции такого никогда не было".
 
		]]};
 
		{tag="clock", "[Показать часы]А еще я нашел там вот это", [[
 
			"Так-так-так. Франсуа Голдман. Значит Леонард однозначно в этом замешан. Но, зная его, я скажу, что действовал он не один. Я снова ставлю на то, что они попытаются вывести из строя одну из субмарин. И, скорее всего их целью будет Наутилус".
 
		]], code [[ atl_lfc_goldman_exposed = true; psub("why_lev"); ]]};
 
		{tag="why_lev"};
 
		{"Почему Наутилус?", [[
 
			"Потому что саботажник не хочет нашей смерти. Он хочет остановить работу станции. Наутилус используется только для операций поблизости от станции. Энтерпрайз же и Левиафан способны доставить нас на континенты".
 
		]]};
 
		{"Соглашусь с вашим предположением", [[
 
			"Отлично. Я попрошу вас помочь мне с этим заданием".
 
		]], code [[ psub("lfc_help"); ]]};
 
		{"Мне кажется, целью будет другая субмарина", [[
 
			"Можете не волноваться, мы будем следить за всеми доками - я не хочу, чтобы ситуация вышла из под контроля. Кроме того, я попрошу вас помочь мне с этим заданием".
 
		]], code [[ psub("lfc_help"); ]]};
 
		{tag="lfc_help"};
 
		{"Почему я?", [[
 
			"Вы один из немногих в курсе ситуации. Я не хотел бы посвящать слишком многих в происходящее - это увеличит риск утечки и может спровоцировать панику".
 
		]]};
 
		{"Я слушаю", [[
 
			"Я хочу, чтобы в семь часов вечера вы отправились в док Наутилуса и в течение ближайшей ночи наблюдали за происходящим. Если вы заметите что-то подозрительное - принимаете меры на ваше усмотрение", -- Даркстар достает из ящика стола револьвер и кладет перед вами: "Это вам понадобится".
 
		]], code [[
 
			take(item_colt);
 
			atl_lfc_state = 2;
 
			back();
 
		]]};
 
	};
 
};
 
 
char_moreau_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Фредерик Моро";
 
	disp = "Фредерик Моро";
 
	entered = function(s)
 
		if (atl_lfc_state == 3) then
 
			atl_lfc_state = 4;
 
			atl_lev_state = 1;
 
			local reputation = 0;
 
			if (atl_rep_darkstar > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_moreau > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_svetlova > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_wright > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			
 
			if (reputation > 2 and atl_rep_moreau > 0) then
 
				psub("lfc_debrief_good");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника. Огромное спасибо. Посовещавшись, мы решили позволить вам свободно пользоваться Левиафаном".
 
				]];
 
			elseif (reputation > 2) then
 
				psub("lfc_debrief_good");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника, однако я все еще не считаю, что вам можно доверять и не хотел бы возвращать вам Левиафан. Впрочем, поскольку большинство более благосклонно к вам -- катитесь на все четыре стороны. Свободны".
 
				]];
 
			elseif (atl_rep_moreau > 0) then
 
				psub("lfc_debrief_bad");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника. Огромное спасибо. Хотя я считаю, что вы оказали нам неоценимую услугу, некоторые с этим несогласны. Поэтому, хотя мы и возвращаем вам Левиафан, мы вынуждены запретить вам посещать Атлантиду".
 
				]];
 
			else
 
				psub("lfc_debrief_bad");
 
				return [[
 
					Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день. Вы очень помогли нам в поимке саботажника, однако я все еще не считаю, что вам можно доверять и не хотел бы возвращать вам Левиафан. Впрочем, поскольку большинство более благосклонно к вам -- катитесь на все четыре стороны. Отныне Атлантида для вас закрыта. Свободны".
 
				]];
 
			end;
 
		end;
 
	
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он кладет руки на стол и приветствует вас: "Добро пожаловать на Атлантиду. Мы крайне удивлены вашим прибытием, однако, я надеюсь, сможем помочь вам найти вашего отца. Вы прекрасно понимаете, что сейчас мы не можем просто взять и отпустить вас. Что произойдет, если на поверхности узнают о существовании станции? " - он делает небольшую паузу, после чего продолжает: "Да ничего хорошего. Станция и ее технологии будут использованы как оружие".^
 
				Моро подходит к книжной полке и берет какую-то книгу. Вернувшись за стол, он раскрывает ее и возвращается к рассказу: "Ваш отец и все мы, создавали эту станцию совершенно не для этого. Да, изначально это был эксперимент - подводные корабли, которым не страшны бури, могли оказаться сильнейшим преимуществом против конкурентов Вест-Хэйвен Транс-Оушен. Но все изменилось, когда мы встретили навьяров". 
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он поднимает взгляд и приветствует вас: "Добрый день, чем могу помочь?"
 
			]];
 
		end;		
 
	end;
 
	phr = {
 
		{tag="first_meeting", empty = code[[ psub("generic"); ]]};
 
		{"Я не имею намерения раскрывать существование Атлантиды", [[
 
			"Рад это слышать. Но нам нужно больше чем ваши слова".
 
		]]};
 
		{"Навьяров?", [[
 
			_"Na'vji'a'rr - с их языка это переводится, как ,,Живущие в глубинах''. Если вы еще не были в окулусе, то скорее всего вы их не видели. Эти существа -- полурыбы-полулюди. О них, конечно, вам лучше с учеными в том же окулусе поговорить"_.
 
		]]};
 
		{"И как они повлияли на ваши планы?", [[
 
			_"Кардинально. Нельзя сказать, что наши отношения сразу наладились - первые встречи были, мягко говоря, напряженными. Но через какое-то время нам удалось наладить контакт. Тогда началось строительство станции - мы еще не думали об автономности или последствиях. Мы просто хотели изучить этих рыбней получше. Уже позже мы смогли достичь автономности благодаря гениальным идеям Светловой - тогда же были созданы Наутилус и Энтерпрайз - наши субмарины"_.
 
		]]};
 
		{"Почему мой отец покинул станцию?", [[
 
			_"Он был увлечен одной легендой. Древний навьярский город. Сложно представить, что эти примитивные существа когда-то обладали знаниями и культурой превосходящими наши, но мы нашли несколько предметов, доказывающих это. К сожалению, Уильям не оставил почти никаких сведений о том, куда он направился, поэтому нам остается только догадываться"_.
 
		]]};
 
		{"Вы предпринимали попытки найти Надежду?", [[
 
			_"Вынужден признать, что нет. Вы сами понимаете, что искать субмарину, отправившуюся, фактически, неизвестно куда, это все равно что искать иголку в стоге сена, а мы не можем позволить себе рисковать Энтерпрайзом и Наутилусом - это наши единственные средства связи с внешним миром"_.
 
		]]};
 
		{"Как получилось, что Левиафан остался на поверхности?", [[
 
			_"Мы не успели его достроить. Или по-крайней мере, по какой-то причине считали так. Нам не хватило ресурсов на то, чтобы достроить его и полностью снарядить, тогда Дрейк с Райтом решили спрятать его. Как оказалось - не слишком надежно"_.
 
		]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа", [[
 
			"С чего вы взяли это? Разве Даркстар не просил вас никому не говорить? Вы понимаете, что будет, если начнется паника? Больше прошу об этом не говорить. Ни со мной, ни с кем-либо еще. Кроме Даркстара".
 
		]], code [[
 
			atl_rep_moreau = atl_rep_moreau - 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
		]]};
 
		{tag="ignis_what", false, "Почему начался пожар в Игнисе", [[
 
			"Сложно сказать. Но вы не волнуйтесь. Наши инженеры и служба безопасности занимаются этим".
 
		]]};
 
		{"Я пойду", [[
 
			Моро кивает головой и прощается с вами: "Если вам что-то понадобится - не стесняйтесь, заходите".
 
		]], code [[ back(); ]]};
 
		{tag="lfc_debrief_good"};
 
		{"Спасибо, это все", [[
 
			Моро кивает головой и спрашивает вас: "Вам что-нибудь нужно?".
 
		]], code [[ psub("generic");]]};
 
		{tag="lfc_debrief_bad"};
 
		{"Я пойду", [[
 
			Моро кивает головой.
 
		]], code [[ walk("game_over_banished"); ]]};
 
		
 
	};
 
};
 
 
char_svetlova_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_sabotage = false;
 
		lfc_dialog = false;
 
		flag_help = false;
 
		flag_explain = false;
 
	};
 
	nam = "Екатерина Светлова";
 
	disp = "Екатерина Светлова";
 
	entered = function(s)
 
		if (s.state == 0) then
 
			psub('first_meeting');
 
            s.state = 1;         
 
			return [[
 
				Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: _"Добрый день. Должна признать, вы всех нас знатно напугали, господин Дрейк. Винсент сказал, что вы зайдете. Что ж, я думаю вы будете очень полезны станции. Правда Винсент и Моро решили вас пока к субмаринам не пускать, что несколько помешает моим планам на вас. Впрочем я попробую их уговорить - это будет полезно и нам и вам, как и мое предложение в целом -- я знаю, что вы ищете своего отца -- Даркстар мне и это сказал, -- а он последнее время занимался одной легендой -- он хотел найти первый город навьяров, или как-то так. К сожалению, когда он отправился в эту экспедицию, он почти не оставил нам материалов - все навьярские карты, переводы - они только у него и поэтому мы не можем проследовать за ним. ^
 
				Адриан его очень торопил, поэтому Уильям не успел толком даже план экспедиции для нас обрисовать"_. 
 
			]];
 
		elseif (s.state == 2) then
 
			psub('ryveerr_on_steal');
 
			return [[
 
				Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Ну как? Поговорили с Ривеерром?"
 
			]];
 
		else
 
			if (atl_iyh_state == 9) then
 
				atl_iyh_state = 10;
 
				psub('iyh_more');
 
				take("item_map_2");
 
				take("item_talk_device");
 
				take("item_navjiarr_chart_1");
 
				take("item_navjiarr_chart_2");
 
				take("item_navjiarr_chart_3");
 
				if (atl_iyh_artifacts_on_atlantis) then
 
					return [[
 
						Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Добрый день, Дрейк. Мы изучили артефакты, найденные вами в храме. Среди всего прочего, мы нашли несколько фрагментов карты, которые я возвращаю вам - они понадобятся вам в ваших поисках. К сожалению, это именно что фрагменты и мы не можем по ним определить местоположение чего бы то ни было. Однако, недостающие фрагменты могут быть в расположенных неподалеку навьярских города - Дипатреанотре и Ираафаанотре". Она достает из-под стола небольшой чемоданчик с лампочками и кнопочками и вручает его вам: "Этот прибор позволит вам общаться с навьярами под водой. Просто набирайте слова как на клавиатуре печатной машинки, при этом будут последовательно зажигаться лампочки соответствующих цветов". Затем она достает карту, на которой отмечены Атлантида, Ираафаанотр и Дипатреанотр и так же отдает ее вам: "Вы можете взять эту карту".
 
					]];
 
				else
 
					return [[
 
						Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Добрый день, Дрейк. К сожалению, мы не смогли получить доступ к артефактам, добытым вами в храме. Поэтому, единственное, что вы можете сделать чтобы найти отца - это посетить навьярские города, расположенные неподалеку - Дипатреанотр и Ираафаанотр". Она достает из-под стола небольшой чемоданчик с лампочками и кнопочками и вручает его вам: "Этот прибор позволит вам общаться с навьярами под водой. Просто набирайте слова как на клавиатуре печатной машинки, при этом будут последовательно зажигаться лампочки соответствующих цветов". Затем она достает карту, на которой отмечены Атлантида, Ираафаанотр и Дипатреанотр и так же отдает ее вам: "Вы можете взять эту карту".
 
					]];
 
				end;
 
			else
 
				print("svetlova, generic");
 
				psub('generic');
 
				
 
				if (atl_lfc_state ~= 1) then
 
					poff('sabotage', 'ignis_what');
 
				end;
 
				
 
				if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
					s.lfc_dialog = true;
 
					pon('sabotage', 'ignis_what');
 
				end;
 
				
 
				if (atl_iyh_state == 2) then
 
					pon("hard_to_understand");
 
				end;
 
				if (atl_iyh_state == 3) then
 
					pon("explanation");
 
				end;
 
				if (atl_iyh_state < 4 and atl_iyh_ryveerr_spoken) then
 
					pon("ryveerr_spoken");
 
				end;
 
				return [[
 
					Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Добрый день". 
 
				]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
		{tag = "first_meeting"};
 
		{"Адриан?", [[
 
			"Адриан Блэк - сооснователь Вестхейвен Трансоушен и хороший друг вашего отца. В последнее время они вместе с Уильямом занимались поисками Лсэрианотра - древнейшего города навьяров";
 
		]], code [[pon('lseryanotr')]]};
 
		{"То есть, вы вообще не знаете, где сейчас может быть ,,Надежда''?", [[
 
			"Нет. Мы знаем только примерное изначальное направление - Венаэданотр город расположен далеко к западу отсюда, но у нас нет точной информации о его местоположении".
 
		]]};
 
		{tag = "lseryanotr", "Лсэрианотр?", [[
 
			"Да, самый древний город навьяров. С ним у них связано множество легенд, но самая главная, та что так заинтересовала вашего отца, связана с неким существом - Спящим или Наэтвьирром, как его называют навьяры. Древние легенды рассказывают о том, что Наэтвьирр должен был дать навьярам великие знания, которые позволили бы им войти в век процветания. Однако, не все так просто. По какой-то причине, более новые легенды предостерегают об опасности Наэтвьирра. Думаю навьяры смогут рассказать вам больше".
 
		]]};
 
		{"В чем заключается ваше предложение?", [[
 
			Екатерина откладывает бумаги в ящик стола, достает оттуда карту и раскладывает ее на столе. После чего продолжает:
 
			_"На самом деле, вы прибыли как нельзя вовремя. Наши отношения с навьярами несколько натянулись в последнее время, и, боюсь, разрешить разногласия поможете только вы. Я попробую кратко изложить ситуацию, задавайте вопросы по ходу рассказа, если вам нужна дополнительная информация. ^
 
			В окрестностях Атлантиды находятся два навьярских поселения - Ираафаанотр и Дипатреанотр. Первая встреча с жителями Дипатреанотра прошла не совсем гладко и в результате ее погибли все, кто принимал в ней участие. В дальнейшем отношения удалось более-менее наладить, однако жители Дипатреанотра не до конца готовы доверять Атлантиде. К сожалению, недавно между Ираафаанотром и Дипатреанотром произошел конфликт, который может очень негативно повлиять на ситуацию в регионе. Мы пытались вмешаться, но это лишь обострило разногласия и в дальнейшем может поставить под угрозу само существование станции"_.
 
		]], code [[ psub('help')]]};
 
		{tag = 'help'};
 
		{"И как я смогу помочь?", [[
 
			Светлова внимательно смотрит на вас и говорит: _"Вы не с Атлантиды. И навьяры это знают. Вы предстанете перед ними как нейтральная сторона. Сейчас вам стоит поговорить с Леарр и Ривеерром - узнать их взгляд на ситуацию. Потом приходите ко мне и решим, что делать"_.
 
		]], code [[
 
			char_svetlova_dlg.flag_help = true;
 
			if (char_svetlova_dlg.flag_explain) then
 
				pon("first_meeting_end");
 
			end;
 
		]]};
 
		{"И в чем суть этого конфликта?", [[
 
			Светлова отвечает: "Навьяры - очень религиозные существа - у них много разных священных предметов, религиозных запретов, табу, пророчеств - на первый взгляд - типичное первобытное общество, но стоит копнуть чуть глубже - и ситуация оказывается намного интереснее. Многие из реликвий, что попадали к нам в руки были изготовлены с поразительной точностью. Достаточно сказать, что у нас нет средств для изготовления настолько точных деталей. К сожалению, мы не смогли понять назначение этих предметов - только догадки. Часть из них, очевидно, являлись деталями механизмов. Другие, судя по всему, были чем-то вроде записей, однако ни мы, ни сами навьяры не смогли их прочитать. Но сейчас речь не о том. Не так давно наши два города потеряли свои ценнейшие реликвии и теперь обвиняют в этом друг друга. Дело грозит обернуться войной, поэтому надо что-то предпринять. "
 
		]], code [[
 
			char_svetlova_dlg.flag_explain = true;
 
			if (char_svetlova_dlg.flag_help) then
 
				psub("first_meeting_end");
 
			end;
 
		]]};
 
		{tag = "first_meeting_end"};
 
		{"Хорошо, я посмотрю, чем смогу помочь. ", [[
 
			_"Вам стоит поговорить с Леарр и Ривеерром - они вам гораздо лучше все расскажут. Насколько я знаю, Леарр недавно ушла в Игнис - это надо в Доминусе на лифте подняться, думаю разберетесь, а Ривеерр здесь, в одной из соcедних лабораторий"_.
 
		]], code [[ 
 
			char_svetlova_dlg.state = 1;
 
			atl_iyh_state = 1;
 
			psub("generic");
 
		]]};
 
		{"Я прибыл сюда искать своего отца, а не решать проблемы полуразумных рыбней", [[
 
			Екатерина встает из-за стола, после чего садится обратно. Кажется, ваш комментарий ее серьезно разозлил. Затем она достает из ящика небольшой блестящий диск - примерно 10 сантиметров диаметром: "Эти полуразумные рыбни, как вы выразились, могут сделать вот такое". ^
 
			Вы берете из рук Екатерины диск и внимательно рассматриваете его. На первый взгляд ничего необычного - блестящий диск, бесполезное украшение. Вдоль внешней кромки его вы видите какие-то цветные полосы - очень ровно нанесенные, но в них вы тоже ничего необычного не видите. Светлова продолжает: "Посмотрите на него под микроскопом и вы поймете о чем я. Да, вы можете забрать его. Возможно это, как и то, о чем я вас прошу, поможет вам узнать где сейчас находится Уильям".
 
		]], code [[ put(item_navjiarr_disk, pl); ]]};
 
		{tag = "generic"};
 
		{tag = "sabotage", false, "Даркстар считает, что причиной пожара в Игнисе был саботаж. Что вы об этом думаете?", function(s)
 
			if (atl_iof_learr_dead) then
 
				atl_rep_darkstar = atl_rep_darkstar - 1;
 
				return [[
 
					"Даркстар просил вас ничего об этом не говорить. Разговор окончен".
 
				]];
 
			else
 
				s.lfc_sabotage = true;
 
				atl_rep_svetlova = atl_rep_svetlova + 1;
 
				return [[
 
					"Даркстар просил вас ничего об этом не говорить, но вам ведь все равно интересно, правда? Тогда слушайте. Однозначно, саботажник - кто-то из сторонников закрытия станции. Если хотите про них больше узнать - поговорите с Мишелем Леруа. Еще, если вы собираетесь этим серьезно заняться, вам стоит поговорить с Уолтером Рэдклиффом".
 
				]];
 
			end;
 
		end};
 
		{tag = "ignis_what", false, "Вы знаете, что произошло в Игнисе?", function(s)
 
			if (s.lfc_sabotage) then
 
				return [[
 
					"Вы же только что сами сказали - саботаж".
 
				]];
 
			elseif (atl_iof_learr_dead) then
 
				return [[
 
					"Мне кажется, это не ваше дело. И не мое. Этим занимается служба безопасности".
 
				]];
 
			else
 
				poff("sabotage");
 
				psub("ignis_sabotage");
 
				return [[
 
					"Я думаю вы и сами прекрасно знаете. Может расскажете?"
 
				]];
 
			end;
 
		end};
 
		{tag = "hard_to_understand", false, "Я поговорил с Аикерьярром, только я вообще ничего не понял из его слов[Кратко пересказать диалог с Аикерьярром]", [[
 
			Екатерина откладывает бумаги в сторону и откидывается на спинку стула. Через некоторое время она говорит: "Интересно. Аикерьярр упорно отрицает причастность Ираафаанотра к краже реликвии. Что говорит Ривеерр по этому поводу?"
 
		]], code [[ char_svetlova_dlg.state = 2; psub('ryveerr_on_steal');]]};
 
		{tag = "explanation", false, "Я поговорил с Леарр. Она говорит, что они не трогали реликвию Ираафаанотра[Кратко пересказать диалог с Ираафаанотром]", [[
 
			Екатерина откладывает бумаги в сторону и откидывается на спинку стула. Через некоторое время она говорит: "Интересно. Что говорит Ривеерр по этому поводу?"
 
		]], code [[ char_svetlova_dlg.state = 2; psub('ryveerr_on_steal');]]};
 
		{always = true, "Я пойду", [[
 
			Светлова возвращается ко своим бумагам: "До встречи"
 
		]], code [[ back(); ]]};
 
		{tag = "ignis_sabotage"};
 
		-- сказать про саботаж или нет
 
		{"Саботаж", function(s)
 
			psub("generic");
 
			atl_rep_svetlova = atl_rep_svetlova + 1;
 
			return [[
 
				"Даркстар просил вас ничего об этом не говорить, но вам ведь все равно интересно, правда? Тогда слушайте. Однозначно, саботажник - кто-то из сторонников закрытия станции. Если хотите про них больше узнать - поговорите с Мишелем Леруа. Еще, если вы собираетесь этим серьезно заняться, вам стоит поговорить с Уолтером Рэдклиффом".
 
			]];
 
		end};
 
		{"Понятия не имею", [[
 
			"Очень жаль. Мне действительно интересно".
 
		]], code [[
 
			psub("generic");
 
		]]};
 
		{tag = "ryveerr_on_steal"};
 
		{tag = "ryveerr_spoken", false, "Ривеерр рассказал о нападении на храм. Он уверен, что именно жители Ираафаанотра украли ее. И он с уверенностью говорит, что они готовы обменяться реликвиями обратно. То есть реликвия Ираафаанотра, судя по всему, находится в Дипатреанотре. ", [[
 
			Светлова задумчиво потирает лоб: "Хм. Тогда мы в тупике".
 
		]], code [[ pon("ryveerr_more"); ]]};
 
		{tag = "ryveerr_more", false, "Вы были в храме?", [[
 
			Светлова разводит руками: "Они никого не пускают, так что мы врядли что-то сможем что-то еще здесь сделать... ". Внезапно она лезет куда-то в ящик стола и что-то там ищет. Судя по всему, она не находит искомого. Махнув рукой, она продолжает: "Есть еще один храм - очень старый, его даже навьяры не посещают. Но смысл не в этом. В этом храме живет гигантский скат. А они очень любят порой утаскивать ценные вещи из навьярских городов. Можете спросить Сильвию об этом - у навьяров полно таких легенд". ^
 
			Екатерина закрвает ящик стола и продолжает: "Я хочу, чтобы вы отправились туда. Навьярам не стоит ничего знать - я думаю вы догадываетесь, как они отреагируют, если им сообщить".
 
		]], code [[ atl_iyh_state = 4; psub("secret_op"); ]]};
 
		{"Я пойду", [[
 
			Светлова возвращается ко своим бумагам: "До встречи"
 
		]], code [[ back(); ]]};
 
		{tag="secret_op"};
 
		{"Хорошо, я ничего не скажу навьярам. ", [[
 
			"Отлично. Даркстару я сообщу, что одобряю возвращение вам Левиафана".
 
		]], code [[ back(); ]]};
 
		{"Мне кажется, нам стоит поставить их в известность. Как они отреагируют, если мы просто принесем им реликвию? ", [[
 
			"Они будут благодарить нас. А теперь представьте, что вы сообщаете им, что отправляетесь в их священное место охотиться на их священную рыбу. Что будет? "
 
		]], code [[ psub("so_answer"); ]]};
 
		{tag="so_answer"};
 
		{"Да, пожалуй вы правы", [[
 
			"Отлично. Даркстару я сообщу, что одобряю возвращение вам Левиафана".
 
		]]};
 
		{"А что будет, если мы принесем им реликвию, которая должна по их мнению быть в Ираафаанотре? Разве они не посчитают, что мы украли ее оттуда? ", [[
 
			"Это маловероятно. Впрочем, поступайте как знаете".
 
		]], code [[ back(); ]]};
 
		{tag="iyh_more"};
 
		{"Я могу чем-то еще помочь?", [[
 
			"Пока у нас нет для вас заданий, но возможно позже появится что-то. Сейчас вы можете продолжать ваши поиски".
 
		]]};
 
		{"Спасибо за помощь, я пойду", [[
 
			"Удачи в поисках Уильяма, Дрейк".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
char_anna_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами стоит молодая женщина лет двадцати-пяти-тридцати. Каштановые волосы ниспадают на плечи. Зеленые глаза внимательно следят за движениями навьяра, с которым она разговаривает. Заметив вас, она просит навьяра подождать и обращается к вам: "Приветствую, я Анна Рэдклифф". 
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Анна разговаривает с навьяром, стоящим рядом. Заметив вас, она просит его подождать и обращается к вам: "Приветствую, вы что-то хотели?"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк. Очень приятно", [[
 
			Анна улыбается: "Вы что-то хотели?"
 
		]], code = [[ psub('generic'); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе - следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			rel_walter = rel_walter - 1;
 
			rel_anna = rel_anna - 1;
 
			return [[
 
				Анна в ужасе смотрит на вас: "Вы серьезно? Ну да... Оборудование здесь хорошее, мне Уолтер не раз рассказывал насколько здесь все надежное. Не знаю, что и думать... А если этот псих вздумает поджечь еще что-то?"
 
			]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[
 
			"Практически ничего. Поговорите с Даркстаром или Райтом. Можете еще Уолтера спросить".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"До встречи"
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
char_learr_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = function(s)
 
		if (s.state == 0) then
 
			if (char_learr_atlantis.offended) then
 
				psub("offended");
 
				return [[
 
					Леарр поворачивается к вам, плавники ее становятся ярко-оранжевыми, а она говорит: "Я приветствую тебя-презренный-монстр-he'vji'a'rr".
 
				]];
 
			else
 
				psub("pre_iof");
 
				return [[
 
					Леарр поворачивается к вам, плавники ее становятся сине-зелеными, а она говорит: "Я приветствую тебя-he'vji'a'rr".
 
				]];
 
			end;
 
		elseif (s.state == 1) then
 
			s.state = 2;
 
			psub("after_iof");
 
			if (atl_iof_learr_suit) then
 
				return [[
 
					При виде вас, плавники Леарр меняют цвет на ярко-красный. Она плавно опускает руки вниз и делает что-то вроде поклона. После этого она поднимается и говорит: "Я благодарю вас. Ваша-со-скафандром-идея невероятна".
 
				]];
 
			else
 
				return [[
 
					При виде вас, плавники Леарр меняют цвет на ярко-красный. Она плавно опускает руки вниз и делает что-то вроде поклона. После этого она поднимается и говорит: "Я благодарю вас".
 
				]];
 
			end;
 
		else
 
			if (atl_iyh_state == 4) then
 
				pon("iyh4");
 
			elseif (atl_iyh_state == 5) then
 
				pon("iyh5");
 
			end;
 
			psub("generic");
 
			if (rel_learr > 0) then
 
				return [[
 
					Леарр поворачивается к вам, плавники ее становятся сине-зелеными, а она говорит: "Я рада-видеть тебя".
 
				]];
 
			else
 
				return [[
 
					Леарр поворачивается к вам, плавники ее становятся сине-зелеными, а она говорит: "Я приветствую тебя-he'vji'a'rr".
 
				]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
		{tag='offended'};
 
		{"He'vji'a'rr?", [[
 
			Леарр, кажется, улыбнулась, обнажив два ряда острых треугольных зубок: "Ты неплохо-говоришь. Я легко-понимаю тебя. He'vji'a'rr - вверху-разумный-живой. Монстр-ты понимаешь?"
 
		]]};
 
		{"Монстр?", [[
 
			"Ты чуждо-для-нас-выглядишь, поэтому монстр. Ты так-мыслил. Я права?"
 
		]], code [[ psub('offended_yes_no') ]]};
 
		{tag='offended_yes_no'};
 
		{"Да, наверное так", [[
 
			"Мы будем-продолжать-друг-друга-монстрами-называть?"
 
		]], code [[ psub('no_offence') ]]};
 
		{"Просто мы люди, а ты чудовище", [[
 
			Леарр скалится, показывая блестящие острые зубки: "Лучше-уходи. Я не-хочу-этими-зубами-перекусить твое-горло". 
 
		]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
 
		{tag='no_offence'};
 
		{"Нет, вообще-то у меня разговор есть", [[
 
			"Ты-говори"
 
		]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
 
		{tag='pre_iof'};
 
		{"He'vji'a'rr?", [[
 
			Леарр, кажется, улыбнулась, обнажив два ряда острых треугольных зубок: "Ты неплохо-говоришь. Я легко-понимаю тебя. Вы-He'vji'a'rr - вверху-разумный-живой, с-поверхности. Мы-na'vji'a'rr - внизу-разумный-живой, из-глубин".
 
		]]};
 
		{"Я хотел кое-что спросить", [[
 
			"Ты-говори"
 
		]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
 
		{tag="after_iof"};
 
		{"Рад, что смог помочь", [[
 
			Леарр кивает, все еще находясь в явном возбуждении: "Ты говорить-пришел? Ты говори".
 
		]], code [[ psub("generic"); ]]};
 
		{"У меня не было выбора", [[
 
			Леарр кажется неприятно удивленной вашими словами, однако она все равно говорит: "Я благодарю вас. Ты говори".
 
		]], code [[ rel_learr = rel_learr - 1; psub("generic"); ]]};
 
		{tag="generic"};
 
		{"Расскажи о конфликте между вашими городами", [[
 
			Леарр радостно восклицает: "Вы поможете нам? Вы слушайте!" -- она начинает активно жестикулировать руками: "Из-нашего-храма-реликвия несколько-дней-назад-пропала. Na'vji'a'rr из Dyp’atre’anot’rr потом-в-наш-город-пришли. Они сказали, что они взяли нашу-реликвию. Они сказали, что они вернут ее, когда мы вернем их-реликвию", -- на этих словах она замирает в растерянности. Затем она неуверенно добавляет: "Мы не-брали их-реликвию. Она нам-совсем-не-нужна".
 
		]], code [[ atl_iyh_state = 3; ]]};
 
		{tag="iyh4", "Мы знаем, где реликвия Дипатреанотра. Есть старый храм навьяров, в котором живет скат.", [[
 
			Леарр задумчиво произносит: "Затмевающий свет. Напоминает нашу-легенду".^
 
			Немного подумав, Леарр продолжает: "Да! Излучающий-тьму! Мы вместе-пойдем и посмотрим. Я увидеть-хочу другие-реликвии. Излучающий-тьму хранил много-всего. Вы согласны?"
 
		]], code [[ psub("iyh_agree"); ]]};
 
		{tag="iyh5", "Мы знаем, где реликвия Дипатреанотра. Есть старый храм навьяров, в котором живет затмевающий свет.", [[
 
			Леарр задумчиво произносит: "Напоминает нашу-легенду".^
 
			Немного подумав, Леарр продолжает: "Да! Излучающий-тьму! Мы вместе-пойдем и посмотрим. Я увидеть-хочу другие-реликвии. Излучающий-тьму хранил много-всего. Вы согласны?"
 
		]], code [[ psub("iyh_agree"); ]]};
 
		{"Я пойду", [[
 
			Плавники Леарр медленно теряют цвет и она прощается с вами: "Мы позже-поговорим". 
 
		]], code [[back();]]};
 
		{tag="iyh_agree"};
 
		{"Я согласен. Только так мы докажем Дипатреанотру, что вы ни при чем", [[
 
			"Вы сообщите, когда вы готовы-будете. Мы позже-поговорим". 
 
		]], code [[ 
 
			lifeon("char_learr");
 
			table.insert(pl.party, 'learr');
 
			atl_iyh_state = 6; 
 
			back(); 
 
		]]};
 
		{"Лучше я отправлюсь один", [[
 
			"Нельзя-так. Священное-место-храм. Другие-yhe-na'vji'a'rr не-одобрят". 
 
		]]};
 
	};
 
};
 
 
char_aikerjarr_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Аикерьярр";
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			psub("generic");
 
		elseif (s.state == 1) then
 
			psub("hard_to_understand");
 
		elseif (s.state == 2) then
 
			if (atl_iyh_state == 4) then
 
				pon("iyh4");
 
			elseif (atl_iyh_state == 5) then
 
				pon("iyh5");
 
			end;
 
			psub("what_next");
 
		end;
 
		return [[
 
			Аикерьярр медленно поворачивается к вам: "Я слушать ты".
 
		]];
 
	end;
 
	phr = {
 
		{tag = "generic"};
 
		--Dyp’atre’anot’rr
 
		--Iraa’pha’anot’rr
 
		{"Расскажи о конфликте между вашими городами", [[
 
			Аикерьярр недовольно смотрит на вас:"Вы не помочь".^
 
			Немного подумав, он рассказывает: "Na'vji'a'yhe'dyp'atre'anot'rr говорить yhe мы украсть реликвия'yhe'dyp'atre'anot'rr. Мы не-делать!" -- Аикерьярр злобно стучит зубами и в ярости сжимает кулаки. Через некоторое время он успокаивается и продолжает: "Zly'na'a'yhe'dyp'atre'anot'rr после-украсть реликвия'yhe'iraa’pha’anot’rr!"
 
		]], code [[ 
 
			char_aikerjarr_dlg.state = 1;
 
			atl_iyh_state = 2;
 
			psub("hard_to_understand");
 
		]]};
 
		{"Я вернусь позже", [[
 
			Аикерьярр отворачивается от вас, даже не удостоив ответа.
 
		]], code [[
 
			back();
 
		]]};
 
		{tag = "hard_to_understand"};
 
		{"Na'vji'a'yhe'dyp'atre'anot'rr?", [[
 
			Аикерьярр ворчит: "Ты глупый. Я говорить yhe na'vji'a'rr в-dyp'atre'anot'rr-живут".
 
		]]};
 
		{"Yhe'dyp'atre'anot'rr?", [[
 
			Аикерьярр ворчит: "Ты совсем-глупый".
 
		]]};
 
		{"Zly'na'a'yhe'dyp'atre'anot'rr?", [[
 
			Аикерьярр ворчит: "Ты глупый. Na'vji'a'yhe'dyp'atre'anot'rr".
 
		]]};
 
		{"Yhe'iraa’pha’anot’rr?", [[
 
			Аикерьярр ворчит: "Ты совсем-глупый".
 
		]]};
 
		{"Так и что это все значит?", [[
 
			Аикерьярр злобно рычит: "Война будет. Мы уничтожить zly'a'yhe'dyp'atre'anot'rr".
 
		]], code [[
 
			char_aikerjarr_dlg.state = 2;
 
			psub("what_next");
 
		]]};
 
		{"Я вернусь позже", [[
 
			Аикерьярр отворачивается от вас, даже не удостоив ответа.
 
		]], code [[
 
			back();
 
		]]};
 
		{tag = "what_next"};
 
		{tag="iyh4", "Мы знаем, где реликвия Дипатреанотра. Есть старый храм навьяров, в котором живет скат.", [[
 
			Аикерьярр кивает: "Я не-понимаю, hyd это связано с-текущей-ситуацией. Ты узнай e тогда-приходи"
 
		]], code [[ back(); ]]};
 
		{tag="iyh5", "Мы знаем, где реликвия Дипатреанотра. Есть старый храм навьяров, в котором живет затмевающий-свет.", [[
 
			Аикерьярр кивает: "Ты знаешь наши-слова. Ты знаешь наши-легенды?"
 
		]], code [[ psub("legend"); ]]};
 
		{"Я вернусь позже", [[
 
			Аикерьярр отворачивается от вас, даже не удостоив ответа.
 
		]], code [[
 
			back();
 
		]]};
 
		{tag="legend"};
 
		{"[Рассказать легенду об Излучающем Тьму]", [[
 
			Аикерьярр кивает: "Ты не-совсем-глупый. Ты слушай меня. Я не-хочу-в-храм-пускать тебя. Но я понимаю, yhe ты мои-слова-подтвердишь. Ты скажешь Ry'vee'rr yhe мы вместе-отправимся в-храм и реливкию-вернем. Ты уходи".
 
		]], code [[ lifeon("char_aikerjarr_lev");table.insert(pl.party, 'aikerjarr'); atl_iyh_state = 6; back(); ]]};
 
	};
 
};
 
 
char_ryveerr_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Ривеерр";
 
	disp = "Ривеерр";
 
	entered = function(s)
 
		psub("generic");
 
		if (s.state == 0) then
 
			if (atl_iyh_state > 0 and atl_iyh_state < 4) then
 
				pon("about_relic");
 
			elseif (atl_iyh_state == 4) then
 
				psub("situation");
 
			elseif (atl_iyh_state == 5) then
 
				pon("legend");
 
			end;
 
		elseif (s.state == 1) then
 
			if (atl_iyh_state == 6) then
 
				if (atl_iof_learr_dead) then
 
					pon("take_aikerjarr");
 
				else
 
					pon("take_learr");
 
				end;
 
			end;
 
			pon("legend2");
 
		end;
 
		return [[
 
			Ривеерр оборачивается к вам: "Ты говори".
 
		]];
 
	end;
 
	phr = {
 
		{tag="generic"};
 
		{tag="about_relic", false, "Расскажи о конфликте между вашими городами", [[
 
			Ривеерр рассказывает вам: "Na'vji'a'rr-из-Iraa’pha’anot’rr украли нашу-реликвию. Мы тем-же-ответили им".
 
		]], code [[ psub("more_on_relic"); ]]};
 
		{always=true, "Я пойду", [[
 
			Ривеерр прощается с вами: "Мы позже-поговорим".
 
		]], code [[ back(); ]]};
 
		{tag="more_on_relic"};
 
		{"Тем же?", [[
 
			Ривеерр улыбается: "Мы взяли их-реликвию. Мы вернем ее, ysl они вернут нашу-реликвию".
 
		]]};
 
		{"Вы уверены, что кража - их рук дело?", [[
 
			Ривеерр уверенно кивает: "Только-они могли сделать. Я расскажу", -- Ривеерр на небольшое время замолкает, словно собираясь с мыслями, после чего продолжает: "Na'vji'a'yhe'iraa'pha’anot’rr ночью-в-наш-храм-пришли e убили охранникаов. Они украли реликвию".
 
		]], code [[ psub("why"); ]]};
 
		{tag="why"};
 
		{"Вы уверены, что это они?", [[
 
			Ривеерр отвечает: "Другой-никто не-мог-сделать".
 
		]], code [[ atl_iyh_ryveerr_spoken = true; psub("generic"); ]]};
 
		{tag="situation"};
 
		{"Мы знаем, где ваша реликвия. Мы знаем об одном древнем храме, где живет гигантский скат.", [[
 
			"Я не-понимаю, hyd это поможет нам".
 
		]], code [[ psub("cancel");]]};
 
		{always=true, "Я пойду", [[
 
			Ривеерр прощается с вами: "Мы позже-поговорим".
 
		]], code [[ back(); ]]};
 
		{tag="legend"};
 
		{"Мы знаем где ваша реликвия. Мы знаем об одном древнем храме, где живет затмевающий свет. [Кратко пеесказать легенду]", [[
 
			"Я знаю эту-легенду. Вы возможно-правы. В-храм вам-нельзя-идти. Это наше-священное-место. he'vji'a'rr не-место-там. Затмевающий-свет не-враг-нам. Его нельзя-тревожить".
 
		]], code [[ psub("legend_more")]]};
 
		{always=true, "Я пойду", [[
 
			Ривеерр прощается с вами: "Мы позже-поговорим".
 
		]], code [[ back(); ]]};
 
		{tag="legend_more"};
 
		{"Вы могли бы сопровождать нас. ", [[
 
			"В-храм нельзя-вам".
 
		]], code [[ 
 
			char_ryveerr.state = 1;
 
		]]};
 
		{always=true, "Я вернусь позже", [[
 
			Ривеерр прощается с вами: "Мы позже-поговорим".
 
		]], code [[ back(); ]]};
 
		{tag="legend2"};
 
		{tag="take_learr", false, "Леарр согласилась сопровождать нас в храм. ", [[
 
			"Леарр'yhe'iraa’pha’anot’rr. Не-уверен-я что-могу-доверять-ей. Я подумать-должен..." - Некоторое время Ривеерр стоит неподвижно, задумавшись. Наконец, скрестив руки на груди, Ривеерр продолжает: "Я согласен".
 
		]], code [[ atl_iyh_state = 6; back(); ]]};
 
		{tag="take_aikerjarr", false, "Аикерьярр согласился сопровождать нас в храм", [[
 
			"Аикерьярр'yhe'iraa’pha’anot’rr. Не-уверен-я что-могу-доверять-ему. Я подумать-должен..." - Некоторое время Ривеерр стоит неподвижно, задумавшись. Наконец, скрестив руки на груди, Ривеерр продолжает: "Я согласен".
 
		]], code [[ atl_iyh_state = 6; back(); ]]};
 
		{always=true, "Я вернусь позже", [[
 
			Ривеерр прощается с вами: "Мы позже-поговорим".
 
		]], code [[ back(); ]]};
 
		{tag="cancel"};
 
		{always=true, "Я вернусь позже", [[
 
			Ривеерр прощается с вами: "Мы позже-поговорим".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
char_loong_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Джинхэй Лун";
 
	disp = "Джинхэй Лун";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Немолодой китаец внимательно смотрит на вас через стекла старых очков. Он приветствует вас: "Добро пожаловать, господин, на нашу станцию. Я Джинхэй Лун, занимаюсь языком na'vji'a'rr-ов".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Временная затычка диалога
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Na'vji'a'rr-ов?", [[
 
			"Na'vji'a'rr - дословно - разумный, живущий снизу, то есть на дне океана. Вы наверняка их уже видели здесь на станции - такие чешуйчатые, высокие".
 
		]]};
 
		{"Я Дэвид Дрейк, очень приятно", [[
 
			Джинхэй кланяется вам в ответ и говорит: "Очень рад вас видеть. Ваш отец построил Атлантиду, только чтобы мы могли изучать na'vji'a'rr-ов и общаться с ними. Но вы наверняка пришли по делу. Что вы хотите?"
 
		]], };
 
		{tag="generic"};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе - результат саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			return [[
 
				"Если это и так, то надо не на каждом углу кричать, а предоставить сведения Даркстару или Моро. Они найдут, как решить проблему".
 
			]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[
 
			"Об этом вам лучше узнать у Райта или Даркстара. Я мало что знаю".
 
		]]};
 
		{always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
	};
 
};
 
 
char_winterlight_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Сильвия Уинтерлайт";
 
	disp = "Сильвия Уинтерлайт";
 
	entered = function(s)
 
		if (atl_iyh_state == 4) then
 
			pon("legend");
 
		end;
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		if (s.state == 0) then
 
			psub("first_meeting");
 
            s.state = 1;
 
			return [[
 
				Женщина лет тридцати-пяти-сорока стоит, склонившись над картой и внимательно изучает ее. Увидев вас, она отвлекается от карты и спрашивает: "Вы Дэвид Дрейк? Я Сильвия Уинтерлайт. Рада встрече, у нас нечасто новых людей встретить можно".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Сильвия оборачивается к вам: "Приветствую, что вы хотели?"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Совершенно верно, я Дэвид Дрейк", [[
 
			"Рада знакомству. Я мало что могу рассказать вам об устройстве станции, но если у вас есть какие-то вопросы касательноо культуры и истории навьяров - я всегда рада помочь".
 
		]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="legend", false, "Ты можешь рассказать мне навьярскую легенду о скате?", [[
 
			Сильвия кажется заинтересованной: "У навьяров их много, какую конкретно вы хотите услышать?"
 
		]], code [[ psub("which_legend"); ]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic <= 2) then
 
				return [[
 
					Сильвия Уинтерлайт пожимает плечами: "Не поверю, чтобы кто-то это мог сделать".
 
				]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[
 
					Сильвия Уинтерлайт удивленно смотрит на вас: "Вы не первый кто так говорит. Но кто это мог сделать?"
 
				]];
 
			end;
 
		end;};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Крайней мало. Вам лучше поговорить с Райтом или Даркстаром".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			Сильвия молча кивает и возвращается к своим делам. 
 
		]], code [[ back(); ]]};
 
		{tag="which_legend"};
 
		--TODO добавить несколько легенд
 
		{"Что-нибудь связанное с храмами и реликвиями", [[
 
			Сильвия задуиывается: _"Храмы, реликвии и скаты... Да, есть кое-что", -- она откидивыет волосы назад и продолжает: "Согласно этой легенде, хранителей одного из святилищ навьяров был могучий затмевающий свет по имени Излучающий Тьму. Это было в те времена, когда навьяры и затмевающие свет были связаны узами дружбы. Излучающий тьму был мудрым хранителем - он не только принимал священные реликвии на сохранение, но и многое знал о них - об их предназначении и истинной ценности. Однажды Излучающий Тьму узнает о необычнайно ценной реликвии, хранящейся в одном из городов и скрывающей в себе древние знания навьяров. Узнает он и о том, что живущие навьяры не в силах прочитать. Тогда он прибыл в город, чтобы просить навьяров отдать ему реликвию на сохранение. Но навьяры отказывают ему. Вернувшись в святилище, Излучающий Тьму придумал план. Ночью он пробрался в город и выкрал реликвию. Когда наутро навьяры обнаружили пропажу, они направились к Излучающему Тьму с требованием вернуть им реликвию. На это могучий затмевающий свет спросил их: ,,Знаете ли вы, что скрывает этот предмет?''^ -- кстати, в некоторых переводах я встречала слово ,,светодиск'', как описание реликвии. 
 
			,,Знания наших предков'', -- ответили навьяры. Излучающий Тьму продолжил: ,,Можете ли вы прочитать его?''^
 
			,,Нет'', --сказали навьяры. Тогда Излучающий Тьму рассказал им легенду о храме в глубинах, которую он прочитал из данной реликвии(Нам, кстати, так и не довелось получить хоть какой-либо целостный текст этой легенды), и сказал им: ,,Можете приходить сюда когда захотите и я расскажу вам то, что вы захотите знать. Но только, если реликвия ваша остается у меня''. Навьяры поняли, что если заберут реликвию, то навсегда утратят древние знания и согласились". 
 
		]], code [[ psub("more_on_legend"); ]]};
 
		{tag="more_on_legend"};
 
		{"Светодиск?", [[
 
			"Мы плохо понимаем, для чего они служат. У Светловой один такой был. Блестящий диск - сантиметров 10 в диаметре. Правда вот как их ,,читать''... В привычном понимании, по крайней мере, мы не понимаем. Если рассматривать их под микроскопом - там весьма характерный рисунок проступает. Почему светодиск? Мы не знаем - это навьяры их так называют".
 
		]]};
 
		{"Что за легенда о храме в глубинах?", [[
 
			"Мы только приблизительно знаем о ней - она постоянно упоминается в контексте других легенд и у нас есть фрагменты, которые нам рассказывали навьяры. Когда-то давно навьяры построили храм где-то в ущелье, но по какой-то причине были вынуждены покинуть его". 
 
		]]};
 
		{"Спасибо, я пойду", [[
 
			"До встречи. Если захотите еще древних сказаний послушать - приходите".
 
		]], code [[ atl_iyh_state = 5; psub('back'); ]]};
 
	};
 
};
 
 
char_jack_wright_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = 'char_jack_wright_atlantis_dlg';
 
	disp = "Джек Райт";
 
	entered = function(s)
 
		if (s.state == 0) then
 
			psub("business_or_no");
 
			return [[
 
				Джек отворачивается от Леарр, и обращается к вам: "Привет, ты по делу или просто так?"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag = "business_or_no"};
 
		{"Как тебе станция?", [[
 
			"Невероятно! Поверить не могу, что мой отец вместе с твоим это все придумали и создали. Это совершенство, никак не меньше - они уже десять лет почти живут без связей с поверхностью, не испытывая при этом никаких проблем".
 
		]]};
 
		{always = "true", "Я с Леарр поговорить пришел.", function(s)
 
			if (char_learr_atlantis.offended) then
 
				return [[
 
					Джек ухмыльнулся: "Удачи, я подожду в главном зале". Джек поднялся и вышел.
 
				]];
 
			else
 
				return [[
 
					"Надеюсь, я вам не помешаю? В любом случае, я подожду в главном зале". Джек поднялся и вышел.
 
				]];
 
			end;
 
		end, code [[ 
 
			remove('char_jack_wright_atlantis', 'atl_ignis_hall_a');
 
			back(); 
 
		]]};
 
	};
 
};
 
 
char_michael_wright_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Майкл Райт";
 
	disp = "Майкл Райт";
 
	entered = function(s)
 
		if (atl_nih_state == 2) then
 
			pon('nih_fixed');
 
		end;
 
		
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_nih_state == 3 and atl_iof_completed and atl_fta_state == 0) then
 
			atl_fta_state = 1;
 
			return [[
 
				Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. У меня есть для вас работа. Сейчас все наши бригады заняты, поэтому я прошу вас помочь с обслуживанием Солиса. Приходите туда и свяжитесь со мной по телефону, я дам вам инструкции".
 
			]];
 
		elseif (atl_fta_state == 2) then
 
			atl_fta_state = 3;
 
			psub("fta_deb");
 
			return [[
 
				Майкл Райт протягивает вам руку: "Только благодаря вам, мы все еще здесь. Я с радостью сообщу Моро, что я за возвращение вам Левиафана".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. Чем могу быть полезен?"
 
			]];
 
		end;		
 
	end;
 
	phr = {
 
		{tag="fta_deb"};
 
		{"[Пожать руку]Только я все еще не знаю, куда мне следует плыть", [[
 
			"Мы сделаем все возможное, чтобы помочь вам. Кроме того, то что вы делаете для Светловой и навьяров, может пролить свет на произошедшее с вашим отцом".
 
		]], code [[ psub('generic'); ]]};
 
		{"Просто верните мне Левиафан", [[
 
			"Не все так просто. Нужно, чтобы согласие дали еще Фредерик, Винсент и Екатерина".
 
		]], code [[ psub('generic'); ]]};
 
		{tag="generic"};
 
		{tag="nih_fixed", false, "Я нашел утечку", [[
 
			"Спасибо, я отправлю туда человека, чтобы он все поправил. Пока у меня больше нет для вас заданий". 
 
		]], code [[ atl_nih_state = 3; atl_rep_wright = atl_rep_wright + 1; ]]};
 
		{tag="sabotage", false, "Даркстар считает, что пожар начался из-за саботажа", function(s)
 
			atl_rep_wright = atl_rep_wright - 1;
 
			local part1 = [[
 
				"Я знаю. Это дело Даркстара - в конце концов, он отвечает за безопасность станции. Вам я бы посоветовал не лезть - это небезопасно. Если кто-то не побоялся подвергнуть угрозе жизни всех находящихся на станции, то вы его вряд ли остановите", - Райт выглядит недовольным.
 
			]];
 
			
 
			if (atl_jack_in_party) then
 
				return part1 .. [[
 
					Почесав подбородок, он добавляет: "Пожалуй, я ничего не скажу Даркстару, но вас еще раз прошу не вмешиваться - Винсент грамотный человек и хорошо подготовлен. Он отлично знает всех на станции и разбирается во многих вопросах. При всем уважении - вы слишком плохо знаете станцию".
 
				]];
 
			else
 
				atl_rep_darkstar = atl_rep_darkstar - 1;
 
				return part1 .. [[
 
					Почесав подбородок, он добавляет: "Я доложу Даркстару о вашем неповиновении".
 
				]];
 
			end;
 
		end};
 
		{tag="ignis_what", false, "Из-за чего начался пожар в Игнисе?", [[
 
			"Короткое замыкание. Странно, что предохранители не сработали. Рядом, к сожалению, никого не оказалось и потушить возгорание вовремя не удалось. Огонь быстро распространился по всей секции, ну а дальше вы все знаете. Мы временно заблокировали лифт туда. Если вы хотите помочь с восстановлением секции - нам не помешают лишние руки".
 
		]]};
 
		{always=true, "Мне пора", function(s)
 
			if (atl_nih_state == 0 and atl_jack_in_party) then
 
				atl_nih_state = 3;
 
			end;
 
			if (atl_nih_state == 0 and not atl_jack_in_party) then
 
				atl_nih_init();
 
				pr([[ "Кстати, у меня есть для вас небольшое задание. У нас где-то утечка воздуха. Ничего критичного. Просто прогуляйтесь по станции и если обнаружите, где это - сообщите мне. До встречи", -- Майкл Райт возвращается к своим делам. ]]);
 
			else
 
				pr([[ "До встречи", -- Майкл Райт возвращается к своим делам. ]]);
 
			end;
 
		end, code [[ back(); ]]};
 
	};
 
};
 
 
char_legrand_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Мари Легран";
 
	disp = "Мари Легран";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами, склонившись над каким-то журналом сидит женщина лет сорока-сорока-пяти. Длинные темные волосы убраны в хвост. На носу очки в тяжелой оправе. Не обращая внимания на вас, она продолжает водить пальцем по строчкам, периодически делая какие-то пометки.
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Не обращая внимания на вас, Мари Легран продолжает водить пальцем по строчкам, периодически делая какие-то пометки.
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Извините?", [[
 
			Женщина поднимает голову и отрывается от работы. Она выпрямляется и улыбаясь приветствует вас: "Добро пожаловать в библиотеку Атлантиды. Я Мари Легран"
 
		]], code [[psub("first_meeting_2"); ]]};
 
		{tag="first_meeting_2"};
 
		{"Я Дэвид Дрейк, рад знакомству", [[
 
			Она кивает и спрашивает вас: "Как вы нашли Левиафан?"
 
		]], code [[psub("first_meeting_3"); ]]};
 
		{tag="first_meeting_3"};
 
		{"Это долгая история", [[
 
			Мари Легран кивает: "Ладно, потом как-нибудь, если торопитесь"
 
		]], [[ psub("generic") ]]};
 
		{"Я нашел тайник отца со старыми схемами. Пришлось побегать, чтобы восстановить субмарину. Я чудом собрал все необходимое", [[
 
			Мари Легран удивленно смотрит на вас: "Удивительно. Скорее всего Уильям хотел, чтобы вы нашли Левиафан. Жаль, что вы прибыли слишком поздно. Когда он узнал про этот древний город, он собрал несколько помощников и отправился на Надежде на его поиски".
 
		]], code [[ pon("father_more");psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="father_more", false, "Кто отправился вместе с моим отцом?", [[
 
			"Немногие. Они вообще хотел отправиться вдвоем с Блэком, но Блэк уговорил Уильяма взять Джона Брауна и Дэмина Пина".
 
		]], code [[psub("more_people");]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе начался из-за саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic <= 2) then
 
				return [[
 
					Мари Легран удивленно смотрит на вас: "Откуда вы знаете? Кому такое в голову придти может?"
 
				]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[
 
					Мари Легран удивленно смотрит на вас: "Вы понимаете, что говорите? Кому такое в голову придти может?"
 
				]];
 
			end;
 
		end};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Поговорите лучше с Даркстаром или Райтом".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"Приходите еще"
 
		]], code [[ back(); ]]};
 
		{tag="more_people"};
 
		{"Расскажите больше об Адриане Блэке", [[
 
		]]};
 
		{"Расскажите больше о Джоне Брауне", [[
 
		]]};
 
		{"Расскажите больше о Дэмине Пине", [[
 
			
 
		]]};
 
		{"Давайте о другом поговорим", [[
 
			"Хорошо"
 
		]], code [[pret();]]};
 
	};
 
};
 
 
char_radcliffe_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Уолтер Рэдклифф";
 
	disp = "Уолтер Рэдклифф";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами стоит человек лет пятидесяти, одетый в рабочий халат. Как только вы входите, он протягивает вам руку: "Добро пожаловать, господин Дрейк. Я - Уолтер Рэдклифф, инженер".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Уолтер Рэдклифф кивает вам: "Добрый день".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag = "first_meeting"};
 
		{"[Пожать руку]Рад знакомству", [[
 
			"Мы с Майклом вместе работали над Левиафаном. Многие решения в вашей субмарине - мои. Если вы не против, я хотел бы продолжить путешествие вместе с вами - во-первых - вам пригодится мой опыт, а во-вторых - я хочу увидеть Левиафан в деле". 
 
		]], code [[
 
			rel_walter = rel_walter + 1;
 
			psub("leviathan");
 
		]]};
 
		{"Рад знакомству", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			psub("generic");
 
		]]};
 
		{"[Промолчать]", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			rel_walter = rel_walter - 1;
 
			psub("generic");
 
		]]};
 
		{tag = "leviathan"};
 
		{"Интересно, и что вы можете рассказать о Левиафане?", [[
 
			Уолтер снимает очки, убирая их в нагрудный карман: "Левиафан строился как Надежда - для дальних путешествий и максимальной автономности. После успеха предыдущих субмарин, Райт решил сделать Левиафан заметно больше предыдущих кораблей. Сверхмощная батарея обеспечивает субмарину энергией более месяца при максимальных оборотах двигателей. Также есть паровой двигатель - он используется не только для движения, но и генерирует электричество. До Левиафана мы не экспериментировали с этим".
 
		]]};
 
		{"Вы знаете, куда отправился мой отец отсюда?", [[
 
			Уолтер отрицательно качает головой: "Не больше, чем остальные на станции". 
 
		]]};
 
		{"Буду рад, если вы присоединитесь к нам", [[
 
			"Отлично. Но вы ведь, еще поговорить хотите?"
 
		]], code [[ psub("generic");]]};
 
		{"Я не думаю, что вы поможете", [[
 
			"Очень жаль. Впрочем, у вас есть время подумать. Насколько я знаю, Даркстар и Моро собираются держать вас здесь какое-то время".
 
		]], code [[ psub("generic");]]};
 
		{tag = "generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе - результат саботажа?", [[
 
			"Безусловно. Системы энергоснабжения проектировал я и абсолютно уверен в их безопасности и надежности. Судя по тому, что произошло - кто-то весьма грамотный ,,доработал'' систему энергоснабжения Игниса. Я не думаю, что это мог быть один человек... Хотя если он делал это несколько дней - вполне вероятно. Как это сделать, кроме нас с Райтом знают только трое: Мишель Леруа, Чарльз Джонс и Мари Легран. И еще кое-что. Даркстар просил меня ни с кем про это не разговаривать, поэтому надеюсь на ваше понимание. Отдельно попрошу - не говорить на эту тему с моей сестрой".
 
		]], code [[
 
			rel_walter = rel_walter + 1;
 
		]]};
 
		{tag="ignis_what", false, "Вы, как инженер, можете рассказать, что произошло в Игнисе?", [[
 
			"Пожар. Вам что-то еще известно?"
 
		]]};
 
		{"Я пойду", [[
 
			"До встречи", - Уолтер отворачивается от вас и возвращается к своим делам.
 
		]], code [[ back();]]};
 
	};
 
};
 
 
char_xiao_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Вейюан Сяо";
 
	disp = "Вейюан Сяо";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0 ) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами стоит китаец лет пятидесяти. Продолжая заниматься осмотром Наутилуса, он говорит: "Добро пожаловать на Атлантиду. Я Вейюан Сяо. Инженер".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Перед вами стоит Вейюан Сяо. Продолжая заниматься осмотром Наутилуса, он говорит: "Вы вернулись".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Дэвид Дрейк, рад знакомству", [[
 
			Вейюан на секунду отвлекается и внимательно смотрит на вас: "Да, вы похожи на своего отца. Он великий человек. Вся станция - его рук дело".
 
		]], code [[ psub("first_meeting_2"); ]]};
 
		{"Вы из Китая?", [[
 
			"Да. Я с молодости работал на Вестхейвен Трансоушен. Уильям Дрейк - достойнейший человек, жаль мы ничем не можем ему сейчас помочь".
 
		]]};
 
		{tag="first_meeting_2"};
 
		{"Вы хорошо знали отца?", [[
 
			"Я уважаю его, как, думаю, все на этой станции. Пожертвовать всем ради призрачной мечты - только великий человек мог пойти на такое. Он отправился на поиски легендарного города древних навьяров. К сожалению, я не смог отправиться с ним - я был нужен на станции. Я знаю что вы здесь из-за него и я надеюсь, что вы не оставите вашу идею найти Уильяма и доведете свое дело до конца".
 
		]], code [[ psub("generic"); ]]};
 
		{"У меня к вам несколько вопросов", [[
 
			"Слушаю".
 
		]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе - следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			return [[
 
				"Оставьте это Даркстару. Если саботаж имел место быть - Винсент найдет виновного. Я передам ему ваши слова".
 
			]]
 
		end;};
 
		{tag="ignis_what", false, "Что произошло в Игнисе?", [[
 
			"Меня там не было. Не берусь говорить".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			Вейюан Сяо прощается с вами: "Увидимся позже".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
char_leroy_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Мишель Леруа";
 
	disp = "Мишель Леруа";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				В кресле сидит человек лет пятидесяти, одетый в простой костюм. У него кудрявые рыжие волосы и не менее рыжая бородка. В кармане пиджака лежат очки. Руки лежат в подлокотниках. Его темные глаза изучают вас.
 
			]];	
 
		else
 
			psub("generic");
 
			return [[
 
				Мишель Леруа сидит в кресле и смотрит на вас.
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Добрый день. Я Дэвид Дрейк", [[
 
			Человек встает и протягивает вам руку: "Мишель Леруа. Инженер".
 
		]], code [[ psub('first_meeting_2'); ]]};
 
		{tag="first_meeting_2"};
 
		{"[Пожать руку]Рад знакомству", [[
 
			Мишель садится обратно и говорит: "Перейдем к делу. Что вы хотели?"
 
		]], code [[ psub('generic'); ]]};
 
		{"Рад знакомству", [[
 
			Мишель садится обратно и говорит: "Перейдем к делу. Что вы хотели?"
 
		]], code [[ psub('generic'); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе начался из-за саботажа?", [[
 
			"Кто вам это сказал? Никто на станции не будет в здравом уме подвергать опасности свою жизнь еще больше".
 
		]], code [[ atl_lfc_leroy_spoken = 1; ]]};
 
		{tag="ignis_what", false,"Что вы можете сказать о произошедшем в Игнисе?", [[
 
			"Короткое замыкание, огонь быстро распространился по секции".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"Увидимся".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
char_goldman_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Леонард Голдман";
 
	disp = "Леонард Голдман";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (have(item_goldmans_clock)) then
 
			pon('show_clock');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами высокий человек лет пятидесяти. Густые черные волосы коротко острижены. Лицо гладко выбрито. Увидев вас, он говорит: "Вы прибыли на Левиафане? Я Леонард Голдман. Занимаюсь электросистемами станции"
 
				Перед вами высокий человек лет пятидесяти. Густые светлые волосы коротко острижены. Лицо украшают пышные золотистые усы. Увидев вас, он говорит: "Вы прибыли на Левиафане? Я Леонард Голдман. Занимаюсь электросистемами станции"
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Леонард Голдман вопросительно смотрит на вас: "Что вы хотели?"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк. Рад знакомству", [[
 
			Леонард кивает, но ничего не говорит
 
		]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="show_clock", false, "[Показать часы]Это ваше?", [[
 
			Голдман протягивает руку, чтобы взять часы и удивленно спрашивает: "Мои. Где вы их взяли?"
 
		]], code [[ atl_lfc_goldman_known = true; psub("give_clock"); ]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", [[
 
			Вы видите удивление и страх на лице Голдмана. Он неуверенно спрашивает: "С чего вы взяли?"
 
		]], code [[ psub("sabotage2"); atl_lfc_leroy_spoken = 1; ]]};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Не больше чем вы".
 
		]]};
 
		{"Я пойду", [[
 
			"Поговорим позже".
 
		]], code [[ back(); ]]};
 
		{tag="sabotage2"};
 
		{"Даркстар сказал", [[
 
			"Даркстар мог и ошибиться. Я в это не поверю".
 
		]]};
 
		{"Это очевидно", [[
 
			"С чего вы взяли? будете дальше распускать подобные слухи - я доложу Даркстару".
 
		]]};
 
		{"Эээ... Я пошутил", [[
 
			"Вы вообще нормальный?!"
 
		]], code [[ back(); ]]};
 
		{tag="give_clock"};
 
		{"[Отдать часы]Нашел", [[
 
			"Благодарю. Это часы моего деда, они очень важны для меня".
 
		]], code [[ remove("item_goldmans_clock"); pret(); ]]};
 
		{"[Убрать часы]Не так быстро. Что ты делал в Солисе?", [[
 
			Ваш запрос похоже застал Леонарда врасплох. Заикаясь, он спрашивает: "С ч-чего вы вз-взяли?"
 
		]], code [[ psub("give_clock_2");]]};
 
		{tag="give_clock_2"};
 
		{"Эти часы я подобрал на месте саботажа. Теперь ты не отвертишься", [[
 
			Леонард садится на кровать. Тяжело вздохнув он сознается: "Хорошо, я все скажу. Только если обещаете, что меня больше не будут держать на этой станции"
 
		]], code [[ psub('promise'); ]]};
 
		{tag="promise"};
 
		{always = true, "Я сделаю все, что в моих силах", [[
 
			"Это все Мишель придумал. У меня бы мозгов не хватило. Он и в Игнисе пожар устроил. Солис он тоже хотел взорвать сам, но Даркстар, кажется подозревает его. Поэтому он упросил меня это сделать... И зачем я согласился?!"
 
		]], code [[ atl_lfc_saboteur_known = true; psub("leroy");]]};
 
		{always = true, "Я ничего не обещаю",[[
 
			"Тогда я ничего не скажу"
 
		]], code [[ psub("threaten"); ]]};
 
		{tag = "threaten"};
 
		{always = true, "Тогда пусть Даркстар с тобой разбирается", [[
 
			"Это все Мишель придумал. У меня бы мозгов не хватило. Он и в Игнисе пожар устроил. Солис он тоже хотел взорвать сам, но Даркстар, кажется подозревает его. Поэтому он упросил меня это сделать... И зачем я согласился?!"
 
		]], code [[ atl_lfc_saboteur_known = true; psub("leroy");]]};
 
		{"[Отдать часы]Черт с тобой, забирай свои часы", [[
 
			Голдман крайне удивлен: "Вот так просто?"
 
		]], code [[ remove("item_goldmans_clock"); psub("tired_of_you"); ]]};
 
		{"[Уйти]", code = [[ back(); ]]};
 
		{tag = "tired_of_you"};
 
		{"Даю тебе последний шанс сказать все, что знаешь", [[
 
			"Я назвал свои условия"
 
		]], code [[ psub('promise'); ]]};
 
		{"[Уйти]", code = [[ back(); ]]};
 
		{tag = "leroy"};
 
		{"И что вы еще намереваетесь сломать?", [[
 
			"Не знаю. Мишель хотел сломать станцию... Так чтобы никто не пострадал. Все бы просто вернулись на поверхность и дело с концом".
 
		]]};
 
		{"Я пойду", [[
 
			"Помни, что ты обещал!"
 
		]], code = [[ back(); ]]};
 
	};
 
};
 
 
char_jones_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Чарльз Джонс";
 
	disp = "Чарльз Джонс";
 
	entered = function(s)
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами сидит немолодой человек, одетый в недорогой костюм. Взгляд его серых глаз усталый и безжизненный. Лицо изрыто глубокими морщинами. Седые волосы коротко острижены. Подбородок гладко выбрит.
 
				При виде вас он встает и приветствует вас: "Здравствуйте, меня зовут Чарли. Чарли Джонс".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Чарльз Джонс приветствует вас: "Здравствуйте".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{"Я Дэвид Дрейк. Рад знакомству", [[
 
			Чарльз тяжело вздыхает: "Взаимно".
 
		]], code [[ psub("generic"); ]]};
 
		{tag = "sabotage", false, "Вы знаете, что причиной пожара был саботаж?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic == 1) then
 
				return [[
 
					Чарльз отрицательно качает головой: "Я и сам не прочь покинуть станцию, но есть же цивилизованные методы. Не верю".
 
				]];
 
			elseif (atl_lfc_panic == 2) then
 
				return [[
 
					Чарльз отрицательно качает головой: "Это не более чем слухи. Не поверю, чтобы кто-то мог намеренно это сделать"
 
				]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[
 
					Чарльз внимательно смотрит на вас. В его глазах вы видите страх и удивление: "Вы серьезно? Теперь у нас помимо старой, разваливающейся станции еще и саботажник завелся?!"
 
				]];
 
			end;
 
		end};
 
		{tag = "ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Да. Станция уже старая. Дальше будет еще хуже".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
atl_lev_radcliffe_dlg = room {
 
	nam = "Уолтер Рэдклифф";
 
	dsc = [[
 
		В доке Левиафана вы встречаете Уолтера Рэдклиффа. Завидев вас он говорит: "Дрейк, какая встреча. Я только что поместил на Левиафан два скафандра, которые вам выделили Моро с Райтом. Хорошо, что я вас встретил. Я хотел бы присоединиться к экипажу Левиафана и предложить вам свою помощь в поисках Уильяма".
 
	]];
 
	phr = {
 
		{"Как к этому отнесутся на Атлантиде?", [[
 
			"Я уже обговорил это с Моро и Райтом. Они не против моего решения, тем более, что они не меньше вас заинтересованы в успехе вашей экспедиции".
 
		]]};
 
		{"Благодарю, добро пожаловать на борт", [[
 
			"Отлично, благодарю. У меня есть еще одна просьба. Я хотел бы, чтобы моя сестра отправилась вместе с нами. Она знает язык навьяров и может оказаться крайне полезна во множестве ситуаций, кроме того - так она остается под моим присмотром".
 
		]], code [[
 
			lifeon("char_radcliffe");
 
			table.insert(pl.party, 'radcliffe');
 
			psub("sister");
 
		]]};
 
		{tag="sister"};
 
		{"Я не думаю, что ей место на Левиафане - экспедиция может быть опасна", function(s)
 
			if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
				walk(atl_lev_first_sail);
 
				return [[
 
					"Вы правы, Анне будет безопаснее остаться на Атлантиде. Я знаю, что с вами отправляется Леарр, которая достаточно хорошо знает наш язык, так что я надеюсь, что мы справимся без помощи моей сестры. Я скоро прибуду" - с этими словами он выходит из дока.
 
				]];
 
			else
 
				return [[
 
					"Я хотел бы, чтобы Анна отправилась с нами - я лично позабочусь о ее безопасности, а вам понадобится человек, долгое время посвятивший изучению культуры навьяров".
 
				]];
 
			end;
 
		end};
 
		{"Хорошо, ее помощь нам не помешает", [[
 
			"Отлично, мы скоро будем готовы" - с этим словами он выходит из дока.
 
		]], [[
 
			lifeon("char_anna");
 
			table.insert(pl.party, 'anna');
 
			walk(atl_lev_first_sail);
 
		]]};
 
	};
 
};
 
\ No newline at end of file
atlantis_ignis_on_fire.lua
Show inline comments
 
atlantis_learr_intro = room {
 
	nam = "Атлантида, Окулус, Главный коридор";
 
	dsc = [[
 
		Вы выходите из межсекционного коридора в главный коридор секции _"Окулус"_ и сталкиваетесь лицом к лицу с неведомым существом: ^
 
		стройное, покрытое серо-зеленой чешуей тело, рыбья голова с небольшими отростками-плавниками. Ярко-оранжевые глаза с интересом разглядывают вас, а в приоткрытом рте видны острые треугольные зубы. Одето оно в белую рубашку и ярко-синюю юбку до колен(явно человеческие). Перепонки между пальцами на руках и ногах существа говорят о том, что оно большую часть времени проводит в воде. На шее его вы замечаете жабры, однако сейчас они не двигаются. _"Плавники"_ на голове существа начинают изменять цвет - вы замечаете, что цвета движутся полосами от места соединения плавника с телом, до его дальнего края и очень быстро сменяют друг друга. 
 
	]];
 
	obj = {
 
		vway('continue', '{Продолжить}', 'atlantis_learr_first_dlg')
 
	};
 
};
 
 
atlantis_learr_first_dlg = dlg {
 
	nam = "Леарр";
 
	entered = [[
 
		Через некоторое время существо начинает говорить: "Я здесь-раньше-не-видела вас". Голос звучит крайне непривычно для вашего слуха - между некоторыми словами делаются резкие паузы, другие же сливаются практически в одно.
 
	]];
 
	phr = {
 
		{"Кто ты?", [[
 
			Существо отвечает: "I'yhe'lea'yhe'na'vji'a'rr" - вы слышите короткие паузы между слогами, однако, не вполне понимаете смысл речи существа. 
 
		]], code [[ pon('who_are_you'); ]]};
 
		{tag="who_are_you", false, "Это твое имя?", [[
 
			"Да. Я-Леарр-из-навьяров". 
 
		]], code [[psub('learr'); ]]};
 
		{"Аааа, монстр, помогите!!!", [[
 
			На лице существа вы читаете изумление: "Я-монстр? Вы на-станции-недавно? Я раньше-не-видела вас". Вы почти не чувствуете эмоций в ее речи - она говорит достаточно монотонно. 
 
		]], code [[ pon('it_speaks'); ]]};
 
		{tag="it_speaks", false, "Оно разговаривает!", [[
 
			Щелкнув зубами, _"Чудовище"_ отталкивает вас в сторону и уходит со словами: _"Вы-монстр! Я нет-времени-тратить на вас"_.
 
		]], code [[
 
			put(char_learr_atlantis, atl_ignis_hall_a);
 
			char_learr_atlantis.offended = true;
 
			walk("atl_oculus_main_corridor");
 
		]]};
 
		{tag="learr"};
 
		{"Рад знакомству, Леарр. Я Дэвид Дрейк. ", [[
 
			Леарр спрашивает вас: _"Вы-Дрейк? Вы-из-рода-Уильям-Дрейк?"_ Вам кажется, вы чувствуете удивление, хотя интонации в словах существа вам совершенно чужды. 
 
		]], code [[ psub('drake') ]]};
 
		{"Ты живешь на станции?", [[
 
			_"Да. Я и Ry'vee'rr здесь-некоторое-время-живем"_.
 
		]], code [[ pon("ryveerr"); ]]};
 
		{"Ты странно говоришь. ", [[
 
			Леарр отвечает: _"Я плохо-говорю ваш-необычный-язык. Он Много-отдельных-бессмысленных-слов-содержит. Наш-язык сильно-проще-есть. Одно-слово почти-весь-смысл-включает"_.
 
		]]};
 
		{tag="ryveerr", false, "Ry'vee'rr?", [[
 
			"Другой-навьяр-из-Dyp'atre'anot'rr. Мы-оба здесь-живем".
 
		]]};
 
		{tag="drake"};
 
		{"Да, я его сын. Ты видела его?", [[
 
			Головные плавники Леарр поочередно окрашиваются в сине-зеленый и красный цвета. Она отвечает: _"Я крайне-знакомству-рада. Уильям-Дрейк наши-легенды-изучал-наши-древние-знания-искал. Я у-него-получилось-думаю. Он искать-отправился lse'ry'anot'rr"_. Головные плавники окрасились в темносерый, потом Леарр продолжила: _"Я вы-продолжите-его-дело-надеюсь"_
 
		]], code [[ psub('follow_drake') ]]};
 
		{tag="follow_drake"};
 
		{"Я прибыл чтобы найти его." , [[
 
			Плавники Леарр снова окрашиваются сине-зененым: _"Прекрасно-будет. Я вам-как-смогу-помогу. Я идти-должна"_. Леарр уходит, а вы остаетесь одни в коридоре.
 
		]], code [[ put(char_learr_atlantis, atl_ignis_hall_a); walk("atl_oculus_main_corridor"); ]]};
 
	};
 
};
 
 
char_wright_iof = obj {
 
	nam = "Джек Райт";
 
	dsc = function(s) 
 
		if (atl_iof_time_state.pl_safe) then
 
			if (atl_iof_time_state.carry_learr) then
 
				return [[
 
					{Джек Райт} облачен в скафандр и ждет ваших указаний. Леарр бессильно лежит на его руках.  
 
				]];
 
			else
 
				return [[
 
					{Джек Райт} облачен в скафандр и ждет ваших указаний.
 
				]];
 
			end;
 
		else
 
			if (atl_iof_time_state.life_left > 3) then
 
				return [[
 
					{Джек Райт} ждет ваших указаний. 
 
				]];
 
			else
 
				return [[
 
					{Джек Райт} с трудом стоит на ногах. 
 
				]];
 
			end;
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(s) ~= where(pl) and where(pl).iof) then
 
			move(s, where(pl));
 
		end;
 
	end;
 
	act = function(s)
 
		return [[
 
			Некогда разговаривать. 
 
		]];
 
	end;
 
};
 
 
char_learr_faint = obj {
 
	nam = "Леарр";
 
	inv = [[
 
		На руках вы держите Леарр. Она дышит очень слабо. Вам нужно поторопиться, если вы не хотите, чтобы она умерла. 
 
	]];
 
	life = function(s)
 
		if (rnd(12) > 11) then
 
			pr("Вы чувствуете слабое дыхание Леарр");
 
		end;
 
	end;
 
};
 
 
char_learr_iof = obj {
 
	var {
 
		faint = false;
 
	};
 
	nam = "Леарр";
 
	dsc = function(s)
 
		if (s.faint) then
 
			return [[
 
				{Леарр} лежит на полу без сознания.
 
			]];
 
		end;
 
		if (atl_iof_time_state.learr_safe) then
 
			return [[
 
				{Леарр} облачена в скафандр и ждет ваших указаний. 
 
			]];
 
		else
 
			if (atl_iof_time_state.life_left > 3) then
 
				return [[
 
					{Леарр} ждет ваших указаний. 
 
				]];
 
			else
 
				return [[
 
					{Леарр} с трудом стоит на ногах. 
 
				]];
 
			end;
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(s) ~= where(pl) and where(pl).iof) then
 
			move(s, where(pl));
 
		end;
 
	end;
 
	act = function(s)
 
		if (where(s) == atl_iof_ignis_service_room and not dlg_learr_suit.state) then
 
			walkin('dlg_learr_suit');
 
		elseif (s.faint) then
 
			walkin('atl_iof_learr_faint_alone');
 
		else		
 
			return [[
 
				Некогда разговаривать. 
 
			]];
 
		end;
 
	end;
 
};
 
 
dlg_learr_suit = dlg {
 
	var {
 
		state = false;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = function(s)
 
		s.state = true;
 
		return [[
 
			Леарр вопросительно смотрит на вас. 
 
		]];
 
	end;
 
	phr = {
 
		{"Я хочу, чтобы ты одела скафандр.", [[
 
			Леарр недоуменно смотрит на вас: "Зачем он мне? Сама-я в-воде-дышу. Мне не-нужны ваши-приспособления".
 
		]], code [[
 
			psub('tag1');
 
		]]};
 
		{"Мы сейчас оденем скафандры. Продолжай следовать за нами.", [[
 
			Леарр кивает: "Я недолго-продержусь. Я что-смогу-сделаю". 
 
		]], code [[
 
			back();
 
		]]};
 
		{tag="tag1"};
 
		{"Не спорь, полезай внутрь.", [[
 
			Леарр недовольно скалит зубы: "Хевьяр не-указывай-мне".
 
		]], code [[
 
			psub('tag2');
 
		]]};
 
		{"Ладно, обойдемся без этого, просто следуй за нами.", [[
 
			Леарр кивает: "Я недолго-продержусь. Я что-смогу-сделаю". 
 
		]], code [[
 
			back();
 
		]]};
 
		{tag="tag2"};
 
		{"Не хочешь не надо. Просто следуй за нами.", [[
 
			Леарр молча кивает. 
 
		]], code [[
 
			back();
 
		]]};
 
		{"Эта штука защитит тебя от жара. И тебе будет легче дышать, пока мы не выбрались", [[
 
			Леарр кивает: "Хорошо. Я по-вашему-сделаю". Вы помогаете ей забраться в скафандр и одеваете шлем. 
 
		]], code [[
 
			atl_iof_time_state.learr_safe = true;
 
			back();
 
		]]};
 
	};
 
};
 
 
dlg_learr_iof = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = [[
 
		Леарр подбегает к вам и спрашивает: "Что происходит?"
 
	]];
 
	phr = {
 
		{'Надеюсь, все в порядке, следуй за мной', [[
 
			Леарр кивает: "Хорошо".
 
		]], code [[
 
			lifeon('char_learr_iof');
 
			char_learr_iof.state = 1;
 
			walk('atl_iof_ignis_hall_a');
 
		]]};
 
		{'Такое уже происходило?', [[
 
			Леарр пожимает плечами: "Я не-видела".
 
		]]};
 
	};
 
};
 
 
atl_iof_intro = room {
 
	nam = "Атлантида, Игнис, зал А";
 
	disp = "Атлантида, Игнис, зал А";
 
	dsc = [[
 
		Внезапно свет в зале гаснет и вы оказываетесь в полной темноте. Вскоре вы начинаете ощущать запах дыма, проникающего из вентиляционных отверстий. Леарр кажется очень удивленной. В темноте вы видите слабое свечение цветных полос, бегущих по ее головным плавникам:  _"**Что происходит?**"_.
 
	]];
 
	obj = {
 
		vobj('Продолжить','{Продолжить}', 'dlg_learr_iof');
 
	};
 
};
 
 
atl_iof_ignis_hall_a = room {
 
	var {
 
		ready = false;
 
	};
 
	nam = "Атлантида, Игнис, зал А";
 
	disp = "Атлантида, Игнис, зал А";
 
	dsc = [[
 
		Средних размеров прямоугольный зал. Из вентиляционных отверстий выплывают тонкие струйки дыма. 
 
	]];
 
	entered = function(s)
 
		if (not s.ready) then
 
			s.ready = true;
 
			lifeon('char_learr_iof');
 
			if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
				atl_iof_time_state.wright_here = true;
 
				if (where(char_jack_wright_atlantis) == atlantis_ignis_hall_a) then
 
					lifeon('char_wright_iof');
 
				end;
 
			else
 
				atl_iof_time_state.wright_here = false;
 
			end;
 
 
		end;
 
	end;
 
	obj = {
 
		'char_learr_iof'
 
	};
 
	way = {
 
		vroom("В коридор",'atl_iof_main_n3');
 
	};
 
};
 
 
atl_iof_blocked_by_fire = function() 
 
	pr("Огонь преграждает вам путь");
 
	return false;
 
end;
 
 
atl_iof_blocked_by_rubble = function() 
 
	pr("Обломки преграждают вам путь");
 
	return false;
 
end;
 
 
atl_iof_time_state = obj {
 
	nam = 'atl_iof_time_state';
 
	var {
 
		life_left = 6;
 
		pl_safe = false;
 
		learr_safe = false;
 
		wright_here = false;
 
		carry_learr = false;
 
	};
 
	life = function(s)
 
		if (not where(pl).iof) then 
 
			return;
 
		end;
 
		s.life_left = s.life_left - 1;
 
		if (s.life_left == 5) then
 
			if (not s.pl_safe) then 
 
				pr("Вы чувствуете жар");
 
			end;
 
		elseif (s.life_left == 4) then
 
			if (s.wright_here and not s.pl_safe and where(char_wright_iof) == where(pl)) then 
 
				pr("Джек утирает пот со лба");
 
			end;
 
		elseif (s.life_left == 3) then
 
			if (not s.learr_safe) then
 
				pr("Леарр тяжело дышит");
 
			end;
 
		elseif (s.life_left == 2) then
 
			if (not s.pl_safe) then 
 
				pr("Вам трудно дышать, жар становится нестерпимым");
 
			end;
 
		elseif (s.life_left == 1) then
 
			if (s.wright_here and not s.pl_safe and where(char_wright_iof) == where(pl)) then 
 
				pr("Джек с трудом следует за вами");
 
			end;
 
		elseif (s.life_left == 0) then
 
			if (not s.learr_safe) then
 
				pr("Леарр едва передвигает ногами");
 
			end;
 
		else
 
			lifeoff(s);
 
			lifeoff(char_learr_iof);
 
			if (not s.pl_safe) then
 
				walkin("game_over_ignis");
 
			elseif (s.wright_here) then
 
				walkin("atl_iof_learr_faint_wright");
 
			else
 
				walkin("atl_iof_learr_faint_alone");
 
			end;
 
		end;
 
	end;
 
};
 
 
atl_iof_learr_faint_alone = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	dsc = [[
 
		Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-дальше-идти". 
 
	]];
 
	phr = {
 
		{"Совсем немного осталось, пойдем. [Помочь Леарр подняться]", [[
 
			Леарр пытается подняться опираясь на вашу руку, но снова падает. Она без сознания.
 
		]], code [[
 
			tag('faint');
 
		]]};
 
		{"Оставайся здесь, я вернусь. ", [[
 
			Леарр теряет сознание, обессилев.
 
		]], code [[
 
			char_learr_iof.faint = true;
 
			back();
 
		]]};
 
		{"Оставайся здесь. ", [[
 
			Леарр теряет сознание, обессилев.
 
		]], code [[
 
			char_learr_iof.faint = true;
 
			back();
 
		]]};
 
		{"[Взять Леарр на руки]", [[
 
			Леарр теряет сознание, обессилев. Леарр весит не больше обычного человека. Вы берете ее на руки и продолжаете движение. 
 
		]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			put(char_learr_faint, pl);
 
			lifeon(char_learr_faint);
 
			atl_iof_time_state.carry_learr = true;
 
			back(); 
 
		]]};
 
		{tag='faint'};
 
		{"[Взять Леарр на руки]", [[
 
			Леарр весит не больше обычного человека. Вы берете ее на руки и продолжаете движение. 
 
		]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			put(char_learr_faint, pl);
 
			lifeon(char_learr_faint);
 
			atl_iof_time_state.carry_learr = true; 
 
			back(); 
 
		]]};
 
		{"[Уйти]", "", code [[ back(); ]]};
 
	};
 
};
 
 
atl_iof_learr_faint_wright = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	dsc = [[
 
		Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-дальше-идти". Райт подходит к ней и пытается помочь ей подняться. 
 
	]];
 
	phr = {
 
		{"Все в порядке?", [[
 
			По радио вы слышите голос Райта: "Да, я помогу ей. Идем". Джек аккуратно берет Леарр на руки и идет к вам. 
 
		]], code [[ 
 
			remove(char_learr_iof, where(char_learr_iof));
 
			atl_iof_time_state.carry_learr = true;
 
			back();
 
		]]};
 
	};
 
};
 
 
atl_iof_wright_dlg = dlg {
 
	nam = "Джек Райт";
 
	disp = "Джек Райт";
 
	entered = [[
 
		Едва вы оказываетесь в главном зале, к вам подбегает Джек Райт: _"У вас все в порядке? Здесь все рушится. Здесь недалеко должно быть служебное помещение со скафандрами. Нам следует добраться до туда"_.
 
	]];
 
	phr = {
 
		{"А лифт?", [[
 
			Джек отрицательно качает головой: _"Я не смог добраться до него"_.
 
		]]};
 
		{"Ты знаешь куда идти?", [[
 
			Джек неуверенно пожал плечами: _"Насколько я помню, совсем рядом если идти по часовой стрелке вдоль стены зала"_.
 
		]], code [[
 
			psub('next');
 
		]]};
 
		{tag = "next"};
 
		{"Следуй за нами", [[
 
			Джек молча кивает.
 
		]], code [[
 
			lifeon('char_wright_iof');
 
			back();
 
		]]};
 
	};
 
};
 
 
atl_iof_main_n3 = room {
 
	var {
 
		ready = false;
 
	};
 
	nam = "Атлантида, Игнис, главный зал, вход в зал А";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал А";
 
	iof = true;
 
	dsc = [[
 
		Огромный круглый зал охвачен пожаром. Освещение не работает. Клубы черного дыма заволакивают помещение, затрудняя ваши перемещения. Вы находитесь в северной части зала у самого его края. 
 
	]];
 
	enter = function(s) 
 
		if (not s.ready) then
 
			s.ready = true;
 
			if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
				if (where(char_wright_iof) ~= s) then
 
					walkin("atl_iof_wright_dlg");
 
				end;
 
			end;
 
		else
 
			lifeon(atl_iof_time_state);
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_nw3");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", "atl_iof_main_n2");
 
		kh_vroom("В зал А", "atl_iof_ignis_hall_a");
 
	};
 
};
 
 
atl_iof_main_n2 = room {
 
	nam = "Атлантида, Игнис, главный зал, север";
 
	disp = "Атлантида, Игнис, главный зал, север";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_ne2");
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_n3");
 
	};
 
};
 
 
atl_iof_main_n1 = room {
 
	nam = "Атлантида, Игнис, главный зал, север, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, север, у лифта";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_nw1");
 
		kh_vroom("По часовой", "atl_iof_main_ne1");
 
		kh_vroom("В Лифт", function()
 
			pr("Лифт не работает");
 
			return false;
 
		end);
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_main_ne3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в служебное помещение";
 
	disp = "Атлантида, Игнис, главный зал, вход в служебное помещение";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_se3");
 
		kh_vroom("К центру", "atl_iof_main_ne2");
 
		kh_vroom("В служебное помещение", "atl_iof_ignis_service_room");
 
	};
 
};
 
 
atl_iof_main_ne2 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад";
 
	disp = "Атлантида, Игнис, главный зал, северозапад";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_n2");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_ne3");
 
	};
 
};
 
 
atl_iof_main_ne1 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_n1");
 
		kh_vroom("По часовой", "atl_iof_main_se1");
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_main_se3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в зал B";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал B";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_ne3");
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", atl_iof_blocked_by_fire);
 
		kh_vroom("В зал B", function()
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_iof_main_se2 = room {
 
	nam = "Атлантида, Игнис, главный зал, юговосточная часть";
 
	disp = "Атлантида, Игнис, главный зал, юговосточная часть";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", "atl_iof_main_se1");
 
		kh_vroom("К краю", atl_iof_blocked_by_fire);
 
	};
 
};
 
 
atl_iof_main_se1 = room {
 
	nam = "Атлантида, Игнис, главный зал, юговосточная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, юговосточная часть, у лифта";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_ne1");
 
		kh_vroom("По часовой", "atl_iof_main_s1");
 
		kh_vroom("К краю", "atl_iof_main_se2");
 
	};
 
};
 
 
atl_iof_main_s3 = room {
 
	nam = "Атлантида, Игнис, главный зал, экстренный выход";
 
	disp = "Атлантида, Игнис, главный зал, экстренный выход";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", "atl_iof_main_s2");
 
		kh_vroom("Выход", "atl_iof_outside");
 
	};
 
};
 
 
atl_iof_main_s2 = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть";
 
	disp = "Атлантида, Игнис, главный зал, южная часть";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К центру", "atl_iof_main_s1");
 
		kh_vroom("К краю", "atl_iof_main_s3");
 
	};
 
};
 
 
atl_iof_main_s1 = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, южная часть, у лифта";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_se1");
 
		kh_vroom("По часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_s2");
 
	};
 
};
 
 
atl_iof_main_sw3 = room {
 
	nam = "Атлантида, Игнис, главный зал, вход в зал C";
 
	disp = "Атлантида, Игнис, главный зал, вход в зал C";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", "atl_iof_main_nw3");
 
		kh_vroom("К центру", atl_iof_blocked_by_fire);
 
		kh_vroom("В зал C", function()
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_iof_main_sw2 = room {
 
	nam = "Атлантида, Игнис, главный зал, югозападная часть";
 
	disp = "Атлантида, Игнис, главный зал, югозападная часть";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_rubble);
 
		kh_vroom("По часовой", "atl_iof_main_nw2");
 
		kh_vroom("К центру", "atl_iof_main_sw1");
 
		kh_vroom("К краю", atl_iof_blocked_by_fire);
 
	};
 
};
 
 
atl_iof_main_sw1 = room {
 
	nam = "Атлантида, Игнис, главный зал, югозападная часть, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, югозападная часть, у лифта";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_nw1");
 
		kh_vroom("К краю", "atl_iof_main_sw2");
 
	};
 
};
 
 
atl_iof_main_nw3 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад, внешний край";
 
	disp = "Атлантида, Игнис, главный зал, северозапад, внешний край";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_n3");
 
		kh_vroom("По часовой", "atl_iof_main_sw3");
 
		kh_vroom("К центру", "atl_iof_main_nw2");
 
	};
 
};
 
 
atl_iof_main_nw2 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад";
 
	disp = "Атлантида, Игнис, главный зал, северозапад";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw2");
 
		kh_vroom("По часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("К центру", atl_iof_blocked_by_rubble);
 
		kh_vroom("К краю", "atl_iof_main_nw3");
 
	};
 
};
 
 
atl_iof_main_nw1 = room {
 
	nam = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	disp = "Атлантида, Игнис, главный зал, северозапад, у лифта";
 
	iof = true;
 
	way = {
 
		kh_vroom("Против часовой", "atl_iof_main_sw1");
 
		kh_vroom("По часовой", "atl_iof_main_n1");
 
		kh_vroom("К краю", atl_iof_blocked_by_rubble);
 
	};
 
};
 
 
atl_iof_suits = obj {
 
	nam = "Скафандры";
 
	dsc = "Вдоль стен помещения расставлено несколько {скафандров}";
 
	act = function(s)
 
		atl_iof_time_state.pl_safe = true;
 
		walkin("atl_iof_external_radio_dlg");
 
	end;
 
};
 
 
atl_iof_external_radio_dlg = dlg {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	entered = function(s)
 
		if (where(char_wright_iof) == where(pl)) then
 
			return [[
 
				Забравшись в скафандр, вы с Райтом начинаете настраивать радио, чтобы иметь возможность общаться друг с другом. В процессе настройки вы натыкаетесь на основную частоту станции и слышите голос Моро: "... вытащить их с Игниса. Что мы можем сделать?"
 
				Даркстар отвечет ему: "Мы подойдем на Наутилусе к экстренному выходу и попробуем проникнуть внутрь".
 
			]];
 
		else
 
			return [[
 
				Забравшись в скафандр, вы начинаете настраивать радио, чтобы сообщить остальным о случившемся. Вскоре вы натыкаетесь на основную частоту станции и слышите голос Моро: "... вытащить их с Игниса. Что мы можем сделать?"
 
				Даркстар отвечет ему: "Мы подойдем на Наутилусе к экстренному выходу и попробуем проникнуть внутрь".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{"Вы слышите меня?", [[
 
			Голоса в динамике прерываются. Через короткое время вы слышите встревоженный голос Моро: "Моро на связи! Дрейк, вы там все в порядке?"
 
		]], code [[psub('is_ok')]]};
 
		{tag = "is_ok"};
 
		{"Да, все здесь. Мы одеваем скафандры", [[
 
			Вы слышите голос Майкла Райта: "Отлично. Они защитят вас от жара и у вас будет достаточно воздуха. Лифт мы заблокировали, поэтому чтобы выбраться, воспользуйтесь экстренным шлюзом в южной части Игниса. Наутилус подхватит вас там". 
 
		]], code [[psub('clear')]]};
 
		{"Да, все здесь. Как нам выбраться?", [[
 
			Вы слышите голос Майкла Райта: "Лифт мы заблокировали, поэтому чтобы выбраться, воспользуйтесь экстренным шлюзом в южной части Игниса. Оденьте скафандры - они защитят вас. Наутилус подхватит вас у выхода". 
 
		]], code [[psub('clear')]]};
 
		{tag = "clear"};
 
		{"Вас понял, конец связи[Выключить радио].", code [[back();]]};
 
	};
 
};
 
 
atl_iof_ignis_service_room = room {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	disp = "Атлантида, Игнис, служебное помещение";
 
	iof = true;
 
	dsc = [[
 
		Небольшое помещение, используемое для хранения различного оборудования, необходимого для обслуживания Игниса. 
 
	]];
 
	way = {
 
		kh_vroom("В главный зал", function(s)
 
			if (atl_iof_time_state.pl_safe) then
 
				return "atl_iof_main_ne3";
 
			else
 
				pr("Я не вернусь туда без снаряжения");
 
				return false;
 
			end;
 
		end);
 
	};
 
	obj = {
 
		'atl_iof_suits'
 
	};
 
};
 
 
atl_iof_outside = room {
 
	nam = "Атлантида, Игнис";
 
	iof = true;
 
	entered = function(s)
 
		lifeoff(atl_iof_time_state);
 
	end;
 
	dsc = function(s)
 
		if (have(char_learr_faint)) then
 
			if (atl_iof_time_state.wright_here) then
 
				return [[
 
					Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Как только вы задраиваете внутренний люк, Райт опускает Леарр на пол и начинает помогать вам отдраивать внешний люк. ^
 
					Отсек быстро заполняет вода. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы берете Леарр на руки и выходите наружу. Тяжелый скафандр тянет вас вниз и вы плавно опускаетесь на верхнюю обшивку Наутилуса. К вам тут же подходят несколько человек, облаченных в такие же скафандры. Они забирают Леарр у вас и приглашают вас войти внутрь Наутилуса.
 
				]];
 
			else
 
				return [[
 
					Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Вы кладете Леарр на пол и снова задраиваете внутренний люк. Тяжело вздохнув, вы начинаете открывать внешний люк. ^
 
					Отсек быстро заполняет вода. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы берете Леарр на руки и выходите наружу. Тяжелый скафандр тянет вас вниз и вы плавно опускаетесь на верхнюю обшивку Наутилуса. К вам тут же подходят несколько человек, облаченных в такие же скафандры. Они забирают Леарр у вас и приглашают вас войти внутрь Наутилуса.
 
				]];
 
			end;
 
		else
 
			return [[
 
				Вы добираетесь до аварийного шлюза Игниса. Вы с трудом отдраиваете его и заходите в шлюзовую камеру. Задраив дверь изнутри, вы начинаете открывать внешний люк. ^
 
				Отсек быстро заполняет вода и вы замечаете некоторую растерянность Леарр. Снаружи вы видите Наутилус, находящийся прямо под люком. Вы спрыгиваете вниз. Леарр следует за вами. К вам тут же подходят несколько человек, облаченных в такие же скафандры и приглашают вас войти внутрь Наутилуса.
 
			]];
 
		end;
 
	end;
 
	obj = {
 
		vobj("Продолжить", "{Продолжить}", "atl_iof_part2_dlg");
 
	};
 
};
 
 
atl_iof_part2_dlg = dlg {
 
	nam = "Атлантида, Игнис";
 
	entered = [[
 
		Вы слышите голос, доносящийся из радио: "Все в порядке. Наутилус доставит вас на станцию".
 
	]];
 
	phr = {
 
		{"Хорошо[Войти в шлюз Наутилуса].", [[
 
			Вы забираетесь внутрь Наутилуса - эта субмарина заметно меньше вашего Левиафана, но также вмещает довольно большой экипаж. Вы снимаете скафандры и проходите в кают-компанию. По радио вы слышите голос Моро: "Как только вы придете в себя после произошедшего, я жду вас в моем кабинете". ^
 
			Через считанные минуты вы оказываетесь в доке. Как во сне вы добираетесь до своей каюты, где без сил засыпаете. 
 
		]], code [[ walk('atlantis_luna_drake_room'); ]]};
 
		{"Я могу чем-то помочь?", [[
 
			По радио вы слышите голос Райта: "Было бы очень здорово, если бы вы смогли отключить подачу кислорода в Игнис".
 
		]], code [[ psub('help'); ]]};
 
		{tag="help"};
 
		{"Хорошо, я готов", [[
 
			Райт продолжает: "Спускайтесь вниз - на крышу Доминуса и идите к лифту. Где-то с южной стороны должна быть панель управления. С ней вы, думаю, разберетесь". Вы аккуратно спрыгиваете с Наутилуса вниз и идете к лифту. 
 
		]], code [[ walk('atl_iof_outside_lift'); ]]};
 
		{"Я передумал", [[
 
			Райт отвечает: "Хорошо, возвращайтесь на станцию. Мои люди все сделают". 
 
		]], code [[ walk('atl_iof_end'); ]]};
 
	};
 
};
 
 
atl_iof_outside_lift = room {
 
	nam = "Атлантида";
 
	dsc = [[
 
		Над вами нависает огромная полусфера Игниса, покоящаяся на множестве опор. Вы находитесь снаружи шахты лифта, одновременно служащей центральной опорой секции. Вы слышите скрежет металла наверху, подвергаемого сильному термальному воздействию. 
 
	]];
 
	obj = {
 
		"atl_iof_air_valves"
 
	};
 
};
 
 
atl_iof_air_valves = room {
 
	var {
 
		valves = { 0,0,0,0,0,0 };
 
		selected = 0;
 
	};
 
	nam = "Кислородные клапаны";
 
	entered = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		atl_iof_air_valves.selected = 0;
 
	end;
 
	pic = function(s)
 
		local image = 'images/air_bg.png';
 
		for i = 1, #s.valves do
 
			image = image .. ";images/air_" .. tostring(s.valves[i]) .. ".png@" .. tostring(((i - 1) % 3) * 32) .. "," .. tostring(math.floor((i - 1) / 3) * 32);
 
		end;
 
		
 
		return image;
 
	end;
 
	dsc = function(s)
 
		if (s.selected == 0) then
 
			return [[
 
				Перед собой вы видите 6 клапанов. Каждый из них пропускает через себя воздух только в одном направлении. По показаниям манометра вы видите, что воздух продолжает поступать в Игнис. 
 
			]];
 
		else
 
			return "Перед собой вы видите 6 клапанов. Каждый из них пропускает через себя воздух только в одном направлении. По показаниям манометра вы видите, что воздух продолжает поступать в Игнис. В какую сторону вы хотите повернуть выбранный клапан (" .. tostring(s.selected) .. ")?";
 
		end;
 
	end;
 
	obj = {
 
		'atl_iof_select1';
 
		'atl_iof_select2';
 
		'atl_iof_select3';
 
		'atl_iof_select4';
 
		'atl_iof_select5';
 
		'atl_iof_select6';
 
		'atl_iof_air_ccw';
 
		'atl_iof_air_cw';
 
		'atl_iof_air_cancel';
 
	};
 
	is_solved = function(s)
 
		local current = 1;
 
		local visited = {false, false, false, false, false, false};
 
		while not visited[current] do
 
			visited[current] = true;
 
			if (s.valves[current] == 0) then
 
				if (current == 3 or current == 6) then 
 
					return false;
 
				else
 
					current = current + 1;
 
				end;
 
			elseif (s.valves[current] == 1) then
 
				current = current + 3;
 
			elseif (s.valves[current] == 2) then
 
				current = current - 1;
 
			elseif (s.valves[current] == 3) then
 
				current = current - 3;
 
			end;
 
		end;
 
		current = 4;
 
		visited = {false, false, false, false, false, false};
 
		while not visited[current] do
 
			visited[current] = true;
 
			if (s.valves[current] == 0) then
 
				if (current == 3 or current == 6) then 
 
					return false;
 
				else
 
					current = current + 1;
 
				end;
 
			elseif (s.valves[current] == 1) then
 
				current = current + 3;
 
			elseif (s.valves[current] == 2) then
 
				current = current - 1;
 
			elseif (s.valves[current] == 3) then
 
				current = current - 3;
 
			end;
 
		end;
 
		return true;
 
	end;
 
};
 
 
atl_iof_select = function(index)
 
	return obj {
 
		nam = "Клапан " .. tostring(index);
 
		dsc = "{Выбрать клапан " .. tostring(index) .. "}^";
 
		act = function(s)
 
			atl_iof_select1:disable();
 
			atl_iof_select2:disable();
 
			atl_iof_select3:disable();
 
			atl_iof_select4:disable();
 
			atl_iof_select5:disable();
 
			atl_iof_select6:disable();
 
			atl_iof_air_ccw:enable();
 
			atl_iof_air_cw:enable();
 
			atl_iof_air_cancel:enable();
 
			atl_iof_air_valves.selected = index;
 
			return "Вы беретесь за клапан " .. tostring(index);
 
		end;
 
	};
 
end;
 
 
atl_iof_select1 = atl_iof_select(1);
 
atl_iof_select2 = atl_iof_select(2);
 
atl_iof_select3 = atl_iof_select(3);
 
atl_iof_select4 = atl_iof_select(4);
 
atl_iof_select5 = atl_iof_select(5);
 
atl_iof_select6 = atl_iof_select(6);
 
 
atl_iof_air_ccw = obj {
 
	nam = "Повернуть против часовой стрелки";
 
	dsc = "{Повернуть против часовой стрелки}^";
 
	act = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		local t;
 
		local r = "";
 
		if (atl_iof_air_valves.valves[atl_iof_air_valves.selected] > 0) then
 
			t = atl_iof_air_valves.valves[atl_iof_air_valves.selected] - 1;
 
		else
 
			t = 3;
 
		end;
 
		
 
		if (atl_iof_air_valves.selected == 1) then
 
			if (t == 3 or t == 2 or
 
				(t == 0 and atl_iof_air_valves.valves[2] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[4] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 2) then
 
			if (t == 3 or
 
				(t == 2 and atl_iof_air_valves.valves[1] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[3] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[5] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 3) then
 
			if (t == 3 or 
 
				(t == 2 and atl_iof_air_valves.valves[2] == 0) or
 
				(t == 1 and atl_iof_air_valves.valves[6] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 4) then
 
			if (t == 1 or t == 2 or
 
				(t == 3 and atl_iof_air_valves.valves[1] == 1) or
 
				(t == 0 and atl_iof_air_valves.valves[5] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 5) then
 
			if (t == 1 or
 
				(t == 3 and atl_iof_air_valves.valves[2] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[4] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[6] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 6) then
 
			if (t == 1 or 
 
				(t == 3 and atl_iof_air_valves.valves[3] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[5] == 0)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		end;
 
		
 
		atl_iof_air_valves.valves[atl_iof_air_valves.selected] = t;
 
		
 
		atl_iof_air_valves.selected = 0;
 
		
 
		if (atl_iof_air_valves:is_solved()) then
 
			walk("atl_iof_electr_dlg");
 
		end;
 
		
 
		return r;
 
	end;
 
};
 
 
atl_iof_air_cw = obj {
 
	nam = "Повернуть по часовой стрелке";
 
	dsc = "{Повернуть по часовой стрелке}^";
 
	act = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		local t;
 
		local r = "";
 
		if (atl_iof_air_valves.valves[atl_iof_air_valves.selected] < 3) then
 
			t = atl_iof_air_valves.valves[atl_iof_air_valves.selected] + 1;
 
		else
 
			t = 0;
 
		end;
 
		
 
		if (atl_iof_air_valves.selected == 1) then
 
			if (t == 3 or t == 2 or
 
				(t == 0 and atl_iof_air_valves.valves[2] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[4] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 2) then
 
			if (t == 3 or
 
				(t == 2 and atl_iof_air_valves.valves[1] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[3] == 2) or
 
				(t == 1 and atl_iof_air_valves.valves[5] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 3) then
 
			if (t == 3 or 
 
				(t == 2 and atl_iof_air_valves.valves[2] == 0) or
 
				(t == 1 and atl_iof_air_valves.valves[6] == 3)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 4) then
 
			if (t == 1 or t == 2 or
 
				(t == 3 and atl_iof_air_valves.valves[1] == 1) or
 
				(t == 0 and atl_iof_air_valves.valves[5] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 5) then
 
			if (t == 1 or
 
				(t == 3 and atl_iof_air_valves.valves[2] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[4] == 0) or
 
				(t == 0 and atl_iof_air_valves.valves[6] == 2)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		elseif (atl_iof_air_valves.selected == 6) then
 
			if (t == 1 or 
 
				(t == 3 and atl_iof_air_valves.valves[3] == 1) or
 
				(t == 2 and atl_iof_air_valves.valves[5] == 0)) then
 
				t = atl_iof_air_valves.valves[atl_iof_air_valves.selected];
 
				r = "Клапан не поворачивается";
 
			end;
 
		end;
 
		
 
		atl_iof_air_valves.valves[atl_iof_air_valves.selected] = t;
 
		
 
		atl_iof_air_valves.selected = 0;
 
		
 
		if (atl_iof_air_valves:is_solved()) then
 
			walk("atl_iof_electr_dlg");
 
		end;
 
		
 
		return r;
 
	end;
 
};
 
 
atl_iof_air_cancel = obj {
 
	nam = "Выбрать другой клапан";
 
	dsc = "{Выбрать другой клапан}";
 
	act = function(s)
 
		atl_iof_select1:enable();
 
		atl_iof_select2:enable();
 
		atl_iof_select3:enable();
 
		atl_iof_select4:enable();
 
		atl_iof_select5:enable();
 
		atl_iof_select6:enable();
 
		atl_iof_air_ccw:disable();
 
		atl_iof_air_cw:disable();
 
		atl_iof_air_cancel:disable();
 
		
 
		atl_iof_air_valves.selected = 0;
 
		
 
		return "";
 
	end;
 
};
 
 
atl_iof_electr_dlg = dlg {
 
	nam = "Атлантида, Игнис";
 
	entered = [[
 
		Вы останавливаете подачу кислорода и собиратесь сообщить об этом по радио, когда из динамика радается голос Райта: "Как у вас успехи? Нужно отключить еще подачу электричества".
 
	]];
 
	phr = {
 
		{"Подача воздуха отключена. Как я смогу отключить электричество?", [[
 
			Райт продолжает: "Отлично. Там рядом должна быть панель, она подписана. Там замок хитрый, но, думаю, вы разберетесь. Затем просто дергаете рубильник и дело сделано".
 
		]], code [[ psub("next"); ]]};
 
		{tag="next"};
 
		{"Вас понял. Конец связи", [[
 
			Вы быстро находите необходимую панель и приступаете к работе.
 
		]], code [[ walk("atl_iof_electr_panel_closed"); ]]};
 
	};
 
};
 
 
atl_iof_electr_panel_closed = room {
 
	var {
 
		locks = { true, true, true, true, true, true, true, true };
 
	};
 
	nam = "Электрощит";
 
	pic = function(s)
 
		local image = 'images/electr_bg.png';
 
		for i = 1, 4 do
 
			if (s.locks[i]) then
 
				image = image .. ";images/air_3.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			else
 
				image = image .. ";images/air_1.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			end;
 
		end;
 
		for i = 5, 8 do
 
			if (s.locks[i]) then
 
				image = image .. ";images/air_1.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			else
 
				image = image .. ";images/air_3.png@" .. tostring(((i - 1) % 4) * 32) .. "," .. tostring(math.floor((i - 1) / 4) * 32);
 
			end;
 
		end;
 
		return image;
 
	end;
 
	dsc = [[
 
		Перед вами расположен щиток с восемью защелками. Сейчас щиток закрыт и вы не можете его снять. 
 
	]];
 
	obj = {
 
		"atl_iof_electr_select1",
 
		"atl_iof_electr_select2",
 
		"atl_iof_electr_select3",
 
		"atl_iof_electr_select4",
 
		"atl_iof_electr_select5",
 
		"atl_iof_electr_select6",
 
		"atl_iof_electr_select7",
 
		"atl_iof_electr_select8"
 
	};
 
	is_solved = function(s)
 
		local unsolved = false;
 
		for i = 1, #locks do
 
			unsolved = unsolved or s.locks[i];
 
		end;
 
		
 
		return not unsolved;
 
	end;
 
};
 
 
atl_iof_electr_select = function(index)
 
	return obj {
 
		nam = "Защелка " .. tostring(index);
 
		dsc = "{Сдвинуть защелку " .. tostring(index) .. "}^";
 
		act = function(s)			
 
			atl_iof_electr_panel_closed.locks[index] = not atl_iof_electr_panel_closed.locks[index];
 
			if (index ~= 4 and index ~= 8) then
 
				atl_iof_electr_panel_closed.locks[index + 1] = not atl_iof_electr_panel_closed.locks[index + 1];
 
			end;
 
			if (index ~= 1 and index ~= 5) then
 
				atl_iof_electr_panel_closed.locks[index - 1] = not atl_iof_electr_panel_closed.locks[index - 1];
 
			end;
 
			if (index > 4) then
 
				atl_iof_electr_panel_closed.locks[index - 4] = not atl_iof_electr_panel_closed.locks[index - 4];
 
			end;
 
			if (index < 5) then
 
				atl_iof_electr_panel_closed.locks[index + 4] = not atl_iof_electr_panel_closed.locks[index + 4];
 
			end;
 
			
 
			if (atl_iof_electr_panel_closed.is_solved()) then
 
				walk("atl_iof_electr_panel_open");
 
			
 
				return "";
 
			end;
 
			
 
			return "Вы сдвигаете защелку " .. tostring(index);
 
		end;
 
	};
 
end;
 
 
atl_iof_electr_select1 = atl_iof_electr_select(1);
 
atl_iof_electr_select2 = atl_iof_electr_select(2);
 
atl_iof_electr_select3 = atl_iof_electr_select(3);
 
atl_iof_electr_select4 = atl_iof_electr_select(4);
 
atl_iof_electr_select5 = atl_iof_electr_select(5);
 
atl_iof_electr_select6 = atl_iof_electr_select(6);
 
atl_iof_electr_select7 = atl_iof_electr_select(7);
 
atl_iof_electr_select8 = atl_iof_electr_select(8);
 
 
atl_iof_electr_panel_open = dlg {
 
	nam = "Атлантида, Игнис";
 
	dsc = [[
 
		Вы снимаете щиток и дергаете рубильник. Судя по всему, Игнис сейчас должен быть обесточен. По радио вы сообщаете Райту о завершении работ.
 
	]];
 
	phr = {
 
		{"Подача электричества в Игнис отключена, возвращаюсь на станцию", [[
 
			В динамике вы слышите голос Райта: "Отлично, возвращайтесь".^
 
		]], code [[ walk("atl_iof_end"); ]]};
 
	};
 
};
 
 
atl_iof_end = room {
 
	nam = "Атлантида";
 
	dsc = [[
 
		Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. Вы просыпаетесь утром, полностью готовый заняться новыми делами. ^
 
		Почти сразу к вам в комнату входят двое охранников. Они просят вас проследовать за ними к начальнику службы безопасности - Винсенту Даркстару. У вас нет никакого выхода, кроме как пойти с ними...
 
	]];
 
	entered = function(s)
 
		atl_lfc_state = 1;
 
		if (atl_iof_time_state.learr_safe) then
 
			atl_iof_learr_suit = true;
 
		end;
 
		if (atl_iof_time_state.carry_learr or atl_iof_time_state.learr_safe or not char_learr_iof.faint) then
 
			-- learr saved
 
			put(char_learr_atlantis, atl_oculus_lab_c);
 
		else
 
			atl_iof_learr_dead = true;
 
			put(char_aikerjarr, atl_oculus_lab_c);
 
			put(char_aikerjarr, atl_oculus_lab_b);
 
		end;
 
		atl_iof_completed = true;
 
	end;
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_darkstar_dlg");
 
	};
 
};
 
\ No newline at end of file
main.lua
Show inline comments
 
-- $Name: Пробуждение$
 
-- $Version: 1.0$
 
-- $Author: Khaelenmore Thaal$
 
 
instead_version "1.9.1"
 
require "para"
 
require "dash"
 
require "quotes"
 
require "hideinv"
 
require "kbd"
 
require "timer"
 
 
-- Код и ядро
 
dofile "utils.lua"
 
dofile "battlefield.lua";
 
-- Общее
 
dofile "items.lua"
 
dofile "party.lua"
 
dofile "game_over.lua";
 
-- Часть 1
 
dofile "london.lua"
 
dofile "wright.lua"
 
dofile "travel.lua"
 
dofile "dock2.lua"
 
dofile "warehouse18.lua"
 
dofile "warehouse32.lua"
 
-- Часть 2
 
dofile "leviathan.lua"
 
dofile "atlantis.lua"
 
dofile "atlantis_ignis.lua"
 
dofile "atlantis_dlg.lua"
 
dofile "atlantis_intro.lua"
 
dofile "atlantis_ignis_on_fire.lua"
 
dofile "atlantis_looking_for_clues.lua"
 
dofile "atlantis_from_the_ashes.lua"
 
dofile "atlantis_iyhehevjiarr.lua"
 
dofile "atlantis_catching_the_tail.lua"
 
-- Часть 3
 
dofile "journey_venaedanotrr.lua"
 
dofile "journey_zayslanotrr.lua"
 
dofile "journey_zayslanotrr_temple.lua"
 
dofile "journey_temple.lua"
 
-- Часть 4
 
dofile "lseryanotrr_intro.lua"
 
dofile "lseryanotrr_locations.lua"
 
dofile "lse_service_tunnels.lua"
 
dofile "lse_powerplant.lua";
 
dofile "lse_final_battle.lua";
 
--dofile "final_scene.lua";
 
--dofile "final_battle.lua";
 
--dofile "first_city_inner_rim.lua"
 
--dofile "first_city_middle_rim.lua"
 
--dofile "first_city_outer_rim.lua"
 
 
global {
 
	warehouse18_found = false;
 
	warehouse32_found = false;
 
    warehouse32_visited = false;   
 
	dock_found = false;
 
	leviathan_discovered = false;
 
	atlantis_found = false;
 
	temple_found = false;
 
	nearest_cities_found = false;
 
	iraaphaanotrr_temple_found = false;
 
	dypatreanotrr_temple_found = false;
 
    venaedanotrr_temple_found = false;
 
    zayslanotrr_temple_found = false;
 
    deep_temple_found = false;
 
    lseryanotrr_found = false;
 
	
 
	rel_phaetlarr = 0;
 
	rel_walter = 0;
 
	rel_learr = 0;
 
	rel_anna = 0;
 
	rel_jack = 0;
 
    
 
    dt_code = {};
 
    dt_buttons = {};
 
};
 
 
 
 
player_drake = player {
 
    var {
 
        hp = 10;
 
        has_light = false;
 
        party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]};
 
        companion = nil;
 
        money = 200;
 
    };
 
	nam = "player";
 
	disp = "Дэвид Дрейк";
 
    disp2 = "Дрейка";
 
    disp3 = "Дрейку";
 
	where = 'port';
 
	
 
	obj = {'item_umbrella', 'item_charts', 'item_note_1', 'item_money', 
 
	};
 
	
 
	pay = function(s, c)
 
		if (s.money >= c) then
 
			s.money = s.money - c;
 
			return true;
 
		else
 
			return false;
 
		end;
 
	end;
 
};
 
 
intro = room {
 
	nam = "intro";
 
	hideinv = true;
 
	disp = "Вступление";
 
	dsc = [[
 
		ВНИМАНИЕ: Это специальная предварительная версия игры. Ни один фрагмент игры не является финальным. ^^
 
		ВНИМАНИЕ: Данная версия игры не предназначена для какого-либо распространения, исключая прямую передачу файлов автором. ^^
 
		Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка - единственного сына богатого и уважаемого владельца транспортной компании "Вестхейвен Трансоушен". ^
 
		Несколько лет назад, когда Дэвиду было 10 лет, Уильям таинственным образом бесследно пропал. Полицейское расследование вскоре зашло в тупик и было прекращено. Через несколько месяцев компания, оставшаяся без своего владельца, обанкротилась, ее имущество распродается. ^
 
		После исчезновения отца Дэвид жил в Вашингтоне с бабушкой. Он пошел по стопам отца и выучился на инженера-кораблестроителя. Несколько дней назад в доме, где он жил, был обнаружен тайник, хранящий секретные документы отца - карты, указывающие по-видимому на какие-то тайники Уильяма и записка с адресом и именем.^
 
		Одержимый идеей узнать больше, Дэвид отправляется в Лондон...
 
	]];
 
	obj = {
 
		vway("Начать игру", "{Начать игру}", 'aurora_borealis');
 
	}
 
};
 
 
pl = player_drake;
 
 
game.nam = "Пробуждение";
 
game.dsc = [[
 
	Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка, сына владельца крупной транспортной компании "Вестхейвен Трансоушен". Несколько лет назад Уильям Дрейк, отец главного героя бесследно пропадает. Компания вскоре разваливается. Поиски ни к чему не приводят. Когда казалось бы уже все потеряно, в доме Дрейков находят тайник с документами Уильяма. Несколько схем строений, принадлежащих компании и клочок бумаги с адресом некоего Майкла Райта в Лондоне. Естественно, Дэвид как можно скорее отправляется в Великобританию...
 
	Вам предстоит отыскать подводную лодку, посетить подводную станцию, построенную Уильямом, встретить древнюю расу подводных жителей, поучаствовать в событиях, описанных древними легендами этой расы и узнать, что стало с Уильямом Дрейком.
 
]];
 
 
game_act_phrases = {
 
	"Вы не знаете, что с этим делать. ";
 
	"Вам нет смысла это трогать. ";
 
	"Вам это ничем не поможет. ";
 
	"Это бессмысленно. ";
 
	"Незачем это трогать. ";
 
};
 
 
game_use_phrases = {
 
	"Вам это ничем не поможет. ";
 
	"Это бессмысленно. ";
 
	"Вы не знаете, как это сделать. "
 
};
 
 
game.act = function(s)
 
	return game_act_phrases[rnd(#game_act_phrases)];
 
end;
 
 
game.use = function(s)
 
	return game_use_phrases[rnd(#game_use_phrases)];
 
end;
 
game.inv = "INV: Если вы видите это сообщение - это баг. ";
 
 
require "dbg"
 
 
function init()
 
	---modules init
 
	leviathan_init();
 
	warehouse18_init();
 
	warehouse32_init();
 
    
 
    local nums = {1,2,3,4,5,6};
 
    for i = 1, 4 do 
 
        local index = rnd(#nums);
 
        table.insert(dt_code, nums[index]);
 
        table.remove(nums, index);
 
    end;
 
    nums = {1,2,3,4,5,6};
 
    for i = 1, 3 do 
 
        local index = rnd(#nums);
 
        table.insert(dt_buttons, nums[index]);
 
        table.remove(nums, index);
 
    end;
 
	---game init
 
	pl.where = intro;
 
	---debug	
 
    pl.where = "atlantis_intro_dock";
 
    
 
    ---leviathan
 
    --pl.where = "leviathan_airlock";
 
    --submarine_leviathan.airpump = false;
 
    
 
    --leviathan_airlock.has_light = true;
 
    --leviathan_wardroom.has_light = true;
 
    --leviathan_wheelhouse.has_light = true;
 
    --leviathan_corridor.has_light = true;
 
    --leviathan_cabin_1.has_light = true;
 
    --leviathan_cabin_2.has_light = true;
 
    --leviathan_cabin_3.has_light = true;
 
    --leviathan_cabin_4.has_light = true;
 
    --leviathan_cabin_5.has_light = true;
 
    --leviathan_captains_cabin.has_light = true;
 
    --leviathan_cargo_hold.has_light = true;
 
    --leviathan_engines.has_light = true;
 
    --leviathan_lower_deck.has_light = true;
 
    --leviathan_life_support.has_light = true;
 
	--[[
 
	---IYH
 
	lifeon(char_learr);
 
	lifeon(char_wright);
 
	lifeon(char_radcliffe);
 
	lifeon(char_anna);
 
	lifeon(char_aikerjarr_lev);
 
	pl.party = {'learr', 'wright', 'radcliffe', 'anna'};
 
	atlantis_found = true;
 
	move(submarine_leviathan, "ctt_dyp_temple_entrance");
 
	--move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
	pl.where = leviathan_wheelhouse;
 
	submarine_leviathan.battery = true; -- Состояние батареи 
 
	submarine_leviathan.battery_charge = 100; -- Уровень заряда батареи
 
	submarine_leviathan.circuit_breaks = 0; -- Разрывы цепи
 
	submarine_leviathan.valves_to_replace = 0; -- Количество клапанов, которые нужно заменить для полноценной работы
 
	submarine_leviathan.power_on = true; -- включена ли энергия
 
	submarine_leviathan.air_level = 432000; -- запас воздуха. Максимум - 5 дней(5 * 24 * 60 * 60 = 432000)
 
	submarine_leviathan.airpump = false;
 
	leviathan_airlock.has_light = true;
 
	leviathan_wardroom.has_light = true;
 
	leviathan_wheelhouse.has_light = true;
 
	leviathan_corridor.has_light = true;
 
	leviathan_cabin_1.has_light = true;
 
	leviathan_cabin_2.has_light = true;
 
	leviathan_cabin_3.has_light = true;
 
	leviathan_cabin_4.has_light = true;
 
	leviathan_cabin_5.has_light = true;
 
	leviathan_captains_cabin.has_light = true;
 
	leviathan_cargo_hold.has_light = true;
 
	leviathan_engines.has_light = true;
 
	leviathan_lower_deck.has_light = true;
 
	leviathan_life_support.has_light = true;
 
	atl_iyh_state = 7;
 
	--]]
 
	
 
	--- Chapter 1: Atlantis
 
	--[[submarine_leviathan.battery = true; -- Состояние батареи 
 
	submarine_leviathan.battery_charge = 100; -- Уровень заряда батареи
 
	submarine_leviathan.circuit_breaks = 0; -- Разрывы цепи
 
	submarine_leviathan.valves_to_replace = 0; -- Количество клапанов, которые нужно заменить для полноценной работы
 
	submarine_leviathan.power_on = true; -- включена ли энергия
 
	submarine_leviathan.air_level = 432000; -- запас воздуха. Максимум - 5 дней(5 * 24 * 60 * 60 = 432000)
 
	submarine_leviathan.airpump = false;
 
	leviathan_airlock.has_light = true;
 
	leviathan_wardroom.has_light = true;
 
	leviathan_wheelhouse.has_light = true;
 
	leviathan_corridor.has_light = true;
 
	leviathan_cabin_1.has_light = true;
 
	leviathan_cabin_2.has_light = true;
 
	leviathan_cabin_3.has_light = true;
 
	leviathan_cabin_4.has_light = true;
 
	leviathan_cabin_5.has_light = true;
 
	leviathan_captains_cabin.has_light = true;
 
	leviathan_cargo_hold.has_light = true;
 
	leviathan_engines.has_light = true;
 
	leviathan_lower_deck.has_light = true;
 
	leviathan_life_support.has_light = true;
 
	
 
	pl.party = {'wright'};
 
	put(item_toolbox, pl);
 
	put(item_ducttape, pl);
 
	pl.where = "leviathan_airlock";
 
	atlantis_found = true;
 
	move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
    submarine_leviathan:enable();   ]]
 
    	   
 
    --ven_temple_l1.position = "66";   
 
    --put(item_ven_tablet, pl);
 
    --put(item_harpoon, pl);
 
    --put(item_colt, pl);
 
    --ven_shark.position = "55";
 
	--pl.where = "za_plaetlarr_fight";
 
    --pl.where = "lse_final_battle";
 
    --move(submarine_leviathan, "za_temple_back_entrance_foot");
 
    --char_anna.follow = true;
 
    --pl.where = "ven_chest_look";
 
    --move(ven_shark, "ven_temple_l1");
 
    
 
	--put(item_suit, pl);
 
	
 
	-- pl.where = warehouse_32;
 
	-- pl.where = w32_mgr;
 
	
 
	-- put(item_cogs, pl);
 
	-- put(item_pump_details, pl);
 
	-- put(item_electrodes, pl);
 
	--put(item_lamp, pl);
 
	-- pl.where = aurora_borealis;
 
	-- move(submarine_leviathan, first_city_entrance);
 
	-- move(submarine_leviathan, first_city_outer_east);
 
	-- walk(final_scene);
 
	-- walk(leviathan_wardroom);
 
	-- walk(leviathan_wardroom);
 
	-- put("char_learr", "leviathan_wardroom");
 
	-- put("char_phaetlarr", "leviathan_engines");
 
	-- put("char_radcliffe", "leviathan_engines");
 
	-- put("char_wright", "leviathan_wardroom");
 
	-- pl.where = leviathan_airlock;
 
	-- pl.where = hotel_street;
 
	-- pl.where = warehouse_32_entry;
 
	-- dock_found = true;
 
end;
 
\ No newline at end of file
0 comments (0 inline, 0 general)