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
 
@@ -566,550 +566,556 @@ atl_terra_workshop_b = room {
 
	};
 
};
 
 
atl_terra_workshop_c = room {
 
	nam = "Атлантида, мастерская C";
 
	dsc = [[Просторное помещение, выделенное для производства и сборки различных машин под нужды Атлантиды. Вдоль стен расположены шкафы с инструментами, около входа составлено несколько ящиков с материалами. По всей комнате установлены верстаки, различные станки и другое оборудование. Под потолком видно большое количество вентиляционных решеток. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_terra_main_corridor");
 
	};
 
	obj = {
 
		"char_leroy"
 
	};
 
};
 
 
atl_terra_workshop_d = room {
 
	nam = "Атлантида, мастерская D";
 
	dsc = [[Просторное помещение, выделенное для производства и сборки различных машин под нужды Атлантиды. Вдоль стен расположены шкафы с инструментами, около входа составлено несколько ящиков с материалами. По всей комнате установлены верстаки, различные станки и другое оборудование. Под потолком видно большое количество вентиляционных решеток. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_terra_main_corridor");
 
	};
 
};
 
 
atl_intersection_oculus_dom = room {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Окулус\"", "atl_oculus_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_oculus");
 
	};
 
	obj = {
 
		"atl_illuminators",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"  
 
	};
 
};
 
 
atl_oculus_main_corridor = room {
 
	var {
 
		first_visit = true;
 
	};
 
	nam = "Атлантида, Окулус, главный коридор";
 
    dsc = [[Широкий просторный коридор, по обе стороны которого расположены двери, ведущие в лаборатории. В конце коридора находится дверь, ведущая в одну из технических секций станции. ]];
 
	enter = function(s)
 
		if (s.first_visit) then
 
			s.first_visit = false;
 
			walkin("atlantis_learr_intro");
 
		end;
 
	end;
 
	way = {
 
		kh_vroom("В лабораторию A", "atl_oculus_lab_a");
 
		kh_vroom("В лабораторию B", "atl_oculus_lab_b");
 
		kh_vroom("В лабораторию C", "atl_oculus_lab_c");
 
		kh_vroom("В библиотеку", "atl_oculus_library");
 
		kh_vroom("В секцию Аэрис", function()
 
			pr("Люк наглухо задраен. Вы не сможете его открыть. ");
 
			return false;
 
		end);
 
		kh_vroom("В секцию Доминус", "atl_intersection_oculus_dom");
 
	};
 
	obj = {
 
		"atl_nih_panel_oculus"
 
	};
 
};
 
 
atl_oculus_lab_a = room {
 
	nam = "Атлантида, Окулус, лаборатория A";
 
	dsc = [[Просторное помещение уставлено множеством столов, шкафов и различных приборов. Вдоль стен над столами расположены многочисленные решетки вентиляции. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
	obj = {
 
		"char_svetlova"
 
	};
 
};
 
 
atl_oculus_lab_b = room {
 
	nam = "Атлантида, Окулус, лаборатория B";
 
	dsc = [[Просторное помещение уставлено множеством столов, шкафов и различных приборов. Вдоль стен над столами расположены многочисленные решетки вентиляции. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
	obj = {
 
		"char_winterlight"
 
	};
 
};
 
 
atl_oculus_lab_c = room {
 
	nam = "Атлантида, Окулус, лаборатория C";
 
	dsc = [[Просторное помещение уставлено множеством столов, шкафов и различных приборов. Вдоль стен над столами расположены многочисленные решетки вентиляции. ]];
 
	way = {
 
		kh_vroom("В коридор", "atl_oculus_main_corridor");
 
	};
 
	obj = {
 
		"char_ryveerr",
 
		"char_anna_atlantis",
 
		"char_evans"
 
	};
 
};
 
 
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;
 
		use = function(s, o)
 
			if (o == item_ducttape and s.broken and not s.fixed) then
 
				s.fixed = true;
 
				atl_nih_state = 2;
 
				return [[
 
					Вы заматываете разрыв изолентой. На какое-то время такое решение сгодится. 
 
				]];
 
			end;
 
		end;
 
	};
 
end;
 
 
atl_nih_tubes_near_aqua = atl_nih_tubes_gen("atl_nih_tubes_near_aqua", [[Рядом со шлюзом из стены выходят несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_a = atl_nih_tubes_gen("atl_nih_tubes_near_a", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_admin = atl_nih_tubes_gen("atl_nih_tubes_near_admin", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_luna = atl_nih_tubes_gen("atl_nih_tubes_near_luna", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_oculus = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[Вдоль стены протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_terra = atl_nih_tubes_gen("atl_nih_tubes_near_oculus", [[Вдоль стены протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_near_arctos = atl_nih_tubes_gen("atl_nih_tubes_near_arctos", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_oculus = atl_nih_tubes_gen("atl_nih_tubes_oculus", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_terra = atl_nih_tubes_gen("atl_nih_tubes_terra", [[За снятой декоративной панелью находятся несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_luna = atl_nih_tubes_gen("atl_nih_tubes_luna", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_arctos = atl_nih_tubes_gen("atl_nih_tubes_arctos", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_aqua = atl_nih_tubes_gen("atl_nih_tubes_aqua", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_aqua_a = atl_nih_tubes_gen("atl_nih_tubes_aqua_a", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_tubes_aqua_b = atl_nih_tubes_gen("atl_nih_tubes_aqua_b", [[Под потолком протянуто несколько {труб}, по которым подается воздух. ]]);
 
 
atl_nih_panel_near_a = obscured_obj("atl_nih_panel_near_a", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_near_a", true);
 
 
atl_nih_panel_near_admin = obscured_obj("atl_nih_panel_near_admin", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_near_admin", true);
 
 
atl_nih_panel_near_luna = obscured_obj("atl_nih_panel_near_luna", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_near_luna", true);
 
 
atl_nih_panel_oculus = obscured_obj("atl_nih_panel_oculus", [[Рядом со шлюзом установлена {защитная панель}, за которой скрываются трубы для подачи воздуха. ]], [[Вы снимаете панель, открывая доступ к трубам. ]], "atl_nih_tubes_oculus", true);
 
 
atl_nih_boxes_near_oculus = obscured_obj("atl_nih_boxes_near_oculus", [[За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. ]], [[Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. ]], "atl_nih_tubes_near_oculus", false, [[У стены расположена груда ящиков. ]], [[Вам незачем что-то еще здесь делать. ]]);
 
 
atl_nih_boxes_near_terra = obscured_obj("atl_nih_boxes_near_terra", [[За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. ]], [[Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. ]], "atl_nih_tubes_near_terra", false, [[У стены расположена груда ящиков. ]], [[Вам незачем что-то еще здесь делать. ]]);
 
 
atl_nih_boxes_terra = obscured_obj("atl_nih_boxes_terra", [[За грудой {ящиков}, вы замечаете несколько труб подачи воздуха. ]], [[Вы сдвигаете несколько ящиков, открывая себе доступ к трубам. 
 
]], "atl_nih_tubes_terra", false, [[У стены расположена груда ящиков. ]], [[Вам незачем что-то еще здесь делать. ]]);
 
 
atl_nih_tubes_near_aqua:disable();
 
atl_nih_panel_near_a:disable();
 
atl_nih_panel_near_admin:disable();
 
atl_nih_panel_near_luna:disable();
 
atl_nih_boxes_near_oculus:disable();
 
atl_nih_boxes_near_terra:disable();
 
atl_nih_tubes_near_arctos:disable();
 
atl_nih_panel_oculus:disable();
 
atl_nih_boxes_terra:disable();
 
atl_nih_tubes_luna:disable();
 
atl_nih_tubes_arctos:disable();
 
atl_nih_tubes_aqua:disable();
 
atl_nih_tubes_aqua_a:disable();
 
atl_nih_tubes_aqua_b:disable();
 
 
atl_nih_init = function()
 
	atl_nih_state = 1;
 
	local nih_array = {
 
		atl_nih_tubes_near_aqua,
 
		atl_nih_tubes_near_a,
 
		atl_nih_tubes_near_admin,
 
		atl_nih_tubes_near_luna,
 
		atl_nih_tubes_near_oculus,
 
		atl_nih_tubes_near_terra,
 
		atl_nih_tubes_near_arctos,
 
		atl_nih_tubes_oculus,
 
		atl_nih_tubes_terra,
 
		atl_nih_tubes_luna,
 
		atl_nih_tubes_arctos,
 
		atl_nih_tubes_aqua,
 
		atl_nih_tubes_aqua_a,
 
		atl_nih_tubes_aqua_b
 
	};
 
	
 
	local nih_array2 = {
 
		atl_nih_tubes_near_aqua,
 
		atl_nih_panel_near_a,
 
		atl_nih_panel_near_admin,
 
		atl_nih_panel_near_luna,
 
		atl_nih_boxes_near_oculus,
 
		atl_nih_boxes_near_terra,
atlantis_dlg.lua
Show inline comments
 
@@ -137,390 +137,412 @@ char_darkstar_dlg = dlg {
 
                return [[Винсент Даркстар отвечает: "Леруа много знает об устройстве Атлантиды и он открыто выступает в пользу закрытия станции и возвращения на поверхность. Он не выглядит настолько глупым, чтобы саботировать работу станции, однако он один из немногих подпадающих под подозрение. Вообще-то, интересоваться сотрудниками Атлантиды - моя работа, а не ваша". ]];
 
            end;
 
        end};
 
        {tag="on_jones", false, "Что вы думаете о Чарли Джонсе? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.jones_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.jones_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Джонс много знает об устройстве Атлантиды и он открыто выступает в пользу закрытия станции и возвращения на поверхность. Он недостаточно смел, чтобы попытаться саботировать работу станции, однако он один из немногих попадающих под подозрение. Вообще-то, интересоваться сотрудниками Атлантиды - моя работа, а не ваша". ]];
 
            end;
 
        end};
 
        {tag="on_goldman", false, "Что вы думаете о Леонарде Голдмане? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.goldman_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.goldman_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Голдман много знает об устройстве Атлантиды и он открыто выступает в пользу закрытия станции и возвращения на поверхность. Он эмоционально неуравновешен. Если бы он устроил аварию, он бы уже выдал себя. Однако, он один из немногих, кому хватает знаний, чтобы спланировать саботаж. Вообще-то, интересоваться сотрудниками Атлантиды - моя работа, а не ваша". ]];
 
            end;
 
        end};
 
        {tag="on_atlantis", false, "Расскажите об Атлантиде. ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.atlantis_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.atlantis_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Атлантида построена на средства Вестхейвен Трансоушен -- компании вашего отца. Майкл Райт -- создатель станции, многое продумал, существенно облегчив мне работу. Конечно, периодически, мне приходится иметь дело с нарушениями правил -- я неоднократно просил не загромоздать коридоры; всегда закрывать за собой шлюзы, двери, щитки, панели; не перекрывать посторонними предметами доступ к важным узлам станции. Думаю, вы сами заметили, как исполняются эти указания". ]];
 
            end;
 
        end};
 
        {tag="on_navjiarr", false, "Что вы думаете о навьярах? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.navjiarr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.navjiarr_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Они -- причина существования Атлантиды, так что в какой-то мере мы все обязаны им тем, что оказались здесь. Не все на станции довольны этим -- и это создает определенную угрозу. Но, надо признать, они не пытались навредить нам последнее время, однако, я все еще советую Моро и Светловой быть настороже при общении с ними. Они не так просты, как кажутся". ]];
 
            end;
 
        end};
 
        {tag="on_learr", false, "Что вы думаете о Леарр? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.learr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_darkstar.learr_asked = 3;
 
                    return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
                else
 
                    char_darkstar.learr_asked = 2;
 
                    return [[Винсент Даркстар отвечает: "Леарр -- представительница одного из навьярских племен на станции. Она любопытна, молода и умна. Она искренне заинтересована нами и нашими технологиями и это не может не радовать". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_ryveerr", false, "Что вы думаете о Ривеерре? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.ryveerr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.ryveerr_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Ривеерр -- представитель одного из навьярских племен на станции. Я мало что могу о нем сказать, и, в данном случае, это говорит в его пользу". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы думаете об Аикерьярре? ", function()
 
            if (atl_rep_darkstar < 0) then
 
                char_darkstar.aikerjarr_asked = 1;
 
                return [[Винсент Даркстар отвечает: "Мне нечего вам сказать". ]];
 
            else
 
                char_darkstar.aikerjarr_asked = 2;
 
                return [[Винсент Даркстар отвечает: "Он будет создавать проблемы. Это не предположение, это -- факт". ]];
 
            end;
 
        end};
 
		{tag="accuse_goldman", false, "Саботаж - дело рук Голдмана", [[Даркстар недовольно отчитывает вас: "Во-первых, я вас просил не лезть в это дело. Во-вторых, я бы не был так уверен. В третьих, я еще раз прошу вас больше расследованию не мешать". ]], code [[ atl_lfc_suspect="goldman"; ]]};
 
		{tag="accuse_leroy", "Саботаж - дело рук Леруа", [[Даркстар недовольно отчитывает вас: "Во-первых, я вас просил не лезть в это дело. Во-вторых, я бы не был так уверен. В третьих, я еще раз прошу вас больше расследованию не мешать". ]], code [[ atl_lfc_suspect="leroy"; ]]};
 
		{always=true, "Я пойду", [[Даркстар прощается: "До встречи". ]], code [[ back(); ]]};
 
		{tag="fta"};
 
		{"Что вы хотите услышать?", [[Даркстар поясняет: "Все, что произошло в Солисе и показалось вам подозрительным". ]]};
 
		{"Первый взрыв раздался, когда я был у входа в секцию[Кратко пересказать основные события]", [[Даркстар молча кивает. ]]};
 
		{"Один из клапанов работал неправильно - давление в нем было выше нормы", [[Даркстар с сомнением произносит: "Интересно. За десять лет работы станции такого никогда не было". ]]};
 
		{tag="clock", "[Показать часы]А еще я нашел там вот это", [[Даркстар забирает часы и вертит их в руках: "Так-так-так. Франсуа Голдман. Леонард однозначно в этом замешан, но действовал он не один. Я все еще думаю, что они попытаются вывести из строя одну из субмарин. Скорее всего их целью будет Наутилус". ]], code [[ atl_lfc_goldman_exposed = true; psub("why_nau"); ]]};
 
		{tag="why_nau"};
 
		{"Почему именно Наутилус?", [[Даркстар объясняет:"Саботажник хочет не убить всех, а поломать станцию. Он хочет наверх, а не умереть здесь. Наутилус - субмарина малого радиуса, а Энтерпрайз и Левиафан способны доставить нас на континенты". ]]};
 
		{"Соглашусь с вашим предположением", [[Даркстар кивает: "Хорошо. Я попрошу вас помочь мне с этим заданием". ]], code [[ psub("lfc_help"); ]]};
 
		{"Мне кажется, целью будет другая субмарина", [[Даркстар кивает: "Я это учел. Мы будем следить за всеми доками. Также, я попрошу вас помочь мне с этим заданием". ]], code [[ psub("lfc_help"); ]]};
 
		{tag="lfc_help"};
 
		{"Почему я?", [[Даркстар объясняет:"Я хочу свести количество людей, знающих о саботажах к минимуму, а вы уже в курсе ситуации". ]]};
 
		{"Что я должен сделать?", [[Даркстар рассказывает:"В семь часов вечера вы отправляетесь в док Наутилуса и наблюдаете за происходящим в течение ночи. Если вы замечаете что-то подозрительное - принимаете меры на ваше усмотрение", -- Даркстар достает из ящика стола револьвер и кладет перед вами: "Это вам не помешает".
 
		]], code [[
 
			take(item_colt);
 
			atl_lfc_state = 2;
 
			back();
 
		]]};
 
	};
 
};
 
 
char_moreau_dlg = dlg {
 
	var {
 
		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;
 
        end};
 
        {tag="on_navjiarr", false, "Что вы думаете о навьярах?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.navjiarr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.navjiarr_asked = 2;
 
                return [[Фредерик Моро отвечает: "Интересные существа. Наши ученые говорят, что они ближе к рыбам, чем к кому бы то ни было еще. Однако, они ходят на двух ногах, имеют руки, и способны дышать воздухом! Более подробно вам лучше говорить с учеными, не со мной, -- он делает небольшую паузу, -- Атлантида обязана им своим существованием. Если бы мы не встретили их при первой экспедиции, вряд ли кто-то стал бы строить эту станцию, тем более здесь. Первое время они создавали нам проблемы, но, к счастью, нам удалось их разрешить и наладить отношения с ними. Двое из них сейчас находятся на станции и вы можете погвоорить с ними". ]];
 
            end;
 
        end};
 
        {tag="on_learr", false, "Что вы думаете о Леарр?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.learr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                if (atl_iof_learr_dead) then
 
                    char_moreau.learr_asked = 3;
 
                    return [[Фредерик Моро тяжело вздыхает: "Ее гибель -- большая потеря для всех нас. Кажется, даже Винсент Даркстар, не способный, как мне казалось на дружеские чувства, относился к ней с некоторой теплотой". ]];
 
                else
 
                    char_moreau.learr_asked = 2;
 
                    return [[Фредерик Моро отвечает: "Милая девушка, хоть и рыба. Она, конечно, порой бывает надоедлива в виду своей излишней, на мой взгляд любознательности, но вы себя на ее месте представьте -- она родилась и росла в своей примитивной деревне, а тут мы -- неспособные дышать в воде, зато способные строить поразительные машины. Нет ничего удивительного, что она только и делает, что носится между Игнисом, Окулусом и Террой, расспрашивая всех обо всем". ]];
 
                end;
 
            end;
 
        end};
 
        {tag="on_ryveerr", false, "Что вы думаете о Ривеерре?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.ryveerr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.ryveerr_asked = 2;
 
                return [[Фредерик Моро отвечает: "Я мало что могу о нем сказать. Он почти не покидает Окулус, общаясь только с учеными. Возможно их вам и стоит спросить о нем". ]];
 
            end;
 
        end};
 
        {tag="on_aikerjarr", false, "Что вы думаете об Аикерьярре?", function()
 
            if (atl_rep_moreau < 0) then
 
                char_moreau.aikerjarr_asked = 1;
 
                return [[Фредерик Моро отвечает: "Я не хочу говорить об этом сейчас". ]];
 
            else
 
                char_moreau.aikerjarr_asked = 2;
 
                return [[Фредерик Моро отвечает: "Пренеприятный персонаж. Будь моя воля -- я бы прогнал его со станции, и большая часть руководителей со мной согласна. Однако, понимая, какие у этого будут последствия, я вынужден позволить ему находиться здесь". ]];
 
            end;
 
        end};
 
		{tag="sabotage", false, "Вы знаете, что пожар начался из-за саботажа?", [[Фредерик Моро несколько раз стучит пальцем по столу. Недовольным тоном он делает вам замечание: "Месье Дрейк, -- он выдерживает небольшую паузу, -- Если вы хотите вернуть себе Левиафан, вам стоит следовать нашим правилам и, в частности, не нарушать прямых наших распоряжений". ]], code [[
 
			atl_rep_moreau = atl_rep_moreau - 1;
 
			atl_rep_darkstar = atl_rep_darkstar - 1;
 
		]]};
 
		{tag="ignis_what", false, "Почему начался пожар в Игнисе?", [[Фредерик Моро пожимает плечами и как-то неуверенно проговаривает: "Не знаю. Этим вопросом занимаются инженеры и служба безопасности. Будьте спокойны, наши специалисты не допустят повторения аварии". ]]};
 
		{"Я пойду", [[Моро прощается с вами: "До встречи, месье Дрейк". ]], code [[ back(); ]]};
 
		{tag="lfc_debrief_good"};
 
		{"Спасибо, это все", [[Моро спрашивает: "Вы что-то хотели?". ]], code [[ psub("generic");]]};
 
		{tag="lfc_debrief_bad"};
 
		{"Я пойду", [[Моро кивает. ]], code [[ walk("game_over_banished"); ]]};
 
	};
 
};
 
 
char_svetlova_dlg = dlg {
 
	var {
 
		state = 0;
 
		lfc_sabotage = false;
 
		lfc_dialog = false;
 
		flag_help = false;
 
		flag_explain = false;
 
	};
 
	nam = "Екатерина Светлова";
 
	disp = "Екатерина Светлова";
 
	entered = function(s)
 
        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_svetlova < 0) then
 
            if (char_svetlova.drake_asked == 0) then pon("on_drake"); end;
 
            if (char_svetlova.black_asked == 0) then pon("on_black"); end;
 
            if (char_svetlova.darkstar_asked == 0) then pon("on_darkstar"); end;
 
            if (char_svetlova.svetlova_asked == 0) then pon("on_svetlova"); end;
 
            if (char_svetlova.moreau_asked == 0) then pon("on_moreau"); end;
 
            if (char_svetlova.wright_asked == 0) then pon("on_wright"); end;
 
            
 
            if (atl_iof_completed) then
 
                if (char_svetlova.leroy_asked == 0) then pon("on_leroy"); end;
 
                if (char_svetlova.jones_asked == 0) then pon("on_jones"); end;
 
                if (char_svetlova.goldman_asked == 0) then pon("on_goldman"); end;
 
            end;
 
            
 
            if (char_svetlova.atlantis_asked == 0) then pon("on_atlantis"); end;
 
            
 
            
 
            if (char_svetlova.navjiarr_asked == 0) then pon("on_navjiarr"); end;
 
            if (char_svetlova.learr_asked == 0) then pon("on_learr"); end;
 
            if (char_svetlova.ryveerr_asked == 0) then pon("on_ryveerr"); end;
 
            if (atl_iof_learr_dead and char_svetlova.aikerjarr_asked == 0) then pon("on_aikerjarr"); end;
 
        else
 
            if (char_svetlova.drake_asked < 2) then pon("on_drake"); end;
 
            if (char_svetlova.black_asked < 2) then pon("on_black"); end;
 
            if (char_svetlova.darkstar_asked < 2) then pon("on_darkstar"); end;
 
            if (char_svetlova.svetlova_asked < 2) then pon("on_svetlova"); end;
 
            if (char_svetlova.moreau_asked < 2) then pon("on_moreau"); end;
 
            if (char_svetlova.wright_asked < 2) then pon("on_wright"); end;
 
            
party.lua
Show inline comments
 
party_accompany = function(s, value)
 
	if (ArrayUtils.indexOf(pl.party, s.nam) == 0) then
 
		return;
 
	end;
 
	s.follow = value;
 
	if (value) then
 
		lifeon(s);
 
	else
 
		move(s, s.home, where(s));
 
		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');
 
				pon('join');
 
			end;
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
 
phaetlarr_home_dlg = dlg {
 
	nam = "phaetlarr_dlg";
 
	disp = "Фаэтларр";
 
	hideinv = true;
 
	entered = function(s)
 
		if (char_phaetlarr.follow) then
 
			pon('stay');
 
			poff('join');
 
		else
 
			pon('join');
 
			poff('stay');
 
		end;
 
	
 
		return [[
 
			Фаэтларр ждет ваших указаний
 
		]];
 
	end;
 
	phr = {
 
		{ tag = "join", always = "true", "Я хочу, чтобы ты пошел со мной в следующий раз", "Хорошо",
 
			function()
 
				char_learr:accompany(false);
 
				char_phaetlarr:accompany(true);
 
				char_radcliffe:accompany(false);
 
				char_wright:accompany(false);
 
				char_anna:accompany(false);
 
				poff('join');
 
				pon('stay');
 
			end; 
 
		};
 
		{ tag = "stay", always = "true", "Оставайся на Левиафане", "Хорошо", 
 
			function()
 
				char_phaetlarr.accompany(char_phaetlarr, false);
 
				pon('join');
 
				poff('stay');
 
			end;
 
		};
 
		{ tag = "exit", always = "true", "Это все", "Хорошо", 
 
			function() 
 
				back();
 
			end;
 
		}
 
	};
 
};
 
 
radcliffe_home_dlg = dlg {
 
	nam = "radcliffe_dlg";
 
	disp = "Уолтер Рэдклифф";
 
	hideinv = true;
 
	entered = function (s)
 
		if (atl_iyh_state == 7) then
 
			pon("on_iyh");
 
		else
 
			poff("on_iyh");
 
		end;
 
	
 
		if (char_radcliffe.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()
 
				if (submarine_leviathan.suits > 1) then
 
					char_learr:accompany(false);
 
					char_phaetlarr:accompany(false);
 
					char_radcliffe:accompany(true);
 
					char_wright:accompany(false);
 
					char_anna:accompany(false);
 
					pon('stay');
 
					poff('join');
 
					return [[Я готов]];
 
				else
 
					-- TODO сообщать это только если в партии есть навьяры
 
					return [[У нас не хватит оборудования. Лучше возьми кого-нибудь из навьяров]];
0 comments (0 inline, 0 general)