Changeset - 3c9ea1c7eb21
[Not reviewed]
default
1 1 2
silverwing - 7 years ago 2017-08-13 08:14:58

atlantis_navjiarr split into dyp and iraa files
2 files changed:
Changeset was too big and was cut off... Show full diff anyway
0 comments (0 inline, 0 general)
atlantis_dyp.lua
Show inline comments
 
new file 100644
 
--[[
 
Дипатреанотр
 
]]
 

	
 
global = {
 
    dyp_quest_state = 0;
 
    dyp_lib_stone_state = 0;
 
};
 

	
 
--[[
 
Дипатреанотр город
 
]]
 

	
 
dyp_center = room {
 
    nam = "dyp_center";
 
    view = [[Левиафан находится над центром Дипатреанотра -- небольшого навьярского поселения. Вокруг небольшой центральной площади неровными кругами расположены небольшие каменные дома. Явно выраженные улицы отсутствуют, за исключением широкой, выложенной камнем дороги от площади до дома вождя. В другом конце площади расположено большое здание библиотеки. ]];
 
    dsc = [[Вы находитесь на центральной площади Дипатреанотра -- небольшого навьярского поселения. Вокруг небольшой центральной площади неровными кругами расположены небольшие каменные дома. Явно выраженные улицы отсутствуют, за исключением широкой, выложенной камнем дороги от площади до дома вождя. В другом конце площади расположено большое здание библиотеки. ]];
 
    obj = {
 
        "dyp_obelisk";
 
    };
 
    way = {
 
        kh_vroom("К библиотеке", "dyp_library_entrance");
 
        kh_vroom("К дому вождя", "dyp_chief_house_entrance");
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_obelisk = obj {
 
    nam = "dyp_obelisk";
 
    dsc = [[В центре площади стоит большой каменный {обелиск}, с нанесенными на него символами. ]];
 
    act = function(s)
 
        return [[На обелиске, традиционно для навьяров, начертано название города и вырезана карта, указывающая путь к храму. ]];
 
    end;
 
};
 

	
 
dyp_navjiarr = npc{
 
    nam = "dyp_navjiarr";
 
    dsc = [[Немногие {навьяры}, находящиеся сейчас на площади с интересом оглядываютс на Левиафан и вас. ]];
 
    phr = {
 
        "Не стоит их беспокоить. ",
 
        "Вряд ли они смогут сказать вам что-то полезное. "
 
    };
 
};
 

	
 
dyp_library_entrance = room {
 
    nam = "dyp_library_entrance";
 
    dsc = [[Двухэтажное каменное здание библиотеки разительно отличается от большинства строений Дипатреанотра. Выстроенное из массивных каменных плит, а не из булыжников, как остальные, оно хорошо сохранилось несмотря на достаточно большой возраст. Ровные стены тщательно очищаются навьярами от ила и водорослей, сохрнаяя здание в перозданном виде. ]];
 
    way = {
 
        kh_vroom("К обелиску", "dyp_center");
 
        kh_vroom("В библиотеку", "dyp_library_floor1");
 
    };
 
};
 

	
 
dyp_library_floor1 = room {
 
    nam = "dyp_library_floor1";
 
    dsc = [[Первый этаж здания библиотеки представляет собой огромный зал. Множество колонн, установленных ровными рядами, поддерживают потолок, между ними и вдоль стен установлены массивные стеллажи, заполненные различными записями. Большинство их сделаны на каменных табличках, но изредка встречаютс и древние металлические. Ваше внимание привлекает  одна из полок, заполненная небольшими блестящими дисками из неизвестного материала. ]];
 
    obj = {
 
        "dyp_library_statue"
 
    };
 
    way = {
 
        kh_vroom("Наружу", "dyp_library_entrance");
 
        kh_vroom("На второй этаж", "dyp_library_floor2");
 
    };
 
};
 

	
 
dyp_library_floor2 = room {
 
    nam = "dyp_library_floor2";
 
    dsc = [[Второй этаж библиотеки мало чем отличается от первого -- точно такие же колонны, точно такие же стеллажи. Здесь гораздо больше полок содержат блестящие диски вместо привычных вам записей. ]];
 
    obj = {
 
        "dyp_librarian";
 
    };
 
};
 

	
 
dyp_librarian = npc {
 
    var {
 
        state = 0;
 
    };
 
    nam = "dyp_librarian";
 
    dsc = [[]];
 
};
 

	
 
dyp_librarian_dlg = dlg {
 
    disp = "Эйлехиарр";
 
    entered = function(s)
 
        if (dyp_librarian_dlg.state == 0) then
 
            dyp_librarian_dlg.state = 1;
 
            return [[Перед вами, япрямо на полу сидит навьяр. Рядом с ним разложены какие-то записи, которые он внимательно рассматривает, иногда перекладывая с места на место. Заметив вас, он поднимается и приветствует вас: "Я, Eyle'hya'rr из Dyp'atre'anot'rrа, приветствую тебя he'vji'a'rr. Ты говори, зачем ты пришел". ]];
 
        else
 
            return [[Эйлехиарр сидит на полу, перекладывая какие-то записи. Заметив вас он поднимается и приветствует вас: "Ты овори, зачем ты пришел". ]];
 
        end;
 
    end;
 
    phr = {
 
        {"[Кодировщик]Что ты делаешь?", [[Эйлехиарр отвечает: "Эти записи сильно повреждены. К счастью у нас есть несколько копий этого текста. Но мои предшественники умудрились испортить все три!" ]]};
 
        {"[Кодировщик]Я ищу карту пути в Лсэрианотр.", [[Эйлехиарр задумчиво оглядывает помещение. Делает несколько шагов в одну сторону, потом в другую. Садится рядом со своими записями, сова встает. Наконец, он берет с одной из полок металлическую табличку и сообщает: "Здесь говорится о пещере рядом с храмом. Три ключа закрывают вход". ]], code [[pon("three_keys");]]};
 
        {tag="star_map", false, "[Кодировщик]Ты наешь что-нибудь о карте небесных огней?", [[Эйлехиарр отрицательно качает головой: "Никогда не слышал". ]]};
 
        {tag="three_keys", false, "[Кодировщик]Где найти эти ключи?", [[Эйлехиарр отвечает: "Здесь, в Дипатреанотре. Один ты можешь забрать внизу, у статуи". ]], code [[ dyp_lib_stone_state = 1; ]]};
 
        {"[Кодировщик]Я пойду.", [[Эйлехиарр прощается: "Ты возвращайся". ]]};
 
    };
 
};
 

	
 
dyp_item_stone_blue = obj {
 
    nam = "dyp_item_stone_blue";
 
    disp = [[Синий камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий синий свет. ]];
 
};
 

	
 
dyp_item_stone_green= obj {
 
    nam = "dyp_item_stone_green";
 
    disp = [[Зеленый камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий зеленый свет. ]];
 
};
 

	
 
dyp_item_stone_red = obj {
 
    nam = "dyp_item_stone_red";
 
    disp = [[Красный камень]];
 
    inv = [[Небольшой круглый камень, излучающий яркий красный свет. ]];
 
};
 

	
 
dyp_library_statue = obj {
 
    nam = "dyp_library_statue";
 
    dsc =function(s)
 
        if dyp_lib_stone_state > 1 then
 
            return [[В центре зала стоит статуя навьяра. В правой руке он держит табличку, которую сосредоточенно рассматривает. Левая рука статуи выглядит так, словно в ней должен находиться какой-то небольшой предмет, однако он отсутствует. ]];
 
        else
 
            return [[В центре зала стоит статуя навьяра. В правой руке он держит табличку, которую сосредоточенно рассматривает. В левой руке статуи лежит небольшой светящийся синий {камень}. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if dyp_lib_stone_state == 0 then
 
            return [[Красивая старая статуя. Навьяр изображен пораительно подробно -- вы можете разглядеть каждую чешуйку. Небольшой камень лежит в руке статуи так, что его очень легко вынуть. ]];
 
        elseif dyp_lib_stone_state == 1 then
 
            dyp_lib_stone_state = 2;
 
            take("dyp_item_stone_blue");
 
            return [[Вы легко забираете из руки статуи камень. ]];
 
        elseif dyp_lib_stone_state == 2 then
 
            return [[Красивая старая статуя. Навьяр изображен пораительно подробно -- вы можете разглядеть каждую чешуйку. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_chief_house_entrance = room {
 
    nam = "dyp_chief_house_entrance";
 
    disp = "Дипатреанотр, перед домом вождя";
 
    dsc = [[Дом вождя Дипатреанотра не уступает размерами библиотеке. Двухэтажное здание очневидно не раз расширялось и достраивалось. Часть его сложена из обработанных каменных плит, другая -- из булыжников, как большинство зданий города. Широкая выложенная камнем улица ведет отсюда к центральной площади города.]];
 
    way = {
 
        kh_vroom("К обелиску", "dyp_center");
 
        kh_vroom("В дом", "dyp_chief_house");
 
    };
 
};
 

	
 
dyp_chief_house = room {
 
    nam = "dyp_chief_house";
 
    disp = "Дипатреанотр, дом вождя";
 
    dsc = [[Приемная дома вождя представляет собой огромный зал с ровными рядами стройных каменных колонн, удреживающих потолок. В дальнем конце зала установлен каменный трон, перед которым установлен массивный каменный стол. ]];
 
    way = {
 
        kh_vroom("Наружу", "dyp_chief_house_entrance");
 
    };
 
    obj = {
 
        "dyp_chief";
 
    };
 
};
 

	
 
dyp_chief = npc {
 
    nam = "dyp_chief";
 
    dsc = [[{Вождь Дипатреанотра} сидит на троне с закрытыми глазами. Руки его сложены на груди. В правой он держит небольшой золотистый жезл, в навершии которого укреплен круглый камень, излучающий яркий зеленый свет. Светло-синяя чешуя покрыта узором из татуировок. Как и другие навьяры он одет в костюм из водорослей. На левой руке дремлюего вождя вы видите искусный браслет из блестящего металла. ]];
 
    dlg = "dyp_chief_dlg";
 
};
 

	
 
dyp_chief_dlg = dlg {
 
    nam = "dyp_chief_dlg";
 
    entered = function(s)
 
        return [[Как только вы приближаетесь к столу, глаза вождя открываются. Он поднимается с трона. Руки его остаются сложенными на груди, а взгляд его желтых глаз устремляется на вас. По его головным плавникам бегут цветные полосы: "Чем скромные навьяры из Дипатреанотра обязаны визиту почтенного хевьяра? Ты говори". ]];
 
    end;
 
    phr = {
 
        {"[Кодировщик]Я ищу карту пути в Лсэрианотр.", [[Вождь отвечает: "Ты спроси в храме или в библиотеке. Я ничего такого не знаю". ]]};
 
        {tag="star_map", false, "[Кодировщик]Мне нужен камень из твоего жезла. Что я могу предложить в обмен на него?", [[Глаза вождя загораются, он ухмыляется. По плавникам быстро, словно в нетерпении, бегут цветные полосы: "Я хочу карту небесных огней из Ираафаанотра. Принеси ее и забирай этот жезл вместе с камнем". ]]};
 
    };
 
};
 

	
 
--[[
 
Дипатреанотр храм
 
]]
 

	
 
dyp_temple_guard = room {
 
    nam = "ctt_dyp_temple_guard";
 
    dsc = function(s)
 
        if (dyp_temple_guard_dlg.state == 0) then
 
            return [[У ворот стоят два навьяра, вооруженные копьями. При вашем приближении они начинают нервничать -- переглянувшись, они перехватывают копья, готовясь при необходимости прогнать вас. По плавникам одного из них бегут цветные полосы: темно-фиолетовая, зеленая, оранжевая -- шире чем остальные, серая, ярко-розовая, желтая -- снова широкая, салатовая, снова широкая желтая и, наконец, широкая бледно-оранжевая. После небольшой паузы, полосы появляются снова. ]];
 
        else
 
            return [[У ворот стоят два навьяра, вооруженные копьями. Они никак не реагируют на вас. ]];
 
        end;
 
    end;
 
    dlg = "dyp_temple_guard_dlg";
 
};
 

	
 
dyp_temple_guard_dlg = dlg {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Страж храма";
 
    entered = function(s)
 
        if (s.state == 0) then
 
            return [[Стражники загораживают вам проход. По плавникам одного из них бегут цветные полосы. ]];
 
        else
 
            back();
 
            return [[Стражник не реагирует на вас. ]];
 
        end;
 
    end;
 
    phr = {
 
        --TODO заменить название токена
 
        {tag="test", false, "[Передать <токен>]", [[Стражи, согласно ритуалу, молча открывают ворота, пропуская вас внутрь. ]], code [[ dyp_temple_guard_dlg.state = 1; back(); ]]};
 
        {always=true, "[использовать кодировщик]I'rr Vee'nn"};
 
    };
 
};
 

	
 
dyp_temple_carving_look = room {
 
    nam = "Храм Дипатреанотра, вход";
 
    pic ="images/iyh_navjiarr_map.png"; 
 
    dsc = [[Над входом в храм вырезана схема, состоящая из нескольких концентрических кругов. ]];
 
    obj = {
 
        vway("continue", "{Продолжить}", "dyp_temple_entrance");
 
    };
 
};
 

	
 
dyp_temple_carving = obj {
 
    nam = "dyp_temple_carving";
 
    dsc = [[Над входом в храм вырезано {изображение} состоящее из нескольких кругов и еще каких-то символов. Часть изображения стерлась от времени, однако остальная часть все еще читаема. ]];
 
    act = function(s)
 
        walkin("dyp_temple_carving_look");
 
    end;
 
};
 

	
 
dyp_temple_entrance = room {
 
    nam = "Храм Дипатреанотра, вход";
 
    dsc = [[Перед вами находится вырезанный в скале вход в навьярский храм. Массивные каменные ступени ведут к громадным двустворчатым дверям, украшенных полустершимися орнаментами. Некогда яркие краски потускнели -- осторожные навьяры не решаются их обновить. ^Скала продолжается на восток и на юго-запад от храма. Вдалеке на севере видны длинные, вытянувшиеся на несколько метров вверх водоросли. К западу заметен обелиск из камней. ]];
 
    underwater = true;
 
    entered = function(s)
 
        --char_learr:accompany(false);
 
        --char_radcliffe:accompany(false);
 
        --char_wright:accompany(false);
 
        --char_anna:accompany(false);
 
            
 
        --if ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
 
        --    return [[
 
        --        Вы слышите по радио голос Леарр: "Ты-Дрейк один-пойдешь. Другим нельзя-в-храм-войти".
 
        --    ]];
 
        --elseif ArrayUtils.indexOf(pl.party, 'anna') ~= 0 then
 
        --    return [[
 
        --        Вы слышите по радио голос Анны: "Дрейк, тебе придется идти одному - испытание можно пройти лишь в одиночку. Удачи".
 
        --    ]];
 
        --end;
 
    end;
 
    obj = {
 
        "dyp_temple_guard";
 
        "dyp_temple_carving";
 
    };
 
    way = {
 
        kh_vroom("В храм", function(s)
 
            pr('Охранники не колеблясь убьют вас, если вы попытаетесь войти. ');
 
            return false;
 
            --ctt_dyp_temple_l1.px = 1;
 
            --ctt_dyp_temple_l1.py = 0;
 
            --return "ctt_dyp_temple_l1";
 
        end):disable();
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_east = room {
 
    nam = "Океан";
 
    view = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на восток от вас. На западе она сворачивает к югу. В освещенной мощным прожектором Левиафана скале вы видите раверзшуюся пасть пещеры. ]];
 
    dsc = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на восток от вас. На западе она сворачивает к югу. Перед собой вы видите разверзшуюся пасть пещеры, освещенную мощным прожектором Левиафана. ]];
 
    way = {
 
        kh_vroom("В пещеру", "dyp_temple_cave_entrance");
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_south_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь у подножья скалы. К юго востоку скала сворачивает на юг и тянется на многие километры. К северо-востоку вы видите храм Дипатреанотра. ]];
 
};
 

	
 
dyp_temple_south_far = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь у подножья скалы, протянувшейся на многие километры на юг. На севере скала сворачивает к востоку. ]];
 
};
 

	
 
dyp_temple_north_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Перед вами возвышается массивный каменный обелиск. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. К юго-востоку от вас возвышается отвесная скала, протянувшаяся на многие километры с юга на восток. Вдалеке на западе вы видите каменные строения навьярского города -- Дипатреанотра. ]];
 
};
 

	
 
