Changeset - 40e43a992d59
[Not reviewed]
default
0 2 2
Silverwing - 5 years ago 2018-10-28 09:29:09

ven_quest_status = 7
4 files changed with 232 insertions and 11 deletions:
0 comments (0 inline, 0 general)
images/tile_pressed.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
images/tile_unpressed.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
journey_venaedanotrr.lua
Show inline comments
 
@@ -5,6 +5,8 @@ global {
 
    -- 4 - location known
 
    -- 5 - body found
 
    -- 6 - pha'nea'rr(and lea'rr) healed
 
    -- 7 - chief talked with
 
    -- 8 - keeper talked with
 
    ven_quest_status = 0;
 
    ven_ravine_known = false;
 
    ven_learr_sent_away = false;
 
@@ -108,6 +110,10 @@ ven_char_chief_dlg = dlg {
 
    disp = "Эйлираорр, вождь";
 
    entered = function(s)
 
        psub('generic');
 
        if ven_quest_status == 6 then
 
            pon('phanearr_saved');
 
        end;
 

	
 
        if ven_char_chief.state == 0 then
 
            ven_char_chief.state = 1;
 
            if ArrayUtils.indexOf(pl.party, 'learr') ~= 0 and char_learr.follow then
 
@@ -121,15 +127,28 @@ ven_char_chief_dlg = dlg {
 
    end;
 
    phr = {
 
        {tag="generic"};
 
        {tag="hevjiarr", "[Кодировщик]Мы ищем группу хевьяров, которая недавно была в вашем городе.", [[Вождь отвечает: "Остерегайтесь их. Их предводители ослеплены своей целью и готовы на все ради нее. Однако, мне нужна ваша помощь и в обмен, я помогу вам найти их". ]], code [[ ven_char_chief_dlg.help_asked = true; pon("help"); ]]};
 
        {tag="lseryanotrr", "[Кодировщик]Мы ищем Лсэрианотр.", [[Вы видите изумление в глазах вождя, он даже немного меняет позу, но потом снова возвращается к прежнему состоянию. По его плавникам бегут цветные полосы: "Что вы надеетесь найти там?"]], psub("more_lse")};
 
        {tag="help", "[Кодировщик]Я помогу вам.", false, [[Вождь рассказывает: "Около двух дней назад пропала группа исследователей, они отправились к северо-востоку отсюда. В гильдии исследователей вам расскажут больше".]], code [[ ven_quest_status = 1; ]]};
 
        {"[Кодировщик]До новых встреч", always=True, [[По плавникам вождя бегут цветные полосы: "Ты возвращайся". ]], code [[ back(); ]] };
 
        {tag="hevjiarr", "[Кодировщик]Мы ищем группу хевьяров, которая недавно была в вашем городе.", [[Эйлираорр отвечает: "Остерегайтесь их. Их предводители ослеплены своей целью и готовы на все ради нее. Однако, мне нужна ваша помощь и в обмен, я помогу вам найти их". ]], code [[ pon("help"); ]]};
 
        {tag="lseryanotrr", "[Кодировщик]Мы ищем Лсэрианотр.", [[Вы видите изумление в глазах Эйлираорра, он даже немного меняет позу, но потом снова возвращается к прежнему состоянию. По его плавникам бегут цветные полосы: "Что вы надеетесь найти там?"]], psub("more_lse")};
 
        {tag="help", false, "[Кодировщик]Я помогу вам.", [[Эйлираорр рассказывает: "Около двух дней назад пропала группа исследователей, они отправились к северо-востоку отсюда. В гильдии исследователей вам расскажут больше".]], code [[ ven_quest_status = 1; ]]};
 
        {tag="phaenarr_saved", false, "[Кодировщик]Я нашел пропавших исследователей, кроме Фанеарра никто из экспедиции не выжил.", [[По головным плавникам Эйлираорра бегут цветные полосы: "Очень жаль, что так вышло. Я благодарю вас за помощь и готов помочь вам", -- с этими словами он передает вам небольшой зеленый камень. "Это часть ключа от храма. Вторую половину отдаст вам хранитель", -- сообщает он. ]], code [[ take(ven_item_green_key); ven_quest_status = 7; ]]};
 
        {"[Кодировщик]До новых встреч", always=True, [[По плавникам Эйлираорра бегут цветные полосы: "Ты возвращайся". ]], code [[ back(); ]] };
 

	
 
        {tag="more_lse"};
 
        {"[Кодировщик]Туда отправилась экспедиция. Мы идем по их следу.", [[Вождь отвечает: "Остерегайтесь их. Их предводители ослеплены своей целью и готовы на все ради нее. Однако, мне нужна ваша помощь и в обмен, я помогу вам найти их". ]], code [[ pon("help"); psub("generic"); ]]};
 
        {"[Кодировщик]Мы ищем утерянные знания навьяров.", [[Вождь отвечает: "Лсэрианотр скрывает много тайн. Я помогу вам в поисках, если вы поможете мне. "]], code [[ pon("help"); psub("generic"); ]]};
 
        {"[Кодировщик]Мы ищем Наэтвьирра.", [[Вождь отвечает: "Это лишь легенда. Но я помогу вам найти путь в Лсэрианотр, если вы поможете мне".]], code [[ psub("generic");  ]]};
 
        {"[Кодировщик]Туда отправилась экспедиция. Мы идем по их следу.", [[Эйлираорр спрашивает: "Остерегайтесь их. Их предводители ослеплены своей целью и готовы на все ради нее. Вы знаете, что они ищут?" ]], code [[ psub("expedition"); ]]};
 
        {"[Кодировщик]Мы ищем утерянные знания навьяров.", [[Эйлираорр спрашивает: "Лсэрианотр скрывает много тайн. Что вы знаете о Наэтвьирре?"]], code [[ psub("naethvjirr"); ]]};
 
        {"[Кодировщик]Мы ищем Наэтвьирра.", [[Эйлираорр спрашивает: "Что вы знаете о нем?"]], code [[ psub("naethvjirr");  ]]};
 

	
 
        {tag="expedition"};
 
        {"[Кодировщик]Они ищут Наэтвьирра.", [[Эйлираорр кивает, по его плавникам неспешно проплывают цветные полосы: "Именно. Что вы знаете о нем?"]], code [[ psub("naethvjirr"); ]]};
 
        {"[Кодировщик]Мы не знаем.", [[Эйлираорр ухмыляется, по его плавникам пробегают цветные полосы: "Зато я знаю. Они ищут Наэтвьирра. Что вы знаете о нем?"]], code [[ psub("naethvjirr"); ]]};
 

	
 
        {tag="naethvjirr"};
 
        {"[Кодировщик]Древние навьяры призвали его, чтобы хранить город.", [[Эйлираорр пожимает плечами: "Неплохо. Я расскажу вам эту легенду полностью. Так, как ее знают в моем городе. В те времена навьяры были многочисленны и едины. Владения наши простирались на миллионы кругов от центра, которым был Лсэрианотр. Именно там собрались лучшие мыслители нашего народа. В своей безграничной жажде знаний, они обратились к таинственной сущности, известной нам как Наэтвьирр. наэтвьирр пообещал дать им все, что они пожелают, если они смогут построить вместилище для него в нашем мире. Ослепленные обещаниями Наэтвьирра, они приступили к ее созданию. Но год за годом, по мере приближения к цели, в мыслителях крепли сомнения -- а можно ли доверять неведомому созданию, не приведет ли это навьяров к трагедии. И лишь в момент, когда вместилище было построено и осталось лишь впустить Наэтвьирра в наш мир, навьяры навсегда запечатали страшное устройство в городе, который было решено покинуть. Многие тысячелетия прошли и детали истории были утеряны, как и карта пути в затерянный город". ]], code [[ psub("map"); ]]};
 
        {"[Кодировщик]Почти ничего. Вы что-то можете о нем сказать?", [[Эйлираорр отвечает: "Так я и думал. Тогда, слушайте, я расскажу вам легенду о Наэтвьирре так, как ее знают в моем городе. В те времена навьяры были многочисленны и едины. Владения наши простирались на миллионы кругов от центра, которым был Лсэрианотр. Именно там собрались лучшие мыслители нашего народа. В своей безграничной жажде знаний, они обратились к таинственной сущности, известной нам как Наэтвьирр. наэтвьирр пообещал дать им все, что они пожелают, если они смогут построить вместилище для него в нашем мире. Ослепленные обещаниями Наэтвьирра, они приступили к ее созданию. Но год за годом, по мере приближения к цели, в мыслителях крепли сомнения -- а можно ли доверять неведомому созданию, не приведет ли это навьяров к трагедии. И лишь в момент, когда вместилище было построено и осталось лишь впустить Наэтвьирра в наш мир, навьяры навсегда запечатали страшное устройство в городе, который было решено покинуть. Многие тысячелетия прошли и детали истории были утеряны, как и карта пути в затерянный город". ]], code [[ psub("map"); ]]};
 
        {"[Кодировщик]Всего лишь легенда, призванная отвадить желающих найти город.", [[Эйлираорр пожимает плечами: "Может и так, но я расскажу вам эту легенду так, как ее знают в моем городе. В те времена навьяры были многочисленны и едины. Владения наши простирались на миллионы кругов от центра, которым был Лсэрианотр. Именно там собрались лучшие мыслители нашего народа. В своей безграничной жажде знаний, они обратились к таинственной сущности, известной нам как Наэтвьирр. наэтвьирр пообещал дать им все, что они пожелают, если они смогут построить вместилище для него в нашем мире. Ослепленные обещаниями Наэтвьирра, они приступили к ее созданию. Но год за годом, по мере приближения к цели, в мыслителях крепли сомнения -- а можно ли доверять неведомому созданию, не приведет ли это навьяров к трагедии. И лишь в момент, когда вместилище было построено и осталось лишь впустить Наэтвьирра в наш мир, навьяры навсегда запечатали страшное устройство в городе, который было решено покинуть. Многие тысячелетия прошли и детали истории были утеряны, как и карта пути в затерянный город". ]], code [[ psub("map"); ]]};
 

	
 
        {tag="map"};
 
        {"[Кодировщик]Мы предполагаем, что часть карты скрыта в храме Венаэданотра. Мы можем войти туда?", [[Вождь, ненадолго задумавшись, отвечает: "Я помогу вам, если вы поможете мне". ]], code [[ pon("help"); psub('generic'); ]]};
 
    };
 
}
 

	
 
@@ -271,7 +290,7 @@ ven_char_healer_dlg = dlg {
 

	
 
            walk('ven_cutscene_healing');
 
        ]]};
 
        {always=true, "[Кодировщик] Я пойду.", [[Хисорр отвечает: "Ты возвращайся". ]], code [[back();]]};
 
        {always=true, "[Кодировщик]Я пойду.", [[Хисорр отвечает: "Ты возвращайся". ]], code [[back();]]};
 
    };
 
}
 

	
 
