Files @ 16044f7fdf9f
Branch filter:

Location: games/Awakening/atlantis_dyp_night.lua - annotation

Silverwing
0.10.5
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
b8a29e51c7df
5c4202465b90
5c4202465b90
ea5fe5c0d7d5
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
33f6d5c6986a
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
ea5fe5c0d7d5
5c4202465b90
5c4202465b90
5c4202465b90
eed7f956a0d1
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
507290565c1f
507290565c1f
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
bdf3b897b448
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
ea5fe5c0d7d5
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
ea5fe5c0d7d5
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
ea5fe5c0d7d5
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
258af0d88334
258af0d88334
258af0d88334
258af0d88334
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
c00b244ba18b
ea4ce9be5e1b
ea4ce9be5e1b
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
c00b244ba18b
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
ea5fe5c0d7d5
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
467ec5d28292
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
ea5fe5c0d7d5
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
ea5fe5c0d7d5
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
417bfabe0bc3
417bfabe0bc3
11457e36762a
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
798401c60ef5
417bfabe0bc3
417bfabe0bc3
3839a12584e7
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
798401c60ef5
798401c60ef5
798401c60ef5
1e95a4dfb8ba
798401c60ef5
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
798401c60ef5
ea5fe5c0d7d5
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
c6d57490acd4
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
c6d57490acd4
2ed75b1c72a9
1e95a4dfb8ba
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
1e95a4dfb8ba
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
ac28589c139d
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
ea5fe5c0d7d5
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
23caf9d3d723
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
ea5fe5c0d7d5
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
417bfabe0bc3
--[[
 Дипатреанотр, ночь
]]

dyp_entry_night = lcutscene("dyp_entry_night", "Левиафан, рубка", [[Левиафан прибывает в Дипетранотр под покровом ночи. Вы останавливаетесь на южной окраине спящего поселения. Прожектор субмарины выключен, во избежание привлечения лишнего внимания, и пространство вокруг Левиафана затянуто кромешной тьмой. ]], "Вы прибыли в Дипатреанотр ночью. ", leviathan_wheelhouse);

dyp_night_south = room {
    nam = 'Дипатреанотр, южная окраина (ночь)';
    underwater = true;
    disp = 'Дипатреанотр, южная окраина';
    view = [[Левиафан завис чуть в стороне от Дипатреанотра. На севере горят яркие огни центральных зданий поселения -- библиотеки и дома вождя. Покрытый тьмой город представляет собой нагромождение каменных домиков без четко выраженных улиц или проходов. ]];
    dsc = [[Вы стоите на южной окраине Дипатреанотра. К северу от вас расположены неказистые каменные дома жителей города. ]];
    way = {
        kh_vroom("В Левиафан", "leviathan_airlock");
        kh_vroom("К центру", "dyp_night_center");
    };
}

dyp_night_center = room {
    var {
        state = 0;
    };
    nam = "Дипатреанотр, центр (ночь)";
    underwater = true;
    disp = 'Дипатреанотр, центр';
    entered = function(s)
        dyp_obelisk_puzzle.where_from = 'dyp_night_center';
        if s.state == 0 then
            s.state = 1;
            pr [[С трудом пробираясь в темноте среди хаотично наставленных каменных домиков, вы добираетесь до центра города. ]];
        end;
    end;
    dsc = [[Центральная площадь Дипатреанотра пустынна -- навьяры мирно спят в своих домах. На востоке ярко сияют окна библиотеки, а на западе -- вход в дом вождя. ]];
    view = [[Центральная площадь Дипатреанотра пустынна -- навьяры мирно спят в своих домах. На востоке ярко сияют окна библиотеки, а на западе -- вход в дом вождя. Прожектор Левиафана выключен, чтобы ваше присутствие было менее заметно в темноте. ]];
    obj = {
        'dyp_obelisk';
    };
    way = {
        kh_vroom('К библиотеке', 'dyp_night_library_entrance');
        kh_vroom('К дому вождя', 'dyp_night_chief_house_entrance');
        kh_vroom('На юг', 'dyp_night_south');
    };
}

