Files @ 258af0d88334
Branch filter:

Location: games/Awakening/atlantis_dyp_night.lua - annotation

Silverwing
fix library being non leavable at night
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
5c4202465b90
5c4202465b90
5c4202465b90
507290565c1f
507290565c1f
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
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
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
258af0d88334
258af0d88334
258af0d88334
258af0d88334
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
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
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
5c4202465b90
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
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
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
417bfabe0bc3
--[[
 Дипатреанотр, ночь
]]

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

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

dyp_night_center = room {
    var {
        state = 0;
    };
    nam = "dyp_night_center";
    underwater = true;
    disp = 'Дипатреанотр, центр';
    entered = function(s)
        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 = "dyp_night_library_entrance";
    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 = "dyp_night_library_floor1";
    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 = "dyp_night_library_floor2";
    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
                psub("dyp_night_anna_hint");
                if rel_anna > 0 then
                    return [[Вы аккуратно берете верхнюю табличку из стопки. Анна опускается на пол рядом с вами и начинает рассматривать таблички, одну за другой. Из динамика доносится ее голос: "Дэвид, я нашла".]];
                else
                    return [[Вы аккуратно берете верхнюю табличку из стопки. Анна опускается на пол рядом с вами и начинает рассматривать таблички, одну за другой. Из динамика доносится ее голос: "Дрейк, я нашла".]];
                end;
            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 = 'dyp_night_chief_house_entrance';
    disp = 'Дипатреанотр, перед домом вождя';
    underwater = true;
    dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города. Из главного зала исходит слабый свет. ]];
    entered = function(s)
        if char_radcliffe.follow and rel_radcliffe > 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 = 'dyp_night_chief_house_hall';
    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 = 'dyp_night_chief_house_2nd_floor';
    disp = 'Дипатреанотр, дом вождя, второй этаж';
    dsc = [[Коридор второго этажа пуст. Слабый свет водорослей, покрывающих пол и стены позволяет вам легко ориентироваться внутри. Справа от вас расположена дверь. Впереди коридор поворачивает направо. ]];
    nolamp = true;
    way = {
        kh_vroom('За угол', 'dyp_night_chief_house_2nd_floor2');
        kh_vroom('На первый этаж', 'dyp_night_chief_house_2nd_floor2');
        kh_vroom('В дверь', 'dyp_night_chief_house_treasury');
    }

}

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

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

dyp_night_chief_house_treasury = darkroom {
    nam = 'dyp_night_chief_house_treasury';
    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);
    };
};

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