dyp_temple_north = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над высокими стеблями водорослей, едва заметно колышущимися в спокойной воде. ]];
 
};
 

	
 
dyp_temple_crevice_middle = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_east = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_far_east = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_crevice_far_west = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Левиафан застыл над неглубоким ущельем, протянувшимся с востока на запад. ]];
 
};
 

	
 
dyp_temple_warning = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Перед вами возвышается массивный каменный обелиск. Большая часть изображенного на нем стерлась. ]];
 
};
 

	
 
dyp_temple_cliff_1 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_cliff_2 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_cliff_3 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_cliff_4 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_cliff_5 = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. ]]
 
};
 

	
 
dyp_temple_whale = room {
 
    nam = "Океан";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    view = [[Рядом с вами покоится скелет громадного кита. Древние кости занесены илом, однако все еще прекрасно видны с большого расстояния. ]];
 
};
 

	
 
dyp_temple_navigation = dlg {
 
    nam = "Штурвал Левиафана";
 
    entered = function(s)
 
        
 
    end;
 
    phr = {
 
        {tag="dyp_temple_entrance"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_east");
 
            psub("dyp_temple_east");
 
        end};
 
        {always=true, "[На северо-восток, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На северо-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
        end};
 
        {always=true, "[На юго-запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_west");
 
            psub("dyp_temple_south_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_east"};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На север, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_south_west"};
 
        {always=true, "[На северо-восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На юг, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_far");
 
            psub("dyp_temple_south_far");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_south_far"};
 
        {always=true, "[На север, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_west");
 
            psub("dyp_temple_south_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_north_west"};
 
        {always=true, "[На юго-восток, к храму]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На запад, в Дипатреанотр]", function()
 
            move(submarine_leviathan, "dyp_city_east");
 
            psub("dyp_city_east");
 
            --TODO enter the city
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_north"};
 
        {always=true, "[На юго-запад, к храму]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
        end};
 
        {always=true, "[На юг, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_east");
 
            psub("dyp_temple_east");
 
        end};
 
        {always=true, "[На север, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_middle"};
 
        {always=true, "[На юг, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
        end};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_east"};
 
        {always=true, "[На юго-запад, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_east");
 
            psub("dyp_temple_crevice_far_east");
 
        end};
 
        {always=true, "[На северо-восток, к костям]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
        end};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_5");
 
            psub("dyp_temple_cliff_5");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_far_east"};
 
        {always=true, "[На север, к костям]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_west"};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_3");
 
            psub("dyp_temple_cliff_3");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[На юго-восток, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_west");
 
            psub("dyp_temple_crevice_far_west");
 
        end};
 
        {always=true, "[На северо-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_crevice_far_west"};
 
        {always=true, "[На север, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
        end};
 
        {always=true, "[На юг, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_warning"};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_2");
 
            psub("dyp_temple_cliff_2");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_west");
 
            psub("dyp_temple_crevice_far_west");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_1"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_2");
 
            psub("dyp_temple_cliff_2");
 
        end};
 
        {always=true, "[На юго-восток, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_2"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_3");
 
            psub("dyp_temple_cliff_3");
 
        end};
 
        {always=true, "[На юг, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_1");
 
            psub("dyp_temple_cliff_1");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_3"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
        end};
 
        {always=true, "[На юго-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_2");
 
            psub("dyp_temple_cliff_2");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_4"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_5");
 
            psub("dyp_temple_cliff_5");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_3");
 
            psub("dyp_temple_cliff_3");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_cliff_5"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            temple_found = true;
 
            move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
            walk("iyh_far_from_entrance");
 
            --TODO катсцена при первом прибытии
 
        end};
 
        {always=true, "[На юго-восток, к костям]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_temple_whale"};
 
        {always=true, "[На север, к храму]", function()
 
            temple_found = true;
 
            move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
            walk("iyh_far_from_entrance");
 
            --TODO катсцена при первом прибытии
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_east");
 
            psub("dyp_temple_crevice_far_east");
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
    };
 
};
 

	
 