@@ -845,7 +864,209 @@ ven_char_phanearr_dlg = dlg {
 
        end;
 
    end;
 
    phr = {
 
        {"[Кодировщик]Что вы искали в ущелье?", [[Фанеарр отвечает: "В данной части ущелья мы были впервые. Хиарирр откопал в библиотеке старые записи о некоем артефакте -- ,,коробке света'' "]]};
 
        {always=true, "[Кодировщик]Я пойду.", [[Фанееарр отвечает: "Ты возвращайся". ]], code [[back();]]};
 
        {"[Кодировщик]Что вы искали в ущелье?", [[Фанеарр отвечает: "В данной части ущелья мы были впервые. Хиарирр откопал в библиотеке старые записи о некоем артефакте -- ,,коробке лучей''. По словам Хиарирра, с ее помощью мы сможем расшифровать светодиски, хранящиеся в библиотеке в больших количествах. К сожалению, мы не ожидали найти там источник ирфирра. Сам по себе этот яд очень коварный -- не всегда можно понять, что уже нужно срочное лечение. А здесь мы нашли его источник -- место, где вещество вырывается из земли. Мы не успели ничего понять, как большая часть из нас свалилась без сознания". ]], code [[
 
            pon("ray_box");
 
        ]]};
 
        {tag="ray_box", false, "[Кодировщик]Как мне найти коробочку лучей?", [[Фанеарр дает вам маленький металлический кубик. На его гранях высечены глубокие бороздки, предназначения которых вы не понимаете. Навьяр сообщает вам: "Мы были почти у цели. Если бы не ирфирр, мы открыли бы вход". ]], code [[
 
            take(ven_item_key);
 
        ]]};
 
        {always=true, "[Кодировщик]Я пойду.", [[Фанееарр отвечает: "Ты возвращайся". ]], code [[
 
            back();
 
        ]]};
 
    };
 
}
 

	
 
