Files @ b8892a3ba201
Branch filter:

Location: games/Awakening/journey_zayslanotrr_temple.lua - annotation

Silverwing
Progress on dlg rewrite; Moreau old dlg rewrite
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
ed3e36144593
za_temple_entrance_foot = room {
    nam = "Храм Заисланотра, вход";
    handwheel_room = "za_temple_entrance_foot";
    underwater = true;
    no_exit = [[
        Нет смысла покидать Левиафан здесь. 
    ]];
    view = [[
        Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой.
    ]];
};

za_temple_entrance = dlg {
    nam = "Левиафан, рубка";
    var {
        state = 0;
    };
    entered = function(s)
        if (s.state == 0) then
            s.state = 1;
            return [[
                Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой. ^
                В рубку поднимается Фаэтларр и окидывает взглядом скалу перед вами. Медленно подойдя к иллюминатору он произносит: "Другой-вход в-храм-такой-есть. Он меньше-охраняться-должен. Ты смотри правее. У нас так построено, значит и у них так". 
            ]];
        else
            return [[
                Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой. 
            ]];
        end;
    end;
    phr = {
        {"[Двигаться налево вдоль скалы]", [[ 
            Вы двигаетесь довольно долго, но когда становится очевидно, что там ничего нет, вы возвращаетесь на исходную позицию. 
        ]]};
        {"[Двигаться направо вдоль скалы]", [[
            Фаэтларр оказался прав. Совсем скоро вы замечаете узкий проход в скале. Если второй вход в храм существует, то он здесь. 
        ]], code = [[ walk("za_temple_back_entrance");]]};
        {"[Отправиться в другое место]", code = [[ walk("leviathan_wheelhouse"); ]]};
        {"[Отойти от штурвала]", code = [[ walk("leviathan_wheelhouse");]]};
    };
};

za_temple_back_entrance_foot = room {
    nam = "Храм Заисланотра, задний вход";
    dsc = [[
        Вы стоите перед расщелиной в скале, освещенной мощным лучом прожектора вашей субмарины. 
    ]];
    underwater = true;
    view = [[
        Через иллюминаторы вы видите расщелину в скале, освещенную мощным лучом прожектора Левиафана. 
    ]];
    way = {
        kh_vroom("В Левиафан", function(s)
            if (not have(item_navjiarr_chart_z)) then
                return leviathan_airlock;
            else
                return "za_leviathan_fight";
            end;
        end);
        kh_vroom("В ущелье", "za_ravine_1");
    };
};

za_temple_back_entrance = dlg {
    nam = "Левиафан, рубка";
    entered = [[
        Через иллюминаторы вы видите расщелину в скале, освещенную мощным лучом прожектора. 
    ]];
    phr = {
        {"[Вернуться к главному входу]", code = [[ walk("za_temple_entrance"); ]]};
        {"[Отправиться в другое место]", code = [[ walk("leviathan_wheelhouse"); ]]};
        {"[Отойти от штурвала]", code = [[ walk("leviathan_wheelhouse");]]};
    };
};

za_ravine_1 = room {
    nam = "za_ravine_1";
    disp = "Ущелье";
    dsc = [[
        Вы находитесь в узком темном ущелье. Вы с трудом можете передвигаться по нему не задевая стен. Впереди ущелье разветвляется. Левое ответвление достаточно широкое, чтобы вы могли спокойно пройти. Правое настолько узкое, что вы с трудом сможете протиснуться в него. 
    ]];
    way = {
        kh_vroom("Выйти из ущелья", "za_temple_back_entrance_foot");
        kh_vroom("Налево", "za_ravine_2");
        kh_vroom("Направо", "za_ravine_3");
    };
};

za_ravine_2 = room {
    nam = "za_ravine_2";
    disp = "Ущелье, вход в храм";
    dsc = [[
        В конце ущелья вы видите массивую металлическую дверь. 
    ]];
    way = {
        kh_vroom("Назад", "za_ravine_1");
        kh_vroom("В храм", function(s)
            if (za_panel.state == 1) then
                return "za_temple_chamber";
            else
                pr [[
                    Дверь заперта и вы не знаете как ее открыть. 
                ]];
                return false;
            end;
        end);
    };
};

za_ravine_3 = room {
    nam = "za_ravine_3";
    disp = "Ущелье";
    dsc = [[
        Вы находитесь в конце одного из ответвлений ущелья. Здесь так тесно, что вы не можете даже развернуться. 
    ]];
    obj = {
        "za_panel"
    };
    way = {
        kh_vroom("Назад", "za_ravine_1");
    };
};