dyp_night_library_entrance = room {
    var {
        anna_state = 0;
        jack_state = 0;
        walter_state = 0;
    };
    nam = "Дипатреанотр, вход в библиотеку (ночь)";
    underwater = true;
    disp = 'Дипатреанотр, вход в библиотеку';
    dsc = [[Двухэтажное здание библиотеки -- старейшее в Дипатреанотре. Выстроенное из массивных каменных плит и хорошо обслуживаемое, оно сохранилось в превосходном состоянии. Двери здания распахнуты, изнутри исходит слабый свет. ]];
    entered = function(s)
        if s.state == 0 then
            if char_anna.follow and s.anna_state == 0 then
                if rel_anna > 0 then
                    s.anna_state = 1;
                    return [[Из динамика доносится голос Анны: "Удивительно. Жаль, что у меня нет времени изучить это место как следует".]];
                end;
            elseif char_wright.follow and s.jack_state == 0 then
                if rel_jack > 0 then
                    s.jack_state = 1;
                    return [[Из динамика доносится голос Джека: "Сколько же времени нужно, чтобы изучить все, хранящееся здесь". ]];
                end;
            elseif char_radcliffe.follow and s.walter_state == 0 then
                s.walter_state = 1;
                return [[Из динамика доносится голос Уолтера: "Дрейк, у нас есть всего пара часов до рассвета. Не думаю, что за это время мы найдем то что мы ищем". ]];
            end;
        end;
    end;
    way = {
        kh_vroom("К центру", "dyp_night_center");
        kh_vroom("В библиотеку", "dyp_night_library_floor1");
    }
}

dyp_night_library_floor1 = room {
    nam = "Дипатреанотр, библиотека, первый этаж (ночь)";
    disp = 'Дипатреанотр, библиотека, первый этаж';
    underwater = true;
    dsc = [[Огромный зал библиотеки освещен ровным светом водорослей, покрывающих потолок и колонны, ровные ряды которых поддерживают тяжелый каменный потолок. Повсюду стоят массивные стеллажи, заполненные каменными табличками, изредка перемежающимися древними металлическими. Одна из полок полностью заполнена небольшими блестящими дисками. ]];
    obj = {
        'dyp_library_statue';
    };
    way = {
        kh_vroom("Наружу", "dyp_night_library_entrance");
        kh_vroom("На второй этаж", "dyp_night_library_floor2");
    };
}

dyp_night_library_floor2 = room {
    nam = "Дипатреанотр, библиотека, второй этаж (ночь)";
    disp = 'Дипатреанотр, библиотека, второй этаж';
    underwater = true;
    dsc = [[Второй этаж библиотеки мало чем отличается от первого -- точно такие же колонны, покрытый водорослями, точно такие же стеллажи с табличками. Здесь гораздо больше полок содержат блестящие диски и металлические таблички. ]];
    obj = {
        'dyp_night_tablets';
    };
    way = {
        kh_vroom("На первый этаж", "dyp_night_library_floor1");
    };
}

dyp_night_tablets = obj {
    var {
        state = 0;
    };
    nam = "dyp_night_tablets";
    dsc = 'В углу аккуратно разложены в несколько стопок каменные и металлические {таблички}. ';
    act = function(s)
        if s.state == 0 then
            if char_anna.follow then
                s.state = 1;
                pr [[Вы аккуратно берете верхнюю табличку из стопки. Анна опускается на пол рядом с вами и начинает рассматривать таблички, одну за другой. Из динамика доносится ее голос: "Дэвид, я нашла". ^]];
                walk("dyp_night_anna_hint");
            else
                return [[Вы аккуратно берете верхнюю табличку из стопки. Вы почти ничего не понимаете из того, что на ней написано. Вам нужен кто-то, кто достаточно хорошо знает язык навьяров. ]];
            end;
        else
            return [[На одной из этих табличек записано, что недалеко от храма Дипатреанотра есть пещера, но чтобы войти в нее, нужны три ключа. Ключи спрятаны в городе. ]];
        end;

    end;
}

