Changeset - c924ea82fd51
[Not reviewed]
default
0 2 0
Silverwing - 5 years ago 2018-12-02 10:25:54

nleyyslanotrr - partial catacombs
2 files changed with 313 insertions and 12 deletions:
0 comments (0 inline, 0 general)
game_over.lua
Show inline comments
 
@@ -22,7 +22,11 @@ game_over_nley_learr = game_over("game_over_nley_learr", [[Леарр пытается оттолкнуть вас от штурвала и остановить Левиафан. Вы делаете резкий поворот и субмарина кренится на бок. Леарр, не удержавшись на ногах, падает. Навьярка кричит в бессильной ярости, когда вы пролетаете над воротами Нлейисланотра. Вы берете курс к центру города, а вокруг вас начинают появляться целые отряды вооруженных навьяров. Восседая на белых акулах, всадники несутся наперерез Левиафану. Поначалу, копья отскакивают от металлической обшивки субмарины, не насося ей ущерба, а выстрелы из звуковой пушки выкашивают огромные прорехи в рядах противника. Однако, вскоре, несколько копий попадает в уязвимые места: на приборной панели загораются тревожные лампочки, сообщающие о поломках. Еще через мгновение винт останавливается. Вы чувствуете запах дыма, заполняющий помещение. Вы пытаетесь использовать звуковую пушку, однако она не работает. Вы пытаетесь запустить торпеды, но мощный взрыв сотрясает подлодку -- отверстия торпедных аппаратов были заблокированы и торпеды взорвались находясь еще внутри Левиафана. Свет гаснет, а отсеки начинает заполнять вода. Вы наглухо задраиваете люк рубки, но вас это уже не спасет. ]]);
 
 
game_over_nley_anna = game_over("game_over_nley_anna", [[Вы берете курс к центру города, а вокруг вас начинают появляться целые отряды вооруженных навьяров. Восседая на белых акулах, всадники несутся наперерез Левиафану. Поначалу, копья отскакивают от металлической обшивки субмарины, не насося ей ущерба, а выстрелы из звуковой пушки выкашивают огромные прорехи в рядах противника. Однако, вскоре, несколько копий попадает в уязвимые места: на приборной панели загораются тревожные лампочки, сообщающие о поломках. Вы слышите едва различимый среди шума двигателей голос Анны: "Это была плохая идея". Через мгновение винт останавливается. Вы чувствуете запах дыма, заполняющий помещение. Вы пытаетесь использовать звуковую пушку, однако она не работает. Вы пытаетесь запустить торпеды, но мощный взрыв сотрясает подлодку -- отверстия торпедных аппаратов были заблокированы и торпеды взорвались находясь еще внутри Левиафана. Свет гаснет, а отсеки начинает заполнять вода. Вы наглухо задраиваете люк рубки, но вас это уже не спасет. ]]);
 
 
game_over_nley_caught = game_over('game_over_nley_caught', [[Едва вы попадаете в поле зрения стражников Нлейисланотра, город оживает. Вы не успеваете понять, как оказываетесь окружены и схвачены. Поиски Лсэрианотра для вас закончены. ]])
 
game_over_nley_caught = game_over('game_over_nley_caught', [[Едва вы попадаете в поле зрения стражников Нлейисланотра, город оживает. Вы не успеваете понять, как оказываетесь окружены и схвачены. Поиски Лсэрианотра для вас закончены. ]]);
 
 
game_over_nley_cat_caught = game_over('game_over_nley_cat_caught', [[Вас замечают стражники и тут же начинают погоню. Вам, облаченному в тяжелый скафандр, трудно тягаться с навьярами, всю жизнь проводящими в воде. Вас быстро ловят и помещают в камеру. Через несколько часов воздух закончится и вы умрете. ]]);
 
 
game_over_nley_cat_ambush = game_over('game_over_nley_cat_ambush', [[Вы входите в комнату и на вас тут же наваливаются стражники. Вас помещают в камеру. Через несколько часов воздух закончится и вы умрете. ]]);
 
 
game_over_eaten_by_octopus = game_over("game_over_eaten_by_octopus", [[Гигантский спрут мгновенно опутывает вас своими щупальцами. Вы не можете вырваться из стальной хватки чудовища. Металл скафандра скрипит, не выдерживая давления и вы понимаете, что ваши дни сочтены. ]]);
 
journey_nleyyslanotrr.lua
Show inline comments
 
@@ -492,10 +492,13 @@ nley_telhyarr_dlg = dlg {
 
    }
 
}
 

	
 
