Changeset - 95755c7bf587
[Not reviewed]
default
0 4 0
Silverwing - 7 years ago 2017-05-05 18:35:12

237 partial
4 files changed with 84 insertions and 11 deletions:
0 comments (0 inline, 0 general)
atlantis.lua
Show inline comments
 
@@ -15,12 +15,13 @@ global {
 
	atl_iyh_shockfish_away = 0;
 
	atl_iyh_entrance_destroyed = false;
 
	atl_iyh_artifacts_on_atlantis = false;
 
	
 
	atl_lfc_state = 0;
 
	atl_lfc_panic = 0;
 
    atl_lfc_panic_warning = 0;   
 
	atl_lfc_hallrooms = 0;
 
	atl_lfc_electric = 0;
 
	atl_lfc_board = 0;
 
	atl_lfc_suspect = nil;
 
	atl_lfc_leroy_spoken = 0;
 
	atl_lfc_goldman_spoken = 0;
 
@@ -50,13 +51,19 @@ atl_illuminator = obj {
 
    act = [[Через иллюминатор вы видите несколько других секций и коридоров. В лучах света, проникающих с поверхности вы видите массивные металлические конструкции непонятного вам назначения. На покрытом илом дне видно большое количество следов от тяжелых металлическых подошв персонала станции. ]];
 
};
 
 
atl_intersect_phone = obj {
 
    nam = "Телефон";
 
    dsc = [[На одной из стен укреплен {телефонный аппарат} в герметичном контейнере. ]];
 
    act = [[Вам незачем кому-то звонить. ]];
 
    act = function(s)
 
        if (atl_lfc_state == 1 and atl_lfc_panic == 1 and atl_lfc_panic_warning == 0) then
 
            walkin("panic_first_warning_dlg");
 
        else
 
            return [[Вам незачем кому-то звонить. ]];
 
        end;
 
    end;
 
};
 
 
atl_intersect_suit = obj {
 
    nam = "Скафандр";
 
    dsc = [[В углу стоит {скафандр}. ]];
 
    act = [[Сейчас нет смысла это делать. ]];
 
@@ -191,24 +198,49 @@ atl_aqua_main_corridor = room {
 
	obj = {
 
		"atl_illuminators",
 
		"atl_nih_tubes_aqua"
 
	};
 
};
 
 
atl_intersection_aqua_dom = room {
 
atl_intersection = inherit(room, function(v)
 
    v.disp = "Атлантида, межсекционный коридор";
 
    v.dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
    v.entered = function(s)
 
        if (atl_lfc_state == 1) then
 
            if (atl_lfc_panic == 1) then
 
                if (atl_lfc_panic_warning == 0) then
 
                    pr([[Когда вы проходите мимо, телефон начинает звонить. ]]);
 
                end;
 
            elseif (atl_lfc_panic == 2) then
 
                if (atl_lfc_panic_warning < 2) then 
 
                    atl_lfc_panic_warning = 2;
 
                end;
 
            elseif (atl_lfc_panic == 3) then
 
                walk("game_over_banished_lfc");
 
            end;
 
        end;
 
    end;
 
    v.left = function(s)
 
        if (atl_lfc_state == 1) then
 
            atl_lfc_panic_warning = 1;
 
        end;
 
    end;
 
    if (not v.obj) then
 
        v.obj = {};
 
    end;
 
    table.insert(v.obj, "atl_illuminator");
 
    table.insert(v.obj, "atl_intersect_phone");
 
    table.insert(v.obj, "atl_intersect_suit");
 
end);
 
 
atl_intersection_aqua_dom = atl_intersection {
 
	nam = "Атлантида, межсекционный коридор";
 
	dsc = [[Небольшой коридор, соединяющий секции станции, заполнен ярким светом электрических ламп. ]];
 
	way = {
 
		kh_vroom("В секцию \"Аква\"", "atl_aqua_main_corridor");
 
		kh_vroom("В секцию \"Доминус\"", "atl_dom_main_near_aqua");
 
	};
 
	obj = {
 
		"atl_illuminator",
 
        "atl_intersect_phone",
 
        "atl_intersect_suit"      
 
	};
 
};
 
 
atl_dom_main_near_aqua = room {
 
	nam = "Атлантида, Доминус, центральный зал, у входа в секцию Аква";
 
	dsc = [[Огромный круглый зал освещенный электрическими лампами, установленными на многочисленных колоннах. Стеклянный купол над головой ограждает вас от многотонной громады океанских вод. Над куполом расположен огромный металлический диск секции Игнис, расположенной над центральным залом Доминуса. Рядом с вами расположен шлюз, ведущий в соседнюю секцию. ]];
 
	way = {
atlantis_dlg.lua
Show inline comments
 
@@ -2,12 +2,17 @@ char_darkstar_dlg = dlg {
 
	var {
 
		state = 0;
 
	};
 
	nam = "Винсент Даркстар";
 
	disp = "Винсент Даркстар";
 
	entered = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Винсент Даркстар недовольно смотрит на вас: "Господин Дрейк. Вы вообще понимаете, что делаете? Это последнее предупреждение. В следующий раз я приму меры. Все ясно? "]];
 
        end;
 
    
 
		if (atl_lfc_leroy_spoken) then
 
			pon("accuse_leroy");
 
		end;
 
		
 
		if (atl_lfc_goldman_spoken) then
 
			pon("accuse_goldman");
 
@@ -66,12 +71,14 @@ char_darkstar_dlg = dlg {
 
		else
 
			psub("generic");
 
			return [[Винсент Даркстар сообщает: "Я слушаю". ]];
 
		end;
 
	end;
 
    phr = {
 
        {tag="lfc_warning"};
 
        {always = true, "Так точно.", [[Даркстар кивает: "Отлично. Вам нужно что-то еще?"]], code[[ atl_lfc_panic_warning = 3; psub("generic")]]};
 
		{tag="first_meeting"};
 
		{"Что мне нужно сделать, чтобы мне вернули Левиафан?", [[Винсент Даркстар хлопает ладонями о стол и уверенно сообщает: "Вести себя хорошо и не делать глупостей". ]]};
 
		{"Когда мне вернут Левиафан?", [[Винсент Даркстар отвечает: "Всему свое время. Используйте это время с пользой. Если хотите найти Уильяма, сначала стоит выяснить где и как его искать. И вам не помешает узнать кое-что помимо этого". ]]};
 
		{"Я пришел кое-что спросить. ", [[Винсент Даркстар сообщает :"Я слушаю". ]], code [[psub("generic");]]};
 
		{tag="generic"};
 
		{tag="on_drake", false, "Расскажите об Уильяме. ", function()
 
@@ -233,12 +240,17 @@ char_moreau_dlg = dlg {
 
		state = 0;
 
		lfc_dialog = false;
 
	};
 
	nam = "Фредерик Моро";
 
	disp = "Фредерик Моро";
 
	entered = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Фредерик Моро сообщает вам: "Месье Дрейк, добрый день. Винсент Даркстар просил вас срочно поговорить с ним". ]];
 
        end;
 
    
 
		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;
 
@@ -341,12 +353,14 @@ char_moreau_dlg = dlg {
 
        else      
 
			psub("generic");
 
			return [[Фредерик Моро приветствует вас: "Месье Дрейк, добрый день. Чем могу помочь?" ]];
 
		end;		
 
	end;
 
	phr = {
 
        {tag="lfc_warning"};
 
        {always = true, "Я пойду", [[Моро прощается с вами: "До встречи, месье Дрейк". ]], code [[ back(); ]]};
 
        {tag="iof_learr_dead"};
 
        {"Я ничего не мог сделать. ", [[Фредерик Моро кивает: "Я понимаю". Немного помолчав он говорит: "Давайте к делу". ]], code [[psub("generic");]]};
 
        {"Давайте к делу. ", [[Фредерик Моро неодобрительно кивает: "Слушаю". ]], code [[
 
            atl_rep_moreau = atl_rep_moreau - 1;
 
            psub("generic");
 
        ]]};
 
@@ -494,17 +508,17 @@ char_moreau_dlg = dlg {
 
        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(); ]]};
 
		{always = true, "Я пойду", [[Моро прощается с вами: "До встречи, месье Дрейк". ]], code [[ back(); ]]};
 
		{tag="lfc_debrief_good"};
 
		{"Спасибо, это все", [[Моро спрашивает: "Вы что-то хотели?". ]], code [[ psub("generic");]]};
 
		{always = true, "Спасибо, это все", [[Моро спрашивает: "Вы что-то хотели?". ]], code [[ psub("generic");]]};
 
		{tag="lfc_debrief_bad"};
 
		{"Я пойду", [[Моро кивает. ]], code [[ walk("game_over_banished"); ]]};
 
		{always = true, "Я пойду", [[Моро кивает. ]], code [[ walk("game_over_banished"); ]]};
 
	};
 
};
 
 
char_svetlova_dlg = dlg {
 
	var {
 
		state = 0;
 
@@ -513,12 +527,17 @@ char_svetlova_dlg = dlg {
 
		flag_help = false;
 
		flag_explain = false;
 
	};
 
	nam = "Екатерина Светлова";
 
	disp = "Екатерина Светлова";
 
	entered = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Екатерина Светлова сообщает вам: "Добрый день, господин Дрейк. Винсент Даркстар просил вас срочно поговорить с ним". ]];
 
        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_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;
 
@@ -618,12 +637,14 @@ char_svetlova_dlg = dlg {
 
				end;
 
				return [[Светлова отрывает взгляд от бумаг, лежащих перед ней и смотрит на вас: "Добрый день". ]];
 
			end;
 
		end;
 
	end;
 
	phr = {
 
        {tag="lfc_warning"};
 
        {always = true, "Я пойду", [[Светлова возвращается ко своим бумагам: "До встречи". ]], code [[ back(); ]]};
 
        {tag = "iof_learr_dead"};
 
        {"Я ничего не мог сделать. ", [[Екатерина Светлова опускает глаза: "Я понимаю". Вздохнув, она спрашивает: "Вам что-то нужно?" ]], code [[ psub("generic"); ]]};
 
        {"Перейдем к делу. ", [[Екатерина Светлова кивает: "Что вам нужно?" ]], code [[ 
 
            atl_rep_svetlova = atl_rep_svetlova - 1;
 
            psub("generic"); 
 
        ]]};
 
@@ -841,12 +862,17 @@ char_michael_wright_dlg = dlg {
 
        state = 0;
 
        lfc_dialog = false;
 
    };
 
    nam = "Майкл Райт";
 
    disp = "Майкл Райт";
 
    entered = function(s)
 
        if (atl_lfc_panic_warning == 2 and atl_lfc_panic == 2 and atl_lfc_state == 1) then
 
            psub("lfc_warning");
 
            return [[Екатерина Светлова сообщает вам: "Добрый день Винсент Даркстар просил вас срочно поговорить с ним". ]];
 
        end;
 
    
 
        if (atl_nih_state == 2) then
 
            pon('nih_fixed');
 
        end;
 
        
 
        if (atl_lfc_state ~= 1) then
 
            poff('sabotage', 'ignis_what');
 
@@ -919,12 +945,14 @@ char_michael_wright_dlg = dlg {
 
        else
 
            psub("generic");
 
            return [[Майкл Райт просматривает какие-то чертежи. Как только вы подходите, он отвлекается и приветствует вас: "Добрый день. Чем могу быть полезен?" ]];
 
        end;        
 
    end;
 
    phr = {
 
        {tag="lfc_warning"};
 
        {always=true, "Мне пора", [["До встречи", -- Майкл Райт возвращается к своим делам. ]], code [[ back(); ]]};
 
        {tag="iof_learr_dead"};
 
        {"Мне очень жаль.", [[Майкл Райт кивает: "Утерянного не вернуть. Мы сделали выводы и постараемся не допустить опасных инцидентов в будущем". ]], code [[psub("generic");]]};
 
        {"Я чуть не погиб там!", [[Майкл Райт отворачивается от вас и произносит: "Приходите позже, я занят"]], code [[ atl_rep_wright = atl_rep_wright - 1; back(); ]]};
 
        {tag="iof_learr_suit"};
 
        {"Я сделал, что должен был. ", [[Майкл Райт кивает: "И все же, не каждому пришла бы в голову идея облачить навьяра в скафандр".]], code [[psub("generic");]]};
 
        {tag="iof_learr"};
atlantis_looking_for_clues.lua
Show inline comments
 
panic_first_warning_dlg = dlg {
 
    nam = "Телефон";
 
    disp = "Телефон";
 
    entered = [[Вы снимаете трубку. Собседник на том конце провода молчит, видимо ожидая, что вы что-то скажете, ]];
 
    phr = {
 
        {"Дрейк слушает.", [[Из трубки доносится голос Винсента Даркстара: "Дрейк! Какого черта вы делаете? Я же просил вас не распространяться про события в Игнисе. Если вы будете продолжать нарушать мои указания, мне придется принять меры. Конец связи. "]], code [[ back();]]};
 
        {"Алло.", [[Из трубки доносится голос Винсента Даркстара: "Дрейк! Какого черта вы делаете? Я же просил вас не распространяться про события в Игнисе. Если вы будете продолжать нарушать мои указания, мне придется принять меры. И в следующий раз, отвечайте по протоколу. Конец связи. "]], code [[back();]]};
 
        {"[Положить трубку]", code [[ atl_lfc_panic_warning = 1; back(); ]]};
 
    };
 
};
 
 
atl_lfc_darkstar_dlg = dlg {
 
	var {
 
		total_limit = 3;
 
		limit = 3;
 
		q2_states = 0;
 
	};
game_over.lua
Show inline comments
 
game_over_banished_lfc = game_over("game_over_banished_lfc", [[Как только вы оказываетесь в межсекционном коридоре, вас окружают стражники Атлантиды. Они просят вас проследовать за ними и вы понимаете, что сопротивление бесполезно. Вас проводят в кабинет Винсента Даркстара. Когда стражники выходят, начальник службы безопасности поднимается из-за стола и начинает вас отчитывать:"Господин Дрейк. Вы крайне разочаровали меня. Мало того! Вы поставили под угрозу дальнейшую работу станции", -- впервые вы слышите, как Даркстар практически срывается на крик -- до этого он всегда говорил спокойно и уверенно, -- "Отныне, вы лишены всяческих привилегий и при первой возможности будете депортированы". Когда вы выходите из кабинета, охранники сопроваждают вас в вашу каюту и запирают там. Несколько месяцев вы проводите взаперти. Уильям и Адриан Блэк так и не вернулись из своей экспедиции.^Вскоре вас в запертой каюте Левиафана, мало отличающейся от каюты на станции, высылают на поверхность. Вас высаживают возле одного из небольшихэ прибрежных городков соединенных штатов, откуда вы без проблем доберетесь куда угодно. Однако, путь на Атлантиду потерян для вас навсегда.  ]]);
 
 
game_over_lse_prison_fight = game_over("game_over_lse_prison", [[Стражники с легкостью останавливают вашу попытку побега. Вы возвращаетесь в камеры и теперь вам уже не на что надеяться. ]]);
 
 
game_over_lse_prison = game_over("game_over_lse_prison", [[Фаэтларр рванулся к двери, расчитывая проскользнуть незаметно. К сожалению, дверь оказалась запертой и навьяру не оставалось ничего, кроме как попытаться убрать стражника, пока тот не позвал на помощь. К сожалению, Фаэтларр оказался недостаточно быстр. Дверь открылась и в помещение вбежали сразу несколько стражников. Фаэтларру не оставалось ничего, кроме как сдаться. Его запирают рядом с остальными членами экипажа. Вы понимаете, что теперь все действительно кончено. Вы проиграли. ]]);
 
 
game_over_lse_guards = game_over("game_over_lse_guards", [[Охранник поднимает тревогу. Вы не успеваете ничего сделать и оказываетесь схвачены. ]]);
 
0 comments (0 inline, 0 general)