Changeset - 27e17792f869
[Not reviewed]
default
0 2 0
Silverwing - 7 years ago 2018-01-21 10:20:51

Grafted from: 726321836a6c
Added stub for Dypatreanotrr cave
2 files changed with 6 insertions and 4 deletions:
0 comments (0 inline, 0 general)
atlantis_dyp.lua
Show inline comments
 
@@ -401,1537 +401,1537 @@ dyp_chief_dlg = dlg {
 
        if not language_known then
 
            psub("no_speak");
 
            return [[Как только вы приближаетесь к столу, глаза вождя открываются. Он поднимается с трона. Руки его остаются сложенными на груди, а взгляд его желтых глаз устремляется на вас. По его головным плавникам бегут цветные полосы. К сожалению, вы не понимаете, что он пытается вам сказать. ]];
 
        else
 
            psub("speak");
 
            if atl_iyh_state == 10 and not s.lse then
 
                s.lse = true;
 
                pon("lseryanotrr");
 
            end;
 
            if dyp_quest_state == 1 and have(item_electric_lamp, pl) and item_electric_lamp.state == 2 then
 
                pon("quest1");
 
            end;
 
            if dyp_quest_state == 2 and have(item_shark_tooth, pl) then
 
                pon("quest2");
 
            end;
 
            if dyp_stones_known and dyp_quest_state == 0 then
 
                pon("quest");
 
            end;
 
            poff("quest3");
 
            if have(dyp_item_star_map_copy) or have(dyp_item_star_map) then
 
                pon("quest3");
 
            end;
 
            if dyp_quest_state == 4 and not s.aed then
 
                s.aed = true;
 
                pon("aedienrr");
 
            end;
 
            return [[Как только вы приближаетесь к столу, глаза вождя открываются. Он поднимается с трона. Руки его остаются сложенными на груди, а взгляд его желтых глаз устремляется на вас. По его головным плавникам бегут цветные полосы: "Чем скромные навьяры из Дипатреанотра обязаны визиту почтенного хевьяра? Ты говори". ]];
 
        end;
 
    end;
 
    phr = {
 
        {tag="no_speak"};
 
        {always=true, "[Уйти]", code [[ back(); ]]};
 
        {tag="speak"};
 
        {tag="lseryanotrr", false, "[Кодировщик] Я ищу карту пути в Лсэрианотр.", [[Вождь отвечает: "Ты спроси в храме или в библиотеке. Я ничего такого не знаю". ]]};
 
        --[[{tag="star_map", false, "[Кодировщик] Мне нужен камень из твоего жезла. Что я могу предложить в обмен на него?", [ [Глаза вождя загораются, он ухмыляется. По плавникам быстро, словно в нетерпении, бегут цветные полосы: "Я хочу карту небесных огней из Ираафаанотра. Принеси ее и забирай этот жезл вместе с камнем". ] ], code [ [ dyp_quest_state = 1; ] ]};]]
 
        {tag="quest", false, "[Кодировщик] Мне нужен камень из твоего жезла. Что я могу предложить в обмен на него?", [[Глаза вождя загораются, он ухмыляется. По плавникам быстро, словно в нетерпении бегут цветные полосы: "Принеси мне три вещи, что я попрошу и получишь жезл вместе с камнем". ]], code [[psub("agree_quest");]]};
 
        {tag="quest1", false, "[Отдать светильник] [Кодировщик] Вот то, что ты просил. Что тебе еще нужно?", [[Вождь с интересом рассматривает принесенный вами прибор, после чего ставит его на стол перед собой и говорит: "Еще мне нужен акулий зуб". ]], code [[ remove("item_electric_lamp", pl); dyp_quest_state = 2; ]]};
 
        {tag="quest2", false, "[Отдать зуб акулы] [Кодировщик] Вот то, что ты просил. Что тебе еще нужно?", [[Вождь кладет зуб на стол рядом со светильником и говорит: "Я хочу карту небесных огней из Ираафаанотра. Принеси ее и забирай этот жезл вместе с камнем". ]], code [[ remove("item_shark_tooth", pl); dyp_quest_state = 3; psub("agree_quest2"); ]]};
 
        {tag="quest3", false, "[Отдать карту небесных огней] Вот то, что ты просил. Я могу забрать камень?", function(s)
 
            if have(dyp_item_star_map_copy) then
 
                remove(dyp_item_star_map_copy, me());
 
            else
 
                remove(dyp_item_star_map, me());
 
                atl_rep_iraa = atl_rep_iraa - 1;
 
            end;
 
            dyp_map = true;
 
            take(dyp_item_stone_green);
 
            atl_rep_dyp = atl_rep_dyp + 1;
 
            return [[Вождь отдает вам свой жезл со словами: "Благодарю тебя, честный хевьяр и держу свое слово". ]];
 
        end};
 
        {tag="aedienrr", false, "[Кодировщик] Ваш город посещал Аэдиенрр из Ираафаанотра недавно?", [[Вождь отвечает: "Не мое дело следить за этим. Спроси у стражников". ]]};
 
        {always=true, "[Кодировщик] Я пойду.", [[Вождь прощается с вами: "Ты возвращайся". Он садится обратно на трон и закрывает глаза. ]], code [[ back(); ]]};
 
        {tag="agree_quest"};
 
        {always=true,"[Кодировщик] Что ты хочешь, чтобы я принес?", [[Вождь отвечает: "Первая вещь, что мне нужна -- это светящаяся капсула из вашего города". ]], code [[ dyp_quest_state = 1; pret(); ]]};
 
        {always=true,"[Кодировщик] Я передумал. ", [[Вождь пожимает плечами. ]], code [[ pon("quest"); pret(); ]]};
 
        {tag="agree_quest2"};
 
        {always=true,"[Кодировщик] Как к этому отнесутся в Ираафаанотре?", [[Вождь отвечает: "Они могут быть против. Уговори их". ]], code [[ pret(); ]]};
 
        {always=true,"[Кодировщик] Я не буду этого делать.", [[Вождь отвечает: "Я отдам посох только за карту небесных огней". ]], code [[ pret(); ]]};
 
    };
 
};
 

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

	
 
dyp_temple_entry = lcutscene("dyp_temple_entry", "Левиафан, рубка", [[Храм Дипатреанотра располагается в нескольких часах пути от Атлантиды на Левиафане. К массивным дверям храма, вырезанным в толще скалы, ведет широкая каменная лестница, некогда украшенная резными орнаментами, ныне осыпавшимися и раскрошившимися. Над входом вырезано изображение, состоящее из нескольких концентрических кругов и каких-то символов. ]], "Вы прибыли в Храм Дипатреанотра. ", leviathan_wheelhouse);
 

	
 
