diff --git a/lse_final_battle.lua b/lse_final_battle.lua --- a/lse_final_battle.lua +++ b/lse_final_battle.lua @@ -793,13 +793,153 @@ lse_aedhyarr = combatant { end; }; -final_battle_over = room { - nam = 'final_battle_over'; - enter = function(s) - if lse_aedhyarr.hp > 0 then - walkin(prepare_ending(3)); +final_battle_over = cutscene('Лсэрианотр, зал Наэтвьирра', 'Лсэрианотр, зал Наэтвьирра', function(s) + if lse_naethvjirr.hp > 0 then + pr [[Как только последний генератор затихает, металлический навьяр застывает. Наэтвьирра больше нет. ]]; + else + pr [[Последний генератор затихает и вы облегченно вздыхаете. Наэтвьирра больше нет. ]]; + end; + if lse_drake.hp > 0 then + pr [[Ошеломленный Уильям Дрейк произносит: "Не ждал я от тебя такого, сынок". Дрожащей рукой он подносит к виску револьвер. ]]; + end; + if lse_aedhyarr.hp > 0 then + pr [[Аэдхиарр опускается на пол с криком: "Не стреляйте!" ]]; + end; + if #pl.party == 1 then + pr [[Фаэтларр приходит в себя. ]]; + elseif #pl.party > 1 then + pr [[Ваши спутники начинают приходить в себя. ]]; + end; +end, 'final_battle_over_2'); + +final_battle_over_2 = room { + var { + frames = 2; -- Player must have 2 tacts to do something. 2 is enough to stop drake + }; + nam = 'final_battle_over_2'; + disp = 'Лсэрианотр, зал Наэтвьирра'; + dsc = [[Центральный зал ярко освещен исходящим из стен светом. По периметру зала установлены массивные металлические шкафы. По полу протянуты толстые провода, соединяющие их со статуей в центре зала. Металлическая статуя изображает навьяра, сидящего на троне. Рядом с троном стоят два пилона, высотой около метра. ]]; + entered = function(s) + s:lifeon(); + end; + left = function(s) + s:lifeoff(); + end; + life = function(s) + s.frames = s.frames - 1; + if s.frames == 0 then + drake_saved = false; + walk('final_drake_not_saved'); + end; + end; + obj = { + 'final_naethvjirr'; + 'final_pylons'; + 'final_drake'; + 'final_aedhyarr'; + }; +} + +final_naethvjirr = obj { + nam = 'final_naethvjirr'; + dsc = function(s) + if lse_naethvjirr.hp <= 0 then + return [[В центре зала установлен массивный металлический трон, рядом с которым лежит искореженный металлический автоматон-{навьяр}. ]]; else - walkin(prepare_ending(4)); + return [[В центре зала установлен массивный металлический трон, перед которым навеки застыл металлический {навьяр}. ]]; + end; + end; + act = function(s) + if lse_naethvjirr.hp <= 0 then + return [[Развороченные остатки древней машины. Чудесное творение великих мудрецов прошлого приведено в совершенную негодность. ]]; + else + return [[Механический навьяр застыл, навеки обращенный в статую. Лишенный источника энергии, он уже никогда не оживет. ]]; end; end; }; + +final_pylons = obj { + nam = 'final_pylons'; + dsc = function(s) + if lse_pylon1.hp > 0 and lse_pylon2.hp > 0 then + return [[Рядом с троном высятся два {стеклянных} пилона. ]]; + elseif lse_pylon1.hp <= 0 and lse_pylon2.hp <= 0 then + return [[По всему залу разбросаны {обломки стекла}, оставшиеся от двух пилонов, стоявших перед троном. ]]; + else + return [[Рядом с троном высится стеклянный {пилон}. Обломки еще одного разбросаны по всему залу. ]]; + end; + end; + act = "Древнее защитное устройство уже никому не причинит вреда. "; +} + +final_drake = obj { + nam = 'final_drake'; + dsc = [[Уильям Дрейк стоит с поднесенным к виску {револьвером}.]]; + act = [[Он вот-вот выстрелит!]]; + used = function(s, o) + if o == item_colt and item_colt.bullets > 0 then + drake_saved = true; + walkin('final_drake_saved'); + return [[Вы прицеливаетесь и делаете выстрел, выбивая револьвер из руки Уильяма. Он ошеломленно смотрит на вас. ]]; + end; + end; +}; + +final_aedhyarr = obj { + nam = 'final_aedhyarr'; + dsc = '{Аэдхиарр} почти не двигаясь лежит на полу. '; + act = 'Навьяр жив, но напуган. Лучше оставить его в покое.'; +}; + +final_drake_saved = dlg { + nam = 'final_drake_saved'; + disp = 'Лсэрианотр, зал Наэтвьирра'; + entered = [[Уильям приходит в себя и смотрит на вас: "Что будем делать дальше, Дэвид?"^]]; + phr = { + {'Город все еще в нашем распоряжении. Мы должны вернуться на Атлантиду, но кто-то должен остаться здесь.', 'Уильям соглашается: "Да. Пора домой. Кого ты оставишь здесь? Аэдхиарр, я думаю, вполне справится". ^Позади вас раздается решительный голос Фаэтларра: "Я останусь". ', function(s) + walk('final_choose_ruler'); + end}; + {'Понятия не имею', 'Уильям задумчиво чешет подбородок и сообщает: "Думаю, нам пора домой, на Атлантиду. Но нужно оставить кого-нибудь здесь... Аэдхиарр, я думаю, вполне справится". ^Позади вас раздается решительный голос Фаэтларра: "Я останусь". ', function(s) + walk('final_choose_ruler'); + end}; + }; +}; + +final_drake_not_saved = dlg { + nam = 'final_drake_not_saved'; + disp = 'Лсэрианотр, зал Наэтвьирра'; + entered = [[Вы не успеваете помешать Уильяму сделать выстрел. Его тело падает на пол. Некоторое время вы стоите посреди затихшего зала, размышляя о произошедшем. Тихий голос Фаэтларра прорезает тишину: "Что будем делать дальше?" ]]; + phr = { + {'Город все еще в нашем распоряжении. Мы должны вернуться на Атлантиду, но кто-то должен остаться здесь.', 'Фаэтларр соглашается: "Да. Вам пора домой. Я готов остаться и присмотреть здесь за всем, но решение за тобой". ^Аэдхиарр поднимается с пола и отряхивается со словами: "Мы хорошо знаем этот город и сможем присмотреть за ним. Я готов остаться вместе с моими помощниками". ', function(s) + walk('final_choose_ruler'); + end}; + {'Понятия не имею', 'Вы слышите позади себя голос Уолтера Рэдклиффа: "Нам пора на Атлантиду, но кто-то должен остаться здесь, присмотреть за городом. Я бы предложил кандидатуры Аэдхиарра, хорошо знакомого с Лсэрианотром, или Фаэтларра". ^Фаэтларр кивает: "Я готов". ^Аэдхиарр поднимается с пола и отряживается со словами: "Это будет большая честь для меня". ', function(s) + walk('final_choose_ruler'); + end} + }; +); + +final_choose_ruler = dlg { + nam = 'final_choose_ruler'; + disp = 'Лсэрианотр, зал Наэтвьирра'; + entered = function(s) + if drake_saved then + pon('drake'); + return [[Ваши спутники, Уильям и Аэдхиарр молча ждут вашего решения. ]]; + else + poff('drake'); + return [[Ваши спутники и Аэдхиарр молча ждут вашего решения. ]]; + end; + end; + phr { + {tag="drake", 'За главного остается мой отец, Уильям Дрейк.', function(s) + walkin(prepare_ending(6)); + end}; + {tag="aedhyarr", 'За главного остается Аэдхиарр.', function(s) + walkin(prepare_ending(3)); + end}; + {tag="phaetlarr", 'За главного остается Фаэтларр.', function(s) + walkin(prepare_ending(4)); + end}; + }; +};