Changeset - 387d673c520d
[Not reviewed]
default
0 3 1
Silverwing - 8 years ago 2016-05-15 10:18:23

LFC partially implemented
4 files changed with 339 insertions and 3 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
global {
 
	atl_jack_in_party = false;
 
	
 
	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_lfc_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_aqua_corridor_b = room {
 
	nam = "Атлантида, Аква, коридор B";
 
	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("В главный коридор", "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;
 
	end;
 
	dsc = [[
 
		Просторное помещение, предназнавенное для размещения субмарин, прибывающих на станцию. В настоящий момент в этом доке расположен _"Левиафан"_. Под потолком, на высоте примерно в 5 метров укреплены специальные балки, по которым могут свободно перемещаться крюки подъемных кранов. Снизу, под водой, расположен огромный люк, закрывающий доступ внутрь дока. Несколько легких мостиков сконструированы таким образом, чтобы их расположение легко можно было изменить для удобства работы и обслуживания субмарин. 
 
	]];
 
	way = {
 
		kh_vroom("В коридор B", "atl_aqua_corridor_b");
 
	};
 
};
 
 
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()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		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_illuminators"
 
	};
 
};
 
 
atl_dom_main_near_aqua = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Аква\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами расположен шлюз, ведущий в соседнюю секцию.
 
	]];
 
	way = {
 
		kh_vroom("В секцию \"Аква\"", "atl_intersection_aqua_dom");
 
		kh_vroom("К северо-западной части", "atl_dom_main_nw");
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
		kh_vroom("К северо-восточной части", "atl_dom_main_ne");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, табличку секции Аква
 
		"atl_nih_tubes_near_aqua"
 
	};
 
};
 
 
atl_dom_main_nw = room {
 
	nam = "Атлантида, Доминус, центральный зал, северо-запад";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в северо-западной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К секции \"Аква\"", "atl_dom_main_near_aqua");
 
		kh_vroom("К западной части", "atl_dom_main_w");
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К коридору А", "atl_dom_main_near_a");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_n = room {
 
	nam = "Атлантида, Доминус, центральный зал, север";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в северной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К секции \"Аква\"", "atl_dom_main_near_aqua");
 
		kh_vroom("К западной части", "atl_dom_main_w");
 
		kh_vroom("К северо-западной части", "atl_dom_main_nw");
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К северо-восточной части", "atl_dom_main_ne");
 
		kh_vroom("К восточной части", "atl_dom_main_e");
 
	};
 
};
 
 
atl_dom_main_ne = room {
 
	nam = "Атлантида, Доминус, центральный зал, северо-восток";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в северо-восточной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К секции \"Аква\"", "atl_dom_main_near_aqua");
 
		kh_vroom("К кабинету администратора", "atl_dom_main_near_adm");
 
		kh_vroom("К восточной части", "atl_dom_main_e");
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_near_a = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в коридор А";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами расположен шлюз, ведущий в коридор А. 
 
	]];
 
	way = {
 
		kh_vroom("К западной части", "atl_dom_main_w");
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
		kh_vroom("К северо-западной части", "atl_dom_main_nw");
 
		kh_vroom("В коридор A", "atl_dom_corridor_a");
 
	};
 
	obj = {
 
		-- TODO добавить табличку
 
		"atl_nih_panel_near_a"
 
	};
 
};
 
 
atl_dom_main_w = room {
 
	nam = "Атлантида, Доминус, центральный зал, запад";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в западной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К северо-западной части", "atl_dom_main_nw");
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К юго-западной части", "atl_dom_main_sw");
 
		kh_vroom("К южной части", "atl_dom_main_s");
 
		kh_vroom("К коридору А", "atl_dom_main_near_a");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_c = room {
 
	nam = "Атлантида, Доминус, центральный зал, центр";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в центральной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
		kh_vroom("К северо-восточной части", "atl_dom_main_ne");
 
		kh_vroom("К восточной части", "atl_dom_main_e");
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
		kh_vroom("К южной части", "atl_dom_main_s");
 
		kh_vroom("К юго-западной части", "atl_dom_main_sw");
 
		kh_vroom("К западной части", "atl_dom_main_w");
 
		kh_vroom("К северо-западной части", "atl_dom_main_nw");
 
		kh_vroom("В лифт", "atl_dom_lift");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_e = room {
 
	nam = "Атлантида, Доминус, центральный зал, восток";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в восточной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К северо-восточной части", "atl_dom_main_ne");
 
		kh_vroom("К кабинету администратора", "atl_dom_main_near_adm");
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
		kh_vroom("К южной части", "atl_dom_main_s");
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К северной части", "atl_dom_main_n");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_near_adm = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в кабинет администратора";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в кабинет администратора. 
 
	]];
 
	way = {
 
		kh_vroom("В кабинет администратора", "atl_dom_administator_room");
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
		kh_vroom("К восточной части", "atl_dom_main_e");
 
		kh_vroom("К северо-восточной части", "atl_dom_main_ne");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки, воздуховоды
 
		"atl_nih_panel_near_admin"
 
	};
 
};
 
 
atl_dom_main_sw = room {
 
	nam = "Атлантида, Доминус, центральный зал, юго-запад";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в юго-западной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К западной части", "atl_dom_main_w");
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К южной части", "atl_dom_main_s");
 
		kh_vroom("К шлюзу в секцию \"Окулус\"", "atl_dom_main_near_oculus");
 
		kh_vroom("К шлюзу в секцию \"Луна\"", "atl_dom_main_near_luna");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_s = room {
 
	nam = "Атлантида, Доминус, центральный зал, юг";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в южной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К восточной части", "atl_dom_main_e");
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
		kh_vroom("К юго-западной части", "atl_dom_main_sw");
 
		kh_vroom("К западной части", "atl_dom_main_w");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_se = room {
 
	nam = "Атлантида, Доминус, центральный зал, юго-восток";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Вы находитесь в юго-восточной части секции. В этой части главного зала установлено несколько массивных колонн, поддерживающих куполообразный потолок зала. 
 
	]];
 
	way = {
 
		kh_vroom("К восточной части", "atl_dom_main_e");
 
		kh_vroom("К кабинету администратора", "atl_dom_main_near_adm");
 
		kh_vroom("К южной части", "atl_dom_main_s");
 
		kh_vroom("К центральной части", "atl_dom_main_c");
 
		kh_vroom("К шлюзу в секцию \"Арктос\"", "atl_dom_main_near_arctos");
 
		kh_vroom("К шлюзу в секцию \"Терра\"", "atl_dom_main_near_terra");
 
	};
 
	obj = {
 
		-- TODO добавить скамейки
 
	};
 
};
 
 
atl_dom_main_near_luna = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Луна\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в секцию "Луна". 
 
	]];
 
	way = {
 
		kh_vroom("К юго-западной части", "atl_dom_main_sw");
 
		kh_vroom("К шлюзу в секцию \"Окулус\"", "atl_dom_main_near_oculus");
 
		kh_vroom("В секцию \"Луна\"", "atl_intersection_luna_dom");
 
	};
 
	obj = {
 
		"atl_nih_panel_near_luna"
 
	};
 
};
 
 
atl_dom_main_near_oculus = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Окулус\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в секцию "Окулус". 
 
	]];
 
	way = {
 
		kh_vroom("К юго-западной части", "atl_dom_main_sw");
 
		kh_vroom("В секцию \"Окулус\"", "atl_intersection_oculus_dom");
 
		kh_vroom("К шлюзу в секцию \"Луна\"", "atl_dom_main_near_luna");
 
	};
 
	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_near_arctos");
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
	};
 
	obj = {
 
		"atl_nih_boxes_near_terra"
 
	};
 
};
 
 
atl_dom_main_near_arctos = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию \"Арктос\"";
 
	dsc = [[
 
		Огромный круглый зал с куполообразным потолком. Потолок частично сделан из стекла, открывая прекрасный вид на водную толщу. Яркий свет электрических ламп освещает помещение. Рядом с вами находится шлюз, ведущий в секцию "Арктос". 
 
	]];
 
	way = {
 
		kh_vroom("К юго-восточной части", "atl_dom_main_se");
 
		kh_vroom("К шлюзу в секцию \"Терра\"", "atl_dom_main_near_oculus");
 
		kh_vroom("В секцию \"Арктос\"", "atl_intersection_arctos_dom");
 
	};
 
	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_intersection_arctos_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[
 
		Небольшой коридор, расположенный между секциями станции. Яркий свет электрических ламп освещает помещение. 
 
	]];
 
	way = {
 
		kh_vroom("В секцию \"Арктос\"", "atl_arctos_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_arctos");
 
	};
 
	obj = {
 
		"atl_illuminators"
 
	};
 
};
 
 
atl_luna_main_corridor = room {
 
	nam = "Атлантида, Луна, главный коридор";
 
	dsc = [[
 
		Узкий длинный коридор. По обе его стороны расположены двери, ведущие в комнаты персонала. Яркий свет электрических ламп освещает помещение. 
 
	]];
 
	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 = [[
 
		Узкий длинный коридор. По обе его стороны расположены двери, ведущие в комнаты персонала. Яркий свет электрических ламп освещает помещение. 
 
	]];
 
	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_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()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		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",
 
		"char_xiao"
 
	};
 
};
 
 
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_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");
 
	};
 
};
 
 
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_hall";
 
			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;
 
};
 
 
atl_ignis_main_hall = room {
 
	nam = "Атлантида, Игнис, центральный зал";
 
	dsc = [[
 
		Огромный круглый зал. Свет в зале выключен и сквозь стеклянный купол, лишь в некоторых местах поддерживаемый металлическими конструкциями вы видите игру света на поверхности океана, проплывающих внизу, рядом и выше рыб. 
 
		В центре зала расположена шахта лифта, а вдоль стен расположены четыре шлюзовых двери, три из которых ведут в другие залы Игниса, а один - в служебное помещение. От лифтовой шахты к краям зала ведут четыре тропинки, а пространство между ними занято где-то стеллажами с различными предметами, где-то установлены столики с удобными стульями, скамейки. 
 
	]];
 
	way = {
 
		kh_vroom("В лифт", "atl_dom_lift");
 
		kh_vroom("В зал A", "atl_ignis_hall_a");
 
		kh_vroom("В зал B", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В зал C", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В служебное помещение", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
	};
 
};
 
 
atl_ignis_hall_a = room {
 
	nam = "Атлантида, Игнис, зал А";
 
	enter = function(s)
 
		if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
			if (where(char_jack_wright_atlantis) ~= atl_ignis_hall_a) then
 
				put('char_jack_wright_atlantis', 'atl_ignis_hall_a');
 
			end;
 
		end;
 
	end;
 
	dsc = [[
 
		Средних размеров прямоугольный зал. 
 
	]];
 
	obj = {
 
		"char_learr_atlantis";
 
		'atl_ignis_illuminator';
 
		'atl_ignis_screen';
 
		'atl_ignis_projector';
 
		'atl_ignis_lightswitch';
 
	};
 
};
 
 
atl_ignis_illuminator = obj {
 
	var {
 
		state = 1;
 
	};
 
	nam = "Иллюминатор";
 
	dsc = function(s)
 
		if (s.state == 1) then
 
			return [[
 
				Огромное панорамное {окно} открывает великолепный вид на океан вокруг.
 
			]];
 
		else
 
			return [[
 
				Огромное панорамное {окно} закрыто тяжелыми металлическими листами.
 
			]];
 
		end;
 
	end;
 
	act = function(s)
 
		if (s.state == 1) then
 
			s.state = 0;
 
			return [[
 
				Вы нажимаете на кнопку рядом с окном и металлические листы со скрежетом закрывают его, полностью блокируя проникновение света извне.
 
			]];
 
		else
 
			s.state = 1;
 
			return [[
 
				Вы нажимаете на кнопку рядом с окном и металлические листы со скрежетом отъезжают в стороны, открывая его.
 
			]];
 
		end;
 
	end;
 
};
 
 
atl_ignis_screen = obj {
 
	nam = "Экран";
 
	dsc = function(s)
 
		return [[
 
			Экран
 
		]];
 
	end;
 
};
 
 
atl_ignis_projector = obj {
 
	nam = "Проектор";
 
	dsc = function(s)
 
		return [[
 
			Проектор
 
		]];
 
	end;
 
};
 
 
atl_ignis_lightswitch = obj {
 
	nam = "Выключатель";
 
	dsc = function(s)
 
		return [[
 
			Выключатель
 
		]];
 
	end;
 
};
 
 
--[[
 
Персонажи
 
]]
 
 
char_darkstar = npc {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		{Начальник службы безопасности} сидит в кресле за столом и перебирает какие-то бумаги. Время от времени, он обращается по радио к подчиненным. 
 
	]];
 
	dlg = "char_darkstar_dlg";
 
};
 
 
char_darkstar_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Винсент Даркстар";
 
	disp = "Винсент Даркстар";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
	};
 
};
 
 
char_moreau = npc {
 
	nam = "Фредерик Моро";
 
	dsc = [[
 
		{Начальник станции} сидит в кресле за столом и внимательно смотрит на вас. 
 
	]];
 
	dlg = "char_moreau_dlg";
 
};
 
 
char_moreau_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Фредерик Моро";
 
	disp = "Фредерик Моро";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
	};
 
};
 
 
char_svetlova = npc {
 
	nam = "Екатерина Светлова";
 
	dsc = [[
 
		{Екатерина Светлова} сидит за столом. Перед ней лежат какие-то записи, в которых она периодически делает пометки карандашом. 
 
	]];
 
	dlg = "char_svetlova_dlg";
 
};
 
 
char_svetlova_dlg = dlg {
 
	var {
 
		state = 0;
 
		flag_help = false;
 
		flag_explain = false;
 
	};
 
	nam = "Екатерина Светлова";
 
	disp = "Екатерина Светлова";
 
	entered = function(s)
 
		if (s.state == 0) then
 
			psub('first_meeting');
 
			return [[
 
				Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: _"Добрый день. Должна признать, вы всех нас знатно напугали, господин Дрейк. Винсент сказал, что вы зайдете. Что ж, я думаю вы будете очень полезны станции. Правда Винсент и Моро решили вас пока к субмаринам не пускать, что несколько помешает моим планам на вас. Впрочем я попробую их уговорить - это будет полезно и нам и вам, как и мое предложение в целом -- я знаю, что вы ищете своего отца -- Даркстар мне и это сказал, -- а он последнее время занимался одной легендой -- он хотел найти первый город навьяров, или как-то так. К сожалению, когда он отправился в эту экспедицию, он почти не оставил нам материалов - все навьярские карты, переводы - они только у него и поэтому мы не можем проследовать за ним. ^
 
				Адриан его очень торопил, поэтому Уильям не успел толком даже план экспедиции для нас обрисовать"_. 
 
			]];
 
		elseif (s.state == 1) then
 
			psub('ryveerr_on_steal');
 
			return [[
 
				Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Ну как? Поговорили с Ривеерром?"
 
			]];
 
		else
 
			psub('generic');
 
			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;
 
	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;
 
			back(); 
 
		]]};
 
		{"Я прибыл сюда искать своего отца, а не решать проблемы полуразумных рыбней", [[
 
			Екатерина встает из-за стола, после чего садится обратно. Кажется, ваш комментарий ее серьезно разозлил. Затем она достает из ящика небольшой блестящий диск - примерно 10 сантиметров диаметром: "Эти полуразумные рыбни, как вы выразились, могут сделать вот такое". ^
 
			Вы берете из рук Екатерины диск и внимательно рассматриваете его. На первый взгляд ничего необычного - блестящий диск, бесполезное украшение. Вдоль внешней кромки его вы видите какие-то цветные полосы - очень ровно нанесенные, но в них вы тоже ничего необычного не видите. Светлова продолжает: "Посмотрите на него под микроскопом и вы поймете о чем я. Да, вы можете забрать его. Возможно это, как и то, о чем я вас прошу, поможет вам узнать где сейчас находится Уильям".
 
		]], code [[ put(item_navjiarr_disk, pl); ]]};
 
		{tag = "generic"};
 
		{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');]]};
 
		{"Я пойду", [[
 
			Светлова возвращается ко своим бумагам: "До встречи"
 
		]], code [[ back(); ]]};
 
		{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(); ]]};
 
	};
 
};
 
 
char_anna_atlantis = npc {
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
	dsc = [[
 
		{Анна Рэдклифф} стоит возле одного из столов, рассматривая какую-то схему. 
 
	]];
 
	dlg = "char_anna_atlantis_dlg";
 
};
 
 
char_anna_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
	};
 
};
 
 
char_learr_atlantis = npc {
 
	var {
 
		offended = false;
 
	};
 
	nam = "Леарр";
 
	__where__ = 'atl_oculus_lab_c';
 
	dsc = function(s)
 
		-- TODO Описание Леарр меняется в зависимости от комнаты, где она находится
 
		return [[
 
			{Леарр} стоит, опершись одной рукой на стол. Другой рукой она активно жестикулирует, рассказывая что-то.
 
		]];
 
	end;
 
	dlg = "char_learr_atlantis_dlg";
 
};
 
 
char_learr_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = function(s)
 
		if (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 (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 [[ atl_iyh_state = 6; back(); ]]};
 
		{"Лучше я отправлюсь один", [[
 
			"Нельзя-так. Священное-место-храм. Другие-yhe-na'vji'a'rr не-одобрят". 
 
		]]};
 
	};
 
};
 
 
char_aikerjarr = npc {
 
	nam = "Аикерьярр";
 
	dsc = function(s)
 
		return [[
 
			{Аикерьярр} неподвижно стоит у одного из столов. 
 
		]];
 
	end;
 
	dlg = "char_aikerjarr_dlg";
 
};
 
 
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 [[ atl_iyh_state = 6; back(); ]]};
 
	};
 
};
 
 
char_ryveerr = npc {
 
	nam = "Ривеерр";
 
	dsc = function(s)
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Ривеерр} что-то рассказывает. 
 
			]];
 
		else 
 
			return [[
 
				{Ривеерр} иногда прерывает рассказ Леарр, добавляя что-то. 
 
			]];
 
		end;
 
	end;
 
	dlg = "char_ryveerr_dlg";
 
};
 
 
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 = npc {
 
	nam = "Джинхэй Лун";
 
	dsc = function(s)
 
		-- TODO описание должно мелянться, если Леарр не здесь
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Джинхэй Лун} стоит рядом с блокнотом и делает записи по ходу рассказа навьяра. 
 
			]];
 
		else
 
			return [[
 
				{Джинхэй Лун} стоит рядом с блокнотом и делает записи по ходу рассказа навьяров. 
 
			]];
 
		end;
 
	end;
 
	dlg = "char_loong_dlg";
 
};
 
 
char_loong_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Джинхэй Лун";
 
	disp = "Джинхэй Лун";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
	};
 
};
 
 
char_winterlight = npc {
 
	nam = "Сильвия Уинтерлайт";
 
	dsc = function(s)
 
		-- TODO описание должно мелянться, если Леарр не здесь
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Сильвия Уинтерлайт} внимательно слушает навьяра, иногда что-то спрашивая. 
 
			]];
 
		else
 
			return [[
 
				{Сильвия Уинтерлайт} внимательно слушает навьяров, иногда что-то спрашивая. 
 
			]];
 
		end;
 
	end;
 
	dlg = "char_winterlight_dlg";
 
};
 
 
char_winterlight_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Сильвия Уинтерлайт";
 
	disp = "Сильвия Уинтерлайт";
 
	entered = function(s)
 
		psub("generic");
 
		if (atl_iyh_state == 4) then
 
			pon("legend");
 
		end;
 
		return [[
 
			Сильвия оборачивается к вам: "Приветствую, что вы хотели?"
 
		]];
 
	end;
 
	phr = {
 
		{tag="generic"};
 
		{tag="legend", false, "Ты можешь рассказать мне навьярскую легенду о скате?", [[
 
			Сильвия кажется заинтересованной: "У навьяров их много, какую конкретно вы хотите услышать?"
 
		]], code [[ psub("which_legend"); ]]};
 
		{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 = npc {
 
	nam = "Джек Райт";
 
	dsc = function(s)
 
		if (where(char_jack_wright_atlantis) == atl_ignis_hall_a) then
 
			return [[
 
				{Джек Райт} сидит рядом и о чем-то с ней разговаривает. 
 
			]];
 
		else 
 
			return [[
 
				{Джек Райт}
 
			]];
 
		end;
 
	end;
 
	dlg = "char_jack_wright_atlantis_dlg";
 
};
 
 
char_jack_wright_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = 'char_jack_wright_atlantis_dlg';
 
	entered = function(s)
 
		if (state == 0) then
 
			psub("business_or_no");
 
			return [[
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 [[
 
			char_learr_atlantis.offended = true;
 
			walk("atlantis_oculus_main_corridor");
 
		]]};
 
		{tag="learr"};
 
		{"Рад знакомству, Леарр. Я Дэвид Дрейк", [[
 
			Леарр спрашивает вас: _"Вы-Дрейк? Вы-из-рода-Уильям-Дрейк?"_ Вам кажется, вы чувствуете удивление, хотя интонации в словах существа вам совершенно чужды. 
 
		]], code [[ psub('drake') ]]};
 
		{"Ты живешь на станции?", [[
 
			Леарр рассказывает: _"Да. Я и Ry'vee'rr здесь-некоторое-время-живем"_.
 
		]]};
 
		{"Ты странно говоришь", [[
 
			Леарр отвечает: _"Я плохо-говорю ваш-необычный-язык. Он Много-отдельных-бессмысленных-слов-содержит. Наш-язык сильно-проще-есть. Одно-слово почти-весь-смысл-включает"_.
 
		]]};
 
		{tag="drake"};
 
		{"Да, я его сын. Ты видела его?", [[
 
			Головные плавники Леарр окрашиваются в сине-зеленый цвет. Она отвечает: _"Я крайне-знакомству-рада. Уильям-Дрейк наши-легенды-изучал-наши-древние-знания-искал. Я у-него-получилось-думаю. Но он исчез. Никто где-он-знает"_. Головные плавники окрасились в темносерый, потом Леарр продолжила: _"Я вы-продолжите-его-дело-надеюсь"_
 
		]], code [[ psub('follow_drake') ]]};
 
		{tag="follow_drake"};
 
		{"Я прибыл чтобы найти его", [[
 
			Плавники Леарр снова окрашиваются сине-зененым: _"Прекрасно-будет. Вы его-и-наши-древние-знания-найдете. Я вам-как-смогу-помогу. Я идти-должна"_. Леарр уходит, а вы остаетесь одни в коридоре.
 
		]], code [[ walk("atlantis_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) then
 
			walkin('dlg_learr_suit');
 
		elseif (s.faint) then
 
			walkin('atl_iof_learr_faint_alone');
 
		else		
 
			return [[
 
				Некогда разговаривать. 
 
			]];
 
		end;
 
	end;
 
};
 
 
dlg_learr_suit = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = [[
 
		Леарр вопросительно смотрит на вас
 
	]];
 
	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'
 
	};
 
};
 
 
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 = [[
 
		Огромный круглый зал охвачен пожаром. Освещение не работает. Клубы черного дыма заволакивают помещение, затрудняя ваши перемещения. Вы находитесь в северной части зала у самого его края. 
 
	]];
 
	entered = 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;
 
		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_nw2");
 
		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 = "Атлантида, Игнис, служебное помещение";
 
	way = {
 
		kh_vroom("В главный зал", function(s)
 
			if (atl_iof_time_state.pl_safe) then
 
				return "atl_iof_main_ne3";
 
			else
 
				pr("Я не вернусь туда без снаряжения");
 
				return false;
 
			end;
 
		end);
 
	};
 
};
 
 
atl_iof_outside = room {
 
	nam = "Атлантида, Игнис";
 
	iof = true;
 
	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);
 
		end;
 
		atl_iof_completed = true;
 
	end;
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atlantis_luna_drake_room");
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_darkstar_dlg");
 
	};
 
	
 
};
 
\ No newline at end of file
atlantis_looking_for_clues.lua
Show inline comments
 
new file 100644
 
atl_lfc_darkstar_dlg = dlg {
 
	var {
 
		total_limit = 3;
 
		limit = 3;
 
		q2_states = 0;
 
	};
 
	nam = "Винсент Даркстар";
 
	disp = "Винсент Даркстар";
 
	entered = function(s)
 
		psub("q1");
 
		s.limit = 3;
 
		q2_states = 0;
 
		if (atl_jack_in_party) then
 
			pon("random_lie", "wright_said");
 
			poff("random_true");
 
		else
 
			poff("random_lie", "wright_said");
 
			pon("random_true");
 
		end;
 
		return [[
 
			Винсент Даркстар сидит за столом в своем кабинете. Он приглашает вас сесть напротив, а охранников просит покинуть помещение. ^
 
			Как только они выходят, Даркстар достает из под стола папку с какими-то бумагами и начинает спрашивать вас: "Где вы были, когда начался пожар?"
 
		]];
 
	end;
 
	phr = {
 
		{tag="q1"};
 
		{"Вы меня подозреваете?", [[
 
			"Отвечайте на поставленный вопрос. Это не имеет значения".
 
		]]};
 
		{always=true,"Мы с Леарр разговаривали в зале А", [[
 
			"Хорошо. Дальше. Заметили ли вы что-то необычное в секции?"
 
		]], code [[ psub("q2"); ]]};
 
		{always=true,"Я не хочу отвечать", [[
 
			"Нет проблем. Следующий вопрос. Заметили ли вы что-то необычное в секции?"
 
		]], code [[
 
			atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			psub("q2");
 
		]]};
 
		{tag="q2"};
 
		{always=true,"Больше ничего.", function(s)
 
			if (atl_lfc_darkstar_dlg.q2_states < 2) then
 
				atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			end;
 
			pr [[
 
				"Хорошо, идем дальше. 
 
			]];
 
			if (atl_jack_in_party) then
 
				psub("q3_1");
 
				return [[
 
					Что делал в это время ваш друг, Джек?"
 
				]];
 
			else
 
				psub("q3_2");
 
				return [[
 
					Кроме вас кто-нибудь еще был в секции?"
 
				]];
 
			end;
 
			
 
		end};
 
		{always=true,"Двери в залы B и C не работали.", [[
 
			"Техники..."
 
		]], code [[ 
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{always=true,"Один из электрощитов не был закрыт.", [[
 
			"Обычное дело на Атлантиде. Наши техники порой позволяют себе невероятную неаккуратность".
 
		]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{always=true,"В зале А не работали электроприборы.", [[
 
			"Это уже совсем ни в какие ворота не лезет".
 
		]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{tag="q3_1"};--Что делал в это время ваш друг, Джек?
 
		{always=true,"Он вышел в главный зал, чтобы не мешать нам", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{always=true,"Он был с нами", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{always=true,"Не помню", function(s)
 
			atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{tag="q3_2"};--Кроме вас с Леарр кто-нибудь еще был в секции?
 
		{always=true,"Я никого не видел", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{always=true,"Не помню", function(s)
 
			atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
			else
 
				walk("atl_ifc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
			end;
 
		end};
 
		{tag="i1"};
 
		{always=true,"Поговорить с Леарр.", function(s)
 
			if (atl_iof_learr_dead) then
 
				if (atl_lfc_darkstar_dlg.total_limit > 1) then
 
					psub("i2_1");
 
					return [[
 
						"Почему вы оставили Леарр там?"
 
					]];
 
				else
 
					psub("i3");
 
					return [[
 
						"Откуда вы узнали про скафандры?"
 
					]];
 
				end;
 
			else
 
				psub("i2_2");
 
				return [[
 
					"Почему вы спасли Леарр?"
 
				]];
 
			end;
 
		end;};
 
		{always=true,"Посмотреть Игнис.", [[
 
			"Вы знали, что Леарр там?"
 
		]], code [[ psub("i2_3"); ]]};
 
		{always=true,"Это имеет значение?", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{tag="i2_1"};
 
		{always=true,"У меня не было выбора", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Вам стоит еще подумать".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{always=true,"Я рассчитывал вернуться за ней позже", [[
 
			"Вы идиот", - Даркстар встает из-за стола и начинает ходить по комнате. Вы явно вывели его из себя. Через некоторое время он успокаивается и садится на место.
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{always=true,"С чего я должен был думать об этом чудище?", [[
 
			_"Выкинуть бы вас за борт. Без скафандра Жаль, что мы не ,,чудища'', как вы выражаетесь"_, - Даркстар встает из-за стола и начинает ходить по комнате. Вы явно вывели его из себя. Через некоторое время он успокаивается и садится на место.
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 3;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{tag="i2_2"};
 
		{always=true,"Я не мог оставить ее умирать", [[
 
			"Откуда вы узнали про скафандры?"
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{tag="i2_3"};
 
		{always=true,"Светлова говорила, что она может быть в Игнисе", [[
 
			"Откуда вы узнали про скафандры?"
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{always=true,"Нет", [[
 
			"Откуда вы узнали про скафандры?"
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{always=true,"Это имеет значение?", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования".
 
		]], code [[
 
			psub("i3");
 
		]]};
 
		{tag = "i3"};
 
		{always=true,tag="wright_said", "Джек Райт сказал", [[
 
			"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
		]], code = [[
 
			walk("atl_ifc_darkstar_interlude");
 
		]]};
 
		{always=true,"Леарр сказала", [[
 
			"Она не могла этого знать", - Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "А я терпеть не могу, когда мне врут".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{always=true,tag="random_lie", "Я случайно наткнулся", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Я думаю вам стоит еще подумать".
 
		]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_ifc_non_coop');
 
		]]};
 
		{always=true,tag="random_true", "Я случайно наткнулся", [[
 
			"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
		]], code = [[
 
			walk("atl_ifc_darkstar_interlude");
 
		]]};
 
		
 
	};
 
};
 
 
atl_ifc_darkstar_interlude = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		Винсент раскрывает папку лежающую на столе и раскладывает перед собой несколько бумаг: _"У нас есть основания полагать, что события в Игнисе - следствие саботажа. Мы считаем, что саботажник не рассчитывал, что в секции в момент пожара будет кто-либо - обычно в это время в Игнисе никого нет. Должен сказать, на станции уже давно некоторые выступают за сворачивание проекта и возвращение на поверхность. Вы прекрасно понимаете, что мы не можем просто так отправить их на поверхность - их слишком много, и если они начнут болтать - существование станции будет раскрыто. А нам этого не хотелось бы"_. Внезапно раздается звонок. Даркстар поднимает трубку телефона и отрывисто бросает туда: "Сейчас буду". Он встает и направляется к выходу, при этом просит вас: "Ждите здесь, я не надолго".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_ifc_darkstar_office");
 
	};
 
};
 
 
atl_ifc_darkstar_office = room {
 
	nam = "Атлантида, Доминус, кабинет начальника СБ";
 
	dsc = [[
 
		Кабинет начальника службы безопасности почти пуст - здесь нет ничего кроме массивного металлического стола(судя по всему - бронированного) в центре и кресла перед ним. 
 
	]];
 
	entered = function()
 
	end;
 
	life = function()
 
	end;
 
	way = {
 
		kh_vroom("В коридор", function()
 
			pr("Дверь заперта");
 
			return false;
 
		end);
 
	};
 
	obj = {
 
		'atl_darkstar_papers'
 
	};
 
};
 
 
atl_darkstar_papers = obj {
 
	nam = "atl_darkstar_papers";
 
	dsc = [[
 
		На столе лежит оставленная Винсентом {папка с бумагами}.
 
	]];
 
	act = function(s)
 
		walk("atl_ifc_darkstar_interlude_2")
 
		return [[
 
			Вы просматриваете бумаги - это список подозреваемых в саботаже. Здесь присутствует большая часть обитателей Атлантиды. На отдельном листе записаны несколько моментов: во-первых, Даркстар не подозревает никого из руководства, поскольку каждый из них напрямую заинтересован в развитии станции. Во-вторых, к вашему удивлению, он не подозревает вас, поскольку саботажник, судя по всему, был хорошо знаком с устройством системы электроснабжения Игниса. Основными подозреваемыми он считает Мишеля Леруа, Леонарда Голдмана и Чарльза Джонса. Все они сторонники закрытия проекта и обладают достаточными знаниями, чтобы устроить подобный саботаж. ^
 
			Вы слышите звук открывающегося замка и поспешно возвращаете папку в ее изначальное положение. 
 
		]];
 
	end;
 
};
 
 
atl_ifc_darkstar_interlude_2 = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		В комнату входит Винсент Даркстар и садится на свое место. Вам он говорит: "С учетом цели саботажника, я предполагаю, что следующая атака будет направлена на вывод из строя субмарин. В любом случае - я прошу вас никому не говорить о том, что я вам тут рассказал. В случае необходимости я вас вызову. Вы свободны".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_dom_security_office");
 
	};
 
};
 
 
atl_ifc_non_coop = room {
 
	nam = "Винсент Даркстар";
 
	dsc = [[
 
		После этого он снимает телефонную трубку и отдает туда приказ: "Заберите Дрейка". ^
 
		В комнату входят два стражника и сопровождают вас в вашу комнату.
 
	]];
 
	obj = {
 
		kh_vway("Продолжить", "{Продолжить}", function()
 
			if (atl_lfc_darkstar_dlg.total_limit < 1) then
 
				return "atl_ifc_game_over";
 
			else
 
				return "atl_lfc_waiting";
 
			end;
 
		end);
 
	};
 
};
 
 
atl_ifc_game_over = room {
 
	nam = "Игра окончена";
 
	disp = "Игра окончена";
 
	dsc = [[
 
		Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Вы останетесь под стражей до тех пор, пока мы не найдем саботажника. После этого, мы решим, что делать с вами".^
 
		Вам ничего не остается, кроме как ждать. Через несколько дней стражники сопровождают вас на Левиафан. Там вас запирают в одной из кают. Несколько недель Левиафан полным ходом движется в неизвестном направлении. Наконец, вас выпускают из каюты. Один из охранников сообщает вам: "В нескольких милях к северу вдоль побережья находится небольшой городок. Оттуда вы сможете добраться куда вам угодно. Мы дадим вам немного еды и достаточно денег, чтобы вы могли добраться домой".^
 
		Вы забираете переданные вам вещи и через несколько мгновений Левиафан скрывается под поверхностью воды. Никаких средств для возвращения на Атлантиду у вас не остается и, скорее всего, вы никогда не узнаете что стало с вашим отцом.
 
	]];
 
};
 
 
atl_lfc_waiting = room {
 
	nam = "Атлантида, Луна, ваша комната";
 
	dsc = [[
 
		Охранники уходят и запирают за собой дверь. Вы остаетесь один, запертый в собственной каюте. Через некоторое время вы слышите голос Даркстара по радио: "Отдохните. Завтра мы попробуем поговорить еще раз".
 
	]];
 
	obj = {
 
		vway("Продолжить", "{Продолжить}", "atl_lfc_waiting");
 
	};
 
};
 
\ 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"
 
 
-- Код и ядро
 
dofile "utils.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_intro.lua"
 
dofile "atlantis_ignis_on_fire.lua"
 
dofile "atlantis_looking_for_clues.lua"
 
dofile "navjiarr_settlement.lua"
 
dofile "navjiarr_hostile_settlement.lua"
 
-- Часть 3
 
-- Часть 4
 
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"
 
 
--TODO представить все дисплеи картинками
 
--TODO описания локаций должны изменяться в зависимости от посещения их днем или ночью
 
--TODO больше Flavour-textа
 
 
global {
 
	warehouse18_found = false;
 
	warehouse32_found = false;
 
	dock_found = false;
 
	leviathan_discovered = false;
 
	atlantis_found = false;
 
	
 
	rel_phaetlarr = 0;
 
	rel_walter = 0;
 
	rel_learr = 0;
 
	rel_anna = 0;
 
	rel_jack = 0;
 
	
 
};
 
 
pl = player {
 
	nam = "player";
 
	disp = "Дэвид Дрейк";
 
	where = 'port';
 
	hitpoints = 10;
 
	obj = {'item_umbrella', 'item_charts', 'item_note_1', 'item_money', 
 
	};
 
	-- party array. Should be empty on start
 
	party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]};
 
	companion = nil;
 
	money = 200;
 
	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');
 
	}
 
};
 
 
demo_end = room {
 
	nam = "demo_end";
 
	hideinv = true;
 
 	dsc = [[
 
		Вы встаете за штурвал "Левиафана". Уверенным движением руки вы включаете насосы. Резервуары заполняются водой и субмарина опускается вниз. Еще одним движением вы включаете двигатели. "Левиафан" плавно сдвигается с места. Через несколько часов вы выходите в открытое море. Еще раз сверившись с картой, вы направляетесь к месту, отмеченному на ней. 
 
		
 
		*** Конец предварительной демонстрации ***
 
	]];
 
};
 
 
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();
 
	---game init
 
	pl.where = intro;
 
	---debug
 
	atl_nih_init();
 
	pl.where = atl_dom_main_near_aqua;
 
	-- pl.where = warehouse_32;
 
	-- pl.where = w32_mgr;
 
	-- put(item_toolbox, pl);
 
	-- 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)