dyp_temple_guard = npc {
 
    nam = "ctt_dyp_temple_guard";
 
    dsc = [[У ворот стоят два навьяра, вооруженные копьями. При вашем приближении они начинают нервничать -- переглянувшись, они перехватывают копья, готовясь при необходимости прогнать вас. По плавникам одного из них бегут цветные полосы: темно-фиолетовая, зеленая, оранжевая -- шире чем остальные, серая, ярко-розовая, желтая -- снова широкая, салатовая, снова широкая желтая и, наконец, широкая бледно-оранжевая. После небольшой паузы, полосы появляются снова. ]];
 
    phrases = {
 
        [[Стражник не реагирует на ваши попытки начать общение. ]];
 
    };
 
    
 
};
 

	
 
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 = [[Перед вами находится вырезанный в скале вход в навьярский храм. Массивные каменные ступени ведут к громадным двустворчатым дверям, украшенным полустершимися орнаментами. Некогда яркие краски потускнели -- осторожные навьяры не решаются их обновить. ^Скала продолжается на восток и на юго-запад от храма. Вдалеке на севере видны длинные, вытянувшиеся на несколько метров вверх водоросли. К северо-западу заметен каменный обелиск. ]];
 
    view = [[Через иллюминаторы вы видите вырезанный в скале вход в навьярский храм. Массивные каменные ступени ведут к громадным двустворчатым дверям, украшенным полустершимися орнаментами. Некогда яркие краски потускнели -- осторожные навьяры не решаются их обновить. ^Скала продолжается на восток и на юго-запад от храма. Вдалеке на севере видны длинные, вытянувшиеся на несколько метров вверх водоросли. К северо-западу заметен каменный обелиск. ]];
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    obj = {
 
        "dyp_temple_guard";
 
        "dyp_temple_carving";
 
    };
 
    way = {
 
        kh_vroom("В храм", function(s)
 
            pr('Охранники не колеблясь убьют вас, если вы попытаетесь войти. ');
 
            return false;
 
        end):disable();
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

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

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

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

	
 
dyp_temple_north_west = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    view = [[Перед вами возвышается массивный каменный обелиск. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. К юго-востоку от вас возвышается отвесная скала, протянувшаяся на многие километры с юга на восток. Вдалеке на западе вы видите каменные строения навьярского города -- Дипатреанотра. ]];
 
    dsc = [[К юго-востоку от вас возвышается отвесная скала, протянувшаяся на многие километры с юга на восток. Вдалеке на западе вы видите каменные строения навьярского города -- Дипатреанотра. ]];
 
    obj = {
 
        "dyp_temple_west_footprints";
 
        "dyp_temple_north_west_obelisk";
 
    };
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
};
 

	
 
dyp_temple_west_footprints = obj {
 
    nam = "dyp_temple_west_footprints";
 
    dsc = [[На илистом дне вы видите {следы}. ]];
 
    act = [[Следы навьяра ведут на север. ]];
 
};
 

	
 
dyp_temple_north_west_obelisk = obj {
 
    nam = "dyp_temple_north_west_obelisk";
 
    dsc = [[Перед вами возвышается массивный каменный {обелиск}. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. ]];
 
    act = [[Древняя каменная конструкция, с неизвестной целью помещенная в этом месте. ]];
 
};
 

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

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

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

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

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

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

	
 
dyp_temple_warning = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Перед вами возвышается массивный каменный обелиск. Большая часть изображенного на нем стерлась. ]];
 
    dsc = [[Вы находитесь посреди бескрайней илистой равнины. К северу вы видите скалу, протянувшуюся с запада на восток. К югу вы видите глубокое ущелье, протянувшееся параллельно скале. ]];
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
    obj = {
 
        "dyp_temple_obelisk_footprints";
 
        "dyp_temple_warning_obelisk";
 
    };
 
};
 

	
 
dyp_temple_obelisk_footprints = obj {
 
    nam = "dyp_temple_obelisk_footprints";
 
    dsc = [[На илистом дне вы видите {следы}. ]];
 
    act = [[Следы навьяра ведут на север. ]];
 
};
 

	
 
dyp_temple_warning_obelisk = obj {
 
    nam = "dyp_temple_warning_obelisk";
 
    dsc = [[Перед вами возвышается массивный каменный {обелиск}. Некогда он был украшен резными орнаментами, но сейчас все они практически полностью стерлись. ]];
 
    act = [[Древняя каменная конструкция, с неизвестной целью помещенная в этом месте. ]];
 
};
 

	
 
dyp_temple_cliff_1 = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. Здесь в скале вы видите вход в глубокую темную пещеру. К юго-востоку от вас возвышается каменный обелиск. ]];
 
    underwater = true;
 
    handwheel_room = 'dyp_temple_navigation';
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
        kh_vroom("В пещеру", "dyp_crab_cave");
 
    };
 
    obj = {
 
        "dyp_temple_cliff_1_footprints";
 
    };
 
};
 

	
 
dyp_temple_cliff_1_footprints = obj {
 
    nam = "dyp_temple_cliff_1_footprints";
 
    dsc = [[На илистом дне хорошо сохранились {следы} множества тонких ног. ]];
 
    act = [[Следы множества тонких ног, тянущиеся с востока, ведут в пещеру. ]];
 
};
 

	
 
dyp_temple_cliff_2 = room {
 
    nam = "Океан";
 
    no_exit = function(s)
 
        if dyp_quest_state ~= 5 then
 
            return [[Нет смысла покидать Левиафан здесь. ]];
 
        end;
 
    end;
 
    view = [[Вы находитесь к югу от высокой скалы, протянувшейся с востока на запад. Вдалеке на юге возвышается каменный обелиск. ]];
 
    dsc = [[Вы стоите у подножия высокой скалы, протянувшейся с востока на запад к северу от вас. К югу от вас возвышается каменный обелиск. ]];
 
    handwheel_room = 'dyp_temple_navigation';
 
    underwater = true;
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
    };
 
    obj = {
 
        "dyp_temple_cliff_2_footprints";
 
    };
 
};
 

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

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

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

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

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

	
 