dyp_temple_cave_entrance = room {
 
    nam = "dyp_temple_cave_entrance";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Вы стоите у выхода из глубокой пещеры, расположенной неподалеку от храма Дипатреанотра. Перед вами длинный коридор, ведущий куда-то вглубь скалы. Вдалеке, в коридоре вы видите слабое свечение. ]];
 
    way = {
 
        kh_vroom("Выйти из пещеры", "dyp_temple_east");
 
        kh_vroom("Вглубь пещеры", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_cave_deep = room {
 
    nam = "dyp_temple_cave_deep";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Здесь коридор разветвляется на три. В конце каждого вы видите слабое свечение красного, зеленогои синего цветов. ]];
 
    way = {
 
        kh_vroom("К выходу из пещеры", "dyp_temple_cave_entrance");
 
        kh_vroom("В \"Красный\" коридор", "dyp_temple_cave_red");
 
        kh_vroom("В \"Зеленый\" коридор", "dyp_temple_cave_green");
 
        kh_vroom("В \"Синий\" коридор", "dyp_temple_cave_blue");
 
    };
 
};
 

	
 
dyp_temple_cave_red = room {
 
    nam = "dyp_temple_cave_red";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Проход заканчивается массивной металлической дверью, совершенно гладкой. Вы не видите никакого способа открыть ее. ]];
 
    obj = {
 
        "dyp_temple_statue_red";
 
    };
 
    way = {
 
        kh_vroom("В главный коридор", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_statue_red = obj {
 
    nam = "dyp_temple_statue_red";
 
    dsc = [[Рядом с дверью стоит древняя статуя навьяра. В правой руке статуя держит копье, в навершии которого ярко светится красный камень. На поясе статуи вы видите небольшое круглое {отверстие}. ]];graphics
 
};
 

	
 
dyp_temple_cave_green = room {
 
    nam = "dyp_temple_cave_green";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Проход заканчивается массивной металлической дверью, совершенно гладкой. Вы не видите никакого способа открыть ее. ]];
 
    obj = {
 
        "dyp_temple_statue_green";
 
    };
 
    way = {
 
        kh_vroom("В главный коридор", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_statue_green = obj {
 
    nam = "dyp_temple_statue_green";
 
    dsc = [[Рядом с дверью стоит древняя статуя навьяра. В правой руке статуя держит копье, в навершии которого ярко светится зеленый камень. На поясе статуи вы видите небольшое круглое {отверстие}. ]];
 
};
 

	
 
dyp_temple_cave_blue = room {
 
    nam = "dyp_temple_cave_blue";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Проход заканчивается массивной металлической дверью, совершенно гладкой. Вы не видите никакого способа открыть ее. ]];
 
    obj = {
 
        "dyp_temple_statue_blue";
 
    };
 
    way = {
 
        kh_vroom("В главный коридор", "dyp_temple_cave_deep");
 
    };
 
};
 

	
 
dyp_temple_statue_blue = obj {
 
    nam = "dyp_temple_statue_blue";
 
    dsc = [[Рядом с дверью стоит древняя статуя навьяра. В правой руке статуя держит копье, в навершии которого ярко светится синий камень. На поясе статуи вы видите небольшое круглое {отверстие}. ]];
 
};
atlantis_iraa.lua
Show inline comments
 
new file 100644
 
--[[
 
Файл содержит локации навьярских поселений для главы Атлантида. 
 
]]
 

	
 
--[[
 
Ираафаанотр
 
]]
 

	
 
--[[
 
Ираафаанотр.Город
 
]]
 

	
 
iraa_near_city_west = room {
 
    nam = "iraa_near_city_west";
 
    disp = [[Ираафаанотр, у города]];
 
    dsc = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на западной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]];
 
    view = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на западной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]];
 
    obj = {
 
        "iraa_city_west_guard"
 
    };
 
    way = {
 
        kh_vroom("В левиафан", "leviathan_airlock");
 
        kh_vroom("На восток, к центру Ираафаанотра", "iraa_city_west");
 
    };
 
};
 

	
 
iraa_city_west = room {
 
    nam = "iraa_city_west";
 
    disp = "Ираафаанотр, улица";
 
    dsc = [[Широкая мощеная улица, пересекающая город с востока на запад. К северу вы видите обширные поля, обрабатываемые десятками рук и дающие пищу жителям селения. К востоку вы видите каменный обелиск, возвышающийся над центральной площадью Ираафаанотра. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_near_city_west");
 
        kh_vroom("На восток, к центру Ираафаанотра", "iraa_city_center");
 
    };
 
};
 

	
 
iraa_city_center = room {
 
    nam = "iraa_city_center";
 
    disp = "Ираафаанотр, центральная площадь";
 
    dsc = [[Центральная площадь Ираафаанотра практически пуста. Лишь несколько зевак с интересом разглядывает вас, осторожно выглядывая из дверей библиотеки -- крупного здания, расположенного к северу от вас. Напротив библиотеки расположен дом вождя, не уступающий размерами библиотеке. ]];
 
    obj = {
 
        "iraa_obelisk";
 
    };
 
    way = {
 
        kh_vroom("На запад", "iraa_city_west");
 
        kh_vroom("На восток", "iraa_city_east");
 
        kh_vroom("В библиотеку", "iraa_city_library");
 
        kh_vroom("В дом вождя", "iraa_city_chief_house");
 
    };
 
};
 

	
 
iraa_obelisk = obj {
 
    nam = "iraa_obelisk";
 
    dsc = [[В центре площади стоит большой каменный {обелиск}, с нанесенными на него символами. ]];
 
    act = function(s)
 
        iraaphaanotrr_temple_found = true;
 
        return [[На обелиске, традиционно для навьяров, начертано название города и вырезана карта, указывающая путь к храму. ]];
 
    end;
 
};
 

	
 
iraa_city_east = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "iraa_city_east";
 
    disp = "Ираафаанотр, улица";
 
    dsc = [[Широкая мощеная улица, пересекающая город с востока на запад. К северу вы видите обширные поля, обрабатываемые десятками рук и дающие пищу жителям селения. К западу вы видите каменный обелиск, возвышающийся над центральной площадью Ираафаанотра. ]];
 
    entered = function(s)
 
        if (state == 0 and char_learr.follow) then
 
            path("На юг, к саду"):enable();
 
            if language_known then
 
                return [[Здесь Леарр неожиданно останавливается. Она смотрит на юг, а по ее головным плавникам бегут цветные полосы -- она говорит, что здесь, за домом вождя есть небольшой сад, а сразу за ним находится ее дом. Она просит вас пойти туда вместе с ней. ]];
 
            else
 
                return [[Здесь Леарр неожиданно останавливается. Она смотрит на юг, а по ее головным плавникам бегут цветные полосы. Вы не понимаете, что она пытается вам сказать, но она хватает вас за руку и пытается вести за собой на юг. ]];
 
            end;
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("На восток", "iraa_near_city_east");
 
        kh_vroom("На юг, к саду", "iraa_garden"):disable();
 
        kh_vroom("На запад, к центру Ираафаанотра", "iraa_city_center");
 
    };
 
};
 

	
 
iraa_garden = room {
 
    nam = "iraa_garden";
 
    disp = "Ираафаанотр, сад";
 
    dsc = [[Небольшой сад, расположенный за домом вождя. ]];
 
    way = {
 
        kh_vroom("На север, к главной улице", "iraa_near_city_east");
 
        kh_vroom("На юг, к дому Леарр", "iraa_learr_house_near");
 
    };
 
};
 

	
 
iraa_learr_house_near = room {
 
    nam = "iraa_learr_house_near";
 
    disp = "Ираафаанотр, у дома Леарр";
 
};
 

	
 