dyp_night_anna_hint = dlg {
    nam = 'dyp_night_anna_hint';
    disp = 'Анна Рэдклифф';
    entered = function(s)
        dyp_stones_known = true;
        dyp_lib_stone_state = 1;
        return [[Анна поднимается с пола и поворачивается к вам. В динамике вы слышите ее взволнованный голос: "Я нашла то, что мы искали. Недалеко от храма есть пещера, но чтобы войти в нее, нужны три ключа. Ключи спрятаны здесь, в Дипатреанотре". ]];
    end;
    phr = {
        {'Хорошо, будем искать.', 'Анна молча кладет табличку на место. ', code [[back();]]};
        {'Как выглядят эти ключи?', 'Анна отвечает: "Не знаю. Здесь не указано, но здесь есть изображение статуи, похожей на ту, что мы видели внизу".'}
    };
}

dyp_night_chief_house_entrance = room {
    var {
        jack_state = 0;
        walter_state = 0;
    };
    nam = 'Дипатреанотр, перед домом вождя (ночь)';
    disp = 'Дипатреанотр, перед домом вождя';
    underwater = true;
    dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города. Из главного зала исходит слабый свет. ]];
    entered = function(s)
        if char_radcliffe.follow and rel_walter > 0 and s.walter_state == 0 then
            s.walter_state = 1;
            return [[Из динамиков доносится голос Уолтера: "Неслабый себе домик вождя отгрохал. Сразу видно, заботится о населении". ]];
        elseif char_wright.follow and rel_jack > 0 and s.jack_state == 0 then
            s.jack_state = 1;
            return [[Из динамиков доносится голос Джека: "Не думал, что современные навьяры не способны даже нормально обработать камень". ]];
        end;
    end;
    way = {
        kh_vroom("К центру", "dyp_night_center");
        kh_vroom("В дом", "dyp_night_chief_house_hall");
    };
}

dyp_night_chief_house_hall = room {
    nam = 'Дипатреанотр, дом вождя, приемная (ночь)';
    disp = 'Дипатреанотр, дом вождя, приемная';
    underwater = true;
    dsc = [[Приемная вождя слабо освещена водорослями, покрывающими ровные ряды колонн, поддерживающих тяжелый каменный потолок. В дальнем конце зала установлены каменный трон и массивный каменный стол. В углу зала вы видите лестницу, ведущую на второй этаж. К вашему удивлению, она не охраняется. ]];
    way = {
        kh_vroom("Наружу", "dyp_night_chief_house_entrance");
        kh_vroom('Наверх', 'dyp_night_chief_house_2nd_floor')
    };
}

dyp_night_chief_house_2nd_floor = room {
    nam = 'Дипатреанотр, дом вождя, второй этаж (ночь)';
    disp = 'Дипатреанотр, дом вождя, второй этаж';
    dsc = [[Коридор второго этажа пуст. Слабый свет водорослей, покрывающих пол и стены позволяет вам легко ориентироваться внутри. Справа от вас расположена дверь. Впереди коридор поворачивает направо. ]];
    nolamp = true;
    entered = function(s)
        make_snapshot();
    end;
    way = {
        kh_vroom('За угол', 'dyp_night_chief_house_2nd_floor2');
        kh_vroom('На первый этаж', 'dyp_night_chief_house_hall');
        kh_vroom('В дверь', 'dyp_night_chief_house_treasury');
    }

}