function nley_init_catacombs()
 
    if not nley_catacombs_password.password then
 
        nley_catacombs_password.password = tostring(rnd(6) - 1) .. tostring(rnd(6) - 1) .. tostring(rnd(6) - 1) .. tostring(rnd(6) - 1);
 
    end;
 
end
 

	
 
nley_catacombs_1 = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Вы находитесь у одного из входов в катакомбы Нлейисланотра. Узкие, выложенные камнем коридоры протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. На юге расположена дверь, ведущая к выходу из катакомб, коридор тянется на север. ]];
 
    way = {
 
@@ -711,9 +714,36 @@ nley_cat_room_7 = room {
 
    }
 
}
 

	
 

	
 

	
 
nley_catacombs_password = input_number_nav {
 
    nam = 'Нлейисланотр, катакомбы';
 
    maxlen = 4;
 
    password = nil;
 
    label = 'На стене перед вами расположено несколько кнопок. Шесть из них соответствуют навьярским цифрам, еще одна гласит "завершить". Очевидно, с их помощью нужно ввести код. ^Введенный код:';
 
    check = function(s, input)
 
        if input == s.password then
 
            path('На восток, в секретную дверь', nley_cat_room_8):enable();
 
            nley_cat_room_8.state = 1;
 
            pn [[Вы слышите скрежет, доносящийся откуда-то с востока. ]];
 
        else
 
            pn [[Ничего не происходит. ]];
 
        end;
 
        back();
 
    end;
 
}
 

	
 
nley_cat_panel = obj {
 
    nam = "nley_cat_panel";
 
    dsc = "На одной из стен вы замечаете несколько выступающих {кнопок}. ";
 
    act = function(s)
 
        walkin(nley_catacombs_password);
 
    end;
 
};
 

	
 
nley_catacombs_7 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор. Такие протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. На севере вы видите небольшой проем, ведущий в отдельную комнатку. на востоке коридор обрушился, преграждая вам путь. ]];
 
    dsc = [[Узкий, выложенный камнем коридор. Такие протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. На севере вы видите небольшой проем, ведущий в отдельную комнатку. На востоке коридор обрушился, преграждая вам путь. ]];
 
    way = {
 
        kh_vroom('На север, в комнату', 'nley_cat_room_8');
 
        kh_vroom('На запад, по коридору', 'nley_catacombs_5');
 
@@ -725,21 +755,31 @@ nley_catacombs_7 = room {
 
}
 

	
 
nley_cat_room_8 = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. ]];
 
    dsc = function(s)
 
        if s.state == 0 then
 
            return [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. ]];
 
        else
 
            return [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. В восточной стене комнаты открыт потайной проход, ведущий  в другую часть катакомб. ]];
 
        end;
 
    end;
 
    way = {
 
        kh_vroom('На юг, в коридор', 'nley_catacombs_7');
 
        kh_vroom('На восток, в секретную дверь', 'nley_cat_room_13'):disable();
 
    }
 
}
 

	
 
nley_catacombs_7 = room {
 
nley_catacombs_8 = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор. Такие протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. ]];
 
    obj = {
 
        'nley_cat_7_grate'
 
        'nley_cat_8_grate'
 
    };
 
    way = {
 
        kh_vroom('На север, по коридору', function(s)
 
@@ -754,16 +794,273 @@ nley_catacombs_7 = room {
 
    };
 
}
 

	
 
nley_cat_7_grate = obj {
 
    nam = 'nley_cat_7_grate';
 
nley_cat_8_grate = obj {
 
    nam = 'nley_cat_8_grate';
 
    dsc = [[Прочная коралловая {решетка} преграждает путь. ]];
 
    act = [[Решетка очень прочная. Вам ее не сломать. В стене рядом с решеткой есть замочная скважина. ]];
 
    used = function(s, o)
 
        if o == nley_item_grate_key then
 
            remove(nley_cat_7_grate, here());
 
            remove(nley_cat_8_grate, here());
 
            remove(nley_item_grate_key, pl);
 
            nley_catacombs_7.state = 1;
 
            nley_catacombs_8.state = 1;
 
            return [[Ключ подходит к замку. Вы поворачиваете его и решетка поднимается. ]];
 
        end;
 
    end
 
}
 

	
 
nley_catacombs_9 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор. Такие протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. На западе и востоке вы видите небольшие проемы, ведущие в отдельные комнатки. ]];
 
    way = {
 
        kh_vroom('На запад, в комнату', 'nley_cat_room_9');
 
        kh_vroom('На восток, в комнату', 'nley_cat_room_10');
 
        kh_vroom('На юг, по коридору', 'nley_catacombs_8');
 
        kh_vroom('На север, по коридору', 'nley_catacombs_10');
 
    }
 
}
 

	
 