iraa_near_city_east = room {
 
    nam = "iraa_near_city_east";
 
    disp = [[Ираафаанотр, у города]];
 
    dsc = [[Ровное илистое плато простирается вокруг насколько хватает взгляда. Вы находитесь на восточной окраине Ираафаанотра -- небольшого навьярского поселения. Невысокие каменные здания, раскиданные в кажущемся беспорядке служат жилищем для многих из них. В центре городка возвышается каменный обелиск, с нанесенными на него изображениями. ]];
 
    obj = {
 
        "iraa_city_east_guard";
 
    };
 
    way = {
 
        kh_vroom("К центру Ираафаанотра", "iraa_city_east");
 
    };
 
};
 

	
 
iraa_city_west_guard = npc {
 
    nam = "iraa_city_west_guard";
 
    dsc = [[По обе стороны дороги стоят двое навьярских {стражникиов}. ]];
 
    phrases = function(s)
 
        if (language_known) then
 
            if (atl_rep_iraa >= 0) then
 
                return {
 
                    "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы -- они просят вас говорить с вождем. ",
 
                    "По головным плавникам стражников бегут цветные полосы -- они приветствуют вас"
 
                };
 
            else
 
                return {
 
                    "Стражники указывают вам на дом вождя. По их головным плавникам бегут цветные полосы -- они просят вас говорить с вождем. "
 
                };
 
            end;
 
        else
 
            return {
 
                "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы, но вы не понимаете, что они значат. "
 
            };
 
        end;
 
    end;
 
};
 

	
 
iraa_city_east_guard = npc {
 
    nam = "iraa_city_east_guard";
 
    dsc = [[По обе стороны дороги стоят двое навьярских {стражникиов}. ]];
 
    phrases = function(s)
 
        if (language_known) then
 
            if (atl_rep_iraa >= 0) then
 
                return {
 
                    "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы -- они просят вас говорить с вождем. ",
 
                    "По головным плавникам стражников бегут цветные полосы -- они приветствуют вас"
 
                };
 
            else
 
                return {
 
                    "Стражники указывают вам на дом вождя. По их головным плавникам бегут цветные полосы -- они просят вас говорить с вождем. "
 
                };
 
            end;
 
        else
 
            return {
 
                "Стражники указывают вам на дом вождя. По головным плавникам стражников бегут цветные полосы, но вы не понимаете, что они значат. "
 
            };
 
        end;
 
    end;
 
};
 

	
 
iraa_city_chief_house = room {
 
    nam = "iraa_chief_house";
 
    dsc = [[Приемная дома вождя представляет собой огромый зал. Несколько массивных колонн, не слишком искусно сделанных, поддерживают тяжелую каменную крышу здания. В дальнем конце зала установлен каменный трон. Перед троном установлен громадный, каменный же стол, вокруг которого расставлено множество стульев. ]];
 
    way = {
 
        kh_vroom("На площадь", "iraa_city_center");
 
    };
 
    obj = {
 
        "iraa_chief"
 
    };
 
};
 

	
 
iraa_chief = npc {
 
    nam = "iraa_chief";
 
    dsc = [[{Вождь Ираафаанотра} сидит на троне, внимательно наблюдая за вами своими серыми глазами. Руки его неподвижно лежат на подлокотниках. Серебристая чешуя, слегка синеватая, потускнела за долгие годы жизни. Одет он в плотный облегающий костюм из водорослей, не стесняющий движения, как принято у всех, даже самых высокопоставленных навьяров. ]];
 
    dlg = "iraa_chief_dlg";
 
};
 

	
 
iraa_chief_dlg = dlg {
 
    var {
 
        ask_temple = false;
 
    };
 
    nam = "iraa_chief_dlg";
 
    disp = "Вождь Ираафаанотра";
 
    entered = function(s)
 
        if (language_known) then
 
            psub("greet");
 
            if (s.ask_temple) then
 
                s.ask_temple = false;
 
                pon("temple");
 
            end;
 
            return [[Вы подходите к каменному столу, чтобы предстать перед вождем Ираафаанотра -- немолодым уже навьяром. Длинные руки, покрытые тусклой серебристой чешуей, с едва заметным синеватым отливом, покоятся на подлокотниках трона. Не поднимаясь, он начинает говорить. По головным плавникам вождя бегут цветные полосы -- вождь прииглашает вас сесть напротив него и открыть цель вашего визита. В скафандре у вас с трудом получается это сделать, но вы не решаетесь оскорбить вождя и остаться стоять перед ним. ]];
 
        else
 
            psub("no_speech");
 
            return [[Вы подходите к каменному столу, чтобы предстать перед вождем Ираафаанотра -- немолодым уже навьяром. Длинные руки, покрытые тусклой серебристой чешуей, с едва заметным синеватым отливом, покоятся на подлокотниках трона. Не поднимаясь, он начинает говорить. По головным плавникам вождя бегут цветные полосы -- вождь прииглашает вас сесть напротив него и открыть цель вашего визита. В скафандре у вас с трудом получается это сделать, но вы не решаетесь оскорбить вождя и остаться стоять перед ним. ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speech"};
 
        {"[Уйти]", code [[ back(); ]]};
 
        {tag="greet"};
 
        {"[Кодировщик]Приветствую. Мы ищем фрагмент карты пути к Лсэрианотру, который находится у вас. ", [[Вождь задумчиво смотрит на вас. Через некоторое время он отвечает: "У нас нет ничего подобного. Я не знаю, о чем вы говорите". ]], code [[psub("more_info");]]};
 
        {tag="temple", false, "[Кодировщик]Мы просим разрешения посетить храм Ираафаанотра. ", [[Вождь отрицательно качает головой: "Это исключено, хевьяр. "]]};
 
        {"[Кодировщик]Мы ищем Венаэданотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра. "]]};
 
        {"[Кодировщик]Мы ищем Нлейисланотр. Вы знаете где это?", [[Вождь кивает: "Далеко отсюда. Спросите у Ритларра. "]]};
 
        {"[Уйти]", code [[ back(); ]]};
 
        {tag="more_info"};
 
        {"[Кодировщик]Один из фрагментов карты должен быть у вас[Передать табличку, найденную в храме]. ", [[Вождь отвечает: "Я не знаю ни о чем подобном. вам стоит спросить у Ритларра в библиотеке. "]]};
 
        {"[Уйти]", code [[ back(); ]]};
 
    };
 
};
 

	
 
iraa_city_library = room {
 
    nam = "iraa_city_library";
 
    dsc = [[Огромный зал библиотеки Ираафаанотра практичски пусто. ]];
 
    obj = {
 
        "iraa_rytlarr",
 
        "iraa_shelves"
 
    };
 
};
 

	
 
iraa_shelves = obj {
 
    nam = "iraa_shelves";
 
    dsc = [[Вдоль стен стоят многочисленные {стеллажи} с древними и новыми записями. Большинство из них сделаны на металлических табличках и явно очень стары. Вперемешку с ними стоят и каменные -- более современные, и даже сделанные на водорослях -- те, что еще не успели переписать на что-то более долговечное. ]];
 
    act = [[Вам потребуются десятилетия, чтобы изучить все, находящиеся здесь записи. ]];
 
};
 

	
 
iraa_rytlarr = npc {
 
    nam = "iraa_rytlarr";
 
    dsc = [[По залу неспешно расхаживает молодой {навьяр}. Зеленые глаза внимательно рассматривают полки. Зеленовато-серая чешуя поблескивает на свету. Время от времени он останавливается возле одной из полок, чтобы перенести те или иные записи с места на место]];
 
    dlg = "iraa_rytlarr_dlg";
 
};
 

	
 
