Changeset - 6594db8d95e3
[Not reviewed]
default
0 1 0
silverwing - 7 years ago 2017-07-30 07:06:03

iraa complete
1 file changed with 169 insertions and 41 deletions:
0 comments (0 inline, 0 general)
atlantis_navjiarr.lua
Show inline comments
 
@@ -771,96 +771,97 @@ iraa_city_library = room {
 
    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";
 
@@ -1294,97 +1295,104 @@ iraa_temple_guardian = room {
 
            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("В трещину", "iraa_temple_crack");
 
        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"
 
    };
 
};
 
@@ -1399,494 +1407,614 @@ iraa_temple_corridor_3 = room {
 
        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_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_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 [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами Ответа и Вопроса. ]];
 
            return [[Вы находитесь в центре главного зала храма Ираафаанотра. Рядом с вами находится пустой пьедестал, на котором должна покоиться важнейшая реликвия храма, однако сейчас она отсутствует. Слева и справа от вас находятся залы, именуемые залами ответа и вопроса. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("В конец зала", "iraa_temple_main_3");
 
        kh_vroom("В зал Вопроса", "iraa_temple_qhall");
 
        kh_vroom("В зал Ответа", "iraa_temple_ahall");
 
        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 = "Храм Ираафаанотра, Зал вопроса";
 
    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 [[Вырезанное в камне стены изображение спрута всегда пугало Леарр, однако и притягивало -- есть в нем что-то необычное, интересное. ]];
 
            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 = "Храм Ираафаанотра, Зал ответа";
 
    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");
 
        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
 
            pr("Вы видите, как одна из стен раздвигается, открывая скрытый проход куда-то в глубь скалы. ");
 
            return "Вы видите, как одна из стен раздвигается, открывая скрытый проход куда-то в глубь скалы. ";
 
        else
 
            pr("Вы слышите где-то поблизости скрежет каменных плит. ");
 
            return "Вы слышите где-то поблизости скрежет каменных плит. ";
 
        end;
 
    end;
 
    close = function(s)
 
        if s.state then
 
            s.state = false;
 
            path("В скрытый проход", s):disable();
 
            if here() == s then
 
                pr("Вы видите, как одна из стен cдвигается, вновь закрывая потайной проход. ");
 
                return "Вы видите, как одна из стен cдвигается, вновь закрывая потайной проход. ";
 
            else
 
                pr("Вы слышите где-то поблизости скрежет каменных плит. ");
 
                return "Вы слышите где-то поблизости скрежет каменных плит. ";
 
            end;
 
        end;
 
        return "Вы дергаете рычаг";
 
    end;
 
};
 

	
 
iraa_temple_room_1 = room {
 
    nam = "iraa_temple_room_1";
 
    disp = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    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 = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    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 = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    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 = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    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 = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    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 = "Храм Ираафаанотра, комната";
 
    dsc = [[Небольшая, хорошо освещенная светящимися водорослями, комната. Ниши в стенах пустуют. ]];
 
    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 state[1] and not state[2] and state[3] and not state[4] and state[5] and not state[6] then
 
        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
 
            iraa_temple_room_0:open();
 
            return iraa_temple_room_0:open();
 
        else
 
            -- An invalid state
 
            iraa_temple_room_0:close();
 
            return iraa_temple_room_0:close();
 
        end;
 
    end;
 
};
 

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

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

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

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

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

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

	
 
iraa_temple_hidden_stairs = darkroom {
 
    nam = "iraa_temple_hidden_stairs";
 
    dsc_dark = [[]];
 
    dsc_halflit = [[]];
 
    disp = "Храм Ираафаанотра, потайной ход";
 
    dsc_dark = [[Потайной спуск уходит далеко вниз, под храм. В темноте вы ничего не различаете. ]];
 
    dsc_halflit = function(s)
 
        if pl == player_learr then
 
            return [[Потайной спуск уходит далеко вниз, под храм. Глаза Леарр хорошо различают плавно уходящий вниз коридор. ]];
 
        else
 
            return [[Потайной спуск уходит далеко вниз, под храм. В слабом свете фонаря, встроенного в скафандр, вы различаете плавно уходящий вниз коридор. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom("Наверх", "iraa_temple_room_0", 1);
 
        kh_vroom("Вниз", "iraa_temple_room_0", 1);
 
        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 = [[Большой круглый плохо освещенный зал. В центре зала расположено восемь рычагов, рядом с которыми нанесены какие-то символы. ]];
 
    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 = [[Стены этой небольшой комнаты излучают слабый свет. ]];
 
    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;
 
};
0 comments (0 inline, 0 general)