Changeset - cc071a887ee2
[Not reviewed]
default
0 5 1
Silverwing - 8 years ago 2016-05-28 10:03:43

ignis expanded
6 files changed with 906 insertions and 152 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -12,6 +12,9 @@ global {
 
	
 
	atl_lfc_state = 0;
 
	atl_lfc_panic = 0;
 
	atl_lfc_hallrooms = 0;
 
	atl_lfc_electric = 0;
 
	atl_lfc_board = 0;
 
	
 
	atl_rep_moreau = 0;
 
	atl_rep_darkstar = 0;
 
@@ -727,6 +730,9 @@ atl_oculus_lab_b = room {
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
	obj = {
 
		"char_winterlight"
 
	};
 
};
 
 
atl_oculus_lab_c = room {
 
@@ -767,7 +773,7 @@ atl_dom_lift = room {
 
			if (atl_dom_lift.state == 0) then
 
				return "atl_dom_main_c";
 
			else
 
				return "atl_ignis_main_hall";
 
				return "atl_ignis_mh_center";
 
			end;
 
		end);
 
	};
 
@@ -796,12 +802,12 @@ atl_lift_lever = obj {
 
	end;
 
};
 
 
atl_ignis_main_hall = room {
 
--[[atl_ignis_main_hall = room {
 
	nam = "Атлантида, Игнис, центральный зал";
 
	dsc = [[
 
	dsc = [ [
 
		Огромный круглый зал. Свет в зале выключен и сквозь стеклянный купол, лишь в некоторых местах поддерживаемый металлическими конструкциями вы видите игру света на поверхности океана, проплывающих внизу, рядом и выше рыб. 
 
		В центре зала расположена шахта лифта, а вдоль стен расположены четыре шлюзовых двери, три из которых ведут в другие залы Игниса, а один - в служебное помещение. От лифтовой шахты к краям зала ведут четыре тропинки, а пространство между ними занято где-то стеллажами с различными предметами, где-то установлены столики с удобными стульями, скамейки. 
 
	]];
 
	] ];
 
	way = {
 
		kh_vroom("В лифт", "atl_dom_lift");
 
		kh_vroom("В зал A", "atl_ignis_hall_a");
 
@@ -818,86 +824,7 @@ atl_ignis_main_hall = room {
 
			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;
 
};
 
};]]
 
 
--[[
 
Персонажи
 
@@ -930,9 +857,17 @@ char_svetlova = npc {
 
char_anna_atlantis = npc {
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
	dsc = [[
 
		{Анна Рэдклифф} стоит возле одного из столов, рассматривая какую-то схему. 
 
	]];
 
	dsc = function(s)
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Анна Рэдклифф} внимательно слушает навьяра, иногда что-то спрашивая. 
 
			]];
 
		else
 
			return [[
 
				{Анна Рэдклифф} внимательно слушает навьяров, иногда что-то спрашивая. 
 
			]];
 
		end;
 
	end;
 
	dlg = "char_anna_atlantis_dlg";
 
};
 
 
@@ -996,18 +931,9 @@ char_loong = npc {
 
 
char_winterlight = npc {
 
	nam = "Сильвия Уинтерлайт";
 
	dsc = function(s)
 
		-- TODO описание должно мелянться, если Леарр не здесь
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
			return [[
 
				{Сильвия Уинтерлайт} внимательно слушает навьяра, иногда что-то спрашивая. 
 
			]];
 
		else
 
			return [[
 
				{Сильвия Уинтерлайт} внимательно слушает навьяров, иногда что-то спрашивая. 
 
			]];
 
		end;
 
	end;
 
	dsc = [[
 
		{Сильвия Уитерлайт} стоит возле одного из столов, рассматривая какую-то схему. 
 
	]];
 
	dlg = "char_winterlight_dlg";
 
};
 
 
@@ -1046,7 +972,7 @@ char_legrand = npc {
 
char_radcliffe_atlantis = npc {
 
	nam = "Уолтер Рэдклифф";
 
	dsc = [[
 
		{Уолтер Рэдклифф} стоит, навалившись на стену и рассматривает вас. 
 
		{Уолтер Рэдклифф} стоит, навалившись на стену. 
 
	]];
 
	dlg = "char_radcliffe_atlantis_dlg";
 
};
atlantis_dlg.lua
Show inline comments
 
@@ -17,22 +17,73 @@ char_darkstar_dlg = dlg {
 
char_moreau_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Фредерик Моро";
 
	disp = "Фредерик Моро";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Фредерик Моро сидит за столом, просматривая какие-то бумаги и делая заметки. Заметив, что вы вошли, он кладет руки на стол и приветствует вас: "Добро пожаловать на Атлантиду. Мы крайне удивлены вашим прибытием, однако, я надеюсь, сможем помочь вам найти вашего отца. Вы прекрасно понимаете, что сейчас мы не можем просто взять и отпустить вас. Что произойдет, если на поверхности узнают о существовании станции? " - он делает небольшую паузу, после чего продолжает: "Да ничего хорошего. Станция и ее технологии будут использованы как оружие".^
 
				Моро подходит к книжной полке и берет какую-то книгу. Вернувшись за стол, он раскрывает ее и возвращается к рассказу: "Ваш отец и все мы, создавали эту станцию совершенно не для этого. Да, изначально это был эксперимент - подводные корабли, которым не страшны бури, могли оказаться сильнейшим преимуществом против конкурентов Вест-Хэйвен Транс-Оушен. Но все изменилось, когда мы встретили навьяров". 
 
			]];
 
		else
 
			psub("generic");
 
			
 
		end;		
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag="first_meeting", empty = code[[ psub("generic"); ]]};
 
		{"Я не имею намерения раскрывать существование Атлантиды", [[
 
			"Рад это слышать. Но нам нужно больше чем ваши слова".
 
		]]};
 
		{"Навьяров?", [[
 
			_"Na'vji'a'rr - с их языка это переводится, как ,,Живущие в глубинах''. Если вы еще не были в окулусе, то скорее всего вы их не видели. Эти существа - полурыбы полулюди. О них, конечно, вам лучше с учеными в том же окулусе поговорить"_.
 
		]]};
 
		{"И как они повлияли на ваши планы?", [[
 
			_"Кардинально. Нельзя сказать, что наши отношения сразу наладились - первые встречи были, мягко говоря, напряженными. Но через какое-то время нам удалось наладить контакт. Тогда началось строительство станции - мы еще не думали об автономности или последствиях. Мы просто хотели изучить этих рыбней получше. Уже позже мы смогли достичь автономности благодаря гениальным идеям Светловой - тогда же были созданы Наутилус и Энтерпрайз - наши субмарины"_.
 
		]]};
 
		{"Почему мой отец покинул станцию?", [[
 
			_"Он был увлечен одной легендой. Древний навьярский город. Сложно представить, что эти примитивные существа когда-то обладали знаниями и культурой превосходящими наши, но мы нашли несколько предметов, доказывающих это. К сожалению, Уильям не оставил почти никаких сведений о том, куда он направился, поэтому нам остается только догадываться"_.
 
		]]};
 
		{"Вы предпринимали попытки найти Надежду?", [[
 
			_"Вынужден признать, что нет. Вы сами понимаете, что искать субмарину, отправившуюся, фактически, неизвестно куда, это все равно что искать иголку в стоге сена, а мы не можем позволить себе рисковать Энтерпрайзом и Наутилусом - это наши единственные средства связи с внешним миром"_.
 
		]]};
 
		{"Как получилось, что Левиафан остался на поверхности?", [[
 
			_"Мы не успели его достроить. Или по-крайней мере, по какой-то причине считали так. Нам не хватило ресурсов на то, чтобы достроить его и полностью снарядить, тогда Дрейк с Райтом решили спрятать его. Как оказалось - не слишком надежно"_.
 
		]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа", [[
 
			"С чего вы взяли это? Разве Даркстар не просил вас никому не говорить? Вы понимаете, что будет, если начнется паника? Больше прошу об этом не говорить. Ни со мной, ни с кем-либо еще. Кроме Даркстара".
 
		]], code [[
 
			atl_rep_moreau = atl_rep_moreau - 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
		]]};
 
		{tag="ignis_what", false, "Почему начался пожар в Игнисе", [[
 
			"Сложно сказать. Но вы не волнуйтесь. Наши инженеры и служба безопасности занимаются этим".
 
		]]};
 
		{"Я пойду", [[
 
			Моро кивает головой и прощается с вами: "Если вам что-то понадобится - не стесняйтесь, заходите".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
char_svetlova_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_sabotage = false;
 
		lfc_dialog = false;
 
		flag_help = false;
 
		flag_explain = false;
 
	};
 
@@ -52,6 +103,16 @@ char_svetlova_dlg = dlg {
 
			]];
 
		else
 
			psub('generic');
 
			
 
			if (atl_lfc_state ~= 1) then
 
				poff('sabotage', 'ignis_what');
 
			end;
 
			
 
			if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
				s.lfc_dialog = true;
 
				pon('sabotage', 'ignis_what');
 
			end;
 
			
 
			if (atl_iyh_state == 2) then
 
				pon("hard_to_understand");
 
			end;
 
@@ -112,6 +173,37 @@ char_svetlova_dlg = dlg {
 
			Вы берете из рук Екатерины диск и внимательно рассматриваете его. На первый взгляд ничего необычного - блестящий диск, бесполезное украшение. Вдоль внешней кромки его вы видите какие-то цветные полосы - очень ровно нанесенные, но в них вы тоже ничего необычного не видите. Светлова продолжает: "Посмотрите на него под микроскопом и вы поймете о чем я. Да, вы можете забрать его. Возможно это, как и то, о чем я вас прошу, поможет вам узнать где сейчас находится Уильям".
 
		]], code [[ put(item_navjiarr_disk, pl); ]]};
 
		{tag = "generic"};
 
		{tag="sabotage", false, "Даркстар считает, что причиной пожара в Игнисе был саботаж. Что вы об этом думаете?", function(s)
 
			if (atl_iof_learr_dead) then
 
				atl_rep_darkstar = atl_rep_darkstar - 1;
 
				return [[
 
					"Даркстар просил вас ничего об этом не говорить. Разговор окончен".
 
				]];
 
			else
 
				s.lfc_sabotage = true;
 
				atl_rep_svetlova = atl_rep_svetlova + 1;
 
				return [[
 
					"Даркстар просил вас ничего об этом не говорить, но вам ведь все равно интересно, правда? Тогда слушайте. Однозначно, саботажник - кто-то из сторонников закрытия станции. Если хотите про них больше узнать - поговорите с Мишелем Леруа. Еще, если вы собираетесь этим серьезно заняться, вам стоит поговорить с Уолтером Рэдклиффом".
 
				]];
 
			end;
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", function(s)
 
			if (s.lfc_sabotage) then
 
				return [[
 
					"Вы же только что сами сказали - саботаж".
 
				]];
 
			elseif (atl_iof_learr_dead) then
 
				return [[
 
					"Мне кажется, это не ваше дело. И не мое. Этим занимается служба безопасности".
 
				]];
 
			else
 
				poff("sabotage");
 
				psub("ignis_sabotage");
 
				return [[
 
					"Я думаю вы и сами прекрасно знаете. Может расскажете?"
 
				]];
 
			end;
 
		end};
 
		{tag="hard_to_understand", false, "Я поговорил с Аикерьярром, только я вообще ничего не понял из его слов[Кратко пересказать диалог с Аикерьярром]", [[
 
			Екатерина откладывает бумаги в сторону и откидывается на спинку стула. Через некоторое время она говорит: "Интересно. Аикерьярр упорно отрицает причастность Ираафаанотра к краже реликвии. Что говорит Ривеерр по этому поводу?"
 
		]], code [[ char_svetlova_dlg.state = 2; psub('ryveerr_on_steal');]]};
 
@@ -121,6 +213,21 @@ char_svetlova_dlg = dlg {
 
		{"Я пойду", [[
 
			Светлова возвращается ко своим бумагам: "До встречи"
 
		]], code [[ back(); ]]};
 
		{tag = "ignis_sabotage"};
 
		-- сказать про саботаж или нет
 
		{"Саботаж", function(s)
 
			psub("generic");
 
			atl_rep_svetlova = atl_rep_svetlova + 1;
 
			return [[
 
				"Даркстар просил вас ничего об этом не говорить, но вам ведь все равно интересно, правда? Тогда слушайте. Однозначно, саботажник - кто-то из сторонников закрытия станции. Если хотите про них больше узнать - поговорите с Мишелем Леруа. Еще, если вы собираетесь этим серьезно заняться, вам стоит поговорить с Уолтером Рэдклиффом".
 
			]];
 
		end};
 
		{"Понятия не имею", [[
 
			"Очень жаль. Мне действительно интересно".
 
		]], code [[
 
			psub("generic");
 
		]]};
 
		
 
		{tag = "ryveerr_on_steal"};
 
		{tag = "ryveerr_spoken", false, "Ривеерр рассказал о нападении на храм. Он уверен, что именно жители Ираафаанотра украли ее. И он с уверенностью говорит, что они готовы обменяться реликвиями обратно. То есть реликвия Ираафаанотра, судя по всему, находится в Дипатреанотре. ", [[
 
			Светлова задумчиво потирает лоб: "Хм. Тогда мы в тупике".
 
@@ -156,12 +263,49 @@ char_anna_atlantis_dlg = dlg {
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами стоит молодая женщина лет двадцати-пяти-тридцати. Каштановые волосы ниспадают на плечи. Зеленые глаза внимательно следят за движениями навьяра, с которым она разговаривает. Заметив вас, она просит навьяра подождать и обращается к вам: "Приветствую, я Анна Рэдклифф". 
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк. Очень приятно", [[
 
			Анна улыбается: "Вы что-то хотели?"
 
		]]};
 
		{tag="generic"};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе - следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			rel_walter = rel_walter - 1;
 
			rel_anna = rel_anna - 1;
 
			return [[
 
				Анна в ужасе смотрит на вас: "Вы серьезно? Ну да... Оборудование здесь хорошее, мне Уолтер не раз рассказывал насколько здесь все надежное. Не знаю, что и думать... А если этот псих вздумает поджечь еще что-то?"
 
			]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[
 
			"Практически ничего. Поговорите с Даркстаром или Райтом. Можете еще Уолтера спросить".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"До встречи"
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
@@ -459,12 +603,48 @@ char_loong_dlg = dlg {
 
	nam = "Джинхэй Лун";
 
	disp = "Джинхэй Лун";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Немолодой китаец внимательно смотрит на вас через стекла старых очков. Он приветствует вас: "Добро пожаловать, господин, на нашу станцию. Я Джинхэй Лун, занимаюсь языком na'vji'a'rr-ов".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Временная затычка диалога
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag="first_meeting"};
 
		{"Na'vji'a'rr-ов?", [[
 
			"Na'vji'a'rr - дословно - разумный, живущий снизу, то есть на дне океана. Вы наверняка их уже видели здесь на станции - такие чешуйчатые, высокие".
 
		]]};
 
		{"Я Дэвид Дрейк, очень приятно", [[
 
			Джинхэй кланяется вам в ответ и говорит: "Очень рад вас видеть. Ваш отец построил Атлантиду, только чтобы мы могли изучать na'vji'a'rr-ов и общаться с ними. Но вы наверняка пришли по делу. Что вы хотите?"
 
		]], };
 
		{tag="generic"};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе - результат саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			return [[
 
				"Если это и так, то надо не на каждом углу кричать, а предоставить сведения Даркстару или Моро. Они найдут, как решить проблему".
 
			]];
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", [[
 
			"Об этом вам лучше узнать у Райта или Даркстара. Я мало что знаю".
 
		]]};
 
		{always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
	};
 
};
 
 
@@ -475,19 +655,53 @@ char_winterlight_dlg = dlg {
 
	nam = "Сильвия Уинтерлайт";
 
	disp = "Сильвия Уинтерлайт";
 
	entered = function(s)
 
		psub("generic");
 
		if (atl_iyh_state == 4) then
 
			pon("legend");
 
		end;
 
		return [[
 
			Сильвия оборачивается к вам: "Приветствую, что вы хотели?"
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		if (s.state == 0) then
 
			psub("first_meeting");
 
			return [[
 
				Женщина лет тридцати-пяти-сорока стоит, склонившись над картой и внимательно изучает ее. Увидев вас, она отвлекается от карты и спрашивает: "Вы Дэвид Дрейк? Я Сильвия Уинтерлайт. Рада встрече, у нас нечасто новых людей встретить можно".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Сильвия оборачивается к вам: "Приветствую, что вы хотели?"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{tag="first_meeting"};
 
		{"Совершенно верно, я Дэвид Дрейк", [[
 
			"Рада знакомству. Я мало что могу рассказать вам об устройстве станции, но если у вас есть какие-то вопросы касательноо культуры и истории навьяров - я всегда рада помочь".
 
		]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="legend", false, "Ты можешь рассказать мне навьярскую легенду о скате?", [[
 
			Сильвия кажется заинтересованной: "У навьяров их много, какую конкретно вы хотите услышать?"
 
		]], code [[ psub("which_legend"); ]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic <= 2) then
 
				return [[
 
					Сильвия Уинтерлайт пожимает плечами: "Не поверю, чтобы кто-то это мог сделать".
 
				]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[
 
					Сильвия Уинтерлайт удивленно смотрит на вас: "Вы не первый кто так говорит. Но кто это мог сделать?"
 
				]];
 
			end;
 
		end;};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Крайней мало. Вам лучше поговорить с Райтом или Даркстаром".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			Сильвия молча кивает и возвращается к своим делам. 
 
		]], code [[ back(); ]]};
 
@@ -558,6 +772,9 @@ char_michael_wright_dlg = dlg {
 
		if (atl_nih_state == 2) then
 
			pon('nih_fixed');
 
		end;
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
@@ -571,7 +788,7 @@ char_michael_wright_dlg = dlg {
 
		{tag="nih_fixed", "Я нашел утечку", [[
 
			"Спасибо, я отправлю туда человека, чтобы он все поправил. Пока у меня больше нет для вас заданий". 
 
		]], code [[ atl_nih_state = 3; atl_rep_wright = atl_rep_wright + 1; ]]};
 
		{tag="sabotage", "Даркстар считает, что пожар начался из-за саботажа", function(s)
 
		{tag="sabotage", false, "Даркстар считает, что пожар начался из-за саботажа", function(s)
 
			atl_rep_wright = atl_rep_wright - 1;
 
			local part1 = [[
 
				"Я знаю. Это дело Даркстара - в конце концов, он отвечает за безопасность станции. Вам я бы посоветовал не лезть - это небезопасно. Если кто-то не побоялся подвергнуть угрозе жизни всех находящихся на станции, то вы его вряд ли остановите", - Райт выглядит недовольным.
 
@@ -588,7 +805,7 @@ char_michael_wright_dlg = dlg {
 
				]];
 
			end;
 
		end};
 
		{tag="ignis_what", "Из-за чего начался пожар в Игнисе?", [[
 
		{tag="ignis_what", false, "Из-за чего начался пожар в Игнисе?", [[
 
			"Короткое замыкание. Странно, что предохранители не сработали. Рядом, к сожалению, никого не оказалось и потушить возгорание вовремя не удалось. Огонь быстро распространился по всей секции, ну а дальше вы все знаете. Мы временно заблокировали лифт туда. Если вы хотите помочь с восстановлением секции - нам не помешают лишние руки".
 
		]]};
 
		{always=true, "Мне пора", function(s)
 
@@ -609,28 +826,155 @@ char_legrand_dlg = dlg {
 
	nam = "Мари Легран";
 
	disp = "Мари Легран";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами, склонившись над каким-то журналом сидит женщина лет сорока-сорока-пяти. Длинные темные волосы убраны в хвост. На носу очки в тяжелой оправе. Не обращая внимания на вас, она продолжает водить пальцем по строчкам, периодически делая какие-то пометки.
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Не обращая внимания на вас, Мари Легран продолжает водить пальцем по строчкам, периодически делая какие-то пометки.
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{1, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag="first_meeting"};
 
		{"Извините?", [[
 
			Женщина поднимает голову и отрывается от работы. Она выпрямляется и улыбаясь приветствует вас: "Добро пожаловать в библиотеку Атлантиды. Я Мари Легран"
 
		]], code [[psub("first_meeting_2"); ]]};
 
		{tag="first_meeting_2"};
 
		{"Я Дэвид Дрейк, рад знакомству", [[
 
			Она кивает и спрашивает вас: "Как вы нашли Левиафан?"
 
		]], code [[psub("first_meeting_3"); ]]};
 
		{tag="first_meeting_3"};
 
		{"Это долгая история", [[
 
			Мари Легран кивает: "Ладно, потом как-нибудь, если торопитесь"
 
		]], [[ psub("generic") ]]};
 
		{"Я нашел тайник отца со старыми схемами. Пришлось побегать, чтобы восстановить субмарину. Я чудом собрал все необходимое", [[
 
			Мари Легран удивленно смотрит на вас: "Удивительно. Скорее всего Уильям хотел, чтобы вы нашли Левиафан. Жаль, что вы прибыли слишком поздно. Когда он узнал про этот древний город, он собрал несколько помощников и отправился на Надежде на его поиски".
 
		]], code [[ pon("father_more");psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="father_more", false, "Кто отправился вместе с моим отцом?", [[
 
			"Немногие. Они вообще хотел отправиться вдвоем с Блэком, но Блэк уговорил Уильяма взять Джона Брауна и Дэмина Пина".
 
		]], code [[psub("more_people");]]};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе начался из-за саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic <= 2) then
 
				return [[
 
					Мари Легран удивленно смотрит на вас: "Откуда вы знаете? Кому такое в голову придти может?"
 
				]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[
 
					Мари Легран удивленно смотрит на вас: "Вы понимаете, что говорите? Кому такое в голову придти может?"
 
				]];
 
			end;
 
		end};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Поговорите лучше с Даркстаром или Райтом".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"Приходите еще"
 
		]], code [[ back(); ]]};
 
		{tag="more_people"};
 
		{"Расскажите больше об Адриане Блэке", [[
 
		]]};
 
		{"Расскажите больше о Джоне Брауне", [[
 
		]]};
 
		{"Расскажите больше о Дэмине Пине", [[
 
			
 
		]]};
 
		{"Давайте о другом поговорим", [[
 
			"Хорошо"
 
		]], code [[pret();]]};
 
	};
 
};
 
 
char_radcliffe_atlantis_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Уолтер Рэдклифф";
 
	disp = "Уолтер Рэдклифф";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами стоит человек лет пятидесяти, одетый в рабочий халат. Как только вы входите, он протягивает вам руку: "Добро пожаловать, господин Дрейк. Я - Уолтер Рэдклифф, инженер".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Уолтер Рэдклифф кивает вам: "Добрый день".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{1, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag = "first_meeting"};
 
		{"[Пожать руку]Рад знакомству", [[
 
			"Мы с Майклом вместе работали над Левиафаном. Многие решения в вашей субмарине - мои. Если вы не против, я хотел бы продолжить путешествие вместе с вами - во-первых - вам пригодится мой опыт, а во-вторых - я хочу увидеть Левиафан в деле". 
 
		]], code [[
 
			rel_walter = rel_walter + 1;
 
			psub("leviathan");
 
		]]};
 
		{"Рад знакомству", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			psub("generic");
 
		]]};
 
		{"[Промолчать]", [[
 
			Уолтер убирает руку и продолжает: "Я думаю, вы не просто так пришли. Спрашивайте".
 
		]], code [[
 
			rel_walter = rel_walter - 1;
 
			psub("generic");
 
		]]};
 
		{tag = "leviathan"};
 
		{"Интересно, и что вы можете рассказать о Левиафане?", [[
 
			Уолтер снимает очки, убирая их в нагрудный карман: "Левиафан строился как Надежда - для дальних путешествий и максимальной автономности. После успеха предыдущих субмарин, Райт решил сделать Левиафан заметно больше предыдущих кораблей. Сверхмощная батарея обеспечивает субмарину энергией более месяца при максимальных оборотах двигателей. Также есть паровой двигатель - он используется не только для движения, но и генерирует электричество. До Левиафана мы не экспериментировали с этим".
 
		]]};
 
		{"Вы знаете, куда отправился мой отец отсюда?", [[
 
			Уолтер отрицательно качает головой: "Не больше, чем остальные на станции". 
 
		]]};
 
		{"Буду рад, если вы присоединитесь к нам", [[
 
			"Отлично. Но вы ведь, еще поговорить хотите?"
 
		]], code [[ psub("generic");]]};
 
		{"Я не думаю, что вы поможете", [[
 
			"Очень жаль. Впрочем, у вас есть время подумать. Насколько я знаю, Даркстар и Моро собираются держать вас здесь какое-то время".
 
		]], code [[ psub("generic");]]};
 
		{tag = "generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе - результат саботажа?", [[
 
			"Безусловно. Системы энергоснабжения проектировал я и абсолютно уверен в их безопасности и надежности. Судя по тому, что произошло - кто-то весьма грамотный ,,доработал'' систему энергоснабжения Игниса. Я не думаю, что это мог быть один человек... Хотя если он делал это несколько дней - вполне вероятно. Как это сделать, кроме нас с Райтом знают только трое: Мишель Леруа, Чарльз Джонс и Мари Легран. И еще кое-что. Даркстар просил меня ни с кем про это не разговаривать, поэтому надеюсь на ваше понимание. Отдельно попрошу - не говорить на эту тему с моей сестрой".
 
		]], code [[
 
			rel_walter = rel_walter + 1;
 
		]]};
 
		{tag="ignis_what", false, "Вы, как инженер, можете рассказать, что произошло в Игнисе?", [[
 
			"Пожар. Вам что-то еще известно?"
 
		]]};
 
		{"Я пойду", [[
 
			"До встречи", - Уолтер отворачивается от вас и возвращается к своим делам.
 
		]], code [[ back();]]};
 
	};
 
};
 
 
@@ -641,12 +985,57 @@ char_xiao_dlg = dlg {
 
	nam = "Вейюан Сяо";
 
	disp = "Вейюан Сяо";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0 ) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами стоит китаец лет пятидесяти. Продолжая заниматься сборкой какого-то механизма, он говорит: "Добро пожаловать на Атлантиду. Я Вейюан Сяо. Инженер".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Перед вами стоит Вейюан Сяо. Продолжая заниматься сборкой какого-то механизма, он говорит: "Вы вернулись".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{1, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag="first_meeting"};
 
		{"Дэвид Дрейк, рад знакомству", [[
 
			Вейюан на секунду отвлекается от своего занятия и внимательно смотрит на вас: "Да, вы похожи на своего отца. Он великий человек. Вся станция - его рук дело".
 
		]], code [[ psub("first_meeting_2"); ]]};
 
		{"Вы из Китая?", [[
 
			"Да. Я с молодости работал на Вестхейвен Трансоушен. Уильям Дрейк - достойнейший человек, жаль мы ничем не можем ему сейчас помочь".
 
		]]};
 
		{tag="first_meeting_2"};
 
		{"Вы хорошо знали отца?", [[
 
			"Я уважаю его, как, думаю, все на этой станции. Пожертвовать всем ради призрачной мечты - только великий человек мог пойти на такое. Он отправился на поиски легендарного города древних навьяров. К сожалению, я не смог отправиться с ним - я был нужен на станции. Я знаю что вы здесь из-за него и я надеюсь, что вы не оставите вашу идею найти Уильяма и доведете свое дело до конца".
 
		]], code [[ psub("generic"); ]]};
 
		{"У меня к вам несколько вопросов", [[
 
			"Слушаю".
 
		]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе - следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			return [[
 
				"Оставьте это Даркстару. Если саботаж имел место быть - Винсент найдет виновного. Я передам ему ваши слова".
 
			]]
 
		end;};
 
		{tag="ignis_what", false, "Что произошло в Игнисе?", [[
 
			"Меня там не было. Не берусь говорить".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			Вейюан Сяо так же не отвлекаясь от своего занятия прощается с вами: "Увидимся позже".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
@@ -657,12 +1046,50 @@ char_leroy_dlg = dlg {
 
	nam = "Мишель Леруа";
 
	disp = "Мишель Леруа";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				В кресле сидит человек лет пятидесяти, одетый в простой костюм. У него кудрявые рыжие волосы и не менее рыжая бородка. В кармане пиджака лежат очки. Руки лежат в подлокотниках. Его темные глаза изучают вас.
 
			]];	
 
		else
 
			psub("generic");
 
			return [[
 
				Мишель Леруа сидит в кресле и смотрит на вас.
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag="first_meeting"};
 
		{"Добрый день. Я Дэвид Дрейк", [[
 
			Человек встает и протягивает вам руку: "Мишель Леруа. Инженер".
 
		]], code [[ psub('first_meeting_2'); ]]};
 
		{tag="first_meeting_2"};
 
		{"[Пожать руку]Рад знакомству", [[
 
			Мишель садится обратно и говорит: "Перейдем к делу. Что вы хотели?"
 
		]], code [[ psub('generic'); ]]};
 
		{"Рад знакомству", [[
 
			Мишель садится обратно и говорит: "Перейдем к делу. Что вы хотели?"
 
		]], code [[ psub('generic'); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар в Игнисе начался из-за саботажа?", [[
 
			"Кто вам это сказал? Никто на станции не будет в здравом уме подвергать опасности свою жизнь еще больше".
 
		]]};
 
		{tag="ignis_what", false,"Что вы можете сказать о произошедшем в Игнисе?", [[
 
			"Короткое замыкание, огонь быстро распространился по секции".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"Увидимся".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
 
@@ -673,12 +1100,53 @@ char_goldman_dlg = dlg {
 
	nam = "Леонард Голдман";
 
	disp = "Леонард Голдман";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами высокий человек лет пятидесяти. Густые черные волосы коротко острижены. Лицо гладко выбрито. Увидев вас, он говорит: "Вы прибыли на Левиафане? Я Леонард Голдман. Занимаюсь электросистемами станции"
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Леонард Голдман вопросительно смотрит на вас: "Что вы хотели?"
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк. Рад знакомству", [[
 
			Леонард кивает, но ничего не говорит
 
		]], code [[ psub("generic"); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", [[
 
			Вы видите удивление и страх на лице Голдмана. Он неуверенно спрашивает: "С чего вы взяли?"
 
		]], code [[ psub("sabotage2"); ]]};
 
		{tag="ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Не больше чем вы".
 
		]]};
 
		{"Я пойду", [[
 
			"Поговорим позже".
 
		]], code [[ back(); ]]};
 
		{tag="sabotage2"};
 
		{"Даркстар сказал", [[
 
			"Даркстар мог и ошибиться. Я в это не поверю".
 
		]]};
 
		{"Это очевидно", [[
 
			"С чего вы взяли? будете дальше распускать подобные слухи - я доложу Даркстару".
 
		]]};
 
		{"Эээ... Я пошутил", [[
 
			"Вы вообще нормальный?!"
 
		]], code [[ psub('back'); ]]};
 
	};
 
};
 
 
@@ -686,15 +1154,60 @@ char_goldman_dlg = dlg {
 
char_jones_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Леонард Голдман";
 
	disp = "Леонард Голдман";
 
	nam = "Чарльз Джонс";
 
	disp = "Чарльз Джонс";
 
	entered = function(s)
 
		return [[
 
			Временная затычка диалога
 
		]];
 
		if (atl_lfc_state ~= 1) then
 
			poff('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
		end;
 
		
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[
 
				Перед вами сидит немолодой человек, одетый в недорогой костюм. Взгляд его серых глаз усталый и безжизненный. Лицо изрыто глубокими морщинами. Седые волосы коротко острижены. Подбородок гладко выбрит.
 
				При виде вас он встает и приветствует вас: "Здравствуйте, меня зовут Чарли. Чарли Джонс".
 
			]];
 
		else
 
			psub("generic");
 
			return [[
 
				Чарльз Джонс приветствует вас: "Здравствуйте".
 
			]];
 
		end;
 
	end;
 
	phr = {
 
		{0, always=true, "Ну все, пока", "Прощай, смертный", code [[ back(); ]]};
 
		{"Я Дэвид Дрейк. Рад знакомству", [[
 
			Чарльз тяжело вздыхает: "Взаимно".
 
		]], code [[ psub("generic"); ]]};
 
		{tag = "sabotage", false, "Вы знаете, что причиной пожара был саботаж?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
			if (atl_lfc_panic == 1) then
 
				return [[
 
					Чарльз отрицательно качает головой: "Я и сам не прочь покинуть станцию, но есть же цивилизованные методы. Не верю".
 
				]];
 
			elseif (atl_lfc_panic == 2) then
 
				return [[
 
					Чарльз отрицательно качает головой: "Это не более чем слухи. Не поверю, чтобы кто-то мог намеренно это сделать"
 
				]];
 
			elseif (atl_lfc_panic == 3) then
 
				return [[
 
					Чарльз внимательно смотрит на вас. В его глазах вы видите страх и удивление: "Вы серьезно? Теперь у нас помимо старой, разваливающейся станции еще и саботажник завелся?!"
 
				]];
 
			end;
 
		end};
 
		{tag = "ignis_what", false, "Вы знаете, что произошло в Игнисе?", [[
 
			"Да. Станция уже старая. Дальше будет еще хуже".
 
		]]};
 
		{always=true, "Я пойду", [[
 
			"До встречи".
 
		]], code [[ back(); ]]};
 
	};
 
};
 
};
 
\ No newline at end of file
atlantis_ignis.lua
Show inline comments
 
new file 100644
 
atl_ignis_mh_center = room {
 
	nam = "Атлантида, Игнис, главный зал, у лифта";
 
	dsc = [[
 
		Вы в центре огромного круглого зала. Свет в зале выключен и сквозь стеклянный купол, лишь в некоторых местах поддерживаемый металлическими конструкциями вы видите игру света на поверхности океана и проплывающих над вами рыб. Рядом с вами расположена шахта лифта. В юго-западной, южной, юго-восточной, северо-восточной и северной частях зала расположены шлюзовые двери.
 
	]];
 
	way = {
 
		vroom("В лифт", "atl_dom_lift");
 
		vroom("На юг", "atl_ignis_main_s");
 
		vroom("На юго-запад", "atl_ignis_main_sw");
 
		vroom("На юго-восток", "atl_ignis_main_se");
 
		vroom("На север", "atl_ignis_main_n");
 
		vroom("На северо-запад", "atl_ignis_main_nw");
 
		vroom("На северо-восток", "atl_ignis_main_ne");
 
		--[[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_main_s = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть";
 
	dsc = [[
 
		Слева и справа от вас стоит множество стеллажей с книгами и фильмами. К северу от вас расположена шахта лифта, ведущего вниз, в секцию Доминус. На юге вы видите массивную шлюзовую дверь. 
 
	]];
 
	way = {
 
		vroom("К шахте лифта", "atl_ignis_mh_center");
 
		vroom("На юг", "atl_ignis_main_emex");
 
		vroom("На восток", "atl_ignis_main_se");
 
		vroom("На запад", "atl_ignis_main_sw");
 
	};
 
};
 
 
atl_ignis_main_sw = room {
 
	nam = "Атлантида, Игнис, главный зал, юго-западная часть";
 
	dsc = [[
 
		Слева и справа от вас стоит множество стеллажей с книгами и фильмами. К северо-востоку от вас расположена шахта лифта, ведущего вниз, в секцию Доминус. На юго-западе вы видите дверь, ведущую в один из соседних залов. 
 
	]];
 
	way = {
 
		vroom("К шахте лифта", "atl_ignis_mh_center");
 
		vroom("На север", "atl_ignis_main_nw");
 
		vroom("На юго-запад", "atl_ignis_main_toc");
 
		vroom("На восток", "atl_ignis_main_s");
 
	};
 
};
 
 
atl_ignis_main_nw = room {
 
	nam = "Атлантида, Игнис, главный зал, северо-западная часть";
 
	dsc = [[
 
		Слева и справа от вас стоит множество стеллажей с книгами и фильмами. К юго-востоку от вас расположена шахта лифта, ведущего вниз, в секцию Доминус. 
 
	]];
 
	way = {
 
		vroom("К шахте лифта", "atl_ignis_mh_center");
 
		vroom("На восток", "atl_ignis_main_n");
 
		vroom("На юг", "atl_ignis_main_sw");
 
		vroom("На северо-запад", "atl_ignis_main_nw_wall");
 
	};
 
};
 
 
atl_ignis_main_n = room {
 
	nam = "Атлантида, Игнис, главный зал, северная часть";
 
	dsc = [[
 
		Слева и справа от вас стоит множество стеллажей с книгами и фильмами. К югу от вас расположена шахта лифта, ведущего вниз, в секцию Доминус. На севере вы видите дверь, ведущую в один из соседних залов. 
 
	]];
 
	way = {
 
		vroom("К шахте лифта", "atl_ignis_mh_center");
 
		vroom("На север", "atl_ignis_main_toa");
 
		vroom("На запад", "atl_ignis_main_nw");
 
		vroom("На восток", "atl_ignis_main_ne");
 
	};
 
};
 
 
atl_ignis_main_ne = room {
 
	nam = "Атлантида, Игнис, главный зал, северо-восточная часть";
 
	dsc = [[
 
		Слева и справа от вас стоит множество стеллажей с книгами и фильмами. К юго-западу от вас расположена шахта лифта, ведущего вниз, в секцию Доминус. На северо-востоке вы видите шлюзовую дверь. 
 
	]];
 
	way = {
 
		vroom("К шахте лифта", "atl_ignis_mh_center");
 
		vroom("На северо-восток", "atl_ignis_main_tos");
 
		vroom("На юг", "atl_ignis_main_se");
 
		vroom("На запад", "atl_ignis_main_n");
 
	};
 
};
 
 
atl_ignis_main_se = room {
 
	nam = "Атлантида, Игнис, главный зал, юго-восточная часть";
 
	dsc = [[
 
		Слева и справа от вас стоит множество стеллажей с книгами и фильмами. К юго-западу от вас расположена шахта лифта, ведущего вниз, в секцию Доминус. На юго-востоке вы видите дверь, ведущую в один из соседних залов. 
 
	]];
 
	way = {
 
		vroom("К шахте лифта", "atl_ignis_mh_center");
 
		vroom("На юго-восток", "atl_ignis_main_tob");
 
		vroom("На север", "atl_ignis_main_ne");
 
		vroom("На запад", "atl_ignis_main_sw");
 
	};
 
};
 
 
atl_ignis_main_emex = room {
 
	nam = "Атлантида, Игнис, главный зал, южная часть, аварийный выход";
 
	dsc = [[
 
		Рядом с вами расположен шлюз аварийного выхода. К северу находится шахта лифта.
 
	]];
 
	way = {
 
		kh_vroom("В шлюз", function()
 
			pr("Без скафандра вы там недолго проживете");
 
			return false;
 
		end);
 
		vroom("На север", "atl_ignis_main_s");
 
		vroom("На восток", "atl_ignis_main_tob");
 
		vroom("На запад", "atl_ignis_main_toc");
 
	};
 
};
 
 
atl_ignis_main_toc = room {
 
	nam = "Атлантида, Игнис, главный зал, юго-западная часть, вход в зал C";
 
	dsc = [[
 
		Рядом с вами расположен вход в зал С. К северозападу находится шахта лифта.
 
	]];
 
	way = {
 
		kh_vroom("В зал C", function()
 
			atl_lfc_hallrooms = 1;
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
		vroom("На северо-восток", "atl_ignis_main_sw");
 
		vroom("На север", "atl_ignis_main_nw_wall");
 
		vroom("На восток", "atl_ignis_main_emex");
 
	};
 
};
 
 
atl_ignis_main_nw_wall = room {
 
	var {
 
		seen = 0;
 
	};
 
	nam = "Атлантида, Игнис, главный зал, северо-западная часть, стена";
 
	dsc = [[
 
		К югозападу находится шахта лифта
 
	]];
 
	entered = function(s) 
 
		if (s.seen == 0) then
 
			pr("Ваш взгляд зацепляется за открытый электрический щиток. Атлантида обычно содержится в полном порядке и инженеры редко позволяют себе забыть все вернуть как было после проведения работ. ");
 
			s.seen = 1;
 
			atl_lfc_board = 1;
 
			return "";
 
		end;
 
	end;
 
	way = {
 
		vroom("На юго-восток", "atl_ignis_main_nw");
 
		vroom("На юг", "atl_ignis_main_toc");
 
		vroom("На восток", "atl_ignis_main_toa");
 
	};
 
	obj = {
 
		atl_ignis_main_nw_wall_panel;
 
	};
 
};
 
 
atl_ignis_main_nw_wall_panel = obj {
 
	nam = "Щиток";
 
	dsc = [[
 
		В стену вмонтирован {электрический щиток}. Сейчас он открыт. 
 
	]];
 
};
 
 
atl_ignis_main_toa = room {
 
	nam = "Атлантида, Игнис, главный зал, северная часть, вход в зал A";
 
	dsc = [[
 
		Рядом с вами расположен вход в зал A. К югу находится шахта лифта.
 
	]];
 
	way = {
 
		vroom("В зал A", "atl_ignis_hall_a");
 
		vroom("На юг", "atl_ignis_main_n");
 
		vroom("На запад", "atl_ignis_main_nw_wall");
 
		vroom("На восток", "atl_ignis_main_tos");
 
	};
 
};
 
 
atl_ignis_main_tos = room {
 
	nam = "Атлантида, Игнис, главный зал, северо-восточная часть, вход в служебное помещение";
 
	dsc = [[
 
		Рядом с вами расположен вход в служебное помещение. К югу находится шахта лифта.
 
	]];
 
	way = {
 
		kh_vroom("В служебное помещение", function()
 
			pr("Вам там нечего делать сейчас");
 
			return false;
 
		end);
 
		vroom("На юго-запад", "atl_ignis_main_ne");
 
		vroom("На юг", "atl_ignis_main_tob");
 
		vroom("На запад", "atl_ignis_main_toa");
 
	};
 
};
 
 
atl_ignis_main_tob = room {
 
	nam = "Атлантида, Игнис, главный зал, юго-западная часть, вход в зал B";
 
	dsc = [[
 
		Рядом с вами расположен вход в зал B. К северозападу находится шахта лифта.
 
	]];
 
	way = {
 
		kh_vroom("В зал B", function()
 
			atl_lfc_hallrooms = 1;
 
			pr("Дверь заклинило");
 
			return false;
 
		end);
 
		vroom("На северо-запад", "atl_ignis_main_se");
 
		vroom("На север", "atl_ignis_main_tos");
 
		vroom("На запад", "atl_ignis_main_emex");
 
	};
 
};
 
 
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 {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Проектор";
 
	dsc = function(s)
 
		if (s.state == 0) then
 
			return [[
 
				{Проектор} готов к работе.
 
			]];
 
		else
 
			return [[
 
				{Проектор} не работает.
 
			]];
 
		end;
 
	end;
 
	act = function(s)
 
		s.state = 1;
 
		atl_lfc_electric = 1;
 
		return [[
 
			Вы включаете проектор, однако он не работает. 
 
		]];
 
	end;
 
};
 
 
atl_ignis_lightswitch = obj {
 
	nam = "Выключатель";
 
	dsc = function(s)
 
		return [[
 
			На стене вы видите {выключатель}.
 
		]];
 
	end;
 
};
 
\ No newline at end of file
atlantis_ignis_on_fire.lua
Show inline comments
 
@@ -28,7 +28,7 @@ atlantis_learr_first_dlg = dlg {
 
			Щелкнув зубами, _"Чудовище"_ отталкивает вас в сторону и уходит со словами: _"Вы-монстр! Я нет-времени-тратить на вас"_.
 
		]], code [[
 
			char_learr_atlantis.offended = true;
 
			walk("atlantis_oculus_main_corridor");
 
			walk("atl_oculus_main_corridor");
 
		]]};
 
		{tag="learr"};
 
		{"Рад знакомству, Леарр. Я Дэвид Дрейк", [[
 
@@ -47,7 +47,7 @@ atlantis_learr_first_dlg = dlg {
 
		{tag="follow_drake"};
 
		{"Я прибыл чтобы найти его", [[
 
			Плавники Леарр снова окрашиваются сине-зененым: _"Прекрасно-будет. Вы его-и-наши-древние-знания-найдете. Я вам-как-смогу-помогу. Я идти-должна"_. Леарр уходит, а вы остаетесь одни в коридоре.
 
		]], code [[ walk("atlantis_oculus_main_corridor"); ]]};
 
		]], code [[ walk("atl_oculus_main_corridor"); ]]};
 
	};
 
};
 
atlantis_looking_for_clues.lua
Show inline comments
 
@@ -57,17 +57,17 @@ atl_lfc_darkstar_dlg = dlg {
 
			end;
 
			
 
		end};
 
		{always=true,"Двери в залы B и C не работали.", [[
 
		{tag="halldoors", false, always=true,"Двери в другие залы не работали.", [[
 
			"Техники..."
 
		]], code [[ 
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{always=true,"Один из электрощитов не был закрыт.", [[
 
		{tag="board", false, always=true,"Один из электрощитов не был закрыт.", [[
 
			"Обычное дело на Атлантиде. Наши техники порой позволяют себе невероятную неаккуратность".
 
		]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{always=true,"В зале А не работали электроприборы.", [[
 
		{tag="electric", false, always=true,"В зале А не работали электроприборы.", [[
 
			"Это уже совсем ни в какие ворота не лезет".
 
		]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
@@ -185,7 +185,7 @@ atl_lfc_darkstar_dlg = dlg {
 
			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');
main.lua
Show inline comments
 
@@ -25,6 +25,7 @@ dofile "warehouse32.lua"
 
-- Часть 2
 
dofile "leviathan.lua"
 
dofile "atlantis.lua"
 
dofile "atlantis_ignis.lua"
 
dofile "atlantis_dlg.lua"
 
dofile "atlantis_intro.lua"
 
dofile "atlantis_ignis_on_fire.lua"
 
@@ -147,7 +148,8 @@ function init()
 
	---debug
 
	atl_nih_init();
 
	atl_lfc_state = 1;
 
	pl.where = atl_terra_workshop_a;
 
	char_svetlova_dlg.state = 2;
 
	pl.where = atl_oculus_lab_a;
 
	-- pl.where = warehouse_32;
 
	-- pl.where = w32_mgr;
 
	-- put(item_toolbox, pl);
0 comments (0 inline, 0 general)