za_panel = obj {
    var {
        state = 0;
    };
    nam = "za_panel";
    dsc = [[
        В скале вы видите небольшую каменную {панель}. 
    ]];
    act = function(s)
        if (s.state == 0) then
            s.state = 1;
            return [[
                Вы нажимаете панель и слышите из глубин ущелья скрежет открывающейся двери.
            ]];
        else
            return [[
                Вам здесь больше нечего делать. 
            ]];
        end;
    end;
};

za_temple_chamber = room {
    var {
        state = 0;
    };
    nam = "za_temple_chamber";
    disp = "Храм Заисланотра, главный зал";
    dsc = [[
        Вы находитесь в главном помещении древнего храма. Металлические стены зала освещены сиянием люминесцентных водорослей на потолке и на полу. 
    ]];
    entered = function(s)
        if (s.state == 0) then
            s.state = 1;
            return [[
                Дверь позади вас закрывается и вы оказываетесь заперты в помещении. 
            ]];
        end;
    end;
    obj = {
        "za_pedestal",
        "item_deep_key"
    };
    way = {
        kh_vroom("Выйти", function(s)
            if (have(item_navjiarr_chart_z)) then
                return "za_ravine_2";
            else
                return "Дверь заперта";
            end;
        end);
    };
};

za_temple_lower_level1 = room {
    nam = "za_temple_lower_level1";
    disp = "Храм Заисланотра, нижний этаж, спуск";
    dsc = [[
        Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. Коридор плавно уходит вниз, в недра скалы. 
    ]];
    way = {
        kh_vroom("Наверх", "za_temple_chamber");
        kh_vroom("Дальше по коридору", "za_temple_lower_level2");
    };
};

za_temple_lower_level2 = room {
    nam = "za_temple_lower_level2";
    disp = "Храм Заисланотра, нижний этаж";
    dsc = [[
        Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. 
    ]];
    way = {
        kh_vroom("Назад", "za_temple_lower_level1");
        kh_vroom("Дальше по коридору", "za_temple_lower_level3");
    };
};

za_temple_lower_level3 = room {
    nam = "za_temple_lower_level3";
    disp = "Храм Заисланотра, нижний этаж, тупик";
    dsc = [[
        Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. В конце коридора находится массивная металлическая дверь. 
    ]];
    way = {
        kh_vroom("Назад", "za_temple_lower_level2");
        kh_vroom("В дверь", "za_temple_lower_hall");
    };
};

za_temple_room1 = room {
    nam = "za_temple_room1";
    disp = "Храм Заисланотра, нижний этаж, комната";
    dsc = [[
        Вы находитесь в небольшой комнате. Так же, как и другие помещения храма, пол и потолок ее покрыты светящимися водорослями. 
    ]];
    obj = {
        "za_temple_room1_walls", 
        "za_temple_room1_niche", 
    };
};

za_temple_room2 = room {
    nam = "za_temple_room2";
    disp = "Храм Заисланотра, нижний этаж, комната";
    dsc = [[
        Вы находитесь в небольшой комнате. Так же, как и другие помещения храма, пол и потолок ее покрыты светящимися водорослями. 
    ]];
    obj = {
        "za_temple_room2_niche"
    };
};

za_temple_room1_walls = obj {
    nam = "za_temple_room1_walls";
    dsc = [[
        На стенах комнаты нанесены навьярские {записи}.
    ]];
    act = [[
        Записи гласят, что где-то в этом храме должен быть ключ от древнего храма, где сокрыт некий "тайный предмет". 
    ]];
};

za_temple_room1_niche = obj {
    nam = "za_temple_room1_niche";
    dsc = [[
        В одной из стен вы видите небольшую {выемку}. 
    ]];
    act = function(s)
        if (seen(za_temple_room2_niche, za_temple_room2)) then
            return [[
                Вам здесь больше нечего делать. 
            ]];
        else
            za_temple_room2_niche:enable();
            return [[
                Внутри выемки вы нажимаете на что-то и слышите скрежет камня в соседней комнате. 
            ]];
        end;
    end;
};