dyp_night_chief_guard = obj {
    var {
        state = 0;
    };
    nam = 'dyp_night_chief_guard';
    disp2 = "охранника";
    dsc = function(s)
        if s.state == 0 then
            return [[Рядом с дверью стоит {охранник}. Он с недоумением смотрит на вас. У вас есть несколько мгновений, чтобы что-нибудь предпринять. ]];
        else
            return [[Рядом с дверью лежит труп охранника. ]];
        end;
    end;
    canshoot = true;
    onshoot = function(s)
        s.state = 1;
        lifeoff(dyp_night_chief_house_2nd_floor2);
        return [[Вы убиваете охранника. ]];
    end
};

dyp_night_chief_house_2nd_floor2 = room {
    var {
        state = 0;
    };
    underwater = true;
    nam = 'Дипатреанотр, дом вождя, второй этаж (ночь)';
    disp = 'Дипатреанотр, дом вождя, второй этаж';
    dsc = [[Слабый свет водорослей, покрывающих пол и стены позволяет вам легко ориентироваться внутри. Перед вами расположена дверь. ]];
    nolamp = true;
    entered = function(s)
        if dyp_night_chief_guard.state == 0 then
            s.state = 2;
            lifeon(s);
        end;
    end;
    exit = function(s)
        lifeoff(s);
        if dyp_night_chief_guard.state == 0 then
            walk("game_over_dyp_night_caught");
        end;
    end;
    life = function(s)
        if dyp_night_chief_guard.state == 0 then
            s.state = s.state - 1;
            if s.state == 0 then
                walk("game_over_dyp_night_caught");
            end
        end;
    end;
    obj = {
        'dyp_night_chief_guard';
    };
    way = {
        kh_vroom('За угол', 'dyp_night_chief_house_2nd_floor');
        kh_vroom('В дверь', 'dyp_night_chief_house_bedroom');
    };
}

dyp_night_chief_house_treasury = darkroom {
    nam = 'Дипатреанотр, дом вождя, сокровищница (ночь)';
    disp = 'Дипатреанотр, дом вождя, сокровищница';
    dsc_dark = [[Большая темная комната. Вы с трудом различаете очертания предметов. ]];
    dsc_halflit = [[Большая комната уставлена всевозможными вещами, должно быть, ценными по навьярским меркам. Найти здесь что-то будет крайне сложно, если не невозможно. ]];
    way = {
        kh_vroom('В коридор', function(s)
            if pl.has_light then
                pr [[Вас заметят, если вы не выключите свет. ]];

                return false;
            end;
            return 'dyp_night_chief_house_2nd_floor';
        end, 2);
    };
};

item_scepter = obj {
    var {
        state = 0;
    };
    nam = 'item_scepter';
    disp = 'Жезл';
    dsc = function(s)
        if s.state == 0 then
            return [[У изголовья кровати стоит {жезл}, в навершии которого укреплен светящийся зеленым светом камень. ]];
        else
            return [[У изголовья кровати стоит {жезл}. ]];
        end;
    end;
    tak = [[Вы аккуратно берете жезл. ]];
    inv = function(s)
        if s.state == 0 then
            s.state = 1;
            take(dyp_item_stone_green);
            return [[Вы аккуратно вынимаете камень из навершия жезла. ]];
        else
            return [[Искусно сделанный золотистый жезл. Вы не можете определить металл, из которого он сделан. ]];
        end;
    end;
};

dyp_night_bed = obj {
    nam = 'dyp_night_bed';
    dsc = [[В центре комнаты стоит большая {кровать}, посреди которой мирно спит вождь Дипатреанотра. ]];
    used = function(s, o)
        if o == item_scepter then
            remove(item_scepter, pl);
            put(item_scepter, here());
            return [[Вы возвращаете жезл на место. ]];
        end;
    end;
};

dyp_night_chief_house_bedroom = room {
    nam = 'Дипатреанотр, дом вождя, спальня (ночь)';
    nolamp = true;
    disp = 'Дипатреанотр, дом вождя, спальня';
    dsc = [[Просторная комната, практически пустая. ]];
    obj = {
        'dyp_night_bed',
        'item_scepter'
    };
    way = {
        kh_vroom("В коридор", 'dyp_night_chief_house_2nd_floor2');
    };
};