Changeset - 674654869722
[Not reviewed]
default
0 5 0
Silverwing - 8 years ago 2016-08-07 10:50:31

Some dialog logic fixes; IOF location paths fixed; IOF logic fixes
5 files changed with 64 insertions and 49 deletions:
0 comments (0 inline, 0 general)
atlantis_dlg.lua
Show inline comments
 
@@ -224,7 +224,7 @@ char_svetlova_dlg = dlg {
 
				Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: _"Добрый день. Должна признать, вы всех нас знатно напугали, господин Дрейк. Винсент сказал, что вы зайдете. Что ж, я думаю вы будете очень полезны станции. Правда Винсент и Моро решили вас пока к субмаринам не пускать, что несколько помешает моим планам на вас. Впрочем я попробую их уговорить - это будет полезно и нам и вам, как и мое предложение в целом -- я знаю, что вы ищете своего отца -- Даркстар мне и это сказал, -- а он последнее время занимался одной легендой -- он хотел найти первый город навьяров, или как-то так. К сожалению, когда он отправился в эту экспедицию, он почти не оставил нам материалов - все навьярские карты, переводы - они только у него и поэтому мы не можем проследовать за ним. ^
 
				Адриан его очень торопил, поэтому Уильям не успел толком даже план экспедиции для нас обрисовать"_. 
 
			]];
 
		elseif (s.state == 1) then
 
		elseif (s.state == 2) then
 
			psub('ryveerr_on_steal');
 
			return [[
 
				Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Ну как? Поговорили с Ривеерром?"
 
@@ -248,6 +248,7 @@ char_svetlova_dlg = dlg {
 
					]];
 
				end;
 
			else
 
				print("svetlova, generic");
 
				psub('generic');
 
				
 
				if (atl_lfc_state ~= 1) then
 
@@ -313,14 +314,14 @@ char_svetlova_dlg = dlg {
 
		]], code [[ 
 
			char_svetlova_dlg.state = 1;
 
			atl_iyh_state = 1;
 
			back(); 
 
			psub("generic");
 
		]]};
 
		{"Я прибыл сюда искать своего отца, а не решать проблемы полуразумных рыбней", [[
 
			Екатерина встает из-за стола, после чего садится обратно. Кажется, ваш комментарий ее серьезно разозлил. Затем она достает из ящика небольшой блестящий диск - примерно 10 сантиметров диаметром: "Эти полуразумные рыбни, как вы выразились, могут сделать вот такое". ^
 
			Вы берете из рук Екатерины диск и внимательно рассматриваете его. На первый взгляд ничего необычного - блестящий диск, бесполезное украшение. Вдоль внешней кромки его вы видите какие-то цветные полосы - очень ровно нанесенные, но в них вы тоже ничего необычного не видите. Светлова продолжает: "Посмотрите на него под микроскопом и вы поймете о чем я. Да, вы можете забрать его. Возможно это, как и то, о чем я вас прошу, поможет вам узнать где сейчас находится Уильям".
 
		]], code [[ put(item_navjiarr_disk, pl); ]]};
 
		{tag = "generic"};
 
		{tag="sabotage", false, "Даркстар считает, что причиной пожара в Игнисе был саботаж. Что вы об этом думаете?", function(s)
 
		{tag = "sabotage", false, "Даркстар считает, что причиной пожара в Игнисе был саботаж. Что вы об этом думаете?", function(s)
 
			if (atl_iof_learr_dead) then
 
				atl_rep_darkstar = atl_rep_darkstar - 1;
 
				return [[
 
@@ -334,7 +335,7 @@ char_svetlova_dlg = dlg {
 
				]];
 
			end;
 
		end};
 
		{tag="ignis_what", "Вы знаете, что произошло в Игнисе?", function(s)
 
		{tag = "ignis_what", false, "Вы знаете, что произошло в Игнисе?", function(s)
 
			if (s.lfc_sabotage) then
 
				return [[
 
					"Вы же только что сами сказали - саботаж".
 
@@ -351,13 +352,13 @@ char_svetlova_dlg = dlg {
 
				]];
 
			end;
 
		end};
 
		{tag="hard_to_understand", false, "Я поговорил с Аикерьярром, только я вообще ничего не понял из его слов[Кратко пересказать диалог с Аикерьярром]", [[
 
		{tag = "hard_to_understand", false, "Я поговорил с Аикерьярром, только я вообще ничего не понял из его слов[Кратко пересказать диалог с Аикерьярром]", [[
 
			Екатерина откладывает бумаги в сторону и откидывается на спинку стула. Через некоторое время она говорит: "Интересно. Аикерьярр упорно отрицает причастность Ираафаанотра к краже реликвии. Что говорит Ривеерр по этому поводу?"
 
		]], code [[ char_svetlova_dlg.state = 2; psub('ryveerr_on_steal');]]};
 
		{tag="explanation", false, "Я поговорил с Леарр. Она говорит, что они не трогали реликвию Ираафаанотра[Кратко пересказать диалог с Ираафаанотром]", [[
 
		{tag = "explanation", false, "Я поговорил с Леарр. Она говорит, что они не трогали реликвию Ираафаанотра[Кратко пересказать диалог с Ираафаанотром]", [[
 
			Екатерина откладывает бумаги в сторону и откидывается на спинку стула. Через некоторое время она говорит: "Интересно. Что говорит Ривеерр по этому поводу?"
 
		]], code [[ char_svetlova_dlg.state = 2; psub('ryveerr_on_steal');]]};
 
		{"Я пойду", [[
 
		{always = true, "Я пойду", [[
 
			Светлова возвращается ко своим бумагам: "До встречи"
 
		]], code [[ back(); ]]};
 
		{tag = "ignis_sabotage"};
 
@@ -434,7 +435,7 @@ char_anna_atlantis_dlg = dlg {
 
		else
 
			psub("generic");
 
			return [[
 
				
 
				Анна разговаривает с навьяром, стоящим рядом. Заметив вас, она просит его подождать и обращается к вам: "Приветствую, вы что-то хотели?"
 
			]];
 
		end;
 
	end;
 
@@ -442,7 +443,7 @@ char_anna_atlantis_dlg = dlg {
 
		{tag="first_meeting"};
 
		{"Я Дэвид Дрейк. Очень приятно", [[
 
			Анна улыбается: "Вы что-то хотели?"
 
		]]};
 
		]], code = [[ psub('generic'); ]]};
 
		{tag="generic"};
 
		{tag="sabotage", "Вы знаете, что пожар в Игнисе - следствие саботажа?", function(s)
 
			atl_lfc_panic = atl_lfc_panic + 1;
 
@@ -888,6 +889,7 @@ char_jack_wright_atlantis_dlg = dlg {
 
		state = 0;
 
	};
 
	nam = 'char_jack_wright_atlantis_dlg';
 
	disp = "Джек Райт";
 
	entered = function(s)
 
		if (s.state == 0) then
 
			psub("business_or_no");
 
@@ -901,7 +903,7 @@ char_jack_wright_atlantis_dlg = dlg {
 
		{"Как тебе станция?", [[
 
			"Невероятно! Поверить не могу, что мой отец вместе с твоим это все придумали и создали. Это совершенство, никак не меньше - они уже десять лет почти живут без связей с поверхностью, не испытывая при этом никаких проблем".
 
		]]};
 
		{always = "true", "Я с Леарр поговорить пришел", function(s)
 
		{always = "true", "Я с Леарр поговорить пришел.", function(s)
 
			if (char_learr_atlantis.offended) then
 
				return [[
 
					Джек ухмыльнулся: "Удачи, я подожду в главном зале". Джек поднялся и вышел.
 
@@ -966,7 +968,7 @@ char_michael_wright_dlg = dlg {
 
			"Не все так просто. Нужно, чтобы согласие дали еще Фредерик, Винсент и Екатерина".
 
		]], code [[ psub('generic'); ]]};
 
		{tag="generic"};
 
		{tag="nih_fixed", "Я нашел утечку", [[
 
		{tag="nih_fixed", false, "Я нашел утечку", [[
 
			"Спасибо, я отправлю туда человека, чтобы он все поправил. Пока у меня больше нет для вас заданий". 
 
		]], code [[ atl_nih_state = 3; atl_rep_wright = atl_rep_wright + 1; ]]};
 
		{tag="sabotage", false, "Даркстар считает, что пожар начался из-за саботажа", function(s)
atlantis_ignis.lua
Show inline comments
 
@@ -207,7 +207,7 @@ atl_ignis_main_tob = room {
 
atl_ignis_hall_a = room {
 
	nam = "Атлантида, Игнис, зал А";
 
	enter = function(s)
 
		if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
		if (seen(char_learr_atlantis, atl_ignis_hall_a) and 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;
 
@@ -221,7 +221,6 @@ atl_ignis_hall_a = room {
 
		'atl_ignis_screen';
 
		'atl_ignis_projector';
 
		'atl_ignis_lightswitch';
 
		"char_learr_atlantis";
 
	};
 
	way = {
 
		vroom("В коридор", "atl_ignis_main_toa");
atlantis_ignis_on_fire.lua
Show inline comments
 
@@ -27,6 +27,7 @@ atlantis_learr_first_dlg = dlg {
 
		{tag="it_speaks", false, "Оно разговаривает!", [[
 
			Щелкнув зубами, _"Чудовище"_ отталкивает вас в сторону и уходит со словами: _"Вы-монстр! Я нет-времени-тратить на вас"_.
 
		]], code [[
 
			put(char_learr_atlantis, atl_ignis_hall_a);
 
			char_learr_atlantis.offended = true;
 
			walk("atl_oculus_main_corridor");
 
		]]};
 
@@ -50,7 +51,7 @@ atlantis_learr_first_dlg = dlg {
 
		{tag="follow_drake"};
 
		{"Я прибыл чтобы найти его." , [[
 
			Плавники Леарр снова окрашиваются сине-зененым: _"Прекрасно-будет. Я вам-как-смогу-помогу. Я идти-должна"_. Леарр уходит, а вы остаетесь одни в коридоре.
 
		]], code [[ walk("atl_oculus_main_corridor"); ]]};
 
		]], code [[ put(char_learr_atlantis, atl_ignis_hall_a); walk("atl_oculus_main_corridor"); ]]};
 
	};
 
};
 
 
@@ -60,21 +61,21 @@ char_wright_iof = obj {
 
		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;
 
@@ -116,28 +117,27 @@ char_learr_iof = obj {
 
		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
 
		if (where(s) == atl_iof_ignis_service_room and not dlg_learr_suit.state) then
 
			walkin('dlg_learr_suit');
 
		elseif (s.faint) then
 
			walkin('atl_iof_learr_faint_alone');
 
@@ -150,41 +150,47 @@ char_learr_iof = obj {
 
};
 
 
dlg_learr_suit = dlg {
 
	var {
 
		state = false;
 
	};
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	entered = [[
 
		Леарр вопросительно смотрит на вас
 
	]];
 
	entered = function(s)
 
		s.state = true;
 
		return [[
 
			Леарр вопросительно смотрит на вас. 
 
		]];
 
	end;
 
	phr = {
 
		{"Я хочу, чтобы ты одела скафандр", [[
 
		{"Я хочу, чтобы ты одела скафандр.", [[
 
			Леарр недоуменно смотрит на вас: "Зачем он мне? Сама-я в-воде-дышу. Мне не-нужны ваши-приспособления".
 
		]], code [[
 
			psub('tag1');
 
		]]};
 
		{"Мы сейчас оденем скафандры. Продолжай следовать за нами", [[
 
		{"Мы сейчас оденем скафандры. Продолжай следовать за нами.", [[
 
			Леарр кивает: "Я недолго-продержусь. Я что-смогу-сделаю". 
 
		]], code [[
 
			back();
 
		]]};
 
		{tag="tag1"};
 
		{"Не спорь, полезай внутрь", [[
 
		{"Не спорь, полезай внутрь.", [[
 
			Леарр недовольно скалит зубы: "Хевьяр не-указывай-мне".
 
		]], code [[
 
			psub('tag2');
 
		]]};
 
		{"Ладно, обойдемся без этого, просто следуй за нами", [[
 
		{"Ладно, обойдемся без этого, просто следуй за нами.", [[
 
			Леарр кивает: "Я недолго-продержусь. Я что-смогу-сделаю". 
 
		]], code [[
 
			back();
 
		]]};
 
		{tag="tag2"};
 
		{"Не хочешь не надо. Просто следуй за нами", [[
 
		{"Не хочешь не надо. Просто следуй за нами.", [[
 
			Леарр молча кивает. 
 
		]], code [[
 
			back();
 
		]]};
 
		{"Эта штука защитит тебя от жара. И тебе будет легче дышать, пока мы не выбрались", [[
 
			Леарр кивает: "Хорошо. Я вам-доверяю". Вы помогаете ей забраться в скафандр и одеваете шлем. 
 
			Леарр кивает: "Хорошо. Я по-вашему-сделаю". Вы помогаете ей забраться в скафандр и одеваете шлем. 
 
		]], code [[
 
			atl_iof_time_state.learr_safe = true;
 
			back();
 
@@ -416,7 +422,7 @@ atl_iof_main_n3 = room {
 
	dsc = [[
 
		Огромный круглый зал охвачен пожаром. Освещение не работает. Клубы черного дыма заволакивают помещение, затрудняя ваши перемещения. Вы находитесь в северной части зала у самого его края. 
 
	]];
 
	entered = function(s) 
 
	enter = function(s) 
 
		if (not s.ready) then
 
			s.ready = true;
 
			if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
 
@@ -424,6 +430,8 @@ atl_iof_main_n3 = room {
 
					walkin("atl_iof_wright_dlg");
 
				end;
 
			end;
 
		else
 
			lifeon(atl_iof_time_state);
 
		end;
 
	end;
 
	way = {
 
@@ -468,7 +476,7 @@ atl_iof_main_ne3 = room {
 
	way = {
 
		kh_vroom("Против часовой", atl_iof_blocked_by_fire);
 
		kh_vroom("По часовой", "atl_iof_main_se3");
 
		kh_vroom("К центру", "atl_iof_main_nw2");
 
		kh_vroom("К центру", "atl_iof_main_ne2");
 
		kh_vroom("В служебное помещение", "atl_iof_ignis_service_room");
 
	};
 
};
 
@@ -684,6 +692,10 @@ atl_iof_external_radio_dlg = dlg {
 
atl_iof_ignis_service_room = room {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	disp = "Атлантида, Игнис, служебное помещение";
 
	iof = true;
 
	dsc = [[
 
		Небольшое помещение, используемое для хранения различного оборудования, необходимого для обслуживания Игниса. 
 
	]];
 
	way = {
 
		kh_vroom("В главный зал", function(s)
 
			if (atl_iof_time_state.pl_safe) then
 
@@ -694,11 +706,17 @@ atl_iof_ignis_service_room = room {
 
			end;
 
		end);
 
	};
 
	obj = {
 
		'atl_iof_suits'
 
	};
 
};
 
 
atl_iof_outside = room {
 
	nam = "Атлантида, Игнис";
 
	iof = true;
 
	entered = function(s)
 
		lifeoff(atl_iof_time_state);
 
	end;
 
	dsc = function(s)
 
		if (have(char_learr_faint)) then
 
			if (atl_iof_time_state.wright_here) then
atlantis_intro.lua
Show inline comments
 
@@ -25,20 +25,20 @@ atlantis_intro_radio_dlg = dlg {
 
	]];
 
	phr = {
 
		{"Как эта штука работает?", [[
 
			Невидимый собеседник кратко объясняет вам: "В чемоданчике расположены радиоприемник и передатчик. Передо мной сейчас стоит точно такой же чемоданчик, через который я с вами и общаюсь".
 
			Невидимый собеседник кратко объясняет вам: "В чемоданчике спрятано небольшое радио, в пределах станции у нас есть несколько таких устройств".
 
		]]};
 
		{"Кто вы?", [[
 
			Собеседник отвечает спокойно, не поднимая голоса и не выказывая никакого недовольства: "Винсент Даркстар, начальник охраны. Чем быстрее вы ответите на мои вопросы, тем быстрее мы сможем с вами нормально поговорить".
 
			Собеседник отвечает спокойно, не поднимая голоса и не выказывая никакого недовольства: "Я Винсент Даркстар, начальник службы безопасности станции".
 
		]]};
 
		{"Вы знаете Уильяма Дрейка?", [[
 
			Собеседник в трубке отказывается отвечать: "Ответьте на мои вопросы, пожалуйста". Он говорит это совершенно спокойно, никак не выражая своих эмоций. 
 
			Собеседник отказывается отвечать: "Ответьте на мои вопросы, пожалуйста". Он говорит это совершенно спокойно, никак не выражая своих эмоций. 
 
		]]};
 
		{"Мое имя - Дэвид Дрейк. ", [[
 
			Вы слышите удивление и в голосе вашего собеседника: "Дрейк? Как вы нашли эту станцию?" Лица присутствующих также выражают некоторое удивление. 
 
			Вы слышите удивление в голосе вашего собеседника: "Дрейк? Как вы нашли эту станцию?" 
 
		]], code [[ psub('station') ]]};
 
		{tag="station"};
 
		{"Я нашел этот корабль, _\"Левиафан\"_, в одном из доков Вестхейвен Трансоушен. Также мне удалось найти карту, ведущую сюда. ", [[
 
			Вы слышите в трубке другой голос, едва различимый: _"Я думал, мы уничтожили все документы. Нам..."_ - вы слышите легкий щелчок и соединение прерывается. Через несколько минут вы снова слышите в трубке первого собеседника: _"Что нам с вами делать, мистер Дрейк? Однозначно, мы не можем вас отпустить. Во-первых, нам нужен ,,Левиафан'', особенно в свете того, что ,,Надежда'' с экипажем пропала некоторое время назад; А во-вторых - мы не можем допустить, чтобы кто-то, знающий о существовании станции разгуливал по поверхности. Ну а пока вам придется побыть нашим гостем"_. 
 
		{"Я нашел этот корабль, _\"Левиафан\"_, в одном из старых доков Вестхейвен Трансоушен. Также, среди бумаг компании мне удалось найти карту, ведущую сюда. ", [[
 
			Вы слышите в трубке другой голос, гораздо тише: _"Я думал, мы уничтожили все документы. Нам..."_ - вы слышите легкий щелчок и соединение прерывается. Через несколько минут вы снова слышите щелчок и в трубке раздается голос первого собеседника: _"Что нам с вами делать, мистер Дрейк? Однозначно, мы не можем вас отпустить. Во-первых, ,,Левиафан'' принадлежит нам - то есть Вестхейвен Трансоушен. Во-вторых, ,,Надежда'' с экипажем покинула станцию некоторое время назад и у нас больше нет субмарин для дальних путешествий; И в-третьих - мы не можем допустить, чтобы кто-то, знающий о существовании станции разгуливал по поверхности. Поэтому пока вам придется побыть нашим гостем"_. 
 
		]], code [[ psub('trust')]]};
 
		{tag="trust"};
 
		{"Я ищу своего отца, Уильяма Дрейка. Вы знаете его?", [[
 
@@ -49,16 +49,12 @@ atlantis_intro_radio_dlg = dlg {
 
		]]};
 
		{tag='drake'};
 
		{"Где он?", [[
 
			Собеседник отвечает: _"Это долгая история, вам лучше расспросить кого-нибудь другого. Примерно год назад Уильям отправился на поиски какого-то древнего города или чего-то в этом роде"_.
 
			Собеседник отвечает: _"Это долгая история, если хотите - заходите в мой кабинет и мы обсудим это"_.
 
		]], code [[ psub("drake2");]]};
 
		{tag="drake2"};
 
		{"Мне нужно найти его. ", [[
 
			Голос в трубке отвечает: "Сожалею, но мы не можем выпустить вас со станции".
 
		]], code [[ psub('bye')]]};
 
		{tag='bye'};
 
		{"И что мне делать? Есть какое-нибудь решение?", [[
 
			Собеседник отвечает: _"Поживем, увидим. Я думаю, вам стоит поговорить с другими руководителями станции: окончательное решение примет Фредерик Моро - глава Атлантиды, но помимо него вам стоит поговорить с Екатериной Светловой и Майклом Райтом. А сейчас, мне пора"_.
 
		]], code [[walkin('atlantis_intro_cutscene1')]]};
 
			Голос в трубке отвечает: "Тогда, я думаю, мы сможем помочь друг другу. Поговорите с руководителями станции: Фредериком Моро, Екатериной Светловой и Майклом Райтом".
 
		]], code [[ walkin('atlantis_intro_cutscene1'); ]]};
 
	};
 
};
 
 
@@ -105,7 +101,7 @@ atlantis_intro_wright_dlg = dlg {
 
				]];
 
			else
 
				return [[
 
					Майкл начинает рассказывать: _"Сейчас вы находитесь в секции ,,Аква'' - здесь у нас расположены доки и основные склады. ,,Аква'' разделена на три независимых коридора - мы сейчас находимся в коридоре B. Коридор A мало чем отличается от этого. Сейчас мы пройдем через центральный коридор в секцию ,,Доминус'' - центр ,,Атлантиды''"_.
 
					Майкл начинает рассказывать: _"Сейчас вы находитесь в секции ,,Аква'' - здесь у нас расположены доки и основные склады. ,,Аква'' разделена на три независимых коридора - мы сейчас находимся в коридоре B. Коридор A мало чем отличается от этого. Сейчас мы пройдем через центральный коридор в секцию ,,Доминус'' - центр ,,Атлантиды''"_. Вы снова слышите легкий щелчок, означающий отключение микрофона собеседника. 
 
				]];
 
			end;
 
		end, code [[ walk('atlantis_intro_walk_to_dominus')]];};
main.lua
Show inline comments
 
@@ -210,13 +210,13 @@ function init()
 
	leviathan_life_support.has_light = true;
 
	
 
	pl.party = {'wright'};
 
	lifeon(char_wright);
 
	put(item_toolbox, pl);
 
	put(item_ducttape, pl);
 
	pl.where = "leviathan_airlock";
 
	atlantis_found = true;
 
	move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
	
 
	--pl.where = "atl_oculus_lab_a";
 
	--put(item_suit, pl);
 
	
 
	-- pl.where = warehouse_32;
0 comments (0 inline, 0 general)