ven_item_key = obj {
 
    nam = 'ven_item_key';
 
    disp = 'Навьярский ключ';
 
    inv = [[Металлический кубик со стороной около пяти сантиметров. На его гранях высечены глубокие бороздки, предназначения которых вы не понимаете. ]];
 
}
 

	
 
ven_item_green_key = obj {
 
    nam = 'ven_item_green_key';
 
    disp ='Зеленый ключ от храма Венаэданотра';
 
    inv = [[Зеленый полупрозрачный додекаэдр из неизвестного материала. Грани его абсолютно гладкие. ]];
 
}
 

	
 
ven_item_red_key = obj {
 
    nam = 'ven_item_red_key';
 
    disp = 'Красный ключ от храма Венаэданотра';
 
    inv = [[Красный полупрозрачный додекаэдр из неизвестного материала. Грани его абсолютно гладкие.]];
 
}
 

	
 
--[[
 
-- Temple
 
 ]]
 

	
 
ven_temple_entrance = room {
 
    nam = 'ven_temple_entrance';
 
    disp = 'Храм Венаэданотра, вход';
 
    dsc = [[Массивные двери высеченного в скале храма покрыты резными орнаментами. Широкие металлические ступени сохранились в идеальном состоянии. Скала тянется в обе стороны от храма. Чуть поодаль вы видите небольшой каменный домик, в котором живет хранитель храма. ]];
 
    way = {
 
        kh_vroom('В Левиафан', "leviathan_airlock");
 
        kh_vroom('В храм', function(s)
 
            pr [[Двери храма закрыты для вас. ]];
 
            return false;
 
        end);
 
        kh_vroom('К дому хранителя', "ven_temple_keeper_house");
 
    };
 
};
 

	
 