za_temple_room2_niche = obj {
    var {
        state = 0;
    };
    nam = "za_temple_room2_niche";
    dsc = function(s)
        if (s.state == 0) then
            return [[
                В одной из стен вы видите небольшую выемку, в которой лежит {табличка}. 
            ]];
        else
            return [[
                В одной из стен вы видите небольшую {выемку}. 
            ]];
        end;
    end;
    act = function(s)
        if (s.state == 0) then
            s.state = 1;
            return [[
                Табличка оказывается фрагментом карты. Вы забираете ее, чтобы на Левиафане совместить с имеющимися у вас частями. 
            ]];
        else
            return [[
                Здесь больше нет ничего интересного. 
            ]];
        end;
    end;
};

za_temple_room2_niche:disable();

za_temple_lower_hall = room {
    nam = "za_temple_lower_hall";
    disp = "Храм Заисланотра, нижний этаж, главный зал";
    dsc = [[
        Вы находитесь в просторном зале на нижнем этаже храма Заисланотра. 
    ]];
    obj = {
        "za_temple_hall_walls";
        "za_hall_pedestal";
        "item_navjiarr_chart_z";
    };
    way = {
        kh_vroom("В коридор", "za_temple_lower_level3");
    };
};

za_temple_hall_walls = obj {
    nam = "za_temple_hall_walls";
    dsc = [[
        На стенах зала нанесены навьярские {записи}.
    ]];
    act = [[
        
    ]];
};

za_pedestal = obj {
    nam = "za_pedestal";
    dsc = [[
        В центре зала установлен небольшой пьедестал.
    ]];
};

za_hall_pedestal = obj {
    nam = "za_hall_pedestal";
    dsc = [[
        В центре зала установлен небольшой пьедестал.
    ]];
};

za_leviathan_fight = dlg {
    var {
        state = 0;
    };
    nam = "za_leviathan_fight";
    disp = "Левиафан, рубка";
    entered = function(s)
        pr [[
            Еще забираясь в люк, вы замечаете, как со стороны главного входа храма к вам движется вооруженный отряд навьяров. Вы быстро снимаете скафандр и отправляетесь в рубку. Фаэтларр уже стоит у иллюминатора и внимательно наблюдает за происходящим. Повернувшись к вам, навьяр говорит: "Ваш-корабль быстрее их-воинов. Мы легко-уйдем".
        ]];
        if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
            pr [[
                Леарр, стоящая рядом соглашается с ним: "Я им-вредить-не-хочу. Если мы просто-уйти-можем, то мы просто-уйдем".
            ]];
        end;
        pr [[
            Встав за штурвал, вы оцениваете ситуацию: со стороны главного входа к вам приближаются несколько всадников на акулах и три ската. вслед за ними плывут около десятка воинов вооруженных копьями. Просто уйти вы не сможете - пока Левиафан будет разворачиваться, враги догонят вас. 
        ]];
    end;
    phr = {
        {tag="torpedo", "[Выпустить торпеду]", function(s)
            rel_learr = rel_learr - 1;
            rel_phaetlarr = rel_phaetlarr - 1;
            
            pr [[
                Мощный взрыв раскидывает ошарашенных навьяров. Вода окрашивается кровью и ваш путь оказывается свободен. Фаэтларр в ужасе прильнул к степклу иллюминатора. По его плавникам бегут цветные полосы: "Что ты наделал?"
            ]];
            if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
                pr [[
                    Леарр не говоря ни слова покидает рубку. 
                ]];
            end;
        end, code [[ poff("sonic"); za_leviathan_fight.state = 2; ]]};
        {tag="sonic", "[Выстрелить из звуковой пушки]", [[
            Несколько выстрелов из звуковой пушки успешно дезориентируют противника. Теперь у вас есть достаточно времени, чтобы уйти. 
        ]], code [[ za_leviathan_fight.state = 1; ]]};
        {tag="away", "[Развернуть субмарину]", code = function(s)
            if (za_leviathan_fight.state == 0) then
                walk("game_over_za_temple_escape");
            elseif (za_leviathan_fight.state == 1) then
                walk("za_temple_escape_sonic");
            else
                walk("za_temple_escape_torpedo");
            end;
        end};
    };
};

za_temple_escape_sonic = cutscene("za_temple_escape_sonic", "Левиафан, рубка", [[
    Пользуясь смятением в рядах противника, вы разворачиваете субмарину и быстро набираете скорость. 
]], "leviathan_wheelhouse");

za_temple_escape_torpedo = cutscene("za_temple_escape_sonic", "Левиафан, рубка", [[
    Вы разворачиваете субмарину и покидаете место бойни. Немногие выжившие противники в ужасе бегут. 
]], "leviathan_wheelhouse");