# HG changeset patch # User Silverwing # Date 2015-05-17 09:31:39 # Node ID e56198c202cf8239bd88cbf8c1a7966cc783f2b8 # Parent bda865ce65bd2497431802dd8168ec41989dad5a Final scene additions diff --git a/final_battle.lua b/final_battle.lua --- a/final_battle.lua +++ b/final_battle.lua @@ -354,6 +354,7 @@ final_battle = room { entered = function(s) -- Здесь будем собирать все необходимое для начала финальной битвы: сопартийцы отыграют свою роль, после чего начнется битва не на жизнь, а на смерть. s.entered = nil; -- Должно отработать не более одного раза + pl.position = {1,2}; local throw = rnd(8); while (s.generators[throw] ~= 1) do @@ -379,6 +380,14 @@ final_battle = room { end; s.generators[pylon] = 5; + for i = 1, #pl.party do + if (pl.party[i] == "phaetlarr") + elseif (pl.party[i] == "learr") + elseif (pl.party[i] == "radcliffe") + elseif (pl.party[i] == "wright") + end; + end; + lifeon(s); end; life = function(s) diff --git a/final_scene.lua b/final_scene.lua --- a/final_scene.lua +++ b/final_scene.lua @@ -5,9 +5,11 @@ adrian_helper = obj { char_adrian.state = char_adrian.state + 1; elseif (char_adrian.state == 5) then char_naethvjirr.active = true; - return [[ + p([[ Адриан что-то делает с пультом управления и Наэтвьирр оживает - ]], true; + ]]); + lifeoff(s); + walk("pre_battle_scene_normal"); end; end; }; @@ -28,7 +30,7 @@ char_adrian = obj { ]]; elseif (s.state < 6) then return [[ - {Блэк} собирается включить Наэтвьирра. ^ + {Адриан Блэк} собирается включить Наэтвьирра. ^ ]]; end; end; @@ -38,9 +40,11 @@ char_adrian = obj { s.state = s.state + 1; elseif (s.state == 5) then char_naethvjirr.active = true; - return [[ + p([[ Адриан что-то делает с пультом управления и Наэтвьирр оживает - ]], true; + ]]); + lifeoff(s); + walk("pre_battle_scene_normal"); end; end; act = function(s) @@ -121,7 +125,9 @@ char_naethvjirr = obj { char_adrian.state = 6; -- TODO Адриан стреляет в одного из членов партии if (#pl.party ~= 0) then - chosen_one_name = pl.party[rnd(#pl.party)]; + local chosen_one; + local chosen_one_index = rnd(#pl.party); + local chosen_one_name = pl.party[chosen_one_index]; if (chosen_one_name == "learr") then chosen_one = char_learr_fb; elseif (chosen_one_name == "phaetlarr") then @@ -131,8 +137,10 @@ char_naethvjirr = obj { else chosen_one = char_wright_fb; end; + table.remove(pl.party, chosen_one_index); p("^^Адриан вскидывает пистолет и стреляет в вашу сторону. " .. chosen_one.disp .. " падает замертво"); - walk(final_battle); + + walk("pre_battle_scene_fight"); else -- TODO Адриан стреляет в вас walk("game_over_shot"); @@ -197,10 +205,24 @@ final_scene= room { }; }; ---final_scene_interrupt = room { --- nam = "final_scene_interrupt"; --- disp = "Лсэрианотр, центральный зал"; --- dsc = ""; --- obj = { --- }; ---}; \ No newline at end of file +pre_battle_scene_fight = room { + nam = "pre_battle_scene_fight"; + disp = "Лсэрианотр, центральный зал"; + dsc = [[ + Вы не успеваете опомниться, как Блэк снова стоит у пульта, а Наэтвьирр открывает глаза и оглядывает помещение. Адриан тут же издает приказ, указывая на вас:"Убей их" + ]]; + obj = { + vway("Продолжить", "{Продолжить}", 'final_battle') + }; +}; + +pre_battle_scene_normal = room { + nam = "pre_battle_scene_normal"; + disp = "Лсэрианотр, центральный зал"; + dsc = [[ + В глазах автоматона зажигается мягкий синий свет и он поворачивается к Адриану. Какое-то время он молчит, видимо, пытаясь подобрать наиболее подходящий язык для общения. В итоге по головным плавникам Навьяра побежали цветные полосы - ставший уже столь привычным для вас, способ общения среди Навьяров. Он "говорит" быстро, и вы успеваете понять лишь отдельные слова: "время", "пробуждение", "повелитель". Вы понимаете, что у вас есть еще немного времени, чтобы остановить его. Едва вы достаете оружие, как из пола перед троном поднимаются два небольших пилона. Очевидно, что город будет защищать своего хозяина. + ]]; + obj = { + vway("Продолжить", "{Продолжить}", 'final_battle') + }; +}; \ No newline at end of file diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -141,7 +141,7 @@ function init() put(submarine_leviathan, shipyard_inside); ---debug --pl.where = submarine_leviathan; + move(submarine_leviathan, first_city_inner_north); walk(final_scene); - move(submarine_leviathan, first_city_inner_north); --walk(leviathan_wardroom); end \ No newline at end of file