dyp_temple_navigation = dlg {
 
    nam = "Штурвал Левиафана";
 
    entered = function(s)
 
        psub(stead.deref(where(submarine_leviathan)));
 
        return where(submarine_leviathan).view;
 
    end;
 
    phr = {
 
        {tag="dyp_temple_entrance"};
 
        {always=true, "[На восток, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_east");
 
            psub("dyp_temple_east");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На северо-восток, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На северо-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юго-запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_west");
 
            psub("dyp_temple_south_west");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На север, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_south_far");
 
            psub("dyp_temple_south_far");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        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_crevice_far_west");
 
            psub("dyp_temple_crevice_far_west");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юго-восток, к храму]", function()
 
            move(submarine_leviathan, "dyp_temple_entrance");
 
            psub("dyp_temple_entrance");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, в Дипатреанотр]", function()
 
            dypatreanotrr_found = true;
 
            move(submarine_leviathan, "dyp_center");
 
            psub("dyp_center");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_east");
 
            psub("dyp_temple_east");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На север, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_east");
 
            psub("dyp_temple_crevice_far_east");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На северо-восток, к скелету]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На север, к скале]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_5");
 
            psub("dyp_temple_cliff_5");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юго-восток, к зарослям]", function()
 
            move(submarine_leviathan, "dyp_temple_north");
 
            psub("dyp_temple_north");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_west");
 
            psub("dyp_temple_crevice_far_west");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На северо-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На восток, вдоль ущелья]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_west");
 
            psub("dyp_temple_crevice_far_west");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юго-восток, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_1");
 
            psub("dyp_temple_cliff_1");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_west");
 
            psub("dyp_temple_crevice_west");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юго-запад, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_warning");
 
            psub("dyp_temple_warning");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_2");
 
            psub("dyp_temple_cliff_2");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_middle");
 
            psub("dyp_temple_crevice_middle");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_3");
 
            psub("dyp_temple_cliff_3");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юго-восток, к скелету]", function()
 
            move(submarine_leviathan, "dyp_temple_whale");
 
            psub("dyp_temple_whale");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_east");
 
            psub("dyp_temple_crevice_east");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На запад, вдоль скалы]", function()
 
            move(submarine_leviathan, "dyp_temple_cliff_4");
 
            psub("dyp_temple_cliff_4");
 
            return where(submarine_leviathan).view;
 
        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");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[На юг, к ущелью]", function()
 
            move(submarine_leviathan, "dyp_temple_crevice_far_east");
 
            psub("dyp_temple_crevice_far_east");
 
            return where(submarine_leviathan).view;
 
        end};
 
        {always=true, "[Отойти от штурвала]", code = [[
 
            walk('leviathan_wheelhouse');
 
        ]]};
 
        {always=true, "[Отправиться в другое место]", code = [[
 
            walk('leviathan_dlg');
 
        ]]};
 
        
 
        {tag="dyp_center"};
 
        {always=true, "[На восток, к обелиску]", function()
 
            move(submarine_leviathan, "dyp_temple_north_west");
 
            psub("dyp_temple_north_west");
 
            return where(submarine_leviathan).view;
 
        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 = [[Вы стоите у выхода из глубокой пещеры, расположенной неподалеку от храма Дипатреанотра. Перед вами длинный коридор, ведущий куда-то вглубь скалы. Вдалеке, в коридоре вы видите слабое свечение. ]];
 
    underwater = true;
 
    way = {
 
        kh_vroom("Выйти из пещеры", "dyp_temple_east");
 
        kh_vroom("Вглубь пещеры", "dyp_temple_cave_deep");
 
        kh_vroom("Вглубь пещеры", "preview_unavailable_dypatreanotrr");
 
    };
 
};
 

	
 
dyp_temple_cave_deep = room {
 
    nam = "dyp_temple_cave_deep";
 
    disp = "Храм Дипатреанотра, пещера";
 
    dsc = [[Здесь коридор разветвляется на три. В конце каждого вы видите слабое свечение красного, зеленого и синего цветов. ]];
 
    underwater = true;
 
    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 = [[Проход заканчивается массивной металлической дверью, совершенно гладкой. Вы не видите никакого способа открыть ее. ]];
 
    underwater = true;
 
    obj = {
 
        "dyp_temple_statue_red";
 
    };
 
    way = {
 
        kh_vroom("К выходу из пещеры", "dyp_temple_cave_deep");
 
        kh_vroom("В дверь", "dyp_temple_red_room"):disable();
 
    };
 
};
 

	
 
dyp_temple_statue_red = obj {
 
    nam = "dyp_temple_statue_red";
 
    dsc = [[Рядом с дверью стоит древняя статуя навьяра. В правой руке статуя держит копье, в навершии которого ярко светится красный камень. На поясе статуи вы видите небольшое круглое {отверстие}. ]];
 
    use = function(s, o)
 
        if o == dyp_item_stone_red then
 
            remove(dyp_item_stone_red, me());
 
            path("В дверь"):enable();
 
            return [[Вы помещаете камень в отверстие на поясе статуи и массивная металлическая дверь опускается под пол, открывая проход в большое темное помещение.]];
 
        end;
 
    end;
 
};
 

	
 
dyp_temple_red_room = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "dyp_temple_red_room";
 
    disp = "Храм Дипатреанотра, пещера";
 
    pic = function(s)
 
        if s.state == 0 then
 
            
 
        else
 
            
 
        end;
 
    end;
 
    dsc = function(s)
 
        if s.state == 0 then
 
            
 
        else
 
            
 
        end;
 
    end;
 
};
 

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

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

	
 
dyp_wall1_a = kh_vway("На восток", "dyp_temple_green_room_in_1");
 
dyp_wall1_b = kh_vway("На запад", "dyp_temple_green_room_1");
 

	
 
dyp_wall2_a = kh_vway("На юг", "dyp_temple_green_room_in_3");
 
dyp_wall2_b = kh_vway("На север", "dyp_temple_green_room_in_1");
 

	
 
dyp_wall3_a = kh_vway("На восток", "dyp_temple_green_room_in_2");
 
dyp_wall3_b = kh_vway("На запад", "dyp_temple_green_room_in_1");
 

	
 
dyp_wall4_a = kh_vway("На восток", "dyp_temple_green_room_in_4");
 
dyp_wall4_b = kh_vway("На запад", "dyp_temple_green_room_in_3");
 

	
 
dyp_wall5_a = kh_vway("На юг", "dyp_temple_green_room_in_4");
 
dyp_wall5_b = kh_vway("На север", "dyp_temple_green_room_in_2");
 

	
 
dyp_wall6_a = kh_vway("На юг", "dyp_temple_green_room_in_2");
 
dyp_wall6_b = kh_vway("На север", "dyp_temple_green_room_2");
 

	
 
dyp_wall7_a = kh_vway("На восток", "dyp_temple_green_room_4");
 
dyp_wall7_b = kh_vway("На запад", "dyp_temple_green_room_in_4");
 

	
 
dyp_wall8_a = kh_vway("На юг", "dyp_temple_green_room_3");
 
dyp_wall8_b = kh_vway("На север", "dyp_temple_green_room_in_3");
 

	
 
