diff --git a/party.lua b/party.lua --- a/party.lua +++ b/party.lua @@ -127,10 +127,17 @@ char_radcliffe = obj { life = party_follow; act = function(s) if (stead.nameof(where(s)) == s.home) then - walkin(radcliffe_home_dlg); + radcliffe_home_dlg.home = true; else - walkin(radcliffe_dlg); + radcliffe_home_dlg.home = false; + if where(s).underwater then + wright_main_dlg.underwater = true; + else + wright_main_dlg.underwater = false; + end; end; + + walkin(radcliffe_home_dlg); end; seen_level = 2; }; @@ -667,47 +674,59 @@ radcliffe_home_dlg = dlg { poff('on_raybox'); end; - poff("on_anna", "on_walter", "on_atlantis", "on_drake", "on_black", "on_join", "questions"); - if (rel_walter < 0) then - pon("questions"); - else - if (char_radcliffe.on_anna < 3) then - pon("on_anna"); - pon("questions"); - end; - if (char_radcliffe.on_black < 2) then - pon("on_black"); + poff("on_anna", "on_walter", "on_atlantis", "on_drake", "on_black", "on_join", 'on_venaedanotrr', 'on_nleyyslanotrr', 'on_deep_temple', "questions"); + if s.home then + if (rel_walter < 0) then 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"); + else + if (char_radcliffe.on_anna < 3) then + 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 + pon("on_venaedanotrr"); + pon("questions"); + end; + if (char_anna.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 + pon("on_deep_temple"); + pon("questions"); + end; end; - if (char_anna.on_venaedanotrr < 2 and nleyyslanotrr_found) then - pon("on_venaedanotrr"); - pon("questions"); + if (char_radcliffe.follow) then + pon('stay'); + poff('join'); + else + pon('join'); + poff('stay'); end; - if (char_anna.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 - pon("on_deep_temple"); - pon("questions"); - end; + else + poff('stay', 'join'); end; if (atl_iyh_state == 7) then @@ -715,63 +734,62 @@ radcliffe_home_dlg = dlg { else poff("on_iyh"); end; - - if (char_radcliffe.follow) then - pon('stay'); - poff('join'); - else - pon('join'); - poff('stay'); - end; + psub("generic"); - - if char_radcliffe.on_conflict == 0 and conflict_resolved then - char_radcliffe.on_conflict = 1; - if (rel_walter < 0) then - if atl_iyh_shockfish_dead then - if atl_iyh_artifacts_on_atlantis then - return [[Уолтер при виде вас заявляет: "Может убивать ската было и не обязательно, но мы получили, что чего хотели". ]]; + + if s.home then + if char_radcliffe.on_conflict == 0 and conflict_resolved then + char_radcliffe.on_conflict = 1; + if (rel_walter < 0) then + if atl_iyh_shockfish_dead then + if atl_iyh_artifacts_on_atlantis then + return [[Уолтер при виде вас заявляет: "Может убивать ската было и не обязательно, но мы получили, что чего хотели". ]]; + else + return [[Уолтер при виде вас заявляет: "Убийство ската было опрометчивым, Дрейк. Отношения с навьярами безнадежно испорчены. Могу лишь понадеяться, что твои действия не помешают нам найти Уильяма и Адриана". ]]; + end; + elseif atl_iyh_entrance_destroyed then + if atl_iyh_artifacts_on_atlantis then + return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у нас". ]]; + else + return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у навьяров". ]]; + end; else - return [[Уолтер при виде вас заявляет: "Убийство ската было опрометчивым, Дрейк. Отношения с навьярами безнадежно испорчены. Могу лишь понадеяться, что твои действия не помешают нам найти Уильяма и Адриана". ]]; - end; - elseif atl_iyh_entrance_destroyed then - if atl_iyh_artifacts_on_atlantis then - return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у нас". ]]; - else - return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у навьяров". ]]; + if atl_iyh_artifacts_on_atlantis then + return [[Уолтер при виде вас заявляет: "Не ожидал, что получится закончить все настолько гладко там в храме". ]]; + else + return [[Уолтер при виде вас заявляет: "Не ожидал, что получится закончить все настолько гладко там в храме. Жаль, что артефакты мы так и не посмотрели". ]]; + end; end; else - if atl_iyh_artifacts_on_atlantis then - return [[Уолтер при виде вас заявляет: "Не ожидал, что получится закончить все настолько гладко там в храме". ]]; - else - return [[Уолтер при виде вас заявляет: "Не ожидал, что получится закончить все настолько гладко там в храме. Жаль, что артефакты мы так и не посмотрели". ]]; - end; - end; - else - if atl_iyh_shockfish_dead then - if atl_iyh_artifacts_on_atlantis then - return [[Уолтер при виде вас заявляет: "Может убивать ската было и не обязательно, но мы получили, что хотели. Я поступил бы так же на твоем месте". ]]; + if atl_iyh_shockfish_dead then + if atl_iyh_artifacts_on_atlantis then + return [[Уолтер при виде вас заявляет: "Может убивать ската было и не обязательно, но мы получили, что хотели. Я поступил бы так же на твоем месте". ]]; + else + return [[Уолтер при виде вас заявляет: "Убийство ската было опрометчивым, Дрейк. Отношения с навьярами безнадежно испорчены и теперь нам придется обходиться без их помощи". ]]; + end; + elseif atl_iyh_entrance_destroyed then + if atl_iyh_artifacts_on_atlantis then + return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у нас. Думаю, под твоим руководством мы сможем найти экипаж Надежды". ]]; + else + return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у навьяров. Думаю, под твоим руководством мы сможем найти экипаж Надежды". ]]; + end; else - return [[Уолтер при виде вас заявляет: "Убийство ската было опрометчивым, Дрейк. Отношения с навьярами безнадежно испорчены и теперь нам придется обходиться без их помощи". ]]; - end; - elseif atl_iyh_entrance_destroyed then - if atl_iyh_artifacts_on_atlantis then - return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у нас. Думаю, под твоим руководством мы сможем найти экипаж Надежды". ]]; - else - return [[Уолтер при виде вас заявляет: "Цель оправдывает средства. Храм и сам развалился бы через пару тысяч лет, только ценные артефакты, остались бы погребены навеки. Теперь они у навьяров. Думаю, под твоим руководством мы сможем найти экипаж Надежды". ]]; - end; - else - if atl_iyh_artifacts_on_atlantis then - return [[Уолтер при виде вас заявляет: "Отличная работа, Дрейк. Артефакты у нас, Ираафаанотр получит свою реликвию, а мы можем продолжать наши поиски". ]]; - else - return [[Уолтер при виде вас заявляет: "Отличная работа, Дрейк. Ираафаанотр получил свою реликвию, а мы можем продолжать наши поиски". ]]; + if atl_iyh_artifacts_on_atlantis then + return [[Уолтер при виде вас заявляет: "Отличная работа, Дрейк. Артефакты у нас, Ираафаанотр получит свою реликвию, а мы можем продолжать наши поиски". ]]; + else + return [[Уолтер при виде вас заявляет: "Отличная работа, Дрейк. Ираафаанотр получил свою реликвию, а мы можем продолжать наши поиски". ]]; + end; end; end; end; end; - - return [[Уолтер задумчиво смотрит на вас. ]]; - end; + + if s.underwater then + return [[Уолтер ждет ваших указаний. ]]; + else + return [[Уолтер задумчиво смотрит на вас. ]]; + end; + end; phr = { {tag="talk"}; {tag="on_black", "Что ты можешь сказать о Блэке?", function(s) @@ -813,8 +831,6 @@ radcliffe_home_dlg = dlg { return [[Уолтер Рэдклифф отвечает: "Признаюсь, я не слишком доверял тебе тогда, но это единственный способ узнать, что стало с Надеждой". ]]; end; end; - - end}; {tag="on_atlantis", "Что ты думаешь об Атлантиде?", function(s) char_radcliffe.on_atlantis = 2; @@ -862,7 +878,7 @@ radcliffe_home_dlg = dlg { end; end}; {tag="on_iraa_temple", false, "Вождь Ираафаанотра не хочет пускать меня в храм. Что мы можем сделать?", [[Уолтер отвечает: "В прошлый раз нам оказалось достаточно оказаться рядом с храмом, чтобы найти искомое. Быть может, в этот раз нам так же не нужно проникать внутрь? И я бы не стал исключать возможность скрытного проникновения. Раз они не знают о карте, то и не заметят потери". ]]}; - {tag="on_iyh", always=true, "Что ты можешь рассказать мне о храме?", [[Уолтер пожимает клечами: "Возможно, мы сможем разрушить вход в храм. Однако я не знаю, как навьяры на это отреагируют". ]]}; + {tag="on_iyh", always=true, "Что ты можешь рассказать мне о храме?", [[Уолтер отвечает: "Возможно, мы сможем разрушить вход в храм. Однако я не знаю, как навьяры на это отреагируют". ]]}; {tag="join", always=true, "Я хочу, чтобы ты пошел со мной в следующий раз.", [[ Уолтер отвечает: "Хорошо". ]], function() char_learr:accompany(false);