Changeset - 53bbcc2ec9b8
[Not reviewed]
default
0 2 0
Silverwing - 6 years ago 2018-12-23 17:08:47

Chapter 1-2: Object behaviour change
2 files changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
atlantis_dyp.lua
Show inline comments
 
@@ -1816,385 +1816,385 @@ dyp_temple_blue_lever = obj {
 
            path("В скрытый проход", dyp_temple_cave_deep):enable();
 
            s.state = true;
 
            return [[Вы дергаете рычаг. Со стороны входа доносится глухой звук движущейся каменной плиты. ]];
 
        end;
 
    end;
 
};
 

	
 
dyp_temple_blue_room = labyrinth {
 
    var {
 
        position = "02";
 
    };
 
    nam = "Храм Дипатреанотра, пещера";
 
    --dsc = "Вы находитесь в большой комнате. Стены покрыты водорослями, източающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ";
 
    dir1 = "На север";
 
    dir2 = "На восток";
 
    dir3 = "На юг";
 
    dir4 = "На запад";
 
    ex = "На север";
 
    underwater = true;
 
    map = {
 
        ["00"] = {
 
            name = [[Вы находитесь в северо-западном углу большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e2 = "01";
 
            e3 = "10";
 
        };
 
        ["01"] = {
 
            name = [[Вы находитесь у северной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e2 = "02";
 
            e3 = "11";
 
            e4 = "00";
 
            enter = function(s)
 
                walk("dyp_temple_cave_dead");
 
            end;
 
        };
 
        ["02"] = {
 
            name = [[Вы находитесь у входа в большую комнату. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e2 = "03";
 
            e3 = "12";
 
            e4 = "01";
 
            ex = "dyp_temple_cave_blue";
 
        };
 
        ["03"] = {
 
            name = [[Вы находитесь у северной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e2 = "04";
 
            e3 = "13";
 
            e4 = "02";
 
        };
 
        ["04"] = {
 
            name = [[Вы находитесь в северо-восточном углу большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e3 = "14";
 
            e4 = "03";
 
        };
 

	
 
        ["10"] = {
 
            name = [[Вы находитесь у западной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "00";
 
            e2 = "11";
 
            e3 = "20";
 
        };
 
        ["11"] = {
 
            name = [[Вы находитесь в северо-западной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "01";
 
            e2 = "12";
 
            e3 = "21";
 
            e4 = "10";
 
        };
 
        ["12"] = {
 
            name = [[Вы находитесь в северной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "02";
 
            e2 = "13";
 
            e3 = "22";
 
            e4 = "11";
 
        };
 
        ["13"] = {
 
            name = [[Вы находитесь в северо-восточной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "03";
 
            e2 = "14";
 
            e3 = "23";
 
            e4 = "12";
 
            enter = function(s)
 
                walk("dyp_temple_cave_dead");
 
            end;
 
        };
 
        ["14"] = {
 
            name = [[Вы находитесь у восточной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "04";
 
            e3 = "24";
 
            e4 = "13";
 
        };
 

	
 
        ["20"] = {
 
            name = [[Вы находитесь у западной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "10";
 
            e2 = "21";
 
            e3 = "30";
 
            enter = function(s)
 
                walk("dyp_temple_cave_dead");
 
            end;
 
        };
 
        ["21"] = {
 
            name = [[Вы находитесь в западной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "11";
 
            e2 = "22";
 
            e3 = "31";
 
            e4 = "20";
 
        };
 
        ["22"] = {
 
            name = [[Вы находитесь в центре большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "12";
 
            e2 = "23";
 
            e3 = "32";
 
            e4 = "21";
 
            enter = function(s)
 
                walk("dyp_temple_cave_dead");
 
            end;
 
        };
 
        ["23"] = {
 
            name = [[Вы находитесь в восточной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "13";
 
            e2 = "24";
 
            e3 = "33";
 
            e4 = "12";
 
        };
 
        ["24"] = {
 
            name = [[Вы находитесь у восточной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "14";
 
            e3 = "34";
 
            e4 = "23";
 
        };
 

	
 
        ["30"] = {
 
            name = [[Вы находитесь у западной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "20";
 
            e2 = "31";
 
            e3 = "40";
 
        };
 
        ["31"] = {
 
            name = [[Вы находитесь в юго-западной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "21";
 
            e2 = "32";
 
            e3 = "41";
 
            e4 = "30";
 
        };
 
        ["32"] = {
 
            name = [[Вы находитесь в южной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "22";
 
            e2 = "33";
 
            e3 = "42";
 
            e4 = "31";
 
            enter = function(s)
 
                walk("dyp_temple_cave_dead");
 
            end;
 
        };
 
        ["33"] = {
 
            name = [[Вы находитесь в юго-восточной части большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "23";
 
            e2 = "34";
 
            e3 = "43";
 
            e4 = "32";
 
        };
 
        ["34"] = {
 
            name = [[Вы находитесь у восточной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "24";
 
            e3 = "44";
 
            e4 = "33";
 
            enter = function(s)
 
                walk("dyp_temple_cave_dead");
 
            end;
 
        };
 

	
 
        ["40"] = {
 
            name = [[Вы находитесь в юго-западном углу большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "30";
 
            e2 = "41";
 
        };
 
        ["41"] = {
 
            name = [[Вы находитесь у южной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "31";
 
            e2 = "42";
 
            e4 = "40";
 
            enter = function(s)
 
                walk("dyp_temple_cave_dead");
 
            end;
 
        };
 
        ["42"] = {
 
            name = [[Вы находитесь у южной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "32";
 
            e2 = "43";
 
            e4 = "41";
 
            enter = function(s)
 
                move(dyp_temple_blue_lever, s);
 
            end;
 
            leave = function(s)
 
            left = function(s)
 
                remove(dyp_temple_blue_lever, s);
 
            end;
 
        };
 
        ["43"] = {
 
            name = [[Вы находитесь у южной стены большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "33";
 
            e2 = "44";
 
            e4 = "42";
 
        };
 
        ["44"] = {
 
            name = [[Вы находитесь в юго-восточном углу большой комнаты. Стены покрыты водорослями, источающими слабый свет. Пол в комнате разделен на двадцать пять квадратных ячеек. ]];
 
            e1 = "34";
 
            e4 = "43";
 
        };
 
    };
 
}
 

	
 
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_temple_cave_dead = game_over("Игра окончена", [[Потолок резко опускается на вас, придавливая к полу. Стекло шлема трескается, а сочленения скафандра гнутся, сдавливая ваше тело. Холодная вода начинает наполнять скафандр... ]])
 

	
 
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 = [[Металлическая табличка, испещренная непонятными вам линиями и символами. Письмена напоминают навьярские лишь очень отдаленно и вы даже не предполагаете, что они могут значить. ]];
 
};
 

	
journey_venaedanotrr.lua
Show inline comments
 
@@ -1229,385 +1229,385 @@ ven_cutscene_return_to_city = cutscene('ven_cutscene_return_to_city', 'Венаэданотр', function(s)
 
    if ven_learr_ill_heavy then
 
        return [[Вернувшись в Венаэданотр, вы передаете находящихся в тяжелом состоянии навьяров в руки местного лекаря. ]]
 
    else
 
        return [[Вернувшись в Венаэданотр, вы передаете находящегося в тяжелом состоянии исследователя в руки местного лекаря. ]]
 
    end;
 
end, 'ven_center');
 

	
 
ven_cutscene_healing = cutscene('ven_cutscene_healing', 'Венаэданотр', function(s)
 
    if ven_learr_ill_heavy then
 
        return [[Вы передаете ингредиенты лекарства Хисорру и возвращаетесь на Левиафан, в ожидании, пока он закончит лечение навьяров. Несколько дней спустя, Леарр возвращается на Левиафан полностью здоровой. Она сообщает вам, что Фанеарр так же оправился от болезни и ждет вас в гильдии исследователей. ]];
 
    else
 
        return [[Вы передаете ингредиенты лекарства Хисорру и возвращаетесь на Левиафан, в ожидании, пока он закончит лечение исследователя. Несколько дней спустя, к вам приходит посланник от Хисорра. Он сообщает вам, что Фанеарр оправился от болезни и ждет вас в гильдии исследователей. ]];
 
    end;
 
end, ven_center);
 

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

	
 
ven_item_poison_weed = obj {
 
    nam = 'ven_item_poison_weed';
 
    disp ='Ядовитые водоросли';
 
    inv = [[Здесь растут обычные с виду водоросли зеленого цвета. Однако, по словам Хиарирра они крайне ядовиты. По-крайней мере для навьяров. ]];
 
    dsc = [[Здесь, по словам Хиарирра, растут {ядовитые водоросли}.]];
 
    tak = [[Вы собираете водоросли, подходящие под описание, данное Хиарирром. ]];
 
}
 

	
 
ven_item_rock_stalk = obj {
 
    nam = 'ven_item_rock_stalk';
 
    disp = 'Каменный стебель';
 
    inv = [[Толстый крепкий стебель серого цвета. Действительно, очень похож на камень. ]];
 
    dsc = [[Из трещины в камнях пробивается {стебель} серого цвета. ]];
 
    tak = [[Стебель на удивление легко отламывается. ]];
 
}
 

	
 
ven_item_searing_leaf:disable();
 
ven_item_poison_weed:disable();
 
ven_item_rock_stalk:disable();
 

	
 
ven_char_phanearr = npc {
 
    nam = 'ven_char_phanearr';
 
    dsc = [[{Фанеарр} висит напротив него. ]];
 
    dlg = 'ven_char_phanearr_dlg';
 
}
 

	
 
ven_char_phanearr_dlg = dlg {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'ven_char_phanearr_dlg';
 
    disp = 'Фанеарр';
 
    entered = function(s)
 
        if s.state == 0 then
 
            s.state = 1;
 
            take(ven_item_tablet);
 
            return [[Фанеарр обращается к вам, по его головным плавникам бегут цветные полосы: "Почтенный хевьяр, благодарю тебя за помощь. В благодарность, я дам тебе кое-что, что было найдено мной некогда в том самом ущелье", -- с этими словами он протягивает вам металлическую табличку. ]];
 
        else
 
            return [[Фанеарр обращается к вам. По его головным плавникам бегут цветные полосы: "Ты говори". ]];
 
        end;
 
    end;
 
    phr = {
 
        {"[Кодировщик]Что вы искали в ущелье?", [[Фанеарр отвечает: "В данной части ущелья мы были впервые. Хиарирр откопал в библиотеке старые записи о некоем артефакте -- ,,коробке лучей''. По словам Хиарирра, с ее помощью мы сможем расшифровать светодиски, хранящиеся в библиотеке в больших количествах. К сожалению, мы не ожидали найти там источник ирфирра. Сам по себе этот яд очень коварный -- не всегда можно понять, что уже нужно срочное лечение. А здесь мы нашли его источник -- место, где вещество вырывается из земли. Мы не успели ничего понять, как большая часть из нас свалилась без сознания". ]], code [[
 
            pon("ray_box");
 
        ]]};
 
        {tag="ray_box", false, "[Кодировщик]Как мне найти коробочку лучей?", [[Фанеарр дает вам маленький металлический кубик. На его гранях высечены глубокие бороздки, предназначения которых вы не понимаете. Навьяр сообщает вам: "Мы были почти у цели. Если бы не ирфирр, мы открыли бы вход". ]], code [[
 
            ven_box_of_light_known = true;
 
            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 = [[Красный полупрозрачный додекаэдр из неизвестного материала. Грани его абсолютно гладкие.]];
 
}
 

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

	
 
--[[
 
-- Temple
 
 ]]
 

	
 
ven_temple_intro = lcutscene('ven_ravine_intro', 'Левиафан, рубка', [[Храм лежит лишь в нескольких десятках километров от города. Вырезанные в толще скалы громадные двери, украшенные богатой резьбой издали привлекают внимание. ]], 'Вы прибыли в храм Венаэданотра', leviathan_wheelhouse);
 

	
 
ven_temple_entrance = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'ven_temple_entrance';
 
    disp = 'Храм Венаэданотра, вход';
 
    dsc = [[Пред ваши взором предстают массивные двери высеченного в скале храма, покрытые резными орнаментами. Широкие металлические ступени сохранились в идеальном состоянии. Скала тянется в обе стороны от храма. Чуть поодаль стоит небольшой каменный домик, в котором живет хранитель храма. ]];
 
    view = [[Через иллюминаторы вы видите массивные двери высеченного в скале храма, покрытые резными орнаментами. Широкие металлические ступени сохранились в идеальном состоянии. Скала тянется в обе стороны от храма. Чуть поодаль стоит небольшой каменный домик, в котором живет хранитель храма.]];
 
    obj = {
 
        'ven_temple_doors';
 
    };
 
    way = {
 
        kh_vroom('В Левиафан', "leviathan_airlock");
 
        kh_vroom('В храм', function(s)
 
            if ven_temple_entrance.state == 3 then
 
                return 'ven_temple_hall_1';
 
            else
 
                p [[Двери храма не откроются для вас. ]];
 
                return false;
 
            end;
 
        end);
 
        kh_vroom('К дому хранителя', "ven_temple_keeper_house");
 
    };
 
};
 

	
 
ven_temple_doors = obj {
 
    nam = 'ven_temple_doors';
 
    dsc = function(s)
 
        if ven_temple_entrance.state == 0 then
 
            return [[В нижней части дверей храма есть два небольших многогранных {углубления}. ]];
 
        elseif ven_temple_entrance.state == 1 then
 
            return [[В нижней части дверей храма есть два небольших многогранных {углубления}. В одно из них помещен небольшой зеленый додекаэдр. ]];
 
        elseif ven_temple_entrance.state == 2 then
 
            return [[В нижней части дверей храма есть два небольших многогранных {углубления}. В одно из них помещен небольшой красный додекаэдр. ]];
 
        else
 
            return [[В нижней части дверей храма есть два небольших многогранных {углубления}, в которых сейчас расположены небольшие камни -- красный и зеленый. ]];
 
        end;
 
    end;
 
    used = function(s, o)
 
        if o == ven_item_green_key then
 
            ven_temple_entrance.state = ven_temple_entrance.state + 1;
 
            remove(ven_item_green_key, pl);
 
            p [[Додекаэдр легко входит в отверстие и накрепко закрепляется там. Где-то изнутри двери вы слышите тяжелый скрежет. ]];
 
        elseif o == ven_item_red_key then
 
            ven_temple_entrance.state = ven_temple_entrance.state + 2;
 
            remove(ven_item_red_key, pl);
 
            p [[Додекаэдр легко входит в отверстие и накрепко закрепляется там. Где-то изнутри двери вы слышите тяжелый скрежет. ]];
 
        end;
 
        if ven_temple_entrance.state == 3 then
 
            p [[Двери храма теперь открыты. ]];
 
        else
 
            p [[]];
 
        end;
 
    end;
 
}
 

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

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

	
 
            end;
 
            pr [[Хранитель не позволит вам сделать это. ]];
 
            return false;
 
        end);
 
    };
 
    leave = function(s)
 
    left = function(s)
 
        if ven_keeper_shelf.state == 1 then
 
            ven_keeper_asleep = true;
 
            remove('ven_char_temple_keeper', ven_temple_keeper_house_inside);
 
            put('ven_char_temple_keeper_asleep', ven_temple_keeper_house_inside);
 
        end;
 
    end;
 
}
 

	
 
ven_keeper_shelf = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'ven_keeper_shelf';
 
    dsc = 'Рядом со входом расположена небольшая полка, на которой лежат несколько пучков {водорослей}. ';
 
    act = function(s)
 
        if s.state == 0 then
 
            return [[Немного водорослей, обычно употребляемых навьярами в пищу. ]];
 
        else
 
            return [[Немного водорослей, обычно употребляемых навьярами в пищу. Эти водоросли пропитаны снотворным. ]];
 
        end;
 
    end;
 
    used = function(s, o)
 
        if o == ven_item_potion then
 
            remove(ven_item_potion, pl);
 
            s.state = 1;
 
            return [[Вы аккуратно открываете флакон со снотворным. Небольшая часть темной жидкости растворвяется в окружающей воде, но этой концентрации недостаточно. Вы берете немного водорослей и опускаете их во флакон. Водоросли впитывают снадобье как губка. ]];
 
        end;
 
    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_asleep = obj {
 
    nam = 'ven_char_temple_keeper';
 
    dsc = [[{Хранитель} храма мирно спит на кровати. ]];
 
    act = [[Не стоит его тревожить. ]];
 

	
 
}
 

	
 
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;
 
}
 

	
 
ven_temple_hall_1 = room {
 
    nam = 'Храм Венаэданотра, главный зал';
 
    dsc = [[Вы находитесь в главном зале храма Венаэданотра, у входа. Внутреннее убранство этого храма отличается аскетичностью -- местные жители не стремятся выставлять свои реликвии напоказ, а в этом храме регулярно проводятся массовые службы. Многочисленные полки пусты, стены, как и везде густо покрыты светящимися водорослями. ]];
 
    way = {
 
        kh_vroom('Наружу', 'ven_temple_entrance');
 
        kh_vroom('К центру зала', 'ven_temple_hall_2');
 
    };
 
}
 

	
 
ven_temple_pedestal = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'ven_temple_pedestal';
 
    dsc = [[С одной из сторон пьедестала вашему взору открывается потайная ниша, внутри которой спрятан {рычаг}. ]];
 
    act = function(s)
 
        if s.state == 0 then
 
            ven_temple_pedestal.state = 1;
 
            ven_temple_qhall.state = 1;
 
            path("Наверх", ven_temple_qhall):enable();
 
            return [[Рычаг легко поддается. Из зала вопроса доносится гул, который вскоре оканчивается глухим ударом. ]];
 
        else
0 comments (0 inline, 0 general)