nley_cat_room_9 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. Это помещение завалено всевозможными контейнерами: ящиками, бочками, клетками и, очевидно, используется как склад. ]];
 
    way = {
 
        kh_vroom('На восток, в коридор', 'nley_catacombs_9');
 
    };
 
}
 

	
 
nley_cat_room_10 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. Это помещение завалено всевозможными контейнерами: ящиками, бочками, клетками и, очевидно, используется как склад. ]];
 
    obj = {
 
        'nley_item_food'
 
    };
 
    way = {
 
        kh_vroom('На запад, в коридор', 'nley_catacombs_9');
 
    };
 
}
 

	
 
nley_item_food = {
 
    nam = 'nley_item_food';
 
    disp = 'Водоросли';
 
    inv = 'Небольшой пучок водорослей, употребляемых навьярами в пищу. Водоросли довольно свежие на вид. ';
 
    dsc = [[Одна из клеток полна съедобных {водорослей}. ]];
 
    tak = [[Вы забираете немного водорослей с собой. ]];
 
}
 

	
 
nley_catacombs_10 = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор. Такие протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. Здесь тоннель соединяется с другим, ведущим на восток. ]];
 
    obj = {
 
        'nley_cat_10_grate';
 
    };
 
    way = {
 
        kh_vroom('На восток, по коридору', 'nley_catacombs_13');
 
        kh_vroom('На юг, по коридору', 'nley_catacombs_9');
 
        kh_vroom('На север, по коридору', function(s)
 
            if nley_catacombs_7.state == 0 then
 
                pr [[Решетка преграждает вам путь. ]];
 
                return false;
 
            else
 
                return 'nley_catacombs_11';
 
            end;
 
        end);
 
    }
 
}
 

	
 
nley_cat_10_grate = obj {
 
    nam = 'nley_cat_10_grate';
 
    dsc = [[Прочная коралловая {решетка} преграждает путь. ]];
 
    act = [[Решетка очень прочная. Вам ее не сломать. В стене рядом с решеткой есть замочная скважина. ]];
 
    used = function(s, o)
 
        if o == nley_item_prison_key then
 
            remove(nley_cat_10_grate, here());
 
            remove(nley_item_prison_key, pl);
 
            nley_catacombs_10.state = 1;
 
            return [[Ключ подходит к замку. Вы поворачиваете его и решетка поднимается. ]];
 
        end;
 
    end
 
}
 

	
 
nley_catacombs_11 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор. Стены покрыты тонкими прожилками светящихся водорослей. На западе вы видите зарешеченный проход в небольшую комнатку. Внутри нее сидит навьяр. На востоке точно такой же проход, но решетка открыта. ]];
 
    way = {
 
        kh_vroom('К решетке на западе', 'nley_cat_cell_1');
 
        kh_vroom('На восток, в комнату', 'nley_cat_cell_2');
 
        kh_vroom('На юг, по коридору', 'nley_catacombs_10');
 
        kh_vroom('На север, по коридору', 'nley_catacombs_12');
 
    }
 
}
 

	
 
nley_cat_cell_1 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Вы стоите у решетки, за которой расположена небольшая комнатушка, служащая тюрьмой. ]];
 
    obj = {
 
        'nley_prisoner';
 
    };
 
    way = {
 
        kh_vroom('Отойти от решетки', 'nley_catacombs_11');
 
    }
 
}
 

	
 
nley_cat_cell_2 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. ]];
 
    obj = {
 
        'nley_dead_prisoner';
 
    };
 
    way = {
 
        kh_vroom('На запад, в коридор', 'nley_catacombs_11');
 
    }
 
}
 

	
 
nley_dead_prisoner = obj {
 
    nam = 'nley_dead_prisoner';
 
    dsc = 'На полу комнаты лежит мертвый {навьяр}. ';
 
    act = [[Соленая вода хорошо сохранила труп. Вы не знаете лежит он здесь несколько часов или же дней. ]];
 
}
 

	
 