iraa_rytlarr_dlg = dlg {
 
    nam = "iraa_rytlarr_dlg";
 
    disp = [[Ритларр]];
 
    entered = function(s)
 
        if (language_known) then
 
            psub("generic");
 
            return [[Навьяр обращается к вам: "Ритларр приветствует тебя, хевьяр". ]];
 
        else
 
            psub("no_speech");
 
            return [[По головным плавникам навьяра бегут цветные полосы, но вы не понимаете, что он пытается сказать вам. ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speech"};
 
        {"[Уйти]", code [[ back(); ]]};
 
        {tag="generic"};
 
        {"[Кодировщик]Я ищу часть карты, ведущей в Лсэрианотр.", [[Навьяр некоторое время стоит, задумавшись. Потом он начинает ходить от полки к полке. Наконец, он сообщает: "Я не уверен, что она у нас есть. Но если вы уверены -- она должна быть в храме. Спросите у вождя. Быть может он позволит вам войти внутрь по такому случаю". ]], code [[ iraa_chief_dlg.ask_temple = true; ]]};
 
        {"[Кодировщик]Ты знаешь, где находится Венаэданотр?", [[Навьяр кивает: "Мы знаем путь туда". Он ведет вас к одной из полок в дальнем конце зала. Ритларр достает одну из металлических пластин и протягивает вам со словами: "Вернете, когда сделаете копию у себя". ]], code [[ ]]};
 
        {"[Кодировщик]Ты знаешь, где находится Нлейисланотр?", [[Навьяр отрицательно качает головой: "У нас нет карты пути к этому месту. Быть может, путь знают в Дипатреанотре. "]]};
 
        {"[Уйти]", code [[ back(); ]]};
 
    };
 
};
 

	
 
--[[
 
Ираафаанотр.Храм
 
]]
 

	
 
player_learr = player {
 
    nam = "player_learr";
 
    has_light = true;
 
    obj = {};
 
};
 

	
 
iraa_learr_choice_dlg = dlg {
 
    nam = "iraa_learr_choice_dlg";
 
    disp = "Леарр";
 
    entered = [[Вы уже собираетесь покинуть Левиафан, как в шлюзовую камеру входит Леарр со словами: "Дрейк-ты здесь-оставайся. Я в-храм-пойду". ]];
 
    phr = {
 
        {"Почему не отправиться вместе?", [[Леарр отрицательно качает головой: "Хевьярам нельзя-в-храм-входить, поэтому я внутрь-только-одна-войду". ]]};
 
        {"Хорошо, ты справишься лучше. ", [[Леарр кивает: "Я вернусь-с-картой. Вы здесь-ждите". Вы покидаете шлюзовую камеру и Леарр выходит наружу. ]], code [[
 
            rel_learr = rel_learr + 1;
 
            pl = player_learr;
 
            walk("iraa_temple_entrance");
 
        ]]};
 
        {"Я пойду сам. ", [[Леарр недовольно качает головой. Плавники окрашиваются синим. Со совами: "Ты ошибку-совершаешь", -- она выходит из шлюзовой камеры. ^^Вы выбираетесь из Левиафана. ]], code [[
 
            rel_learr = rel_learr - 1;
 
            walk("iraa_temple_entrance");
 
        ]]};
 
    };
 
};
 

	
 
iraa_temple_entrance = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "Храм Ираафаанотра, вход";
 
    underwater = true;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр стоит перед массивными двустворчатыми воротами храма, вытесанными в скале, протянувшейся с севера на юг. Над ними расположена карта, указывающая путь к Ираафаанотру. Работники храма регулярно обновляли и восстанавливали карту в течение многих столетий. ]];
 
        else
 
            return [[Перед вами возвышаются массивные двустворчатые ворота храма, вытесанные из камня. Над ними вы видите тщательно поддерживаемую в порядке карту, указывающую путь к Ираафаанотру. Скала тянется с севера на юг насколько хватает глаз. ]];
 
        end;
 
    end;
 
    view = [[Через иллюминаторы видны массивные ворота вытесанного в скале храма. Над входом расположен символ храма -- карта пути к самому Ираафаанотру отсюда. ]];
 
    enter = function(s)
 
        if s.state == 0 and ArrayUtils.indexOf(pl.party, 'learr') ~= 0 then
 
            s.state = 1;
 
            walkin("iraa_learr_choice_dlg");
 
        end;
 
    end;
 
    obj = {
 
        "iraa_temple_guardians";
 
    };
 
    way = {
 
        kh_vroom("Войти", function(s)
 
            if pl == player_learr then
 
                return "iraa_temple_main_1";
 
            else
 
                pr [[Стражники не пропустят вас. ]];
 
                return false;
 
            end;
 
            
 
        end);
 
        kh_vroom("Вдоль скалы на север", function(s)
 
            if pl == player_learr then
 
                pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]];
 
                return false;
 
            else
 
                return "iraa_temple_north_1";
 
            end;
 
        end);
 
        kh_vroom("Вдоль скалы на юг", function(s)
 
            if pl == player_learr then
 
                pr [[В голове Леарр проносится мысль: "Там нет ничего интересного, я много раз там бывала". ]];
 
                return false;
 
            else
 
                return "iraa_temple_south";
 
            end;
 
        end);
 
        kh_vroom("В Левиафан", function(s)
 
            if pl == player_learr and iraa_temple_hidden_pedestal.state == 0 then
 
                pr [[В голове Леарр проносится мысль: "Я еще не сделала все, что нужно". ]];
 
                return false;
 
            else
 
                return "leviathan_airlock";
 
            end;
 
        end);
 
    };
 
};
 

	
 
iraa_temple_guardians = npc {
 
    nam = "iraa_temple_guardians";
 
    dsc = [[У входа в храм стоят двое {стражников} -- обычный дозор. ]];
 
    phrases = function(s)
 
        if pl == player_learr then
 
            return {
 
                "Один из стражников приветствует Леарр и приглашает войти в храм. ";
 
                "Стражники не обращают на Леарр внимания. ";
 
            };
 
        elseif language_known then
 
            return {
 
                "В вашем присутствии стражники заметно нервничают. ";
 
                "Стражники осторожно переглядываются. ";
 
                "По головным плавникам одного из стражников бегут цветные полосы: \"Уходите, вам здесь не место\". ";
 
            };
 
        else
 
            return {
 
                "В вашем присутствии стражники заметно нервничают. ";
 
                "Стражники осторожно переглядываются. ";
 
                "По головным плавникам одного из стражников бегут цветные полосы, но вы не понимаете, что он хочет вам сказать. ";
 
            };
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_south = room {
 
    nam = "iraa_temple_south";
 
    disp = "У скалы";
 
    dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на севере вы видите Левиафан -- вашу субмарину и вход в храм Ираафаанотра, охраняемый двумя вооруженными навьярами. ]];
 
    way = {
 
        kh_vroom("Вдоль скалы на север", "iraa_temple_entrance");
 
    };
 
};
 

	
 
iraa_temple_north_1 = room {
 
    nam = "iraa_temple_north_1";
 
    disp = "У скалы";
 
    dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на юге вы видите Левиафан -- вашу субмарину и вход в храм Ираафаанотра, охраняемый двумя вооруженными навьярами. ]];
 
    way = {
 
        kh_vroom("Вдоль скалы на север", "iraa_temple_north_2");
 
        kh_vroom("Вдоль скалы на юг", "iraa_temple_entrance");
 
    };
 
};
 

	
 
iraa_temple_north_2 = room {
 
    nam = "iraa_temple_north_2";
 
    disp = "У скалы";
 
    dsc = [[На востоке от вас возвышаетеся скала, протянувшаяся на многие километры с севера на юг. Вдалеке на юге вы едва различаете Левиафан -- вашу субмарину. ]];
 
    way = {
 
        kh_vroom("Вдоль скалы на север", "iraa_temple_north_3");
 
        kh_vroom("Вдоль скалы на юг", "iraa_temple_north_1");
 
    };
 
};
 

	
 
iraa_temple_north_3 = room {
 
    nam = "iraa_temple_north_3";
 
    disp = "У входа в ущелье";
 
    dsc = [[К востоку от вас возвышается скала, протянувшаяся на многие километры ссевера на юг. Рядом с вами в скале имеется узкое ущелье -- настолько незаметное, что проплывай вы мимо на Левиафане, вы не обратили бы на него никакого внимания. ]];
 
    way = {
 
        kh_vroom("В ущелье", "iraa_temple_ravine_1");
 
        kh_vroom("Вдоль скалы на юг", "iraa_temple_north_2");
 
    };
 
    entered = function(s)
 
        lifeoff(iraa_temple_shark);
 
    end;
 
};
 

	
 