ven_temple_keeper_house = room {
 
    nam = 'ven_temple_keeper_house';
 
    disp = 'Храм Венаэданотра, у дома хранителя';
 
    dsc = [[Небольшое каменное строение, напоминающее дома жителей города расположено неподалеку от входа в храм высеченного в скале. ]];
 
    way = {
 
        kh_vroom('В дом', "ven_temple_keeper_house_inside");
 
        kh_vroom('К храму', "ven_temple_keeper_house_inside");
 
    }
 
};
 

	
 
ven_temple_keeper_house_inside = room {
 
    nam = 'ven_temple_keeper_house_inside';
 
    disp = 'Храм Венаэданотра, дом хранителя';
 
    dsc = [[Небольшая комната практически пуста, не считая стола, стоящего в центре и кровати стоящей в углу. Светящиеся водоросли покрывают потолок комнаты. В другом углу комнаты расположен люк, ведущий в подвал. ]];
 
    obj = {
 
        'ven_char_temple_keeper'
 
    };
 
    way = {
 
        kh_vroom('Наружу', "ven_temple_keeper_house");
 
        kh_vroom('В люк', function(s)
 
            pr [[Хранитель не позволит вам сделать это. ]];
 
            return false;
 
        end);
 
    };
 
}
 

	
 
ven_temple_keeper_house_cellar = darkroom {
 
    nam = 'ven_temple_keeper_house_cellar';
 
    disp = 'Храм Венаэданотра, дом хранителя, подвал';
 
    dsc = [[Небольшой подвал дома хранителя. В темноте вы с трудом различаете очертания предметов. ]];
 
    obj = {
 
        'ven_keeper_chest'
 
    };
 
    way = {
 
        kh_vroom('Наверх', "ven_temple_keeper_house_inside");
 
    };
 
}
 

	
 
ven_keeper_chest = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'ven_keeper_chest';
 
    seen_level = 1;
 
    dsc = 'В углу комнаты стоит массивный каменный {сундук}. ';
 
    act = function(s)
 
        if s.state == 0 then
 
            walkin(ven_temple_lock);
 
        else
 
            pr [[Вы уже сделали здесь все необходимое. ]];
 
            return false;
 
        end;
 
    end;
 
}
 

	
 
ven_char_temple_keeper = npc {
 
    nam = 'ven_char_temple_keeper';
 
    dsc = [[На кровати сидит старый {навьяр}. Чешуя его почти белая, серые глаза с неприязнью смотрят на вас. ]];
 
    dlg = 'ven_char_temple_keeper_dlg';
 
}
 

	
 