nley_prisoner = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'nley_prisoner';
 
    dsc = function(s)
 
        if s.state == 0 then
 
            return [[Худой {навьяр} при виде вас подходит к решетке, по его головным плавникам бегут цветные полосы: "Вы можете мне помочь?"]];
 
        else
 
            return [[Худой {навьяр} сидит в углу комнаты. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if s.state == 0 then
 
            return [[По головным плавникам навьяра бегут цветные полосы: "Кто бы вы ни были. Принесите мне еды и я скажу вам как открыть потайной проход здесь, в катакомбах". ]];
 
        else
 
            return [[По головным плавникам навьяра бегут цветные полосы: "Эти цифры откроют проход: ]] .. nley_catacombs_password.password .. [[". ]]
 
        end;
 
    end;
 
    used = function(s, o)
 
        if o == nley_item_food then
 
            s.state = 1;
 
            remove(nley_item_food, pl);
 
            return [[Навьяр выхватывает клочок водорослей из ваших рук и сразу же глотает его. По головным плавникам навьяра бегут цветные полосы: "Благодарю вас. Эти цифры откроют проход: ]] .. nley_catacombs_password.password .. [[". ]]
 
        end;
 
    end
 
}
 

	
 
nley_catacombs_12 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор заканчивается на севере глухой стеной. Стены покрыты тонкими прожилками светящихся водорослей. На западе вы видите зарешеченный проход в небольшую комнатку. Внутри нее спит навьяр. На востоке точно такой же проход, но решетка открыта. ]];
 
    way = {
 
        kh_vroom('К решетке на западе', 'nley_cat_cell_3');
 
        kh_vroom('На восток, в комнату', 'nley_cat_cell_4');
 
        kh_vroom('На юг, по коридору', 'nley_catacombs_11');
 
    }
 
}
 

	
 
nley_cat_cell_3 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Вы стоите у решетки, за которой расположена небольшая комнатушка, служащая тюрьмой. ]];
 
    obj = {
 
        'nley_sleeping_prisoner';
 
    };
 
    way = {
 
        kh_vroom('Отойти от решетки', 'nley_catacombs_12');
 
    }
 
}
 

	
 
nley_cat_cell_2 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. ]];
 
    way = {
 
        kh_vroom('На запад, в коридор', 'nley_catacombs_12');
 
    }
 
}
 

	
 
nley_sleeping_prisoner = obj {
 
    nam = 'nley_sleeping_prisoner';
 
    dsc = [[В дальнем конце комнаты спит {навьяр}. ]];
 
    act = [[Как бы вы ни пытались, вам не удается его разбудить. ]];
 
}
 

	
 
nley_catacombs_13 = room {
 
    state = 0;
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор. Такие протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. Здесь тоннель соединяется с другим, ведущим на запад. Вдалеке на севере стоят несколько навьяров. ]];
 
    way = {
 
        kh_vroom('На запад, по коридору', 'nley_catacombs_10');
 
        kh_vroom('На юг, по коридору', 'nley_catacombs_14');
 
        kh_vroom('На север, по коридору', function(s)
 
            if nley_catacombs_13.state == 0 then
 
                nley_catacombs_13.state = 1;
 
                pr [[Вас там могут заметить.]];
 
                return false;
 
            else
 
                return 'game_over_nley_cat_caught';
 
            end;
 
        end);
 
    }
 
}
 

	
 
nley_catacombs_14 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Узкий, выложенный камнем коридор. Такие протянулись почти под всем городом. Стены покрыты тонкими прожилками светящихся водорослей. На западе и востоке вы видите небольшие проемы, ведущие в отдельные комнатки. На юге коридор обрушился, преграждая вам путь. ]];
 
    way = {
 
        kh_vroom('На запад, в комнату', 'nley_cat_room_11');
 
        kh_vroom('На восток, в комнату', 'nley_cat_room_12');
 
        kh_vroom('На север, по коридору', 'nley_catacombs_13');
 
        kh_vroom('На юг, по коридору', function(s)
 
            pr [[Этот проход завален. ]];
 
            return false;
 
        end);
 
    };
 
}
 

	
 
nley_cat_room_11 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. ]];
 
    way = {
 
        kh_vroom('На восток, в коридор', 'nley_catacombs_14');
 
    }
 
}
 

	
 
nley_cat_room_12 = room {
 
    nam = 'Нлейисланотр, катакомбы';
 
    dsc = [[Небольшая комнатка, стены которой покрыты тонкими прожилками светящихся водорослей. В центре комнаты стоит небольшой столик. ]];
 
    enter = function(s)
 
        if nley_sleeping_guard.state ~= 0 then
 
            walk(game_over_nley_cat_ambush);
 
        end;
 
    end;
 
    obj = {
 
        'nley_sleeping_guard'
 
    };
 
    way = {
 
        kh_vroom('На запад, в коридор', 'nley_catacombs_14');
 
    }
 
}
 

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

	
 
nley_item_prison_key = obj {
 
    nam = 'nley_item_prison_key';
 
    disp = 'Ключ';
 
    inv = [[Ключик, взятый вами у стражника в катакомбах Нлейисланотра. ]];
 
}
 
\ No newline at end of file
0 comments (0 inline, 0 general)