Changeset - f58c1494e547
[Not reviewed]
default
0 5 0
Silverwing - 7 years ago 2017-11-05 17:42:18

Learr, IOF, LFC fixes
5 files changed with 77 insertions and 97 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -900,7 +900,7 @@ char_learr_atlantis = npc {
 
        elseif stead.deref(here()) == "atl_oculus_library" then
 
            return [[{Леарр} спокойно стоит рядом с Екатериной Светловой. ]];
 
        else
 
            if (where(char_jack_wright_atlantis) == atl_ignis_hall_a) then
 
            if (stead.deref(where(char_jack_wright_atlantis)) == atl_ignis_hall_a) then
 
                return [[{Леарр} стоит перед иллюминатором и что-то рассказывает ]];
 
            else
 
                return [[{Леарр} стоит перед иллюминатором и смотрит вдаль. ]];
 
@@ -908,7 +908,7 @@ char_learr_atlantis = npc {
 
        end;
 
	end;
 
	dlg = function(s)
 
        if where(s) == atl_oculus_lab_a then
 
        if stead.deref(where(s)) == atl_oculus_lab_a then
 
            return "char_svetlova_dlg";
 
        else
 
            return "char_learr_atlantis_dlg";
atlantis_dlg.lua
Show inline comments
 
@@ -1434,7 +1434,7 @@ char_learr_atlantis_dlg = dlg {
 
		]]};
 
		{tag='pre_iof'};
 
		{"He'vji'a'rr?", [[Леарр кивает: "Мы так-наззываем пришшедшших-сс-поверхноссти-васс". ]]};
 
		{"Я хотел кое-что спросить", [["Ты говорри", -- просит Леарр. ]], code [[ 
 
		{"Я хотел кое-что спросить.", [["Ты говорри", -- просит Леарр. ]], code [[ 
 
			char_learr_atlantis_dlg.state = 1;
 
			walk('atl_iof_intro'); 
 
		]]};
atlantis_ignis_on_fire.lua
Show inline comments
 
@@ -85,7 +85,7 @@ char_learr_iof = obj {
 
		end;
 
	end;
 
	life = function(s)
 
		if (where(s) ~= where(pl) and where(pl).iof) then
 
		if (where(s) ~= where(pl) and where(pl).iof and not s.faint) then
 
			move(s, where(pl));
 
		end;
 
	end;
 
@@ -93,7 +93,7 @@ char_learr_iof = obj {
 
		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');
 
			walkin('atl_iof_learr_faint_alone_2');
 
		else		
 
			return [[Некогда разговаривать. ]];
 
		end;
 
@@ -140,7 +140,7 @@ dlg_learr_iof = dlg {
 
	disp = "Леарр";
 
	entered = [[Леарр подбегает к вам и спрашивает: "Что происходит?" ]];
 
	phr = {
 
		{'Надеюсь, все в порядке, следуй за мной', [[Леарр молча кивает. ]], code [[
 
		{'Надеюсь, все в порядке, следуй за мной. ', [[Леарр молча кивает. ]], code [[
 
			lifeon('char_learr_iof');
 
			char_learr_iof.state = 1;
 
			walk('atl_iof_ignis_hall_a');
 
@@ -208,9 +208,10 @@ atl_iof_time_state = obj {
 
		carry_learr = false;
 
	};
 
	life = function(s)
 
		if (not where(pl).iof) then 
 
		if (not where(pl).iof or where(pl).no_limits) then
 
			return;
 
		end;
 
        
 
		s.life_left = s.life_left - 1;
 
		if (s.life_left == 5) then
 
			if (not s.pl_safe) then 
 
@@ -252,13 +253,29 @@ atl_iof_time_state = obj {
 
	end;
 
};
 
 
atl_iof_learr_faint_alone_2 = dlg {
 
    nam = "Леарр";
 
    disp = "Леарр";
 
    dsc = [[Леарр лежит на полу без сознания. ]];
 
    phr = {
 
        {"[Взять Леарр на руки]", [[Леарр теряет сознание, обессилев. Вы берете навьярессу на руки. Она весит не больше обычного человека. Вы вполне в состоянии донести ее до выхода. ]], 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_alone = dlg {
 
	nam = "Леарр";
 
	disp = "Леарр";
 
	dsc = [[Леарр медленно опускается на пол. Сквозь скафандр вы с трудом различаете ее голос: "Я не-могу-идти". ]];
 
	phr = {
 
		{"Совсем немного осталось, пойдем. [Помочь Леарр подняться]", [[Леарр пытается подняться опираясь на вашу руку, но снова падает, теряя сознание. ]], code [[
 
			tag('faint');
 
			psub('faint');
 
		]]};
 
		{"Оставайся здесь, я вернусь. ", [[Леарр теряет сознание, обессилев. ]], code [[
 
			char_learr_iof.faint = true;
 
@@ -595,6 +612,7 @@ atl_iof_ignis_service_room = room {
 
	nam = "Атлантида, Игнис, служебное помещение";
 
	disp = "Атлантида, Игнис, служебное помещение";
 
	iof = true;
 
    no_limits = true;   
 
	dsc = [[Небольшое помещение, используемое для хранения различного оборудования, необходимого для обслуживания секции. ]];
 
	way = {
 
		kh_vroom("В главный зал", function(s)
 
@@ -1061,7 +1079,7 @@ atl_iof_electr_panel_open = dlg {
 
 
atl_iof_end = room {
 
	nam = "Атлантида";
 
	dsc = [[Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. Вы просыпаетесь утром. ^Едва вы поднимаетесь с койки, к вам в комнату входят двое охранников. Они просят вас проследовать за ними к начальнику службы безопасности -- Винсенту Даркстару. У вас нет никакого выхода, кроме как пойти с ними. ]];
 
	dsc = [[Вы возвращаетесь на станцию и сразу же отправляетесь в свою комнату, чтобы отдохнуть. ^Едва вы просыпаетесь, к вам в комнату входят двое охранников. Они просят вас проследовать за ними к Винсенту Даркстару. У вас нет никакого выхода, кроме как пойти с ними. ]];
 
	entered = function(s)
 
		atl_lfc_state = 1;
 
        if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0) then
atlantis_looking_for_clues.lua
Show inline comments
 
@@ -17,7 +17,7 @@ atl_lfc_darkstar_dlg = dlg {
 
	};
 
	nam = "Винсент Даркстар";
 
	disp = "Винсент Даркстар";
 
	entered = function(s)
 
	enter = function(s)
 
		psub("q1");
 
		s.limit = 3;
 
		q2_states = 0;
 
@@ -44,15 +44,9 @@ atl_lfc_darkstar_dlg = dlg {
 
	end;
 
	phr = {
 
		{tag="q1"};
 
		{"Вы меня подозреваете?", [[
 
			"Отвечайте на поставленный вопрос. Это не имеет значения".
 
		]]};
 
		{always=true,"Мы с Леарр разговаривали в зале А", [[
 
			"Хорошо. Дальше. Заметили ли вы что-то необычное в секции?"
 
		]], code [[ psub("q2"); ]]};
 
		{always=true,"Я не хочу отвечать", [[
 
			"Нет проблем. Следующий вопрос. Заметили ли вы что-то необычное в секции?"
 
		]], code [[
 
		{"Вы меня подозреваете?", [[Даркстар приказывает: "Отвечайте на поставленный вопрос. Это не имеет значения". ]]};
 
		{always=true, "Мы с Леарр разговаривали в зале А.", [[Даркстар кивает: "Хорошо. Дальше. Заметили ли вы что-то необычное в секции?" ]], code [[ psub("q2"); ]]};
 
		{always=true, "Я не хочу отвечать.", [[Даркстар разводит руками: "Нет проблем. Следующий вопрос. Заметили ли вы что-то необычное в секции?" ]], code [[
 
			atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			psub("q2");
 
		]]};
 
@@ -61,104 +55,72 @@ atl_lfc_darkstar_dlg = dlg {
 
			if (atl_lfc_darkstar_dlg.q2_states < 2) then
 
				atl_lfc_darkstar_dlg.limit = atl_lfc_darkstar_dlg.limit - 1;
 
			end;
 
			pr [[
 
				"Хорошо, идем дальше. 
 
			]];
 
			pr [[Даркстар кивает: "Хорошо, идем дальше. ]];
 
			if (atl_jack_in_party) then
 
				psub("q3_1");
 
				return [[
 
					Что делал в это время ваш друг, Джек?"
 
				]];
 
				return [[Что делал в это время ваш друг, Джек?" ]];
 
			else
 
				psub("q3_2");
 
				return [[
 
					Кроме вас кто-нибудь еще был в секции?"
 
				]];
 
				return [[Кроме вас кто-нибудь еще был в секции?" ]];
 
			end;
 
			
 
		end};
 
		{tag="halldoors", false, always=true,"Двери в другие залы не работали.", [[
 
			"Техники..."
 
		]], code [[ 
 
		{tag="halldoors", false, "Двери в другие залы не работали.", [[Даркстар вздыхает: "Техники..." ]], code [[ 
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{tag="board", false, always=true,"Один из электрощитов не был закрыт.", [[
 
			"Обычное дело на Атлантиде. Наши техники порой позволяют себе невероятную неаккуратность".
 
		]], code [[
 
		{tag="board", false, "Один из электрощитов не был закрыт.", [[Даркстар вздыхает: "Обычное дело на Атлантиде. Наши техники порой позволяют себе невероятную неаккуратность". ]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{tag="electric", false, always=true,"В зале А не работали электроприборы.", [[
 
			"Это уже совсем ни в какие ворота не лезет".
 
		]], code [[
 
		{tag="electric", false, "В зале А не работали электроприборы.", [[Даркстар недовольно качает головой: "Это уже совсем ни в какие ворота не лезет". ]], code [[
 
			atl_lfc_darkstar_dlg.q2_states = atl_lfc_darkstar_dlg.q2_states + 1; 
 
		]]};
 
		{tag="q3_1"};--Что делал в это время ваш друг, Джек?
 
		{always=true,"Он вышел в главный зал, чтобы не мешать нам", function(s)
 
		{always=true,"Он вышел в главный зал, чтобы не мешать нам.", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
				return [[Даркстар спрашивает: "Вы в Игнис с какой целью пришли?" ]];
 
			else
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
				return [[Даркстар кивает: "Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать". ]];
 
			end;
 
		end};
 
		{always=true,"Он был с нами", function(s)
 
		{always=true,"Он был с нами.", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
				return [[Даркстар спрашивает: "Вы в Игнис с какой целью пришли?" ]];
 
			else
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
				return [[Даркстар кивает: "Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать". ]];
 
			end;
 
		end};
 
		{always=true,"Не помню", function(s)
 
		{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 [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
				return [[Даркстар спрашивает: "Вы в Игнис с какой целью пришли?" ]];
 
			else
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
				return [[Даркстар кивает: "Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать". ]];
 
			end;
 
		end};
 
		{tag="q3_2"};--Кроме вас с Леарр кто-нибудь еще был в секции?
 
		{always=true,"Я никого не видел", function(s)
 
		{always=true,"Я никого не видел.", function(s)
 
			if (atl_lfc_darkstar_dlg.limit < 2) then
 
				psub("i1");
 
				return [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
				return [[Даркстар спрашивает: "Вы в Игнис с какой целью пришли?" ]];
 
			else
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
				return [[Даркстар кивает: "Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать". ]];
 
			end;
 
		end};
 
		{always=true,"Не помню", function(s)
 
		{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 [[
 
					"Вы в Игнис с какой целью пришли?"
 
				]];
 
				return [[Даркстар спрашивает: "Вы в Игнис с какой целью пришли?" ]];
 
			else
 
				walk("atl_lfc_darkstar_interlude");
 
				return [[
 
					"Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать".
 
				]];
 
				return [[Даркстар кивает: "Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать". ]];
 
			end;
 
		end};
 
		{tag="i1"};
 
@@ -166,35 +128,23 @@ atl_lfc_darkstar_dlg = dlg {
 
			if (atl_iof_learr_dead) then
 
				if (atl_lfc_darkstar_dlg.total_limit > 1) then
 
					psub("i2_1");
 
					return [[
 
						"Почему вы оставили Леарр там?"
 
					]];
 
					return [[Даркстар смотрит вам прямо в глаза и спрашивает: "Почему вы оставили Леарр там?" ]];
 
				else
 
					psub("i3");
 
					return [[
 
						"Откуда вы узнали про скафандры?"
 
					]];
 
					return [[Даркстар спрашивает: "Откуда вы узнали про скафандры?" ]];
 
				end;
 
			else
 
				psub("i2_2");
 
				return [[
 
					"Почему вы спасли Леарр?"
 
				]];
 
				return [[Даркстар спрашивает: "Почему вы спасли Леарр?" ]];
 
			end;
 
		end;};
 
		{always=true,"Посмотреть Игнис.", [[
 
			"Вы знали, что Леарр там?"
 
		]], code [[ psub("i2_3"); ]]};
 
		{always=true,"Это имеет значение?", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования".
 
		]], code = [[
 
		{always=true,"Посмотреть Игнис.", [[Даркстар спрашивает: "Вы знали, что Леарр там?" ]], code [[ psub("i2_3"); ]]};
 
		{always=true,"Это имеет значение?", [[Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования". ]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{tag="i2_1"};
 
		{always=true,"У меня не было выбора", [[
 
			Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Вам стоит еще подумать".
 
		]], code = [[
 
		{always=true,"У меня не было выбора", [[Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Вам стоит еще подумать". ]], code = [[
 
			atl_lfc_darkstar_dlg.total_limit = atl_lfc_darkstar_dlg.total_limit - 1;
 
			walk('atl_lfc_non_coop');
 
		]]};
 
@@ -207,21 +157,21 @@ atl_lfc_darkstar_dlg = dlg {
 
			walk('atl_lfc_non_coop');
 
		]]};
 
		{tag="i2_2"};
 
		{always=true,"Я не мог оставить ее умирать", [["Откуда вы узнали про скафандры?"]], code [[
 
		{always=true,"Я не мог оставить ее умирать.", [[Даркстар спрашивает: "Откуда вы узнали про скафандры?"]], code [[
 
			psub("i3");
 
		]]};
 
		{tag="i2_3"};
 
		{always=true,"Светлова говорила, что она может быть в Игнисе", [["Откуда вы узнали про скафандры?"]], code [[
 
		{always=true,"Светлова говорила, что она может быть в Игнисе.", [[Даркстар спрашивает: "Откуда вы узнали про скафандры?"]], code [[
 
			psub("i3");
 
		]]};
 
		{always=true,"Нет", [["Откуда вы узнали про скафандры?"]], code [[
 
		{always=true,"Нет.", [[Даркстар спрашивает: "Откуда вы узнали про скафандры?"]], code [[
 
			psub("i3");
 
		]]};
 
		{always=true,"Это имеет значение?", [[Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "Все имеет значение. Раз вы не хотите сотрудничать, придется вас изолировать до окончания расследования". ]], code [[
 
			psub("i3");
 
		]]};
 
		{tag = "i3"};
 
		{always=true,tag="wright_said", "Джек Райт сказал.", [["Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать". ]], code = [[
 
		{always=true,tag="wright_said", "Джек Райт сказал.", [[Даркстар кивает: "Хорошо. Больше у меня вопросов нет. Но я хочу вам кое-что рассказать". ]], code = [[
 
			walk("atl_lfc_darkstar_interlude");
 
		]]};
 
		{always=true,"Леарр сказала.", [["Она не могла этого знать", -- Даркстар угрожающе поднимается, опирается на стол и недовольно говорит: "А я терпеть не могу, когда мне врут". ]], code = [[
 
@@ -248,11 +198,22 @@ atl_lfc_darkstar_interlude = room {
 
};
 
 
atl_lfc_darkstar_office = room {
 
    var {
 
        timer = 4;
 
    };
 
	nam = "Атлантида, Доминус, кабинет начальника СБ";
 
	dsc = [[Кабинет начальника службы безопасности почти пуст -- здесь нет ничего кроме массивного металлического стола(судя по всему, бронированного) в центре и кресла перед ним. ]];
 
	entered = function()
 
	entered = function(s)
 
        lifeon(s);   
 
	end;
 
    left = function(s)
 
        lifeoff(s);
 
	end;
 
	life = function()
 
	life = function(s)
 
        s.timer = s.timer - 1;
 
        if s.timer <= 0 then
 
            walk("atl_lfc_darkstar_interlude_2")
 
        end;
 
	end;
 
	way = {
 
		kh_vroom("В коридор", function()
utils.lua
Show inline comments
 
@@ -166,7 +166,8 @@ function npc(tab)
 
	if (not tab.act) then
 
		tab.act = function(s)
 
			if (s.dlg) then
 
				walkin(s.dlg);
 
                local dlg = EngineUtils.getValue(s.dlg, s);
 
				walkin(dlg);
 
			else
 
                local phrases = EngineUtils.getValue(s.phrases, s);
 
				return phrases[rnd(#phrases)];
0 comments (0 inline, 0 general)