Changeset - b32fd3efa26a
[Not reviewed]
default
0 3 0
Silverwing - 7 years ago 2017-04-23 08:32:01

313
3 files changed with 30 insertions and 0 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -662,358 +662,364 @@ atl_oculus_lab_c = room {
 
	};
 
};
 
 
atl_oculus_library = room {
 
	nam = "Атлантида, Окулус, библиотека";
 
	dsc = [[Рядом со входом в библиотеку расположен небольшой столик, на котором покоится каталог. Практически все пространство комнаты занято высокими стеллажами, заполненными книгами, журналами и документами. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
    obj = {
 
        "char_legrand"
 
    };
 
};
 
 
atl_dom_lift = room {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Атлантида, лифт";
 
	dsc = [[Герметичная кабина лифта, рассчитанная на 5-6 человек. ]];
 
	way = {
 
		kh_vroom("Выйти", function()
 
			if (atl_dom_lift.state == 0) then
 
				return "atl_dom_main_c";
 
			else
 
				return "atl_ignis_main_center";
 
			end;
 
		end);
 
	};
 
	obj = {
 
		"atl_lift_lever"
 
	};
 
};
 
 
atl_lift_lever = obj {
 
	nam = "Рычаг";
 
	dsc = [[На стене укреплен массивный {рычаг}, повернув который, вы приведете в движение механизм лифта. ]];
 
	act = function(s)
 
		if (atl_dom_lift.state == 1) then
 
			atl_dom_lift.state = 0;
 
			return [[Вы поворачиваете рычаг и слышите грохот механизмов, плавно опускающих кабину лифта. ]];
 
		else
 
			atl_dom_lift.state = 1;
 
			return [[Вы поворачиваете рычаг и слышите грохот механизмов, плавно поднимающих кабину лифта. ]];
 
		end;
 
	end;
 
};
 
 
--[[
 
Персонажи
 
]]
 
 
char_darkstar = npc {
 
    var {
 
        drake_asked = 0;
 
        black_asked = 0;
 
        darkstar_asked = 0;
 
        svetlova_asked = 0;
 
        moreau_asked = 0;
 
        wright_asked = 0;
 
        leroy_asked = 0;
 
        jones_asked = 0;
 
        goldman_asked = 0;
 
        atlantis_asked = 0;
 
        navjiarr_asked = 0;
 
        learr_asked = 0;
 
        ryveerr_asked = 0;
 
        aikerjarr_asked = 0;
 
    };
 
	nam = "Винсент Даркстар";
 
	dsc = function(s)
 
        if (char_darkstar_dlg == 0) then
 
            return [[В одном из кресел сидит средних лет {мужчина} с короткими черными волосами. Он одет в строгий деловой костюм черного цвета. Лицо его гладко выбрито. Холодный взгляд его черных глаз устремлен на вас. Сложив руки на столе, он ждет ваших дальнейших действий. ]];
 
        else
 
            return [[В одном из кресел сидит {Винсент Даркстар}. Холодный взгляд его черных глаз устремлен на вас. Сложив руки на столе, он ждет ваших дальнейших действий. ]];
 
        end;
 
    end;   
 
	dlg = "char_darkstar_dlg";
 
};
 
 
char_moreau = npc {
 
    var {
 
        drake_asked = 0;
 
        black_asked = 0;
 
        darkstar_asked = 0;
 
        svetlova_asked = 0;
 
        moreau_asked = 0;
 
        wright_asked = 0;
 
        leroy_asked = 0;
 
        jones_asked = 0;
 
        goldman_asked = 0;
 
        atlantis_asked = 0;
 
        navjiarr_asked = 0;
 
        learr_asked = 0;
 
        ryveerr_asked = 0;
 
        aikerjarr_asked = 0;
 
        iof_reaction = 0;
 
    };
 
	nam = "Фредерик Моро";
 
	dsc = function(s)
 
        if (char_moreau_dlg.state == 0) then
 
            return [[За столом в кресле сидит немолодой {мужчина}. Кудрявые седые волосы обрамляют его лицо. Он носит длинные седые усы. Одет человек в строгий деловой костюм бежевого цвета. Его серые глаза, скрытые очками, внимательно рассматривают вас. В руках он вертит перо. ]];
 
        else
 
            return [[За столом в кресле сидит {Фредерик Моро} и внимательно наблюдает за вами сквозь стекла очков. В руках он вертит перо. ]];
 
        end;
 
    end;   
 
	dlg = "char_moreau_dlg";
 
};
 
 
char_svetlova = npc {
 
    var {
 
        drake_asked = 0;
 
        black_asked = 0;
 
        darkstar_asked = 0;
 
        svetlova_asked = 0;
 
        moreau_asked = 0;
 
        wright_asked = 0;
 
        leroy_asked = 0;
 
        jones_asked = 0;
 
        goldman_asked = 0;
 
        atlantis_asked = 0;
 
        navjiarr_asked = 0;
 
        learr_asked = 0;
 
        ryveerr_asked = 0;
 
        aikerjarr_asked = 0;
 
        iof_reaction = 0;
 
    };
 
	nam = "Екатерина Светлова";
 
	dsc = function(s)
 
        if (char_svetlova_dlg.state == 0) then   
 
            return [[За столом сидит {женщина} лет сорока-пяти. Золотистые волосы собраны в пучок на затылке. Она одета в простое синее платье. В правой руке она держит карандаш, которым периодически делает пометки в бумагах, лежащих на столе. Кажется, она не обращает на вас никакого внимания. ]];
 
        else
 
            return [[За столом сидит {Екатерина Светлова}. Периодически она делает какие-то пометки карандашом в ]];
 
        end;
 
    end;
 
	dlg = "char_svetlova_dlg";
 
};
 
 
char_anna_atlantis = npc {
 
	nam = "Анна Рэдклифф";
 
	disp = "Анна Рэдклифф";
 
	dsc = function(s)
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
            if (char_anna_atlantis_dlg.state == 0) then
 
                return [[{Девушка} лет двадцати-пяти--тридцати внимательно слушает навьяра, иногда что-то спрашивая. ]];
 
            else
 
			    return [[{Анна Рэдклифф} внимательно слушает навьяра, иногда что-то спрашивая. ]];
 
            end;         
 
		else
 
            if (char_anna_atlantis_dlg.state == 0) then      
 
                return [[{Девушка} лет тридцати внимательно слушает навьяров, иногда что-то спрашивая. ]];
 
            else
 
			    return [[{Анна Рэдклифф} внимательно слушает навьяров, иногда что-то спрашивая. ]];
 
            end;         
 
		end;
 
	end;
 
	dlg = "char_anna_atlantis_dlg";
 
};
 
 
char_learr_atlantis = npc {
 
	var {
 
		offended = false;
 
	};
 
	nam = "Леарр";
 
	dsc = function(s)
 
        if (stead.deref(here()) == "atl_oculus_library") then
 
            return [[{Леарр} сидит за одним из столов, листая какую-то книгу. ]];
 
        else
 
            if (where(char_jack_wright_atlantis) == atl_ignis_hall_a) then
 
                return [[{Леарр} стоит перед иллюминатором и что-то рассказывает ]];
 
            else
 
                return [[{Леарр} стоит перед иллюминатором и смотрит вдаль. ]];
 
            end;
 
        end;
 
	end;
 
	dlg = "char_learr_atlantis_dlg";
 
};
 
 
char_aikerjarr = npc {
 
	nam = "Аикерьярр";
 
	dsc = function(s)
 
        if (char_aikerjarr_dlg.state == 0) then
 
            return [[У одного из столов неподвижно стоит {навьяр}. ]];
 
        else
 
		    return [[У одного из столов неподвижно стоит {Аикерьярр}. ]];
 
        end;      
 
	end;
 
	dlg = "char_aikerjarr_dlg";
 
};
 
 
char_ryveerr = npc {
 
    var {
 
        iof_reaction = 0;
 
    };
 
	nam = "Ривеерр";
 
	dsc = function(s)
 
		if (where(char_learr_atlantis) ~= atl_oculus_lab_c) then
 
            if (char_ryveerr_dlg.state == 0) then
 
			    return [[У одного из столов стоит {навьяр} и что-то рассказывает. ]];
 
            else
 
                return [[У одного из столов стоит {Ривеерр} и что-то рассказывает. ]];
 
            end;         
 
		else
 
            if (char_ryveerr_dlg.state == 0) then
 
			    return [[Рядом стоит {навьяр} и иногда прерывает рассказ Леарр, добавляя что-то. ]];
 
            else
 
                return [[Рядом стоит {Ривеерр} и иногда прерывает рассказ Леарр, добавляя что-то. ]];
 
            end;
 
		end;
 
	end;
 
	dlg = "char_ryveerr_dlg";
 
};
 
 
char_evans = npc {
 
	nam = "Кристиан Эванс";
 
	dsc = function(s)
 
		if (char_evans_dlg.state == 0) then
 
            return [[Там же стоит пожилой {мужчина} с блокнотом и делает какие-то записи. ]];
 
        else
 
            return [[Там же стоит {Кристиан Эванс} с блокнотом и делает какие-то записи. ]];
 
        end;
 
	end;
 
	dlg = "char_evans_dlg";
 
};
 
 
char_winterlight = npc {
 
	nam = "Сильвия Уинтерлайт";
 
	dsc = function(s)
 
        if (char_winterlight_dlg.state == 0) then
 
            return [[{Женщина} лет тридцати-пяти--сорока стоит, склонишись над картой. Длинные темные волосы спадают на плечи. Она одета в длинную черную юбку и серую блузку. Ее зеленые глаза внимательно изучают документ, лежащий перед ней. ]];
 
        else
 
            return [[{Сильвия Уинтерлайт} стоит возле одного из столов, рассматривая карту. ]];
 
        end;
 
    end;   
 
	dlg = "char_winterlight_dlg";
 
};
 
 
char_jack_wright_atlantis = npc {
 
	nam = "Джек Райт";
 
	dsc = function(s)
 
        if (where(char_jack_wright_atlantis) == atl_ignis_hall_a) then
 
			return [[{Джеку Райт}, стоящему рядом. ]];
 
		else 
 
			return [[{Джек Райт} лежит на койке, листая какую-то книгу. Рядом лежит блокнот, в котором он время от времени он делает пометки карандашом. ]];
 
		end;
 
	end;
 
	dlg = "char_jack_wright_atlantis_dlg";
 
};
 
 
char_michael_wright = npc {
 
	nam = "Майкл Райт";
 
    var {
 
        drake_asked = 0;
 
        black_asked = 0;
 
        darkstar_asked = 0;
 
        svetlova_asked = 0;
 
        moreau_asked = 0;
 
        wright_asked = 0;
 
        leroy_asked = 0;
 
        jones_asked = 0;
 
        goldman_asked = 0;
 
        atlantis_asked = 0;
 
        navjiarr_asked = 0;
 
        learr_asked = 0;
 
        ryveerr_asked = 0;
 
        aikerjarr_asked = 0;
 
        jack_asked = 0;
 
        iof_reaction = 0;
 
    };   
 
	dsc = function(s)
 
        return [[{Майкл Райт} просматривает какие-то чертежи. ]];
 
    end;
 
	dlg = "char_michael_wright_dlg";
 
};
 
 
char_legrand = npc {
 
	nam = "Мари Легран";
 
	dsc = function(s)
 
        if (char_legrand_dlg.state == 0) then
 
            return [[На стуле в углу сидит {женщина} лет сорока--сорока-пяти и листает какую-то книгу.]];
 
        else
 
            return [[На стуле в углу сидит {Мари Легран} и листает какую-то книгу. ]];
 
        end;   
 
    end;   
 
	dlg = "char_legrand_dlg";
 
};
 
 
char_radcliffe_atlantis = npc {
 
	nam = "Уолтер Рэдклифф";
 
	dsc = function(s)
 
        if (char_radcliffe_atlantis_dlg.state == 0) then
 
            return [[{Человек} лет сорока--сорока-пяти стоит, навалившись на стену. ]];
 
        else
 
            return [[{Уолтер Рэдклифф} стоит, навалившись на стену. ]];
 
        end;
 
    end;
 
	dlg = "char_radcliffe_atlantis_dlg";
 
};
 
 
char_page = npc {
 
	nam = "Фрэнсис Пейдж";
 
	dsc = function(s)
 
        if (char_page_dlg.state == 0) then
 
            return [[Пожилой {мужчина} в рабочей одежде осматривает Наутилус. ]];
 
        else
 
            return [[{Фрэнсис Пейдж} осматривает Наутилус. ]];
 
        end;   
 
    end;   
 
	dlg = "char_page_dlg";
 
};
 
 
char_leroy = npc {
 
	nam = "Мишель Леруа";
 
	dsc = function(s)
 
        if (char_leroy_dlg.state == 0) then
 
            return [[{Мужчина} лет пятидесяти работает над каким-то чертежом. ]];
 
        else
 
            return [[{Мишель Леруа} работает над каким-то чертежом. ]];
 
        end;
 
    end;   
 
    dlg = "char_leroy_dlg";   
 
};
 
 
char_goldman = npc {
 
	nam = "Леонард Голдман";
 
	dsc = function(s)
 
        if (char_goldman_dlg.state == 0) then
 
            return [[На койке, закинув руки за голову, лежит светловолосый {мужчина} лет пятидесяти. ]];
 
        else
 
            return [[На койке, закинув руки за голову, лежит {Леонард Голдман}. ]];
 
        end;   
 
    end;   
 
	dlg = "char_goldman_dlg";
 
};
 
 
char_jones = npc {
 
	nam = "Чарли Джонс";
 
	dsc = function(s)
 
        if (char_jones_dlg.state == 0) then
 
            return [[Пожилой {человек}, одетый в простой серый костюм, сидит на койке и задумчиво вертит в руках карандаш. ]];
 
        else
 
            return [[{Чарли Джонс} сидит на койке и задумчиво вертит в руках карандаш. ]];
 
        end;
 
    end;
 
	dlg = "char_jones_dlg";
 
};
 
 
atl_nih_tubes_gen = function(nam, dsc)
 
	return obj {
 
		var {
 
			broken = false;
 
			fixed = false;
 
		};
 
		nam = nam;
 
		dsc = dsc;
 
		act = function(s)
 
			if (s.fixed) then
 
				return "Поврежденные трубы замотаны изолентой";
 
			elseif (s.broken) then
 
				return "Трубы повреждены и воздух со слабым шипением вырывается из них";
 
			else
 
				return "Трубы в порядке";
 
			end;
 
		end;
atlantis_dlg.lua
Show inline comments
 
@@ -233,198 +233,220 @@ char_moreau_dlg = dlg {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Фредерик Моро";
 
	disp = "Фредерик Моро";
 
	entered = function(s)
 
		if (atl_lfc_state == 3) then
 
			atl_lfc_state = 4;
 
			atl_lev_state = 1;
 
			local reputation = 0;
 
			if (atl_rep_darkstar > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_moreau > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_svetlova > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			if (atl_rep_wright > 0) then
 
				reputation = reputation + 1;
 
			end;
 
			
 
			if (reputation > 2 and atl_rep_moreau >= 0) then
 
				psub("lfc_debrief_good");
 
				return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Вы очень помогли нам в поимке саботажника. Огромное спасибо. Посовещавшись, мы решили вернуть вам Левиафан. Также, вы можете посещать Атлантиду в любое удобное для вас время -- мы всегда будем рады вас видеть". ]];
 
			elseif (reputation > 2) then
 
				psub("lfc_debrief_good");
 
				return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Вы очень помогли нам в поимке саботажника. Посовещавшись, мы решили вернуть вам Левиафан. Также, мы решили не запрещать вам доступ на Атлантиду, но не думайте, что я рад вас видеть". ]];
 
			elseif (atl_rep_moreau >= 0) then
 
				psub("lfc_debrief_bad");
 
				return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Вы очень помогли нам в поимке саботажника. Огромное спасибо. Посовещавшись, мы решили вернуть вам Левиафан. К сожалению, совет решил ограничить вам доступ к станции, поэтому я прошу вас покинуть Атлантиду как можно скорее". ]];
 
			else
 
				psub("lfc_debrief_bad");
 
				return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Вы очень помогли нам в поимке саботажника. Посовещавшись, мы решили вернуть вам Левиафан. Убирайтесь и больше не возвращайтесь сюда". ]];
 
			end;
 
		end;
 
		
 
		if (atl_lfc_state == 1 and not s.lfc_dialog) then
 
			s.lfc_dialog = true;
 
			pon('sabotage', 'ignis_what');
 
        elseif (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
		end;
 
        
 
        poff("on_drake", "on_black", "on_darkstar", "on_svetlova", "on_moreau", "on_wright", "on_leroy", "on_jones", "on_goldman", "on_atlantis", "on_navjiarr", "on_learr", "on_ryveerr", "on_aikerjarr");
 
        
 
        if (atl_rep_moreau < 0) then
 
            if (char_moreau.drake_asked == 0) then pon("on_drake"); end;
 
            if (char_moreau.black_asked == 0) then pon("on_black"); end;
 
            if (char_moreau.darkstar_asked == 0) then pon("on_darkstar"); end;
 
            if (char_moreau.svetlova_asked == 0) then pon("on_svetlova"); end;
 
            if (char_moreau.moreau_asked == 0) then pon("on_moreau"); end;
 
            if (char_moreau.wright_asked == 0) then pon("on_wright"); end;
 
            
 
            if (atl_iof_completed) then
 
                if (char_moreau.leroy_asked == 0) then pon("on_leroy"); end;
 
                if (char_moreau.jones_asked == 0) then pon("on_jones"); end;
 
                if (char_moreau.goldman_asked == 0) then pon("on_goldman"); end;
 
            end;
 
            
 
            if (char_moreau.atlantis_asked == 0) then pon("on_atlantis"); end;
 
            
 
            
 
            if (char_moreau.navjiarr_asked == 0) then pon("on_navjiarr"); end;
 
            if (char_moreau.learr_asked == 0) then pon("on_learr"); end;
 
            if (char_moreau.ryveerr_asked == 0) then pon("on_ryveerr"); end;
 
            if (atl_iof_learr_dead and char_moreau.aikerjarr_asked == 0) then pon("on_aikerjarr"); end;
 
        else
 
            if (char_moreau.drake_asked < 2) then pon("on_drake"); end;
 
            if (char_moreau.black_asked < 2) then pon("on_black"); end;
 
            if (char_moreau.darkstar_asked < 2) then pon("on_darkstar"); end;
 
            if (char_moreau.svetlova_asked < 2) then pon("on_svetlova"); end;
 
            if (char_moreau.moreau_asked < 2) then pon("on_moreau"); end;
 
            if (char_moreau.wright_asked < 2) then pon("on_wright"); end;
 
            
 
            if (atl_iof_completed) then
 
                if (char_moreau.leroy_asked < 2) then pon("on_leroy"); end;
 
                if (char_moreau.jones_asked < 2) then pon("on_jones"); end;
 
                if (char_moreau.goldman_asked < 2) then pon("on_goldman"); end;
 
            end;
 
            
 
            if (char_moreau.atlantis_asked < 2) then pon("on_atlantis"); end;
 
            
 
            if (char_moreau.navjiarr_asked < 2) then pon("on_navjiarr"); end;
 
            if (char_moreau.learr_asked < 2) then pon("on_learr"); end;
 
            if (atl_iof_learr_dead and char_moreau.learr_asked < 3) then pon("on_learr"); end;
 
            if (char_moreau.ryveerr_asked < 2) then pon("on_ryveerr"); end;
 
            if (atl_iof_learr_dead and char_moreau.aikerjarr_asked < 2) then pon("on_aikerjarr"); end;
 
        end;
 
	
 
		if (s.state == 0) then
 
			s.state = 1;
 
			psub("first_meeting");
 
			return [[За столом перед вами сидит немолодой мужчина. Кудрявые седые волосы обрамляют его лицо. Он носит длинные седые усы. Одет человек в строгий деловой костюм бежевого цвета. Его серые глаза, скрытые очками, внимательно рассматривают вас. Вертя в руках перо он приветствует вас: "Добро пожаловать на Атлантиду, месье Дрейк. Мое имя - Фредерик Моро и я исполняю обязанности начальника станции в отсутствие Уильяма и Адриана. Ваше прибытие крайне удивило нас - мы думали, с поверхности найти нашу станцию невозможно. Пока мы думаем, что делать с вами дальше, вы можете воспользоваться ресурсами станции, чтобы узнать побольше о вашем отце и, быть может, понять, куда в точности он направился. Для начала, стоит немного ввести вас в курс дела".^
 
				Моро подходит к книжной полке и берет какую-то книгу. Вернувшись за стол, он раскрывает ее и приступает к рассказу: "Когда мы строили Надежду, нашей целью было создать быстрый и безопасный способ путешествий через Атлантику. Однако, все с самого начала пошло не так, как планировалось. Мы встретили племя подводных существ, именующих себя навьярами - они похожи на рыб и людей одновременно - ходят на двух ногах, используют две руки, но покрыты чешуей и имеют жабры. Тогда мы приняли решение исследовать их тщательнее. Были построены Энтерпрайз, Наутилус и сама Атлантида. Потом мы переселились сюда. Дрейк был захвачен одной из легенд этих рыбней и не так давно, наконец, решился отправиться в экспедицию". ]];
 
		elseif (char_moreau.iof_reaction == 0 and atl_iof_completed) then
 
            char_moreau.iof_reaction = 1;      
 
            if (atl_iof_learr_dead) then
 
                psub("iof_learr_dead");
 
                return [[Фредерик Моро как обычно сидит за столом. Как только вы подходите, он сообщает вам: "Месье Дрейк, рад видеть, что с вами все в порядке. К сожалению, нам не удалось спасти Леарр. Это большая потеря для всех нас. Думаю, вам стоит знать, что на станцию прибыл Аикерьярр, чтобы продолжить ее работу". ]];
 
            elseif (atl_iof_learr_suit) then
 
                psub("iof_learr_suit");
 
                return [[Фредерик Моро как обычно сидит за столом. Как только вы подходите, он сообщает вам: "Месье Дрейк, рад видеть, что с вами все в порядке. Леарр рассказала мне о вашей идее со скафандром. Спасибо, что позаботились о ней". ]];
 
            else
 
                psub("iof_learr");
 
                return [[Фредерик Моро как обычно сидит за столом. Как только вы подходите, он сообщает вам: "Месье Дрейк, рад видеть, что с вами все в порядке. Спасибо, что позаботились о Леарр. С ней все хорошо". ]];
 
            end;
 
		else
 
			psub("generic");
 
			return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Чем могу помочь?" ]];
 
		end;		
 
	end;
 
	phr = {
 
        {tag="iof_learr_dead"};
 
        {"Я ничего не мог сделать. ", [[Фредерик Моро кивает: "Я понимаю". Немного помолчав он говорит: "Давайте к делу". ]], code [[psub("generic");]]};
 
        {"Давайте к делу. ", [[Фредерик Моро неодобрительно кивает: "Слушаю". ]], code [[
 
            atl_rep_moreau = atl_rep_moreau - 1;
 
            psub("generic");
 
        ]]};
 
        {tag="iof_learr_suit"};
 
        {"Рад, что никто не пострадал. ", [[Фредерик Моро кивает: "Ваши действия достойны уважения. Еще раз благодарю вас. Но, перейдем к делу". ]], code [[psub("generic");]]};
 
        {tag="iof_learr"};
 
        {"Рад, что никто не пострадал. ", [[Фредерик моро кивает: "Перейдем к делу". ]], code [[psub("generic");]]};
 
		{tag="first_meeting", empty = code[[ psub("generic"); ]]};
 
		{"Я не имею намерения раскрывать существование Атлантиды.", [[Фредерик Моро кивает: "Рад это слышать, но нам нужно больше чем ваши слова". ]]};
 
		{"Что за навьяры?", [[Фредерик Моро отвечает: _"Na'vji'a'rr -- с их языка это переводится, как ,,Живущие в глубинах''. Как я сказал, они чем-то похожи на людей, но по сути своей они -- рыбы. Подробнее о них вам стоит поговорить с нашими учеными в секции Окулус. Там же вы можете встретить Ривеерра и Леарр -- наших гостей из двух ближайших поселений навьяров"_. ]]};
 
		{"Как получилось, что Левиафан остался на поверхности?", [[Фредерик Моро задумчиво чешет подбородок. Через некоторое время он отвечает: _"Сложно сказать. Это было в ведении Майкла Райта. Скорее всего -- они с Дрейком сознательно спрятали его"_.
 
		]]};
 
        {"Куда конкретно направился Уильям?", [[Фредерик Моро вздыхает: "У нас нет точных данных. И похоже их не было и у Блэка с Дрейком. Мы знаем, что их цель - древний навьярский город". ]]};
 
		{tag="generic"};
 
        {tag="on_drake", false, "Расскажите об Уильяме. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.drake_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.drake_asked = 2;
 
                return [[Фредерик Моро отвечает: "Уильям Дрейк безусловно гениальный предприниматель и грамотный руководитель, однако он не достиг бы таких успехов, если бы работал один. Адриан Блэк всегда помогал ему управлять компанией. Майкл Райт придумал и построил многие суда компании. Уильям всегда понимал важность сотрудников Вестхейвен Трансоушен и оказывал и продолжает оказывать должное уважение всем нам". ]];
 
            end;
 
        end};
 
        {tag="on_black", false, "Расскажите об Адриане Блэке. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.black_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.black_asked = 2;
 
                return [[Фредерик Моро отвечает: "Адриан Блэк -- один из основателей Вестхейвен Трансоушен. Он совсем не похож на Уильяма -- осторожный и рассчетливый, он часто вступал в спор с Дрейком по поводу особенно рискованных предприятий. Ему мы тоже многим обязаны, но, если говорить честно, Уильям был гораздо популярнее среди сотрудников". ]];
 
            end;
 
        end};
 
        {tag="on_darkstar", false, "Расскажите о Винсенте Даркстаре. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.darkstar_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.darkstar_asked = 2;
 
                return [[Фредерик Моро отвечает: "О нем мало что известно, да он и неразговорчив. Впрочем он справляется со своими обязанностями и Дрейк доверяет ему". ]];
 
            end;
 
        end};
 
        {tag="on_svetlova", false, "Расскажите о Екатерине Светловой. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.svetlova_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.svetlova_asked = 2;
 
                return [[Фредерик Моро отвечает: "Екатерина здесь только из-за навьяров. Ваш отец пригласил ее в Вестхейвен Трансоушен сразу после первой экспедиции Надежды. Сейчас она руководит исследованиями на Атлантиде. Она может показаться вам циничной, но, поверьте, это не вполне так". ]];
 
            end;
 
        end};
 
        {tag="on_moreau", false, "Расскажите о себе. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.moreau_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.moreau_asked = 2;
 
                return [[Фредерик Моро отвечает: "Я мало что могу рассказать. Мы с вашим отцом, Адрианом и Майклом вместе учились. Когда мы основали Вестхейвен Трансоушен, я остался в тени моих более талантливых друзей. Впрочем, меня, если честно, вполне устраивало такое положение. Сейчас, когда Уильям и Адриан отправились в свою экспедицию, мне пришлось занять пост руководителя станции, но я с радостью вернусь на свою прежнюю должность, как только они вернутся". ]];
 
            end;
 
        end};
 
        {tag="on_wright", false, "Расскажите о Майкле Райте. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.wright_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.wright_asked = 2;
 
                return [[Фредерик Моро отвечает: "Майкл Райт в компании с самого основания. Он гениальный инженер и изобретатель. Атлантиду тоже спроектировал он и для него она стала смыслом существования. Майкл даже оставил жену и сына на поверхности в пользу возможности развивать станцию". ]];
 
            end;
 
        end};
 
        {tag="on_leroy", false, "Что вы думаете о Мишеле Леруа?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.leroy_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.leroy_asked = 2;
 
                return [[Фредерик Моро отвечает: "Мишель Леруа -- один из наших инженеров. Последнее время он очень активно выступает в пользу завершения работы станции и возвращения на поверхность. К счастью, его пока поддерживает не слишком много людей. Майкл Райт расскажет вам больше про него". ]];
 
            end;
 
        end};
 
        {tag="on_jones", false, "Что вы думаете о Чарли Джонсе?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.jones_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.jones_asked = 2;
 
                return [[Фредерик Моро отвечает: "Чарли Джонс -- один из наших инженеров. Кажется, он поддался влиянию Леруа и поддерживает его в плане возвращения на поверхность. Майкл Райт расскажет вам больше про него". ]];
 
            end;
 
        end};
 
        {tag="on_goldman", false, "Что вы думаете о Леонарде Голдмане?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.goldman_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.goldman_asked = 2;
 
                return [[Фредерик Моро отвечает: "Леонард Голдман -- один из наших инженеров. Он один из сторонников возвращения на поверхность -- он первым на станции начал поднимать этот вопрос . Майкл Райт расскажет вам больше про него". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", false, "Расскажите об Атлантиде. ", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.atlantis_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.atlantis_asked = 2;
 
                return [[Фредерик Моро отвечает: "Мы построили Атлантиду чтобы изучать навьяров. Для этого же мы собрали команду ученых, которую возглавила Екатерина Светлова. Станция постепенно росла, благодаря усилиям инженерной команды под руководством Майкла Райта. Мы пригласили сюда навьяров из ближайших поселений -- Леарр из Ираафаанотра и Ривеерра из Дипатреанотра. Можете поговорить с ними, если хотите -- они сейчас на станции". ]];
 
            end;
party.lua
Show inline comments
 
@@ -10,192 +10,194 @@ party_accompany = function(s, value)
 
		lifeoff(s);
 
	end;
 
end;
 
 
party_follow = function(s)
 
    if (where(pl).cutscene) then
 
    elseif (where(pl).leviathan) then
 
        if (stead.nameof(where(s)) ~= s.home) then
 
            move(s, s.home, where(s));
 
        end;
 
    else
 
        move(s, where(pl), where(s));
 
    end;
 
end;
 
 
-- TODO больше отвлеченных диалогов, дабы было о чем поговорить с сопартийцами. Не стоит делать их деревянными безжизненными манекенами
 
char_learr = obj {
 
	var {
 
		follow = false;
 
	};
 
	nam = "learr";
 
	disp = "Леарр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Леарр} стоит возле одного из иллюминаторов и наблюдает за происходящим снаружи субмарины. ^]];
 
		else
 
			return [[{Леарр} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(learr_home_dlg);
 
		else
 
			walkin(learr_dlg);
 
		end;
 
	end;
 
};
 
 
char_phaetlarr = obj {
 
	var {
 
		follow = false;
 
	};
 
	nam = "phaetlarr";
 
	disp = "Фаэтларр";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Фаэтларр} с интересом наблюдает за работой двигателей "Левиафана" ^]];
 
		else
 
			return [[{Фаэтларр} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(phaetlarr_home_dlg);
 
		else
 
			walkin(phaetlarr_dlg);
 
		end;
 
	end;
 
};
 
 
char_radcliffe = obj {
 
	var {
 
		follow = false;
 
        
 
        rel_on_join = nil;
 
	};
 
	nam = "radcliffe";
 
	disp = "Уолтер Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Уолтер Рэдклифф} задумчиво крутит в руках какую-то деталь. ^]];
 
		else
 
			return [[{Уолтер Рэдклифф} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_engines";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(radcliffe_home_dlg);
 
		else
 
			walkin(radcliffe_dlg);
 
		end;
 
	end;
 
};
 
 
char_wright = obj {
 
	var {
 
		follow = false;
 
        
 
        iof_reaction = 0;
 
	};
 
	nam = "wright";
 
	disp = "Джек Райт";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Джек Райт} читает какую-то книгу. ^]];
 
		else
 
			return [[{Джек Райт} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(wright_home_dlg);
 
		else
 
			walkin(wright_dlg);
 
		end;
 
	end;
 
};
 
 
char_anna = obj {
 
	var {
 
        follow = false;
 
        
 
        anna_asked = 0;
 
        walter_asked = 0;
 
        atlantis_asked = 0;
 
        drake_asked = 0;
 
        join_asked = 0;
 
        rel_on_join = nil;
 
	};
 
	nam = "anna";
 
	disp = "Анна Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Анна Рэдклифф} смотрит в иллюминатор. ^]];
 
		else
 
			return [[{Анна Рэдклифф} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	home = "leviathan_wardroom";
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			walkin(anna_home_dlg);
 
		else
 
			walkin(anna_dlg);
 
		end;
 
	end;
 
};
 
 
learr_home_dlg = dlg {
 
	nam = "learr_dlg";
 
	disp = "Леарр";
 
	hideinv = true;
 
	entered = function(s)
 
		if (atl_iyh_state == 7) then
 
			pon("on_iyh");
 
		else
 
			poff("on_iyh");
 
		end;
 
	
 
		if (char_learr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
	
 
		return [[
 
			Леарр вопросительно смотрит на вас
 
		]];
 
	end;
 
	phr = {
 
		{ tag = "on_iyh", always = true, "Что ты можешь рассказать мне о храме?", [[
 
			"Каждый-храм два-входа-имеет. Большой-главный-вход далеко-виден. Тайный-задний-вход незаметен-но-всегда-есть. Мы давно-потеряли дорогу-к-этому-святилищу и задний-вход-не-помним. Если мы задний-вход-найдем, то обманим затмевающего-свет и в-храм-проникнем".
 
		]]};
 
		{ tag = "join", always = true, "Я хочу, чтобы ты пошла со мной в следующий раз", "Хорошо", 
 
			function()
 
				char_learr:accompany(true);
 
				char_phaetlarr:accompany(false);
 
				char_radcliffe:accompany(false);
 
				char_wright:accompany(false);
 
				char_anna:accompany(false);
 
				pon('stay');
 
				poff('join');
 
			end;
 
		};
 
		{ tag = "stay", always = "true", "Оставайся на Левиафане", "Хорошо", 
 
			function()
 
				char_learr.accompany(char_learr, false);
 
				poff('stay');
0 comments (0 inline, 0 general)