iraa_temple_shark = room {
 
    var {
 
        alive = true;
 
        position = 1;
 
        wait = 0;
 
    };
 
    cycle = {2,6,7,8,9,4.3};
 
    nam = "iraa_temple_shark";
 
    life = function(s)
 
        s.wait = s.wait + 1;
 
        if (s.wait < 3) then
 
            return;
 
        end;
 
        s.wait = 0;
 
        s.position = s.position + 1;
 
        if (s.position > #s.cycle) then
 
            s.position = 1;
 
        end;
 
        if s.position == here().index then
 
            walk("game_over_eaten_by_shark");
 
        end;
 
    end;
 
    canshoot = true;
 
    onshoot = function(s)
 
        s.alive = false;
 
        lifeoff(s);
 
        s:disable();
 
        return [[Пронзенная метким выстрелом гарпуна, акула умирает. ]];
 
    end;
 
    dsc = function(s)
 
        if s.alive then
 
            if here().index == 1 then
 
                if s.cycle[s.position] == 2 then
 
                    return [[На востоке от вас вы видите {акулу}, она движется на север. ]];
 
                end;
 
            elseif here().index == 5 then
 
                if s.cycle[s.position] == 4 then
 
                    return [[На западе от вас вы видите {акулу}, она движется на запад. ]];
 
                end;
 
            elseif here().index == 10 then
 
                if s.cycle[s.position] == 7 then
 
                    return [[На юге от вас вы видите {акулу}, она движется на восток. ]];
 
                end;
 
            elseif here().index == 2 then
 
                if s.cycle[s.position] == 3 then
 
                    return [[С востока к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 6 then
 
                    return [[К северу от вас вы видите {акулу}. Она не видит вас и продолжает движение от вас. ]];
 
                end;
 
            elseif here().index == 6 then
 
                if s.cycle[s.position] == 2 then
 
                    return [[С юга к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 7 then
 
                    return [[К северу от вас вы видите {акулу}. Она не видит вас и продолжает движение от вас. ]];
 
                end;
 
            elseif here().index == 7 then
 
                if s.cycle[s.position] == 6 then
 
                    return [[С юга к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 8 then
 
                    return [[На востоке вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 8 then
 
                if s.cycle[s.position] == 7 then
 
                    return [[С запада к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 9 then
 
                    return [[На востоке вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 9 then
 
                if s.cycle[s.position] == 8 then
 
                    return [[С запада к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 4 then
 
                    return [[На юге вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 4 then
 
                if s.cycle[s.position] == 9 then
 
                    return [[С севера к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 3 then
 
                    return [[На западе вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            elseif here().index == 3 then
 
                if s.cycle[s.position] == 4 then
 
                    return [[С востока к вам приближается {акула}. ]];
 
                elseif s.cycle[s.position] == 2 then
 
                    return [[На западе вы видите {акулу}, удаляющуюся от вас. ]];
 
                end;
 
            end;
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_ravine_1 = room {
 
    index = 1;
 
    nam = "iraa_temple_ravine_1";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_north_3");
 
        kh_vroom("На восток", "iraa_temple_ravine_2");
 
    };
 
    entered = function(s)
 
        if iraa_temple_shark.alive then
 
            lifeon(iraa_temple_shark);
 
        end;
 
    end;
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_2 = room {
 
    index = 2;
 
    nam = "iraa_temple_ravine_2";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_1");
 
        kh_vroom("На север", "iraa_temple_ravine_6");
 
        kh_vroom("На восток", "iraa_temple_ravine_3");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_3 = room {
 
    index = 3;
 
    nam = "iraa_temple_ravine_3";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_2");
 
        kh_vroom("На восток", "iraa_temple_ravine_4");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_4 = room {
 
    index = 4;
 
    nam = "iraa_temple_ravine_4";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_3");
 
        kh_vroom("На север", "iraa_temple_ravine_9");
 
        kh_vroom("На восток", "iraa_temple_ravine_5");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_5 = room {
 
    index = 5;
 
    nam = "iraa_temple_ravine_5";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_4");
 
        kh_vroom("В трещину", "iraa_temple_crevice");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
    entered = function(s)
 
        lifeoff(iraa_temple_guardian);
 
    end;
 
};
 

	
 
iraa_temple_ravine_6 = room {
 
    index = 6;
 
    nam = "iraa_temple_ravine_6";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На юг", "iraa_temple_ravine_2");
 
        kh_vroom("На север", "iraa_temple_ravine_7");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_7 = room {
 
    index = 7;
 
    nam = "iraa_temple_ravine_7";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На юг", "iraa_temple_ravine_6");
 
        kh_vroom("На восток", "iraa_temple_ravine_8");
 
        kh_vroom("На север", "iraa_temple_ravine_10");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_8 = room {
 
    index = 8;
 
    nam = "iraa_temple_ravine_8";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_7");
 
        kh_vroom("На север", "iraa_temple_ravine_10");
 
        kh_vroom("На восток", "iraa_temple_ravine_9");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_9 = room {
 
    index = 9;
 
    nam = "iraa_temple_ravine_9";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На запад", "iraa_temple_ravine_8");
 
        kh_vroom("На юг", "iraa_temple_ravine_4");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_10 = room {
 
    index = 10;
 
    nam = "iraa_temple_ravine_10";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На север", "iraa_temple_ravine_11");
 
        kh_vroom("На восток", "iraa_temple_ravine_8");
 
        kh_vroom("На юг", "iraa_temple_ravine_7");
 
    };
 
    obj = {
 
        "iraa_temple_shark"
 
    };
 
};
 

	
 
iraa_temple_ravine_11 = room {
 
    nam = "iraa_temple_ravine_11";
 
    disp = "Ущелье";
 
    dsc = [[Глубокое узкое ущелье. Стены его почти отвесные и очен неровные, но вы бы не рискнули пытаться карабкаться по ним -- порода очень мягкая и может легко обрушиться под вшим весом. ]];
 
    way = {
 
        kh_vroom("На север", "iraa_temple_ravine_11");
 
        kh_vroom("На восток", "iraa_temple_ravine_8");
 
        kh_vroom("На юг", "iraa_temple_ravine_7");
 
    };
 
};
 

	
 
iraa_temple_crack = room {
 
    index = 7;
 
    nam = "iraa_temple_crack";
 
    disp = "Трещина в скале";
 
    dsc = [[Небольшая узкая трещина в скале. Вы с огромным трудом перемещаетесь внутри. С одной стороны вы видите ущелье, ерез которое вы проникли сюда. С другой стороны -- какой-то хорошо освещенный коридор. ]];
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_6");
 
        kh_vroom("В ущелье", "iraa_temple_ravine_5");
 
    };
 
    entered = function(s)
 
        lifeon(iraa_temple_guardian);
 
    end;
 
};
 

	
 
iraa_temple_guardian = room {
 
    var {
 
        position = 1;
 
        direction = 1;
 
        wait = 0;
 
    };
 
    nam = "iraa_temple_guardian";
 
    life = function(s)
 
        s.wait = s.wait + 1;
 
        if (s.wait < 3) then
 
            return;
 
        end;
 
        s.wait = 0;
 
        if (s.direction == 1) then
 
            if (s.position < 3) then
 
                s.position = s.position + 1;
 
                if (here().index >= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = 2;
 
            end;
 
        elseif (s.direction == 2) then
 
            if (s.position < 6) then
 
                s.position = s.position + 1;
 
                if (here().index >= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = 2;
 
            end;
 
        elseif (s.direction == -2) then
 
            if (s.position > 3) then
 
                s.position = s.position - 1;
 
                if (here().index <= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = -1;
 
            end;
 
        elseif (s.direction == -1) then
 
            if (s.position > 1) then
 
                s.position = s.position - 1;
 
                if (here().index <= s.position) then
 
                    pr [[Вы слышите шаги приближащегося стражника. ]];
 
                else
 
                    pr [[Вы слышите шаги удаляющегося стражника. ]];
 
                end;
 
            else
 
                s.direction = 1;
 
            end;
 
        end;
 
        if here().index > 6 or here().index < 1 then
 
            return;
 
        end;
 
        if s.direction == 1 and here().index < 4 and here().index >= s.position or 
 
           s.direction == 2 and here().index >= s.position or
 
           s.direction == -2 and here().index > 2 and here().index <= s.position or 
 
           s.direction == -1 and here().index <= s.position then
 
            walk("game_over_caught_iraa");
 
        end;
 
    end;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return "";
 
        end;
 
        if here().index > 6 or here().index < 1 then
 
            return [[]];
 
        end;
 
        if s.direction == 1 then
 
            if here().index < s.position then
 
                return [[К востоку вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        elseif s.direction == 2 then
 
            if here().index > 2  and here().index < s.position then
 
                return [[К северу вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        elseif s.direction == -2 then
 
            if here().index > s.position then
 
                return [[К югу вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        elseif s.direction == -1 then
 
            if here().index > s.position  then
 
                return [[К западу вы видите стражника. Он стоит спиной к вам. ]];
 
            end;
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_corridor_6 = room {
 
    index = 6;
 
    nam = "iraa_temple_corridor_6";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Каменные стены покрыты Файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. Северную стену рассекает глубокая трещина, а в западной находится дверь, ведущая в одну из служебных комнат. ]];
 
        else
 
            return [[Вы стоите в самом конце коридора в храме Ираафаанотра. Вокруг -- камееные стены, покрытые светящимися водорослями. В одной из них вы видите глубокую, трещину, через которую вы с трудом протиснулись сюда. В западной стене вы видите небольшой дверной проем, за которым скрывается маленькая комнатка. ]];
 
        end;
 
    end; 
 
    way = {
 
        kh_vroom("В трещину", function(s)
 
            if pl == player_learr then
 
                pr [[В голове Леарр мелькает мысль: "Мне нечего там делать". ]];
 
                return false;
 
            else
 
                return "iraa_temple_crack";
 
            end;
 
        end);
 
        kh_vroom("В комнату", "iraa_temple_room_0");
 
        kh_vroom("По коридору, на юг", "iraa_temple_corridor_5");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_5 = room {
 
    index = 5;
 
    nam = "iraa_temple_corridor_5";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. В западной стене коридора имеется проем, ведущий в одну из служебных комнат. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В западной стене находится дверной проем, ведущий в небольшую комнату. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В комнату", "iraa_temple_room_2");
 
        kh_vroom("По коридору, на север", "iraa_temple_corridor_6");
 
        kh_vroom("По коридору, на юг", "iraa_temple_corridor_4");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_4 = room {
 
    index = 4;
 
    nam = "iraa_temple_corridor_4";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на север", "iraa_temple_corridor_5");
 
        kh_vroom("По коридору, на юг", "iraa_temple_corridor_3");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_3 = room {
 
    index = 3;
 
    nam = "iraa_temple_corridor_3";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. Коридор сворачивает под прямым углом к северу. В восточной стене расположена массивная каменная дверь -- задний вход в храм. Леарр никогда не понимала этой необходимости, но во всех известных ей храмах было ровно два входа. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены. Здесь коридор сворачивает под прямым углом к северу. В конце коридора на западе вы видите массивную каменную дверь, которая сейчас открыта. На севере коридор заканчивается тупиком. К востоку от вас массивная каменная дверь, но она заперта. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на север", "iraa_temple_corridor_4");
 
        kh_vroom("В комнату", "iraa_temple_room_5");
 
        kh_vroom("По коридору, на запад", "iraa_temple_corridor_2");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_2 = room {
 
    index = 2;
 
    nam = "iraa_temple_corridor_2";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в коридоре в храме Ираафаанотра. Ровные каменные стены покрыты Файирром. В стенах коридора имеются проемы, ведущие в служебные комнаты. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- каменные стены, покрытые светящимися водорослями. В стенах имеются дверные проемы, ведущие в небольшие комнаты. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на восток", "iraa_temple_corridor_3");
 
        kh_vroom("В комнату в северной стене", "iraa_temple_room_3");
 
        kh_vroom("В комнату в южной стене", "iraa_temple_room_6");
 
        kh_vroom("По коридору, на запад", "iraa_temple_corridor_1");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_corridor_1 = room {
 
    index = 1;
 
    nam = "iraa_temple_corridor_1";
 
    disp = "Храм Ираафаанотра, коридор";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр впервые за долгие годы оказалась в задней части храма. Хотя проход сюда, в принципе, не запрещен, необходимости бывать здесь, как правило, нет -- все, что доступно пониманию горожан происходит в главном зале. Ровные каменные стены покрыты файирром -- светящимися водорослями, используемыми навьярами повсеместно. В западной стене находится дверь, ведущая в основное помещение храма, а в северной и южной -- проемы, ведущие в служебные комнаты. ]];
 
        else
 
            return [[Вы стоите в коридоре в храме Ираафаанотра. Вокруг -- ровные каменные стены, покрытые светящимися водорослями. Прямо перед вами находится дверь, ведущая в основное помещение храма. Отсюда вы видите, что в нем никого нет. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("По коридору, на восток", "iraa_temple_corridor_2");
 
        kh_vroom("В комнату в северной стене", "iraa_temple_room_7");
 
        kh_vroom("В комнату в южной стене", "iraa_temple_room_1");
 
        kh_vroom("В главный зал", "iraa_temple_main_3");
 
    };
 
    obj = {
 
        "iraa_temple_guardian"
 
    };
 
};
 

	
 
iraa_temple_main_3 = room {
 
    nam = "iraa_temple_main_3";
 
    disp = "Храм Ираафаанотра, главный зал";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в главном зале Ираафаанотра. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. Рядом с Леарр расположена дверь, ведущая в задние помещения храма. Обычно там бывают лишь те, кто всю свою жизнь посвятил служению в этом храме. ]];
 
        else
 
            return [[Вы находитесь в конце главного зала храма Ираафаанотра. В стенах проделаны многочисленые ниши, в которых покоятся священные реликвии навьяров. Массивная каменная дверь ведет в задние помещения. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В дверь", "iraa_temple_corridor_1");
 
        kh_vroom("К центру зала", "iraa_temple_main_2");
 
    };
 
};
 

	
 
iraa_temple_main_2 = room {
 
    nam = "iraa_temple_main_2";
 
    disp = "Храм Ираафаанотра, главный зал";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в центре главного зала храма Ираафаанотра. Рядом с ней находится пустой пьедестал, на котором должна находиться важнейшая реликвия храма, украденная ворами из Дипатреанотра. Слева и справа находятся залы, с незапамятных времен именуемые залом Вопроса и залом Ответа. ]];
 
        else
 
            return [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами ответа и вопроса. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В конец зала", "iraa_temple_main_3");
 
        kh_vroom("В зал вопроса", "iraa_temple_qhall");
 
        kh_vroom("В зал ответа", "iraa_temple_ahall");
 
        kh_vroom("К главному входу", "iraa_temple_main_1");
 
    };
 
    obj = {
 
        "iraa_temple_lever_4"
 
    };
 
};
 

	
 
iraa_temple_main_1 = room {
 
    nam = "iraa_temple_main_1";
 
    disp = "Храм Ираафаанотра, главный зал";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в главном зале храма Ираафаанотра, у центрального входа. Повсюду аккуратно разложены свяценные реликвии, накопленные за века существования Ираафаанотра. ]];
 
        else
 
            return [[Вы находитесь в главном зале храма Ираафаанотра. В многочисленных нишах в стенах покоятся древние реликвии. Перед вами возвышаются массивные ворота храма, за которыми наверняка стоит обычная стража -- двое вооруженных навьяров. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В ворота", function(s)
 
            if pl == player_learr then
 
                return "iraa_temple_entrance";
 
            else
 
                pr("Не стоит делать этого. Стража вас схватит. ");
 
                return false;
 
            end;
 
        end);
 
        kh_vroom("К центру зала", "iraa_temple_main_2");
 
    };
 
};
 

	
 
iraa_temple_question = obj {
 
    nam = "iraa_temple_question";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Единственной достопримечательностью помещения была загадочная надпись "Ты ищешь число здесь", на стене напротив входа. ]];
 
        else
 
            return [[На стене напротив входа нанесены какие-то {письмена}. Видно, что навьяры раз за разом тщательно обновляют их, сохраняя их в первозданном виде. ]];
 
        end;
 
    end;
 
    act = [[Письмена гласят: "Ты число-здесь-ищешь". ]];
 
};
 

	
 
iraa_temple_qhall = room {
 
    nam = "iraa_temple_qhall";
 
    disp = "Храм Ираафаанотра, зал вопроса";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Назначение небольшого по размерам зала вопроса, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]];
 
        else
 
            return [[Зал вопроса представляет собой небольшое помещение, отделенное от основного зала высокой аркой. В отличие от центрального зала, стены здесь не имеют никаких ниш или полок -- здесь явно не должно храниться никаких реликвий. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В главный зал", "iraa_temple_main_2");
 
    };
 
    obj = {
 
        "iraa_temple_question";
 
    };
 
};
 

	
 
iraa_temple_answer = obj {
 
    nam = "iraa_temple_answer";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Вырезанное в камне стены изображение {спрута} всегда пугало Леарр, однако и притягивало -- есть в нем что-то необычное, интересное. ]];
 
        else
 
            return [[Вы видите вырезанное в стене изображение {спрута}. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if pl == player_learr then
 
            return [[В голове Леарр пробегает мысль: "Для чего он здесь?" В первый раз в жизни, Леарр обращает внимание на наличие шестнадцати щупалец у существа. ]];
 
        else
 
            return [[Традиционное для навьяров схематичное изображение спрута. Вам бросается в глаза наличие у существа шестнадцати щупалец. ]];
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_ahall = room {
 
    nam = "iraa_temple_ahall";
 
    disp = "Храм Ираафаанотра, зал ответа";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Назначение небольшого по размерам зала ответа, отделеного высокой аркой от основного зала, всегда казалось Леарр непонятным -- оно всегда было совершенно пустым. Здесь ничего не хранилось, сюда редко ходили как служители, так и горожане. ]];
 
        else
 
            return [[Зал ответа представляет собой небольшое помещение, отделенное от основного зала высокой аркой. В отличие от центрального зала, стены здесь не имеют никаких ниш или полок -- здесь явно не должно храниться никаких реликвий. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В главный зал", "iraa_temple_main_2");
 
    };
 
    obj = {
 
        "iraa_temple_answer";
 
    };
 
};
 

	
 
iraa_temple_room_0 = room {
 
    var {
 
        state = false;
 
    };
 
    index = 0;
 
    nam = "iraa_temple_room_0";
 
    disp = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_6");
 
        kh_vroom("В скрытый проход", "iraa_temple_hidden_stairs"):disable();
 
    };
 
    obj = {
 
        "iraa_temple_lever_0"
 
    };
 
    open = function(s)
 
        s.state = true;
 
        path("В скрытый проход", s):enable();
 
        if here() == s then
 
            return "Вы видите, как одна из стен раздвигается, открывая скрытый проход куда-то в глубь скалы. ";
 
        else
 
            return "Вы слышите где-то поблизости скрежет каменных плит. ";
 
        end;
 
    end;
 
    close = function(s)
 
        if s.state then
 
            s.state = false;
 
            path("В скрытый проход", s):disable();
 
            if here() == s then
 
                return "Вы видите, как одна из стен cдвигается, вновь закрывая потайной проход. ";
 
            else
 
                return "Вы слышите где-то поблизости скрежет каменных плит. ";
 
            end;
 
        end;
 
        return "Вы дергаете рычаг";
 
    end;
 
};
 

	
 
iraa_temple_room_1 = room {
 
    nam = "iraa_temple_room_1";
 
    disp = "Храм Ираафаанотра, комната";
 
    index = 0;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]];
 
        else
 
            return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_1");
 
    };
 
    obj = {
 
        "iraa_temple_lever_1"
 
    };
 
};
 

	
 
iraa_temple_room_2 = room {
 
    nam = "iraa_temple_room_2";
 
    disp = "Храм Ираафаанотра, комната";
 
    index = 0;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]];
 
        else
 
            return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_5");
 
    };
 
    obj = {
 
        "iraa_temple_lever_2"
 
    };
 
};
 

	
 
iraa_temple_room_3 = room {
 
    nam = "iraa_temple_room_3";
 
    disp = "Храм Ираафаанотра, комната";
 
    index = 0;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]];
 
        else
 
            return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_2");
 
    };
 
    obj = {
 
        "iraa_temple_lever_3"
 
    };
 
};
 

	
 
iraa_temple_room_5 = room {
 
    nam = "iraa_temple_room_5";
 
    disp = "Храм Ираафаанотра, комната";
 
    index = 0;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]];
 
        else
 
            return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_3");
 
    };
 
    obj = {
 
        "iraa_temple_lever_5"
 
    };
 
};
 

	
 
iraa_temple_room_6 = room {
 
    nam = "iraa_temple_room_6";
 
    disp = "Храм Ираафаанотра, комната";
 
    index = 0;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]];
 
        else
 
            return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_2");
 
    };
 
};
 

	
 
iraa_temple_room_7 = room {
 
    nam = "iraa_temple_room_7";
 
    disp = "Храм Ираафаанотра, комната";
 
    index = 0;
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в одной из служебных комнат храма. Стены и пол покрыты Файирром. Ниши в стенах, сделанные специально, чтобы служители могли отдыхать в них пустуют. ]];
 
        else
 
            return [[Небольшая, хорошо освещенная светящимися водорослями, комната. Большие -- в рост навьяра, ниши в стенах пустуют. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В коридор", "iraa_temple_corridor_1");
 
    };
 
};
 

	
 
iraa_temple_switch = obj {
 
    nam = "iraa_temple_switch";
 
    var {
 
        state = {false,false,false,false,false,false};
 
    };
 
    switch = function(s, index)
 
        if index < 7 and index > 0 then
 
            s.state[index] = not s.state[index];
 
        end;
 
        if not s.state[1] and not s.state[2] and s.state[3] and not s.state[4] and s.state[5] and not s.state[6] then
 
            -- A valid state
 
            return iraa_temple_room_0:open();
 
        else
 
            -- An invalid state
 
            return iraa_temple_room_0:close();
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_lever_0 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = function(s)
 
        local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой фиолетового цвета. ]];
 
        if iraa_temple_switch.state[1] then
 
            r = r..[[Сейчас он опущен вниз. ]];
 
        else
 
            r = r..[[Сейчас он поднят вверх. ]];
 
        end;
 
        return r;
 
    end;
 
    act = function(s)
 
        return iraa_temple_switch:switch(1);
 
    end;
 
};
 

	
 
iraa_temple_lever_1 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = function(s)
 
        local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой синего цвета. ]];
 
        if iraa_temple_switch.state[2] then
 
            r = r..[[Сейчас он опущен вниз. ]];
 
        else
 
            r = r..[[Сейчас он поднят вверх. ]];
 
        end;
 
        return r;
 
    end;
 
    act = function(s)
 
        return iraa_temple_switch:switch(2);
 
    end;
 
};
 

	
 
iraa_temple_lever_2 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = function(s)
 
        local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой зеленого цвета. ]];
 
        if iraa_temple_switch.state[3] then
 
            r = r..[[Сейчас он опущен вниз. ]];
 
        else
 
            r = r..[[Сейчас он поднят вверх. ]];
 
        end;
 
        return r;
 
    end;
 
    act = function(s)
 
        return iraa_temple_switch:switch(3);
 
    end;
 
};
 

	
 
iraa_temple_lever_3 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = function(s)
 
        local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой желтого цвета. ]];
 
        if iraa_temple_switch.state[4] then
 
            r = r..[[Сейчас он опущен вниз. ]];
 
        else
 
            r = r..[[Сейчас он поднят вверх. ]];
 
        end;
 
        return r;
 
    end;
 
    act = function(s)
 
        return iraa_temple_switch:switch(4);
 
    end;
 
};
 

	
 
iraa_temple_lever_4 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = function(s)
 
        local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой оранжевого цвета. ]];
 
        if iraa_temple_switch.state[5] then
 
            r = r..[[Сейчас он опущен вниз. ]];
 
        else
 
            r = r..[[Сейчас он поднят вверх. ]];
 
        end;
 
        return r;
 
    end;
 
    act = function(s)
 
        return iraa_temple_switch:switch(5);
 
    end;
 
};
 

	
 
iraa_temple_lever_5 = obj {
 
    nam = "iraa_temple_lever_0";
 
    dsc = function(s)
 
        local r = [[Рядом со входом расположен едва заметный {рычаг} с отметкой красного цвета. ]];
 
        if iraa_temple_switch.state[6] then
 
            r = r..[[Сейчас он опущен вниз. ]];
 
        else
 
            r = r..[[Сейчас он поднят вверх. ]];
 
        end;
 
        return r;
 
    end;
 
    act = function(s)
 
        return iraa_temple_switch:switch(6);
 
    end;
 
};
 

	
 
iraa_temple_hidden_stairs = darkroom {
 
    nam = "iraa_temple_hidden_stairs";
 
    disp = "Храм Ираафаанотра, потайной ход";
 
    dsc_dark = [[Потайной спуск уходит далеко вниз, под храм. В темноте вы ничего не различаете. ]];
 
    dsc_halflit = function(s)
 
        if pl == player_learr then
 
            return [[Потайной спуск уходит далеко вниз, под храм. Глаза Леарр хорошо различают плавно уходящий вниз коридор. ]];
 
        else
 
            return [[Потайной спуск уходит далеко вниз, под храм. В слабом свете фонаря, встроенного в скафандр, вы различаете плавно уходящий вниз коридор. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("Наверх", "iraa_temple_room_0", 2);
 
        kh_vroom("Вниз", "iraa_temple_hidden_hall", 1);
 
    };
 
};
 

	
 
iraa_temple_button_ctr = function(nam, index)
 
    return obj {
 
        nam = nam;
 
        seen_level = 1;
 
        dsc = function(s)
 
            local im = "images/dyp_bg.png";
 
            for i = 1, #iraa_temple_hidden_hall.buttons[index] do
 
                im = im .. ";images/dyp_" .. tostring(iraa_temple_hidden_hall.buttons[index][i]) .. ".png";
 
            end;
 
            if (iraa_temple_hidden_hall.pressed_buttons[index]) then
 
                return "{Рычаг с символами " .. img(im) .."} включен.^";
 
            else
 
                return "{Рычаг с символами " .. img(im) .."} выключен.^";
 
            end;
 
        end;
 
        act = function(s)
 
            iraa_temple_hidden_hall:check(index);
 
            return [[
 
                Вы переключаете рычаг и узор на полу комнаты меняется
 
            ]];
 
        end;
 
    };
 
end;
 

	
 
iraa_temple_hidden_hall = room {
 
    var {
 
        active_parts = {false, false, false, false, false, false, false, false, false, false, false, false};
 
        pressed_buttons = {false, false, false, false, false, false, false, false};
 
        solved = false;
 
    };
 
    buttons = {
 
        {1, 5, 9, 11, 12};
 
        {1, 2, 3, 4};
 
        {4, 8, 10, 11, 12};
 
        {2, 4, 5, 6};
 
        {1, 5, 7, 9, 10, 11, 12};
 
        {2, 6, 9, 10, 12};
 
        {1, 3, 7, 8};
 
        {3, 7, 9, 10, 11};
 
    };
 
    pic = function(s)
 
        local pic = 'images/dyp_bg.png';
 
        local cnt = 0;
 
        for i = 1, #s.active_parts do
 
            if (s.active_parts[i]) then
 
                cnt = cnt + 1;
 
                pic = pic .. ";images/dyp_" .. tostring(i) .. ".png";
 
            end;
 
        end;
 
        if (cnt > 0) then
 
            return pic;
 
        else
 
            return nil;
 
        end;
 
    end;
 
    nam = "Храм Ираафаанотра, потайной зал";
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр оказывается в огромном зале. Мягкий, едва заметный свет исходит из самих стен. В центре зала находятся восемь рычагов, рядом с которыми нанесены символы. ]];
 
        else
 
            return [[Большой круглый зал. Мягкий, едва заметный свет исходит из самих стен. В центре зала расположено восемь рычагов, рядом с которыми нанесены какие-то символы. ]];
 
        end;
 
    end;
 
    entered = function(s)
 
        if not s.solved then
 
            return [[Позади вас металлическая плита почти бесшумно сдвигается, закрывая вход. ]];
 
        end;
 
    end;
 
    obj = {
 
        iraa_temple_button_ctr("iraa_temple_b1", 1);
 
        iraa_temple_button_ctr("iraa_temple_b2", 2);
 
        iraa_temple_button_ctr("iraa_temple_b3", 3);
 
        iraa_temple_button_ctr("iraa_temple_b4", 4);
 
        iraa_temple_button_ctr("iraa_temple_b5", 5);
 
        iraa_temple_button_ctr("iraa_temple_b6", 6);
 
        iraa_temple_button_ctr("iraa_temple_b7", 7);
 
        iraa_temple_button_ctr("iraa_temple_b8", 8);
 
    };
 
    way = {
 
        kh_vroom("Наверх", "iraa_temple_hidden_stairs"):disable();
 
        kh_vroom("Вниз", "iraa_temple_hidden_storage"):disable();
 
    };
 
    check = function(s, index)
 
        s.pressed_buttons[index] = not s.pressed_buttons[index];
 
        
 
        for i = 1, #s.active_parts do
 
            s.active_parts[i] = false;
 
        end;
 
        
 
        for i = 1, #s.pressed_buttons do
 
            if (s.pressed_buttons[i]) then
 
                for j = 1, #s.buttons[i] do
 
                    s.active_parts[s.buttons[i][j]] = not s.active_parts[s.buttons[i][j]];
 
                end;
 
            end;
 
        end;
 
        
 
        s.solved = true;
 
        for i = 1, #s.active_parts do
 
            if (not s.active_parts[i]) then
 
                s.solved = false;
 
                break;
 
            end;
 
        end;
 
        
 
        if (s.solved) then
 
            path("Наверх"):enable();
 
            path("Вниз"):enable();
 
        end;
 
    end;
 
};
 

	
 
iraa_temple_hidden_storage = room {
 
    nam = "iraa_temple_hidden_storage";
 
    disp = [[Храм Ираафаанотра, хранилище]];
 
    dsc = function(s)
 
        if pl == player_learr then
 
            return [[Леарр находится в небольшой круглой комнате. Стены комнаты, как и в других скрытых помещенях храма, излучают слабый свет. ]];
 
        else
 
            return [[Стены этой небольшой комнаты излучают слабый свет. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("Наверх", "iraa_temple_hidden_hall");
 
    };
 
    obj = {
 
        "iraa_temple_hidden_pedestal"
 
    };
 
};
 

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

Changeset was too big and was cut off... Show full diff anyway

0 comments (0 inline, 0 general)