Changeset - a44173530660
[Not reviewed]
default
0 1 0
Silverwing - 5 years ago 2019-06-16 20:10:56

Fix dialogs with Walter and Anna aboard Leviathan
1 file changed with 11 insertions and 5 deletions:
party.lua
11
5
0 comments (0 inline, 0 general)
party.lua
Show inline comments
 
@@ -96,48 +96,51 @@ char_phaetlarr = obj {
 
                phaetlarr_dlg.underwater = true;
 
            else
 
                phaetlarr_dlg.underwater = false;
 
            end;
 
		end;
 
        walkin(phaetlarr_dlg);
 
	end;
 
    seen_level = 2;
 
};
 
 
char_radcliffe = obj {
 
	var {
 
        home = "leviathan_engines";   
 
		follow = false;
 
        
 
        rel_on_join = nil;
 
        
 
        on_walter = 0;
 
        on_atlantis = 0;
 
        on_black = 0;
 
        on_drake = 0;
 
        on_anna = 0;
 
        on_join = 0;
 
        on_conflict = 0;
 
        on_venaedanotrr = 0;
 
        on_nleyyslanotrr = 0;
 
        on_deep_temple = 0;
 
	};
 
	nam = "radcliffe";
 
	disp = "Уолтер Рэдклифф";
 
	dsc = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
			return [[{Уолтер Рэдклифф} задумчиво крутит в руках какую-то деталь. ^]];
 
		else
 
			return [[{Уолтер Рэдклифф} ждет ваших указаний. ^]];
 
		end;
 
	end;
 
	accompany = party_accompany;
 
	life = party_follow;
 
	act = function(s)
 
		if (stead.nameof(where(s)) == s.home) then
 
            radcliffe_home_dlg.home = true;
 
		else
 
            radcliffe_home_dlg.home = false;
 
            if where(s).underwater then
 
                wright_main_dlg.underwater = true;
 
            else
 
                wright_main_dlg.underwater = false;
 
            end;
 
		end;
 
 
@@ -175,48 +178,51 @@ char_wright = obj {
 
            wright_main_dlg.home = true;
 
        else
 
            wright_main_dlg.home = false;
 
            if where(s).underwater then
 
                wright_main_dlg.underwater = true;
 
            else
 
                wright_main_dlg.underwater = false;
 
            end;
 
        end;
 
        walkin(wright_main_dlg);
 
	end;
 
    seen_level = 2;
 
};
 
 
char_anna = obj {
 
	var {
 
        follow = false;
 
        
 
        anna_asked = 0;
 
        walter_asked = 0;
 
        atlantis_asked = 0;
 
        drake_asked = 0;
 
        join_asked = 0;
 
        black_asked = 0;
 
        venaedanotrr_asked = 0;
 
        nleyyslanotr_asked = 0;
 
        deep_temple_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
 
			anna_dlg.home = true;
 
		else
 
            anna_dlg.home = false;
 
            if where(s).underwater then
 
                anna_dlg.underwater = true;
 
            else
 
                anna_dlg.underwater = false;
 
            end;
 
@@ -694,57 +700,57 @@ radcliffe_home_dlg = dlg {
 
                    pon("on_anna");
 
                    pon("questions");
 
                end;
 
                if (char_radcliffe.on_black < 2) then
 
                    pon("on_black");
 
                    pon("questions");
 
                end;
 
                if (char_radcliffe.on_walter < 2) then
 
                    pon("on_walter");
 
                    pon("questions");
 
                end;
 
                if (char_radcliffe.on_atlantis < 2) then
 
                    pon("on_atlantis");
 
                    pon("questions");
 
                end;
 
                if (char_radcliffe.on_drake < 2) then
 
                    pon("on_drake");
 
                    pon("questions");
 
                end;
 
                if (char_radcliffe.on_join < 2) then
 
                    pon("on_join");
 
                    pon("questions");
 
                end;
 
 
                if (char_anna.on_venaedanotrr < 2 and nleyyslanotrr_found) then
 
                if (char_radcliffe.on_venaedanotrr < 2 and nleyyslanotrr_found) then
 
                    pon("on_venaedanotrr");
 
                    pon("questions");
 
                end;
 
                if (char_anna.on_nleyyslanotrr < 2 and lseryanotrr_found) then
 
                if (char_radcliffe.on_nleyyslanotrr < 2 and lseryanotrr_found) then
 
                    pon("on_nleyyslanotrr");
 
                    pon("questions");
 
                end;
 
                if (char_anna.on_deep_temple < 2 and dt_temple_done) then
 
                if (char_radcliffe.on_deep_temple < 2 and dt_temple_done) then
 
                    pon("on_deep_temple");
 
                    pon("questions");
 
                end;
 
            end;
 
 
            if (char_radcliffe.follow) then
 
                pon('stay');
 
                poff('join');
 
            else
 
                pon('join');
 
                poff('stay');
 
            end;
 
        else
 
            poff('stay', 'join');
 
        end;
 
        
 
        if (atl_iyh_state == 7) then
 
			pon("on_iyh");
 
		else
 
			poff("on_iyh");
 
		end;
 
 
        psub("generic");
 
 
@@ -845,52 +851,52 @@ radcliffe_home_dlg = dlg {
 
        end};
 
        {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function(s)
 
            char_radcliffe.on_atlantis = 2;
 
            return [[Уолтер отвечает: "Думаю только Райт и Уинтерлайт в полной мере осознают, насколько большим достижением для нас, для всего человечества, является постройка этой станции. Тем не менее, они, отчего-то, не спешат поделиться своими знаниями с другими. Не думаю, что сегодняшнее общество сможет по достоинству оценить новые возможности, даруемые этими технологиями. Да и что станет с навьярами? Вспомните Новый Свет, посмотрите на другие наши колонии -- хотите ли вы этого для Леарр и других?"]];
 
        end};
 
        {tag="on_venaedanotrr", "Что скажешь о Венаэданотре?", function(s)
 
            char_radcliffe.on_venaedanotrr = 2;
 
            if (ArrayUtils.indexOf(pl.party, 'anna') ~= 0) then
 
                return [[Уолтер отвечает: "Занятный городишко. Анна уже говорила мне, что хочет вернуться сюда, когда у нас будет время". ]];
 
            else
 
                return [[Уолтер отвечает: "Занятный городишко. Анне бы здесь понравилось". ]];
 
            end;
 
        end};
 
        {tag="on_nleyyslanotrr", "Что скажешь о Нлейисланотре?", function(s)
 
            char_radcliffe.on_nleyyslanotrr = 2;
 
            return [[Уолтер отвечает: "Я бы побывал здесь еще раз. Наверняка удастся найти много интересного, жаль что местные не слишком привечают нас". ]];
 
        end};
 
        {tag="on_deep_temple", "Что скажешь о храме глубин?", function(s)
 
            char_radcliffe.on_deep_temple = 2;
 
            return [[Уолтер отвечает: "Если навьяры спрятали этот ключ так хорошо, на то должна была быть весомая причина. Будь осторожен, Дрейк". ]];
 
        end};
 
        {tag="quit", always=true, "Поговорим в другой раз. ", [[Уолтер кивает: "Хорошо".]], code [[pret();]]};
 
        {tag="generic"};
 
        {tag="questions", always=true, "У меня есть несколько вопросов. ", function(s)
 
            if (rel_anna < 0) then
 
            if (rel_walter < 0) then
 
                return [[Уолтер отрицательно качает головой: "Не сейчас, я занят". ]];
 
            else
 
                psub("questions");
 
                psub("talk");
 
                return [[Уолтер кивает: "Слушаю". ]];
 
            end;
 
        end};
 
        {tag='on_raybox', [[Ты можешь посмотреть эту "коробочку лучей"? Нам нужно подключить ее. ]], [[Уолтер берет коробочку лучей и долго вертит ее в руках. Затем задумчиво произносит: "Если она работает на электричестве, я смогу оживить ее, но это потребует времени". ]], code [[
 
            remove(item_raybox, pl);
 
            raybox_task = true;
 
        ]]};
 
        {tag='ven_keeper', false, 'Хранитель храма отказывается отдавать нам камень. У тебя есть идеи на этот счет?', function(s)
 
            if ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
 
                return [[Уолтер отвечает: "Леарр и Анна будут более полезны чем я в данном вопросе". ]];
 
            elseif ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
 
                return [[Уолтер отвечает: "Почему бы не спросить Леарр?" ]];
 
            elseif ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
 
                return [[Уолтер отвечает: "Моя сестра сможет помочь". ]];
 
            else
 
                return [[Уолтер отвечает: "Тут только вождь сможет помочь". ]];
 
            end;
 
        end};
 
        {tag="on_iraa_temple", false, "Вождь Ираафаанотра не хочет пускать меня в храм. Что мы можем сделать?", [[Уолтер отвечает: "В прошлый раз нам оказалось достаточно оказаться рядом с храмом, чтобы найти искомое. Быть может, в этот раз нам так же не нужно проникать внутрь? И я бы не стал исключать возможность скрытного проникновения. Раз они не знают о карте, то и не заметят потери". ]]};
 
		{tag="on_iyh", always=true, "Что ты можешь рассказать мне о храме?", [[Уолтер отвечает: "Возможно, мы сможем разрушить вход в храм. Однако я не знаю, как навьяры на это отреагируют". ]]};
 
		{tag="join", always=true, "Я хочу, чтобы ты пошел со мной в следующий раз.", [[ Уолтер отвечает: "Хорошо". ]],
 
			function()
 
                char_learr:accompany(false);
 
                char_phaetlarr:accompany(false);
0 comments (0 inline, 0 general)