ven_char_temple_keeper_dlg = dlg {
 
    nam = 'ven_char_temple_keeper_dlg';
 
    disp = 'Хранитель храма';
 
    entered = function(s)
 
        if ven_quest_status == 7 then
 
            pon("key");
 
        end;
 
        return [[Сидящий на кровати навьяр с неприязнью смотрит на вас. По его плавникам пробегают цветные полосы: "Уходите. Я ничего вам не скажу". ]];
 
    end;
 
    phr = {
 
        {tag='key', false, '[Кодировщик]Эйлираорр сказал, что вы можете дать мне ключ от храма.', [[Хранитель говорит: "Я не дам вам ключ. Уходите". ]], code [[ ven_quest_status = 8; pon("why", "drake"); ]]};
 
        {tag="why", false, '[Кодировщик]Почему вы не дадите нам ключ?', [[Хранитель отвечает: "Это не ваше дело. Уходите". ]]};
 
        {tag="drake", false, '[Кодировщик]Другие хевьяры были в храме?', [[Хранитель отвечает: "Это не ваше дело. Уходите". ]]};
 
        {always=true, "[Кодировщик]Я пойду.", [[Хранитель отворачивается от вас. ]], code [[back();]]};
 
    };
 
};
 

	
 
ven_temple_lock = room {
 
    values = {
 
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 
    };
 
    nam = 'Сундук';
 
    not_follow = true;
 
    pic = function(s)
 
        local p = "blank:120x120";
 
        for v = 1, #s.values do
 
            local tx = (v - 1) % 4;
 
            local ty = math.floor((v - 1) / 4);
 

	
 
            local lstate = '';
 
            if s.values[v] == 1 then
 
                lstate = 'pressed';
 
            else
 
                lstate = 'unpressed';
 
            end;
 

	
 
            p = p .. ';images/tile_' .. lstate .. '.png@' .. tostring(tx * 30) .. ',' .. tostring(ty * 30);
 
        end;
 
        return p;
 
    end;
 
    click = function(s, x, y)
 
        local t = 1 + math.floor(x / 30) + math.floor(y / 30) * 4;
 
        local tup = t - 4;
 
        local tlt = t - 1;
 
        local trt = t + 1;
 
        local tdn = t + 4;
 

	
 
        if s.values[t] == 1 then
 
            s.values[t] = 0;
 
        else
 
            s.values[t] = 1;
 
        end;
 

	
 
        if tup > 0 then
 
            if s.values[tup] == 1 then
 
                s.values[tup] = 0;
 
            else
 
                s.values[tup] = 1;
 
            end;
 
        end;
 

	
 
        if tdn < 17 then
 
            if s.values[tdn] == 1 then
 
                s.values[tdn] = 0;
 
            else
 
                s.values[tdn] = 1;
 
            end;
 
        end;
 

	
 
        if tlt % 4 ~= 0 then
 
            if s.values[tlt] == 1 then
 
                s.values[tlt] = 0;
 
            else
 
                s.values[tlt] = 1;
 
            end;
 
        end;
 

	
 
        if trt % 4 ~= 1 then
 
            if s.values[trt] == 1 then
 
                s.values[trt] = 0;
 
            else
 
                s.values[trt] = 1;
 
            end;
 
        end;
 

	
 
        for v = 1, #s.values do
 
            if s.values[v] == 0 then
 
                walk(here());
 
                return;
 
            end;
 
        end;
 

	
 
        p("С легким скрежетом сундук открывается. Внутри вы обнаруживаете огромное количество каменных и металлических табличек в разном состоянии, огромную стопку светодисков и искомый вами красный камень. ");
 
        take(ven_item_red_key);
 
        walk(ven_temple_keeper_house_cellar)
 
    end;
 
}
startup.lua
Show inline comments
 
@@ -169,7 +169,7 @@ function init()
 
    ---debug
 
    table.insert(pl.party, 'learr');
 
    table.insert(pl.party, 'radcliffe');
 
    pl.where = "ven_char_phanearr_dlg";
 
    pl.where = "ven_temple_lock";
 
    move("submarine_leviathan", "ven_ravine_entrance");
 
    ven_center.state = 1;
 
    ven_quest_status = 4;
0 comments (0 inline, 0 general)