Changeset - 6d19230f522f
[Not reviewed]
default
0 1 0
Silverwing - 6 years ago 2019-01-27 14:50:07

learr will not appear in party when leaving temple through backdoor
1 file changed with 1 insertions and 1 deletions:
0 comments (0 inline, 0 general)
atlantis_iyhehevjiarr.lua
Show inline comments
 
@@ -365,769 +365,769 @@ iyh_fight_sonic = obj {
 
iyh_fight_recharge = obj {
 
    nam = "iyh_fight_torpedo";
 
    dsc = "{Перезарядить торпеды}^";
 
    act = function(s)
 
        --Если в партии нет никого кроме Леарр/Аикерьярра, то игрок перезаряжает торопеды сам, иначе -- отдает приказ
 
        if (ArrayUtils.indexOf(pl.party, 'wright') ~= 0 or ArrayUtils.indexOf(pl.party, 'radcliffe') ~= 0) then
 
            pr "Вы отдаете по телефону приказ перезарядить торпедные аппараты. ";
 
        else
 
            pr "Вы спускаетесь вниз, чтобы перезарядить торпедные аппараты. ";
 
            iyh_fight:maketurn();
 
            iyh_fight:maketurn();
 
            pr "Вы возвращаетесь в рубку, чтобы продолжить бой. "
 
        end;
 
    end;
 
};
 
 
iyh_advance_full = obj {
 
    nam = "iyh_advance_full";
 
    dsc = "{Полный вперед}^";
 
    act = function(s)
 
        pr "Вы включаете двигатели на полную мощность. ";
 
        if (iyh_fight.distance >= 0) then
 
            iyh_fight.distance = iyh_fight.distance - 100;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance - 100;
 
            if (iyh_fight.distance < 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        else
 
            iyh_fight.distance = iyh_fight.distance + 100;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance + 100;
 
            if (iyh_fight.distance >= 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        end;
 
        iyh_fight:maketurn();
 
    end;
 
};
 
 
iyh_advance_half = obj {
 
    nam = "iyh_advance_half";
 
    dsc = "{1/2 вперед}^";
 
    act = function(s)
 
        pr "Вы включаете двигатели на половину мощности. ";
 
        if (iyh_fight.distance >= 0) then
 
            iyh_fight.distance = iyh_fight.distance - 50;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance - 50;
 
            if (iyh_fight.distance < 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        else
 
            iyh_fight.distance = iyh_fight.distance + 50;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance + 50;
 
            if (iyh_fight.distance >= 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        end;
 
        iyh_fight:maketurn();
 
    end;
 
};
 
 
iyh_advance_quarter = obj {
 
    nam = "iyh_advance_quarter";
 
    dsc = "{1/4 вперед}^";
 
    act = function(s)
 
        pr "Вы включаете двигатели на четверть мощности. ";
 
        if (iyh_fight.distance >= 0) then
 
            iyh_fight.distance = iyh_fight.distance - 25;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance - 25;
 
            if (iyh_fight.distance < 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        else
 
            iyh_fight.distance = iyh_fight.distance + 25;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance + 25;
 
            if (iyh_fight.distance >= 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        end;
 
        iyh_fight:maketurn();
 
    end;
 
};
 
 
iyh_retreat_full = obj {
 
    nam = "iyh_retreat_full";
 
    dsc = "{Полный назад}^";
 
    act = function(s)
 
        pr "Вы включаете двигатели на полную мощность. ";
 
        if (iyh_fight.distance >= 0) then
 
            iyh_fight.distance = iyh_fight.distance + 100;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance + 100;
 
            if (iyh_fight.distance < 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        else
 
            iyh_fight.distance = iyh_fight.distance - 100;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance - 100;
 
            if (iyh_fight.distance >= 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        end;
 
        iyh_fight:maketurn();
 
    end;
 
};
 
 
iyh_retreat_half = obj {
 
    nam = "iyh_retreat_half";
 
    dsc = "{1/2 назад}^";
 
    act = function(s)
 
        pr "Вы включаете двигатели на половину мощности. ";
 
        if (iyh_fight.distance >= 0) then
 
            iyh_fight.distance = iyh_fight.distance + 50;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance + 50;
 
            if (iyh_fight.distance < 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        else
 
            iyh_fight.distance = iyh_fight.distance - 50;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance - 50;
 
            if (iyh_fight.distance >= 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        end;
 
        iyh_fight:maketurn();
 
    end;
 
};
 
 
iyh_retreat_quarter = obj {
 
    nam = "iyh_retreat_quarter";
 
    dsc = "{1/4 назад}^";
 
    act = function(s)
 
        pr "Вы включаете двигатели на четверть мощности. ";
 
        if (iyh_fight.distance >= 0) then
 
            iyh_fight.distance = iyh_fight.distance + 25;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance + 25;
 
            if (iyh_fight.distance < 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        else
 
            iyh_fight.distance = iyh_fight.distance - 25;
 
            iyh_fight.temple_distance = iyh_fight.temple_distance - 25;
 
            if (iyh_fight.distance >= 0) then
 
                pr "Вы проплываете мимо противника и разворачиваете субмарину. "
 
            end;
 
        end;
 
        iyh_fight:maketurn();
 
    end;
 
};
 
 
iyh_ravine_entry = room {
 
    nam = "Штурвал Левиафана";
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    dsc = [[Левиафан находится у входа в ущелье. Вдалеке по левому борту, на юго-западе, вы видите вход в навьярский храм. ]];
 
    hideinv = true;
 
    leviathan = true;
 
    way = {
 
        kh_vroom("[Отойти от штурвала]", function(s)
 
            return "leviathan_wheelhouse";
 
        end);
 
        kh_vroom("[Направить Левиафан в ущелье]", function(s)
 
            iyh_labyrinth.position = 1;
 
            iyh_labyrinth.direction = 1;
 
            return "iyh_labyrinth";
 
        end);
 
        kh_vroom("[Подвести Левиафан ко входу в храм]", function(s)
 
            move(submarine_leviathan, "iyh_near_temple_foot");
 
            return "iyh_near_temple";
 
        end);
 
        kh_vroom("[Отвести Левиафан назад]", function(s)
 
            move(submarine_leviathan, "iyh_far_from_entrance_foot");
 
            return "iyh_far_from_entrance";
 
        end);
 
    };
 
    entered = function(s)
 
        move(submarine_leviathan, iyh_ravine_entry_foot);
 
    end;   
 
};
 
 
iyh_ravine_entry_foot = room {
 
    nam = "Ущелье";
 
    no_exit = [[
 
        Нет смысла покидать Левиафан здесь. 
 
    ]];
 
    view = [[Левиафан находится у входа в ущелье. Вдалеке по левому борту, на юго-западе, вы видите вход в навьярский храм. ]];
 
};
 
 
--[[
 
    Описание структуры лабиринта. Каждый узел описан в двух направлениях
 
    1 - прямое
 
    2 - обратное
 
    направления обозначены как
 
    l - налево
 
    r - направо
 
    f - прямо
 
    выход описывается одной строкой, невыходы описываются парой "узел+направление"
 
]]
 
iyh_labyrinth_template = {
 
    [1]= {[1]={l={32, 1}, r={2, 1}}, 			[2]={f="iyh_ravine_entry"}};
 
    [2]= {[1]={f={3, 1}}, 						[2]={f={1,2}}};
 
    [3]= {[1]={l={5, 1}, f={4,1}},				[2]={f={2,2}}};
 
    [4]= {[1]={}, 								[2]={f={3,2}}};
 
    [5]= {[1]={l={37, 1}, f={6,1} },			[2]={f={3,2}}};
 
    [6]= {[1]={l={33, 1}, r={7,1}},  			[2]={f={5,2}}};
 
    [7]= {[1]={l={12,1}, f={11,1}, r={8,1}},	[2]={f={6,2}}};
 
    [8]= {[1]={l={10,1}, r={9,1}}, 				[2]={f={7,2}}};
 
    [9]= {[1]={}, 								[2]={f={8,2}}};
 
    [10]={[1]={}, 								[2]={f={8,2}, r={11,2}}};
 
    [11]={[1]={f={10,1}}, 						[2]={f={7,2}}};
 
    [12]={[1]={l={14,1}, f={13,1}}, 			[2]={f={7,2}}};
 
    [13]={[1]={}, 								[2]={f={12,2}}};
 
    [14]={[1]={f={15,1}, l={20,1}}, 			[2]={f={12,2}}};
 
    [15]={[1]={l={17,1}, r={16,1}}, 			[2]={f={14,2}}};
 
    [16]={[1]={}, 								[2]={f={15,2}}};
 
    [17]={[1]={l={19,1}, r={18,1}}, 			[2]={f={15,2}}};
 
    [18]={[1]={}, 								[2]={f={17,2}}};
 
    [19]={[1]={}, 								[2]={f={17,2}}};
 
    [20]={[1]={l={22,1}, f={21,1}}, 			[2]={f={14,2}}};
 
    [21]={[1]={}, 								[2]={f={20,2}}};
 
    [22]={[1]={l={25,1}, r={23,1}}, 			[2]={f={20,2}}};
 
    [23]={[1]={l="iyh_rear_entrance", r={24,1}},[2]={f={22,2}}};
 
    [24]={[1]={}, 								[2]={f={23,2}}};
 
    [25]={[1]={l={27,1},r={26,1}}, 				[2]={f={22,2}}};
 
    [26]={[1]={}, 								[2]={f={25,2}}};
 
    [27]={[1]={l={30,2}, f={29,1}, r={28,1}}, 	[2]={f={25,2}}};
 
    [28]={[1]={}, 								[2]={f={27,2}}};
 
    [29]={[1]={}, 								[2]={f={27,2}}};
 
    [30]={[1]={l={27,2}, r={36,1}}, 			[2]={f={31,2}}};
 
    [31]={[1]={l={30,1}, r={35,1}}, 			[2]={f={32,2}}};
 
    [32]={[1]={l={31,1}, r={34,1}}, 			[2]={f={1,2}}};
 
    [33]={[1]={}, 								[2]={l={6,2}, r={37,2}}};
 
    [34]={[1]={}, 								[2]={f={32,2}}};
 
    [35]={[1]={}, 								[2]={f={31,2}}};
 
    [36]={[1]={}, 								[2]={f={30,2}}};
 
    [37]={[1]={f={33,1}}, 						[2]={f={5,2}}};
 
};
 
 
iyh_labyrinth = room {
 
    var {
 
        position = 1;
 
        direction = 1;
 
    };
 
    no_exit = [[Нет смысла покидать Левиафан здесь. ]];
 
    nam = "Штурвал Левиафана";
 
    leviathan = true;
 
    forcedsc = true;
 
    entered = function(s)
 
        s:update();
 
    end;   
 
    dsc = function(s)
 
        pr [[Вы находитесь в глубоком и узком ущелье. ]];
 
        if (iyh_labyrinth_template[s.position][s.direction]["f"]) then
 
            pr [[Ущелье продолжается вперед. ]];
 
        end;
 
        if (iyh_labyrinth_template[s.position][s.direction]["l"] and iyh_labyrinth_template[s.position][s.direction]["r"]) then
 
            pr [[Влево и вправо уходят ответвления. ]];
 
        elseif (iyh_labyrinth_template[s.position][s.direction]["l"]) then
 
            pr [[Влево уходит ответвление. ]];
 
        elseif (iyh_labyrinth_template[s.position][s.direction]["r"]) then
 
            pr [[Вправо уходит ответвление. ]];
 
        elseif (not iyh_labyrinth_template[s.position][s.direction]["f"]) then
 
            pr [[Дальше пути нет. ]];
 
        end;
 
    end;
 
    update = function(s)
 
        iyh_lab_forward:disable();
 
        iyh_lab_left:disable();
 
        iyh_lab_right:disable();
 
        if (iyh_labyrinth_template[s.position][s.direction]["f"]) then    
 
            iyh_lab_forward:enable();
 
        end;
 
        if (iyh_labyrinth_template[s.position][s.direction]["l"]) then    
 
            iyh_lab_left:enable();
 
        end;
 
        if (iyh_labyrinth_template[s.position][s.direction]["r"]) then    
 
            iyh_lab_right:enable();
 
        end;
 
    end;
 
    obj = {
 
        "iyh_lab_left",
 
        "iyh_lab_forward",
 
        "iyh_lab_right",
 
        "iyh_lab_turn"
 
    };
 
};
 
 
iyh_lab_forward = obj {
 
    nam = "iyh_lab_forward";
 
    dsc = "{Вперед}^";
 
    act = function(s)
 
        pr [[Вы продолжаете движение. ]];
 
        local p = iyh_labyrinth.position;
 
        local d = iyh_labyrinth.direction;
 
 
        if (type(iyh_labyrinth_template[p][d]["f"]) == 'string') then
 
            walk(iyh_labyrinth_template[p][d]["f"]);
 
        else
 
            iyh_labyrinth.position = iyh_labyrinth_template[p][d]["f"][1];
 
            iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["f"][2];
 
        end;
 
 
        iyh_labyrinth:update();
 
    end;
 
};
 
 
iyh_lab_left = obj {
 
    nam = "iyh_lab_left";
 
    dsc = "{Налево}^";
 
    act = function(s)
 
        pr [[Вы сворачиваете налево. ]];
 
        local p = iyh_labyrinth.position;
 
        local d = iyh_labyrinth.direction;
 
 
        if (type(iyh_labyrinth_template[p][d]["l"]) == 'string') then
 
            walk(iyh_labyrinth_template[p][d]["l"]);
 
        else
 
            iyh_labyrinth.position = iyh_labyrinth_template[p][d]["l"][1];
 
            iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["l"][2];
 
        end;
 
 
        iyh_labyrinth:update();
 
    end;
 
};
 
 
iyh_lab_right = obj {
 
    nam = "iyh_lab_right";
 
    dsc = "{Направо}^";
 
    act = function(s)
 
        pr [[Вы сворачиваете направо. ]];
 
        local p = iyh_labyrinth.position;
 
        local d = iyh_labyrinth.direction;
 
 
        if (type(iyh_labyrinth_template[p][d]["r"]) == 'string') then
 
            walk(iyh_labyrinth_template[p][d]["r"]);
 
        else
 
            iyh_labyrinth.position = iyh_labyrinth_template[p][d]["r"][1];
 
            iyh_labyrinth.direction = iyh_labyrinth_template[p][d]["r"][2];
 
        end;
 
 
        iyh_labyrinth:update();
 
    end;
 
};
 
 
iyh_lab_turn = obj {
 
    nam = "iyh_lab_turn";
 
    dsc = "{Развернуться}^";
 
    act = function(s)
 
        pr [[Вы разворачиваете субмарину. ]];
 
        if (iyh_labyrinth.direction == 1) then
 
            iyh_labyrinth.direction = 2;
 
        else
 
            iyh_labyrinth.direction = 1;
 
        end;
 
 
        iyh_labyrinth:update();
 
    end;
 
};
 
 
iyh_rear_entrance = room {
 
    nam = "Левиафан";
 
    leviathan = true;
 
    dsc = [[Вы находитесь в конце ущелья. Луч прожектора освещает небольшой проход в скале. ]];
 
    way = {
 
        kh_vroom("Отойти от штурвала", "leviathan_wheelhouse");
 
        kh_vroom("В ущелье", function(s)
 
            iyh_labyrinth.position = 23;
 
            iyh_labyrinth.direction = 2;
 
            return "iyh_labyrinth";
 
        end);
 
    };
 
    entered = function(s)
 
        move(submarine_leviathan, iyh_rear_entrance_foot);
 
    end;
 
};
 
 
iyh_rear_entrance_foot = room {
 
    nam = "Ущелье";
 
    dsc = [[Узкое глубокое ущелье. Вы находитесь в одном из его концов. В скале вы видите небольшой проход явно искусственного происхождения. ]];
 
    view = [[Левиафан находится в одном из тупиков изкого глубокого ущелья. В скале перед субмариной виден небольшой проход искусственного происхождения. Преактически неприметный проем сейчас освещен ярким лучом прожектора вашей субмарины. ]];
 
    underwater = true;
 
    handwheel_room = "iyh_rear_entrance";
 
    way = {
 
        kh_vroom("В Левиафан", "leviathan_airlock");
 
        kh_vroom("В проход", "iyh_temple_rear_corridor_entry");
 
    };
 
    entered = function(s)
 
        if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and not char_learr.follow) then
 
        if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and not char_learr.follow and where(submarine_leviathan) == here()) then
 
            pr [[Леарр входит в шлюз вслед за вами: "Я вместе-с-тобой-пойду". ]];
 
            char_learr:accompany(true);
 
            char_radcliffe:accompany(false);
 
            char_wright:accompany(false);
 
            char_anna:accompany(false);
 
        elseif (ArrayUtils.indexOf(pl.party, 'aikerjarr') ~= 0 and not char_aikerjarr_lev.follow) then
 
            pr [[Аикерьярр входит в шлюз вслед за вами: "Я с-тобой-пойду". ]];
 
            char_aikerjarr_lev:accompany(true);
 
            char_radcliffe:accompany(false);
 
            char_wright:accompany(false);
 
            char_anna:accompany(false);
 
        end;
 
 
        path("В Левиафан"):disable();
 
        if (where(submarine_leviathan) == here()) then
 
            path("В Левиафан"):enable();
 
        end;
 
    end;
 
};
 
 
iyh_temple_rear_corridor_entry = room {
 
    nam = "Коридор";
 
    dsc = [[
 
        Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы.
 
    ]];
 
    underwater = true;
 
    way = {
 
        kh_vroom("Выйти", "iyh_rear_entrance_foot");
 
        kh_vroom("В левую комнату", "iyh_left_room_1");
 
        kh_vroom("В правую комнату", "iyh_right_room_1");
 
        kh_vroom("Пройти дальше", "iyh_temple_rear_corridor_middle");
 
    };
 
};
 
 
iyh_temple_rear_corridor_middle = room {
 
    nam = "Коридор";
 
    dsc = [[Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. ]];
 
    underwater = true;
 
    way = {
 
        kh_vroom("К задней двери", "iyh_temple_rear_corridor_entry");
 
        kh_vroom("В левую комнату", "iyh_left_room_2");
 
        kh_vroom("В правую комнату", "iyh_right_room_2");
 
        kh_vroom("К главному залу", "iyh_temple_rear_corridor_end");
 
    };
 
};
 
 
iyh_temple_rear_corridor_end = room {
 
    nam = "Коридор";
 
    dsc = [[Темный узкий и невысокий коридор. По обе стороны коридора вы видите дверные проемы. Перед вами расположен проход, ведущий в основное помещение храма. ]];
 
    underwater = true;
 
    way = {
 
        kh_vroom("К задней двери", "iyh_temple_rear_corridor_middle");
 
        kh_vroom("В левую комнату", "iyh_left_room_3");
 
        kh_vroom("В правую комнату", "iyh_right_room_3");
 
        kh_vroom("В главный зал", "iyh_temple_main_hall_end");
 
    };
 
};
 
 
iyh_left_room_1 = room {
 
    nam = "Комната";
 
    underwater = true;
 
    dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
    way = {
 
        kh_vroom("В коридор", "iyh_temple_rear_corridor_entry");
 
    };
 
};
 
 
iyh_right_room_1 = room {
 
    nam = "Комната";
 
    underwater = true;
 
    dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
    way = {
 
        kh_vroom("В коридор", "iyh_temple_rear_corridor_entry");
 
    };
 
    obj = {
 
        "item_legend_of_hunter"
 
    };
 
};
 
 
iyh_left_room_2 = room {
 
    nam = "Комната";
 
    underwater = true;
 
    dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
    way = {
 
        kh_vroom("В коридор", "iyh_temple_rear_corridor_middle");
 
    };
 
};
 
 
iyh_right_room_2 = room {
 
    nam = "Комната";
 
    underwater = true;
 
    dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
    way = {
 
        kh_vroom("В коридор", "iyh_temple_rear_corridor_middle");
 
    };
 
    obj = {
 
        "item_legend_of_first_city"
 
    };
 
};
 
 
iyh_left_room_3 = room {
 
    nam = "Комната";
 
    underwater = true;
 
    dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. ]];
 
    way = {
 
        kh_vroom("В коридор", "iyh_temple_rear_corridor_end");
 
        kh_vroom("В скрытый проход", "iyh_temple_hidden_room_1"):disable();
 
    };
 
    obj = {
 
        "iyh_old_navjiarr_body",
 
        "iyh_item_record",
 
        "iyh_room_wall",
 
        "iyh_room_wall_gap"
 
    };
 
};
 
 
iyh_old_navjiarr_body = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "iyh_old_navjiarr_body";
 
    dsc = [[В одной из ниш справа от входа лежит старый {навьяр}. Серая чешуя давно поблекла, глаза закрыты. Руки сложены на груди. ]];
 
    act = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            put(iyh_item_amulet, pl);
 
            return [[Навьяр никак не реагирует на вас. Он мертв. В руках его вы замечаете небольшой металлический амулет, который вы забираете себе. ]];
 
        else
 
            return [[Навьяр никак не реагирует на вас. Он мертв. ]];
 
        end;
 
    end;
 
};
 
 
iyh_item_record = obj {
 
    nam = "iyh_item_record";
 
    disp = "Каменная табличка";
 
    dsc = [[Рядом с ним лежит каменная {табличка} с письменами. ]];
 
    tak = [[Вы забираете табличку. ]];
 
    inv = function(s)
 
        --Написать исходный навьярский вариант таблички
 
        if (language_known) then
 
            return [[Табличка гласит: "Те, кто найдут это, пусть знают, что здесь покоится истинный глаз Дипатреанотра, служащий разгадкой этого храма. Знайте, читающие это, что реликвию я взял для способствования осуществления пророчества о спящем в глубине. Для открытия храма, взгляните истинным глазом напротив моего ложа. Другие фрагменты карты, ведущей к цели лежат в двух близлежащих городах. Еще два -- в далеких землях, в местах известных как Венаэданотр и Нлейисланотр". Чуть ниже дописано: "Если Вилрьярр еще здесь, отпустите его. Ему незачем оставаться здесь". ]];
 
        else
 
            return [[Табличка содержит навьярские письмена, которые вы не понимаете. ]];
 
        end;
 
    end;
 
};
 
 
iyh_item_amulet = obj {
 
    nam = "iyh_item_amulet";
 
    disp = "Амулет";
 
    inv = [[Небольшой металлический диск на цепочке. На диске выгравирован причудливый орнамент, а в центре изображен скат. ]];
 
};
 
 
iyh_room_wall = obj {
 
    nam = "iyh_room_wall";
 
    dsc = function(s)
 
        if disabled(iyh_room_wall_gap) then
 
            return [[Одна из стен комнаты раздвинулась в стороны, открывая проход в скрытое помещение храма. ]];
 
        else
 
            return [[{Стена} слева от входа не содержит ниш, в отличие от стен в других комнатах. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if disabled(iyh_room_wall_gap) then
 
            return [[Гладкая каменная стена раздвинулась в стороны, открывая проход в скрытое помещение храма. ]];
 
        else
 
            return [[Гладкая каменная стена. Глубокая трещина от потолка до пола пересекает ее посередине. Вы не видите ничего необычного. ]];
 
        end;
 
    end;
 
};
 
 
iyh_room_wall_gap = obj {
 
    nam = "iyh_room_wall_gap";
 
    dsc = [[Глубокая {трещина} от потолка до пола пересекает ее посередине. ]];
 
    act = function(s)
 
        if (iyh_looking_glass.seen) then
 
            path('В скрытый проход'):enable();
 
            s:disable();
 
            return [[Вы осторожно нащупываете скрытую внутри трещины кнопку и нажимаете ее. Каменные плиты отодвигаются в стороны, образуя проход в скрытое помещение храма. ]];
 
        else
 
            return [[Просто трещина, ничего интересного. ]];
 
        end;
 
    end;
 
};
 
 
iyh_looking_glass = obj {
 
    var {
 
        seen = false;
 
    };
 
    nam = "iyh_looking_glass";
 
    disp = "Подзорная труба";
 
    dsc = [[]];
 
    inv = [[Короткая подзорная труба из неизвестного вам металла, такого же, из какого сделаны многие другие старые артефакты навьяров. ]];
 
    use = function(s, o)
 
        if (o == iyh_room_wall or o == iyh_room_wall_gap) then
 
            s.seen = true;
 
            return "Через трубу стена выглядит совсем иначе -- картинка странным образом искажается, позволяя видеть детали, скрытые от обычного взора. Стоя прямо напротив трещины и глядя внутрь, вы замечаете небольшой прямоугольный выступ, примерно на уровне шеи. ";
 
        end;
 
    end;
 
};
 
 
iyh_right_room_3 = room {
 
    nam = "Комната";
 
    underwater = true;
 
    dsc = [[Небольшая комната, вытесанная в скале. Внутри почти ничего не сохранилось, кроме каменного пъедестала в центре. Единственный дверной проем ведет в коридор. В стенах слева и справа от входа сделано несколько глубоких ниш. ]];
 
    way = {
 
        kh_vroom("В коридор", "iyh_temple_rear_corridor_end");
 
        kh_vroom("В скрытое помещение", "iyh_temple_hidden_room_2"):disable();
 
    };
 
    obj = {
 
        "item_legend_of_temple"
 
    };
 
};
 
 
iyh_temple_hidden_room_1 = room {
 
    nam = "iyh_temple_hidden_room_1";
 
    underwater = true;
 
    disp = "Скрытая комната";
 
    dsc = [[Небольшая комната, вытесанная в скале. Надежно спрятанная от посторонних глаз, она хранила свои тайны многие столетия, пока вы не открыли ее. Сейчас одна из стен ее раскрылась, открывая проход внутрь. ]];
 
    way = {
 
        kh_vroom("К задним комнатам", "iyh_left_room_3");
 
        kh_vroom("К главному залу", "iyh_temple_left_hall"):disable();
 
    };
 
    obj = {
 
        "iyh_temple_hidden_wall_1",
 
        "iyh_temple_lever_1"
 
    };
 
};
 
 
iyh_temple_lever_1 = obj {
 
    var {
 
        state = false;
 
    };
 
    nam = "iyh_temple_lever_1";
 
    dsc = [[У стены, напротив проема находится массивный {рычаг}. ]];
 
    act = function(s)
 
        if (s.state) then
 
            return [[Вам больше незачем его трогать. ]];
 
        else
 
            s.state = true;
 
            path("К главному залу"):enable();
 
            path("В скрытое помещение", iyh_temple_left_hall):enable();
 
            return [[Вы дергаете за рычаг и одна из плит в стене рядом с ним отодвигается, открывая проход. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_hidden_wall_1 = obj {
 
    nam = "iyh_temple_hidden_wall_1";
 
    dsc = [[Одна из стен комнаты покрыта навьярскими {письменами}, отлично сохранившимися. ]];
 
    act = function(s)
 
        if (language_known) then
 
            return [[Слова на стене складываются в странную фразу: "Многие покинули этот дом, чтобы поселиться рядом с ним и никогда более не вернуться. Многие другие навещают его регулярно, не оставляя надолго. Остальные же, так и остались там, не покидая его никогда". ]];
 
        else
 
            return [[Вы не понимаете написанного. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_hidden_room_2 = room {
 
    nam = "iyh_temple_hidden_room_2";
 
    underwater = true;
 
    disp = "Скрытая комната";
 
    dsc = [[Небольшая комната, вытесанная в скале. Надежно спрятанная от посторонних глаз, она хранила свои тайны многие столетия, пока вы не открыли ее. ]];
 
    way = {
 
        kh_vroom("К задним комнатам", "iyh_right_room_3"):disable();
 
        kh_vroom("К главному залу", "iyh_temple_right_hall")
 
    };
 
    obj = {
 
        "iyh_temple_lever_2",
 
        "iyh_temple_lever_3"
 
    };
 
};
 
 
iyh_temple_stairs_l = obj {
 
    nam = "iyh_temple_stairs_l";
 
    dsc = [[В стене, слева от входа вы видите темный проем, за которым начинается длинная каменная {лестница}, ведущая куда-то вниз, под храм. ]];
 
};
 
 
iyh_temple_stairs_r = obj {
 
    nam = "iyh_temple_stairs_r";
 
    dsc = [[В стене, справа от входа вы видите темный проем, за которым начинается длинная каменная {лестница}, ведущая куда-то вниз, под храм. ]];
 
};
 
 
iyh_temple_lever_2 = obj {
 
    var {
 
        state = false;
 
    };
 
    nam = "iyh_temple_lever_1";
 
    dsc = [[У стены, напротив проема находится массивный {рычаг}. ]];
 
    act = function(s)
 
        if (s.state) then
 
            return [[Вам больше незачем его трогать. ]];
 
        else
 
            s.state = true;
 
            path("К задним комнатам"):enable();
 
            path("В скрытое помещение", iyh_right_room_3):enable();
 
            return [[Вы дергаете за рычаг и одна из плит в стене рядом с ним отодвигается, открывая проход. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_lever_3 = obj {
 
    var {
 
        state = false;
 
    };
 
    nam = "iyh_temple_lever_1";
 
    dsc = [[В центре комнаты находится еще один, такой же, {рычаг}. ]];
 
    act = function(s)
 
        if (s.state) then
 
            return [[Вам больше незачем его трогать. ]];
 
        else
 
            s.state = true;
 
            iyh_temple_stairs_l:enable();
 
            iyh_temple_stairs_r:enable();
 
            path("Вниз по лестнице", iyh_temple_left_hall):enable();
 
            path("Вниз по лестнице", iyh_temple_right_hall):enable();
 
            return [[Вы дергаете за рычаг и слышите скрежет каменных плит где-то неподалеку. В комнате ничего не изменилось. ]];
 
        end;
 
    end;
 
};
 
 
iyh_shockfish = obj {
 
    nam = "iyh_shockfish";
 
    dsc = [[В центре зала завис огромный {скат}. Громадная рыба спокойно наблюдает за вами и, кажется, не собирается нападать. ]];
 
    noshoot = [[Вряд ли вы серьезно повредите гиганта своим выстрелом. ]];
 
    act = [[Скат наблюдает за вами, однако не стремится нападать. Возможно, дело в вашем амулете?]];
 
    used = function(s, o)
 
        if (o == iyh_item_amulet) then
 
            remove(iyh_item_amulet, pl);
 
            remove(iyh_shockfish, here());
 
            atl_iyh_shockfish_left = true;
 
            return [[Вы бросаете амулет скату и гигантская рыба легко подхватывает его. Взмахнув хвостом, он выплывает из храма и устремляется куда-то вдаль. ]];
 
        end;
 
    end;
 
};
 
 
iyh_temple_main_hall_enter = function(s)
 
    remove(iyh_shockfish, here());
 
    if (atl_iyh_shockfish_away == 0 and atl_iyh_shockfish_away and not atl_iyh_shockfish_dead and not atl_iyh_shockfish_left) then
 
        if have(iyh_item_amulet) then
 
            put(iyh_shockfish, here());
 
        else
 
            walk("game_over_shockfish_2");
 
        end;
 
    end;
 
end;
 
 
iyh_temple_main_hall_end = room {
 
    nam = "Храм";
 
    underwater = true;
 
    dsc = [[Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь в дальнем конце зала. Массивная дверь ведет в задние помещения храма. ]];
 
    enter = iyh_temple_main_hall_enter;
 
    way = {
 
        kh_vroom("В центр зала", "iyh_temple_main_hall_middle");
 
        kh_vroom("В заднюю дверь", "iyh_temple_rear_corridor_end");
 
    };
 
};
 
 
iyh_temple_main_hall_middle = room {
 
    nam = "Храм";
 
    underwater = true;
 
    dsc = [[
 
        Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Слева и справа от вас вы видите небольшие проемы, ведущие в боковые помещения.
 
    ]];
 
    obj = {
 
        "iyh_pedestal"
 
    };
 
    enter = iyh_temple_main_hall_enter;
 
    way = {
 
        kh_vroom("К выходу из храма", "iyh_temple_main_hall_entry");
 
        kh_vroom("В конец зала", "iyh_temple_main_hall_end");
 
        kh_vroom("Налево", "iyh_temple_left_hall");
 
        kh_vroom("Направо", "iyh_temple_right_hall");
 
    };
 
};
 
 
iyh_temple_main_hall_entry = room {
 
    nam = "Храм";
 
    underwater = true;
 
    dsc = [[
 
        Главный зал древнего навьярского святилища. В стенах слева и справа вырезаны небольшие углубления, на которых некогда покоились ценные реликвии. Сейчас большинство из них пусты. Потолок находится на высоте нескольких десятков метров, но ни лестниц, ни уступов нет. Вы находитесь у входа в зал.
 
    ]];
0 comments (0 inline, 0 general)