dyp_temple_lever_1_1 = obj {
 
    nam = "dyp_temple_lever_1_1";
 
    dsc = [[{Дернуть левый рычаг}^]];
 
    act = function(s)
 
        dyp_wall4_a:toggle();
 
        dyp_wall4_b:toggle();
 
        
 
        dyp_wall5_a:toggle();
 
        dyp_wall5_b:toggle();
 
        
 
        dyp_wall7_a:toggle();
 
        dyp_wall7_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_1_2 = obj {
 
    nam = "dyp_temple_lever_1_2";
 
    dsc = [[{Дернуть средний рычаг}^]];
 
    act = function(s)
 
        dyp_wall6_a:toggle();
 
        dyp_wall6_b:toggle();
 
        
 
        dyp_wall8_a:toggle();
 
        dyp_wall8_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_1_3 = obj {
 
    nam = "dyp_temple_lever_1_3";
 
    dsc = [[{Дернуть левый рычаг}^]];
 
    act = function(s)
 
        dyp_wall1_a:toggle();
 
        dyp_wall1_b:toggle();
 
        
 
        dyp_wall3_a:toggle();
 
        dyp_wall3_b:toggle();
 
        
 
        dyp_wall5_a:toggle();
 
        dyp_wall5_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_2_1 = obj {
 
    nam = "dyp_temple_lever_1_1";
 
    dsc = [[{Дернуть левый рычаг}^]];
 
    act = function(s)
 
        dyp_wall2_a:toggle();
 
        dyp_wall2_b:toggle();
 
        
 
        dyp_wall3_a:toggle();
 
        dyp_wall3_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_2_2 = obj {
 
    nam = "dyp_temple_lever_1_2";
 
    dsc = [[{Дернуть средний рычаг}^]];
 
    act = function(s)
 
        dyp_wall2_a:toggle();
 
        dyp_wall2_b:toggle();
 
        
 
        dyp_wall4_a:toggle();
 
        dyp_wall4_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_2_3 = obj {
 
    nam = "dyp_temple_lever_1_3";
 
    dsc = [[{Дернуть правый рычаг}^]];
 
    act = function(s)
 
        dyp_wall3_a:toggle();
 
        dyp_wall3_b:toggle();
 
        
 
        dyp_wall5_a:toggle();
 
        dyp_wall5_b:toggle();
 
        
 
        dyp_wall7_a:toggle();
 
        dyp_wall7_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_3_1 = obj {
 
    nam = "dyp_temple_lever_1_1";
 
    dsc = [[{Дернуть левый рычаг}^]];
 
    act = function(s)
 
        dyp_wall5_a:toggle();
 
        dyp_wall5_b:toggle();
 
        
 
        dyp_wall6_a:toggle();
 
        dyp_wall6_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_3_2 = obj {
 
    nam = "dyp_temple_lever_1_2";
 
    dsc = [[{Дернуть средний рычаг}^]];
 
    act = function(s)
 
        dyp_wall1_a:toggle();
 
        dyp_wall1_b:toggle();
 
        
 
        dyp_wall4_a:toggle();
 
        dyp_wall4_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_lever_3_3 = obj {
 
    nam = "dyp_temple_lever_1_3";
 
    dsc = [[{Дернуть правый рычаг}^]];
 
    act = function(s)
 
        dyp_wall2_a:toggle();
 
        dyp_wall2_b:toggle();
 
        
 
        dyp_wall3_a:toggle();
 
        dyp_wall3_b:toggle();
 
    end;
 
};
 

	
 
dyp_temple_green_room_1 = room {
 
    nam = "dyp_temple_green_room_1";
 
    
 
};
 

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

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

	
 
dyp_crab_cave = labyrinth {
 
    var {
 
        position = "00";
 
        fight = false;
 
    };
 
    nam = "dyp_crab_cave";
 
    disp = "Пещера";
 
    dir1 = "На северо-запад";
 
    dir2 = "На северо-восток";
 
    dir3 = "На юго-запад";
 
    dir4 = "На юго-восток";
 
    ex = "Выйти";
 
    underwater = true;
 
    map = {
 
        ["00"] = {
 
            name = [[Вы стоите у входа в глубокую пещеру. Стены здесь неровные и извилистые, образую причудливые переплетения длинный коридоров. Кто знает, куда они приведут? На каменистом полу едва ли можно заметить какие-либо следы. ]];
 
            e1 = "10";
 
            e2 = "11";
 
            ex = "dyp_temple_cliff_1";
 
        };
 
        ["10"] = {
 
            e1 = "20";
 
            e2 = "21";
 
            e4 = "00";
 
        };
 
        ["11"] = {
 
            e1 = "21";
 
            e2 = "22";
 
            e3 = "00";
 
        };
 
        ["20"] = {
 
            e1 = "30";
 
            e4 = "10";
 
        };
 
        ["21"] = {
 
            e1 = "31";
 
            e2 = "32";
 
            e3 = "10";
 
            e4 = "11";
 
        };
 
        ["22"] = {
 
            e2 = "33";
 
            e3 = "11";
 
        };
 
        ["30"] = {
 
            e1 = "40";
 
            e2 = "41";
 
            e4 = "20";
 
        };
 
        ["31"] = {
 
            e2 = "42";
 
            e4 = "21";
 
        };
 
        ["32"] = {
 
            e2 = "43";
 
            e3 = "21";
 
        };
 
        ["33"] = {
 
            e3 = "22";
 
        };
 
        ["40"] = {
 
            e2 = "50";
 
            e4 = "30";
 
        };
 
        ["41"] = {
 
            e3 = "30";
 
        };
 
        ["42"] = {
 
            e1 = "51";
 
            e3 = "31";
 
        };
 
        ["43"] = {
 
            e1 = "52";
 
            e3 = "32";
 
            enter = function(s)
 
                if not s.fight then
 
                    s.fight = true;
 
                    walk("dyp_crab_fight_intro");
 
                end;
 
            end;
 
        };
 
        ["50"] = {
 
            e3 = "40";
 
            enter = function(s)
 
                if (not exist(dyp_scepter_chest, s)) then
 
                    move(dyp_scepter_chest, s);
 
                end;
 
            end;
 
            exit = function(s)
 
                remove(dyp_scepter_chest, s);
 
            end;
 
        };
 
        ["51"] = {
 
            e4 = "42";
 
        };
 
        ["52"] = {
 
            e4 = "43";
 
            enter = function(s)
 
                if (not exist(dyp_dead_navjiarr, s)) then
 
                    move(dyp_dead_navjiarr, s);
 
                end;
 
            end;
 
            exit = function(s)
 
                remove(dyp_dead_navjiarr, s);
 
            end;
 
        };
 
    };
 
};
 

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

	
 
dyp_dead_navjiarr = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "dyp_dead_navjiarr";
 
    dsc = [[Рядом с вами лежит мертвый навьяр. Тело изуродовано могучими клешнями крабов, однако, судя по всему лежит здесь недавно. Рядом с трупом лежит его {сумка}. ]];
 
    act = function(s)
 
        if s.state == 0 then
 
            s.state = 1;
 
            move(dyp_item_star_map, pl);
 
            move(dyp_item_aedienrr_notes, pl);
 
            return [[В сумке лежат две таблички: металлическая и обычная, каменная. Металлическая табличка сразу привлекает ваше внимание. Причудливые узоры схем никак не напоминают навьярские письмена, а символы нанесенные вокруг не говорят вам ровным счетом ни о чем. Стоит показать это Светловой, быть может она сможет что-то из этого извлечь. ]];
 
        else
 
            return "Сумка пуста. ";
 
        end;
 
    end;
 
};
 

	
 
dyp_item_aedienrr_notes = obj {
 
    nam = "dyp_item_aedienrr_notes";
 
    disp = function(s)
 
        if language_known then
 
            return "Записи Аэдиенрра";
 
        else
 
            return "Каменная табличка";
 
        end;
 
    end;
 
    inv = function(s)
 
        if language_known then
 
            return "Надписи на каменной табличке рассказывают о последнем путешествии Аэдиенрра. Молодой навьяр разгадал схемы на карте небесных огней и предположил, что они ведут в пещеру в скале к северу от Дипатреанотра. Ориентирами служат каменные обелиски-предостережения и храм, расположенный к востоку от нее. Никто из Ираафаанотра не смогу рассказать ничего о храме, поэтому исследователю пришлось долго идти наугад. Последняя запись гласит, что он почти добрался до пещеры... ";
 
        else
 
            return "Вы не понимаете языка и надписи значат для вас не больше чем ряды вертикальных цветных полосок. ";
 
        end;
 
    end;
 
};
 

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

	
 
dyp_item_star_map_copy = obj {
 
    nam = "dyp_item_star_map";
 
    disp = "Карта небесных огней(копия)";
 
    inv = [[Металлическая табличка, испещренная непонятными вам линиями и символами. Письмена напоминают навьярские лишь очень отдаленно и вы даже не предполагаете, что они могут значить. ]];
 
};
 

	
 
dyp_crab_fight_intro = cutscene("dyp_crab_fight_intro", "Пещера", [[Впереди, вы замечаете какое-то движение. Луч прожетора выхватывает огромные острые клешни гигантского краба, устремившегося к вам. Следом за ним вы видите множество крабов поменьше, также ползущих к вам на своих тонких острых ногах. ]], "dyp_crab_fight");
 

	
 
dyp_crab_fight_win = cutscene("dyp_crab_fight_win", "Пещера", [[Отбившись от крабов, вы остаетесь одни в темном лабиринте пещер. ]], "dyp_crab_cave");
 

	
 
dyp_cmbt_learr = combatant {
 
    nam = "dyp_cmbt_learr";
 
    disp2 = "Леарр";
 
    disp3 = "Леарр";
 
    x = 5;
 
    y = 7;
 
    pic = "images/learr.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasSpear = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Леарр ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        for i = 1,#enemies do
 
            print(enemies[i].p.l);
 
        end;
 
        -- AI Order:
 
        -- If has spear and enemy is far   - throw spear
 
        -- If has spear and enemy is close - hit with spear
 
        -- if spear is nearer than any enemy - walk towards spear
 
        -- walk towards nearest enemy
 
        -- If enemy close and enemy has spear - take spear from enemy
 
        -- If enemy close and enemy doesn't have spear - hit with claws
 

	
 
        if s.hasSpear then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                else
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                else
 
                    pn("Леарр бьет " .. enemy.disp2 .. " копьем, но промахивается. ");
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Леарр бьет " .. enemy.disp2 .. " копьем и попадает. ");
 
                return;
 
            end;
 
        else
 
            if (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                enemy.hp = enemy.hp - 1;
 
                pn("Леарр бьет " .. enemy.disp2 .. " и попадает. ");
 
                return;
 
            end;
 
        end;
 
        
 
        s.x = path.p[2][1];
 
        s.y = path.p[2][2];
 
        pn("Леарр идет к " .. enemy.disp3 .. ". ");
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Леарр} готова к бою. ]];
 
        else
 
            return [[ {Леарр} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_cmbt_wright = combatant {
 
    nam = "za_cmbt_wright";
 
    disp2 = "Райта";
 
    disp3 = "Райту";
 
    x = 5;
 
    y = 7;
 
    pic = "images/jack.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasHarpoon = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Райт ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        
 
        if (s.x ~= 6 or s.y ~=3) then
 
            local ppath = here():getWalkDistance(s.x, s.y, 6, 3);
 
            if (ppath.l < path.l) then
 
                s.x = ppath.p[2][1];
 
                s.y = ppath.p[2][2];
 
                pn("Райт идет к укрытию");
 
            end;
 
        end;
 
        
 
        -- AI Order:
 
        -- If has harpoon and enemy is far - shoot
 
        -- If has harpoon and enemy is close - hit with harpoon
 
        -- walk towards nearest enemy
 
        
 
        if (s.hasHarpoon) then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Райт бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Райт бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                return;
 
            else
 
                local dist = math.sqrt((s.x - here().plX) * (s.x - here().plX) + (s.y - here().plY) * (s.y - here().plY));--here().getDistance(here().plX, here().plY, s.x, s.y);
 
                if (rnd(4) > dist - 2) then
 
                    s.hasSpear = false;
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Райт стреляет в " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Райт стреляет в " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            end;
 
        else
 
            s.hasHarpoon = true;
 
            pn("Райт перезаряжает ружье. ");
 
        end;
 
        
 
        s.x = path.p[2][1];
 
        s.y = path.p[2][2];
 
        pn("Райт идет к " .. enemy.disp3 .. ". ");
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Райт} готов к бою. ]];
 
        else
 
            return [[ {Райт} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_cmbt_radcliffe = combatant {
 
    nam = "dyp_cmbt_radcliffe";
 
    disp2 = "Рэклиффа";
 
    disp3 = "Рэдклиффу";
 
    x = 5;
 
    y = 7;
 
    pic = "images/walter.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasHarpoon = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Рэдклифф ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        
 
        if (s.x ~= 6 or s.y ~=3) then
 
            local ppath = here():getWalkDistance(s.x, s.y, 6, 3);
 
            if (ppath.l < path.l) then
 
                s.x = ppath.p[2][1];
 
                s.y = ppath.p[2][2];
 
                pn("Рэдклифф идет к укрытию");
 
            end;
 
        end;
 
        
 
        -- AI Order:
 
        -- If has harpoon and enemy is far - shoot
 
        -- If has harpoon and enemy is close - hit with harpoon
 
        -- walk towards nearest enemy
 
        
 
        if (s.hasHarpoon) then
 
            if (math.abs(s.x - enemy.x) + math.abs(s.y - enemy.y) <= 2 and here():canShoot(s.x,s.y, enemy.x, enemy.y)) then
 
                --50%
 
                if (rnd(2) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif  (math.abs(s.x - enemy.x) == 1 and math.abs(s.y - enemy.y) == 1) then
 
                --75%
 
                if (rnd(4) > 1) then
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            elseif (math.abs(s.x - enemy.x) == 1 and s.y == enemy.y or
 
                s.x == enemy.x and math.abs(s.y - enemy.y) == 1) then
 
                --100%
 
                enemy.hp = enemy.hp - 2;
 
                pn("Рэдклифф бьет " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                return;
 
            else
 
                local dist = math.sqrt((s.x - here().plX) * (s.x - here().plX) + (s.y - here().plY) * (s.y - here().plY));--here().getDistance(here().plX, here().plY, s.x, s.y);
 
                if (rnd(4) > dist - 2) then
 
                    s.hasSpear = false;
 
                    enemy.hp = enemy.hp - 2;
 
                    pn("Рэдклифф стреляет в " .. enemy.disp2 .. " гарпуном и попадает. ");
 
                else
 
                    pn("Рэдклифф стреляет в " .. enemy.disp2 .. " гарпуном, но промахивается. "); 
 
                end;
 
                return;
 
            end;
 
        else
 
            s.hasHarpoon = true;
 
            pn("Рэдклифф перезаряжает ружье. ");
 
        end;
 
        
 
        s.x = path.p[2][1];
 
        s.y = path.p[2][2];
 
        pn("Рэдклифф идет к " .. enemy.disp3 .. ". ");
 
    end;
 
    dsc = function(s)
 
        if (s.hp > 0) then
 
            return [[ {Рэдклифф} готов к бою. ]];
 
        else
 
            return [[ {Рэдклифф} без сознания. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_cmbt_anna = combatant {
 
    nam = "dyp_cmbt_anna";
 
    disp2 = "Анну";
 
    disp3 = "Анне";
 
    x = 5;
 
    y = 7;
 
    pic = "images/anna.png";
 
    ally = "Я не буду атаковать союзника.";
 
    nohit = "Я не буду атаковать союзника.";
 
    noshoot = "Я не буду атаковать союзника.";
 
    hp = 10;
 
    hasHarpoon = true;
 
    make_turn = function(s)
 
        local enemies = {  };
 
        for item=1,#here().obj do
 
            local obj = here().obj[item];
 
            if (obj.enemy and obj.hp > 0) then
 
                local p = here():getWalkDistance(s.x, s.y, obj.x, obj.y);
 
                if (p) then
 
                    table.insert(enemies, {
 
                        o = obj,
 
                        p = p
 
                    });
 
                end;
 
            end;
 
        end;
 
        if (#enemies == 0) then
 
            pn("Анна ждет. ");
 
            return;
 
        end;
 
        table.sort(enemies, function(a, b)
 
            return (a.p.l < b.p.l);
 
        end);
 
        local enemy = enemies[1].o;
 
        local path = enemies[1].p;
 
        
 
        if (s.x ~= 6 or s.y ~=3) then
startup.lua
Show inline comments
 
global {
 
    warehouse18_found = false;
 
    warehouse32_found = false;
 
    warehouse32_visited = false;   
 
    dock_found = false;
 
    leviathan_discovered = false;
 
    atlantis_found = false;
 
    temple_found = false;
 
    iraaphaanotrr_found = false;
 
    dypatreanotrr_found = false;
 
    venaedanotrr_found = false;
 
    nleyyslanotrr_found = false;
 
    iraaphaanotrr_temple_found = false;
 
    dypatreanotrr_temple_found = false;
 
    venaedanotrr_temple_found = false;
 
    nleyyslanotrr_temple_found = false;
 
    deep_temple_found = false;
 
    lseryanotrr_found = false;
 
    
 
    rel_phaetlarr = 0;
 
    rel_walter = 0;
 
    rel_learr = 0;
 
    rel_anna = 0;
 
    rel_jack = 0;
 
    language_known = false;
 
    cart_known = false;
 
    
 
    dt_code = {};
 
    dt_buttons = {};
 
    
 
    --Глобальные состояния(для концовок)
 
    conflict_resolved = false; -- Решен ли конфликт между навьярами
 
    artifacts_returned = false; -- Вернили ли артефакты из храма навьярам?
 
    wright_state = 0; -- был взят Райт на борт или нет
 
    goldman_state = 0; -- 0 - Голдман не раскрыт, 1 - Голдман казнен, 2 - Голдман задержан, 3 - Голдман изгнан
 
    leroy_state = 0; -- 0 - Леруа не раскрыт, 1 - Леруа казнен, 2 - Леруа задержан, 3 - Леруа изгнан
 
    iraa_scepter = false; -- был ли возвращен скипетр в Ираафаанотр
 
    iraa_map = false; -- был ли возвращен оригинал карты в Ираафаанотр
 
    dyp_map = false; -- Передана ли карта(оригинал или копия в Дипатреанотр)
 
    svetlova_help = 0; -- Дополнительная помощь, оказанная Светловой в исследовании навьяров --увеличивается, если показать ей КНО и скипетр
 
};
 

	
 
game.enable_save = function ()
 
    if here().nosave then
 
        return false;
 
    end;
 
    return true;
 
end;
 

	
 
game.enable_autosave = function ()
 
    if here().noautosave then
 
        return false;
 
    end;
 
    return true;
 
end;
 

	
 

	
 
player_drake = player {
 
    var {
 
        hp = 10;
 
        has_light = false;
 
        party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]};
 
        companion = nil;
 
        money = 200;
 
    };
 
    nam = "player";
 
    disp = "Дэвид Дрейк";
 
    disp2 = "Дрейка";
 
    disp3 = "Дрейку";
 
    where = 'port';
 
    
 
    obj = {'hp_indicator', 'item_umbrella', 'item_charts', 'item_note_1', 'item_money', "item_bankbook"};
 
    
 
    pay = function(s, c)
 
        if (s.money >= c) then
 
            s.money = s.money - c;
 
            return true;
 
        else
 
            return false;
 
        end;
 
    end;
 
};
 

	
 
intro = room {
 
    nam = "intro";
 
    hideinv = true;
 
    disp = "Вступление";
 
    dsc = [[
 
        ВНИМАНИЕ: Это специальная предварительная версия игры. Ни один фрагмент игры не является финальным.^^
 
        Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка -- единственного сына богатого и уважаемого владельца транспортной компании "Вестхейвен Трансоушен". ^
 
        Несколько лет назад, когда Дэвиду было 10 лет, Уильям таинственным образом бесследно пропал. Полицейское расследование вскоре зашло в тупик и было прекращено. Через несколько месяцев компания, оставшаяся без своего владельца, обанкротилась, ее имущество распродается. ^
 
        После исчезновения отца Дэвид жил в Вашингтоне с бабушкой. Он пошел по стопам отца и выучился на инженера-кораблестроителя. Несколько дней назад в доме, где он жил, был обнаружен тайник, хранящий секретные документы отца -- карты, указывающие, по-видимому, на какие-то тайники Уильяма и записка с адресом и именем.^
 
        Одержимый идеей узнать больше, Дэвид отправляется в Лондон...
 
    ]];
 
    obj = {
 
        vway("Начать игру", "{Начать игру}", 'aurora_borealis');
 
    }
 
};
 

	
 
game.nam = "Пробуждение";
 
game.dsc = [[
 
    Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка, сына владельца крупной транспортной компании "Вестхейвен Трансоушен". Несколько лет назад Уильям Дрейк, отец главного героя бесследно пропадает. Компания вскоре разваливается. Поиски ни к чему не приводят. Когда казалось бы уже все потеряно, в доме Дрейков находят тайник с документами Уильяма. Несколько схем строений, принадлежащих компании и клочок бумаги с адресом некоего Майкла Райта в Лондоне. Естественно, Дэвид как можно скорее отправляется в Великобританию...
 
    Вам предстоит отыскать подводную лодку, посетить подводную станцию, построенную Уильямом, встретить древнюю расу подводных жителей, поучаствовать в событиях, описанных древними легендами этой расы и узнать, что стало с Уильямом Дрейком.
 
]];
 

	
 
game_act_phrases = {
 
    "Вы не знаете, что с этим делать. ";
 
    "Вам нет смысла это трогать. ";
 
    "Вам это ничем не поможет. ";
 
    "Это бессмысленно. ";
 
    "Незачем это трогать. ";
 
};
 

	
 
game_use_phrases = {
 
    "Вам это ничем не поможет. ";
 
    "Это бессмысленно. ";
 
    "Вы не знаете, как это сделать. "
 
};
 

	
 
game.act = function(s)
 
    return game_act_phrases[rnd(#game_act_phrases)];
 
end;
 

	
 
game.use = function(s)
 
    return game_use_phrases[rnd(#game_use_phrases)];
 
end;
 
game.inv = "INV: Если вы видите это сообщение -- это баг. ";
 

	
 
preview_unavailable_learr = game_over("preview_unavailable_learr", [[Спасти Леарр у обитателей Атлантиды не получилось. Гибель навьярессы поставила под угрозу многое, чего удалось добиться экипажу станции за долгие годы под водой. ^^Узнать, что произошло дальше, вы сможете в полной версии игры.^^Вы можете загрузить игру и попробовать спасти Леарр самостоятельно. ]]);
 
preview_unavailable_learr = game_over("preview_unavailable_learr", [[Спасти Леарр у обитателей Атлантиды не получилось. Гибель навьярессы поставила под угрозу многое, чего удалось добиться персоналу станции за долгие годы под водой. ^^Узнать, что произошло дальше, вы сможете в полной версии игры.^^Вы можете загрузить игру и попробовать спасти Леарр самостоятельно. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]]);
 

	
 
preview_unavailable_rayfish = game_over("preview_unavailable_rayfish", [[Убив ската, вы восстанавливаете против себя всех навьяров из Дипатреанотра и Ираафаанотра. В ваших дальнейших поисках вам придется расчитывать только на себя.^^Узнать, что произошло дальше, вы сможете в полной версии игры.^^Вы можете загрузить игру и попробовать обойтись без убийства ската. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]]);
 

	
 
preview_unavailable_rayfish = game_over("preview_unavailable_rayfish", [[Убив ската, вы восстанавливаете против себя всех навьяров из Дипатреанотра и Ираафаанотра. В ваших дальнейших поисках вам придется расчитывать только на себя.^^Узнать, что произошло дальше, вы сможете в полной версии игры.^^Вы можете загрузить игру и попробовать обойтись без убийства ската. ]]);
 
preview_unavailable_venaedanotrr = cutscene("preview_unavailable_venaedanotrr", "Предварительная версия", [[Левиафан полным ходом несется вдаль, к невиданным доселе навьярским поселениям. Кто знает, какие приключения ждут вас и остальных членов экипажа субмарины?^^Узнать, что произошло дальше, вы сможете в полной версии игры. Если вы не собрали оба фрагмента карты, то вы можете продолжить игру. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]], "leviathan_wheelhouse");
 

	
 
preview_unavailable_venaedanotrr = cutscene("preview_unavailable_venaedanotrr", "Спасибо за игру", [[Левиафан полным ходом несется вдаль, к невиданным доселе навьярским поселениям. Кто знает, какие приключения ждут вас и остальных членов экипажа субмарины?^^Узнать, что произошло дальше, вы сможете в полной версии игры. Если вы не собрали три фрагмента карты, то вы можете продолжить игру. ^^Поздравляем с успешным прохождением предварительной версии игры. Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]], "leviathan_wheelhouse");
 
preview_unavailable_dypatreanotrr = cutscene("preview_unavailable_dypatreanotrr", "Предварительная версия", [[Вы входите в пещеру в поисках очередного фрагмента карты. Какие испытания предстоит вам преодолеть, прежде, чем вы найдете его? Вы узнаете это в полной версии игры. Если вы не собрали оба фрагмента карты, то вы можете продолжить игру. ^^Мы ждем ваших отзывов на почту: inbox@silverwing.one^Следите за выходом новых версий на нашем сайте: awakening.silverwing.one]], "dyp_temple_cave_entrance");
 

	
 
function init()
 
    ---modules init
 
    pl = player_drake;
 
    require "dbg";
 
    atlantis_init();
 
    leviathan_init();
 
    warehouse18_init();
 
    warehouse32_init();
 
    
 
    local nums = {1,2,3,4,5,6};
 
    for i = 1, 4 do 
 
        local index = rnd(#nums);
 
        table.insert(dt_code, nums[index]);
 
        table.remove(nums, index);
 
    end;
 
    nums = {1,2,3,4,5,6};
 
    for i = 1, 3 do 
 
        local index = rnd(#nums);
 
        table.insert(dt_buttons, nums[index]);
 
        table.remove(nums, index);
 
    end;
 
    ---game init
 
    pl.where = intro;
 
    ---debug
 
    
 
    --pl.where = "item_book_dlg";
 
    --pl.where = "dyp_obelisk_puzzle";
 
    --language_known = true;
 
    --put("item_toolbox", pl);
 
    --put("item_electric_lamp", pl);
 
    --put("item_dynamo", pl);
 
    --put("item_toolbox", pl);
 
    --put("item_cogs", pl);
 
    --put("item_ducttape", pl);
 
    --put("item_electrodes", pl);
 
    --pl.where = dock_2;
 
    --pl.where = warehouse_32;
 
    --put(item_lamp, pl);
 
    --language_known = true;
 
    --pl.where = "leviathan_airlock";
 
    --move(submarine_leviathan, "iyh_rear_entrance_foot");
 
    --put(item_suit, pl);
 
    --put(item_suit, pl);
 

	
 
    --pl.where = "atlantis_intro_dock";
 

	
 
    ---leviathan
 
    --submarine_leviathan.airpump = false;
 
    --[[
 
    leviathan_airlock.has_light = true;
 
    leviathan_wardroom.has_light = true;
 
    leviathan_wheelhouse.has_light = true;
 
    leviathan_corridor.has_light = true;
 
    leviathan_cabin_1.has_light = true;
 
    leviathan_cabin_2.has_light = true;
 
    leviathan_cabin_3.has_light = true;
 
    leviathan_cabin_4.has_light = true;
 
    leviathan_cabin_5.has_light = true;
 
    leviathan_captains_cabin.has_light = true;
 
    leviathan_cargo_hold.has_light = true;
 
    leviathan_engines.has_light = true;
 
    leviathan_lower_deck.has_light = true;
 
    leviathan_life_support.has_light = true;
 
    submarine_leviathan.air_level = 432000;
 
    submarine_leviathan.battery = true; 
 
    submarine_leviathan.battery_charge = 100;
 
    submarine_leviathan.circuit_breaks = 0;
 
    submarine_leviathan.valves_to_replace = 0;
 
    submarine_leviathan.power_on = true
 
    pl.party = {'wright', 'learr'};
 
    char_learr.follow = true;
 
    atlantis_found = true;--]]
 
    --take(item_colt);
 
    --take(item_harpoon);
 
   -- checkers_game:reset();
 
    --pl.where = "checkers_game";
 
    --- iraaphaanotrr
 
   --move(submarine_leviathan, "iraa_temple_entrance");
 
    --[[
 
    ---IYH
 
    lifeon(char_learr);
 
    lifeon(char_wright);
 
    lifeon(char_radcliffe);
 
    lifeon(char_anna);
 
    lifeon(char_aikerjarr_lev);
 
    pl.party = {'learr', 'wright', 'radcliffe', 'anna'};
 
    atlantis_found = true;
 
    move(submarine_leviathan, "ctt_dyp_temple_entrance");
 
    --move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
    pl.where = leviathan_wheelhouse;
 
    submarine_leviathan.battery = true; -- Состояние батареи 
 
    submarine_leviathan.battery_charge = 100; -- Уровень заряда батареи
 
    submarine_leviathan.circuit_breaks = 0; -- Разрывы цепи
 
    submarine_leviathan.valves_to_replace = 0; -- Количество клапанов, которые нужно заменить для полноценной работы
 
    submarine_leviathan.power_on = true; -- включена ли энергия
 
    submarine_leviathan.air_level = 432000; -- запас воздуха. Максимум - 5 дней(5 * 24 * 60 * 60 = 432000)
 
    submarine_leviathan.airpump = false;
 
    leviathan_airlock.has_light = true;
 
    leviathan_wardroom.has_light = true;
 
    leviathan_wheelhouse.has_light = true;
 
    leviathan_corridor.has_light = true;
 
    leviathan_cabin_1.has_light = true;
 
    leviathan_cabin_2.has_light = true;
 
    leviathan_cabin_3.has_light = true;
 
    leviathan_cabin_4.has_light = true;
 
    leviathan_cabin_5.has_light = true;
 
    leviathan_captains_cabin.has_light = true;
 
    leviathan_cargo_hold.has_light = true;
 
    leviathan_engines.has_light = true;
 
    leviathan_lower_deck.has_light = true;
 
    leviathan_life_support.has_light = true;
 
    --]]
 
    
 
    --- Chapter 1: Atlantis
 
    --[[submarine_leviathan.battery = true; -- Состояние батареи 
 
    submarine_leviathan.battery_charge = 100; -- Уровень заряда батареи
 
    submarine_leviathan.circuit_breaks = 0; -- Разрывы цепи
 
    submarine_leviathan.valves_to_replace = 0; -- Количество клапанов, которые нужно заменить для полноценной работы
 
    submarine_leviathan.power_on = true; -- включена ли энергия
 
    submarine_leviathan.air_level = 432000; -- запас воздуха. Максимум - 5 дней(5 * 24 * 60 * 60 = 432000)
 
    submarine_leviathan.airpump = false;
 
    leviathan_airlock.has_light = true;
 
    leviathan_wardroom.has_light = true;
 
    leviathan_wheelhouse.has_light = true;
 
    leviathan_corridor.has_light = true;
 
    leviathan_cabin_1.has_light = true;
 
    leviathan_cabin_2.has_light = true;
 
    leviathan_cabin_3.has_light = true;
 
    leviathan_cabin_4.has_light = true;
 
    leviathan_cabin_5.has_light = true;
 
    leviathan_captains_cabin.has_light = true;
 
    leviathan_cargo_hold.has_light = true;
 
    leviathan_engines.has_light = true;
 
    leviathan_lower_deck.has_light = true;
 
    leviathan_life_support.has_light = true;
 
    
 
    pl.party = {'wright'};
 
    put(item_toolbox, pl);
 
    put(item_ducttape, pl);
 
    pl.where = "leviathan_airlock";
 
    atlantis_found = true;
 
    move(submarine_leviathan, "atl_aqua_leviathan_dock");
 
    submarine_leviathan:enable();   ]]
 
           
 
    --ven_temple_l1.position = "66";   
 
    --put(item_ven_tablet, pl);
 
    --put(item_harpoon, pl);
 
    --put(item_colt, pl);
 
    --ven_shark.position = "55";
 
    --pl.where = "za_plaetlarr_fight";
 
    --pl.where = "lse_final_battle";
 
    --move(submarine_leviathan, "za_temple_back_entrance_foot");
 
    --char_anna.follow = true;
 
    --pl.where = "ven_chest_look";
 
    --move(ven_shark, "ven_temple_l1");
 
    
 
    --put(item_suit, pl);
 
    
 
    -- pl.where = warehouse_32;
 
    -- pl.where = w32_mgr;
 
    
 
    -- put(item_cogs, pl);
 
    -- put(item_pump_details, pl);
 
    -- put(item_electrodes, pl);
 
    --put(item_lamp, pl);
 
    -- pl.where = aurora_borealis;
 
    -- move(submarine_leviathan, first_city_entrance);
 
    -- move(submarine_leviathan, first_city_outer_east);
 
    -- walk(final_scene);
 
    -- walk(leviathan_wardroom);
 
    -- walk(leviathan_wardroom);
 
    -- put("char_learr", "leviathan_wardroom");
 
    -- put("char_phaetlarr", "leviathan_engines");
 
    -- put("char_radcliffe", "leviathan_engines");
 
    -- put("char_wright", "leviathan_wardroom");
 
    -- pl.where = leviathan_airlock;
 
    -- pl.where = hotel_street;
 
    -- pl.where = warehouse_32_entry;
 
    -- dock_found = true;
 
end; 
0 comments (0 inline, 0 general)