Changeset - d1f9b6cc03b6
[Not reviewed]
default
0 2 0
Silverwing - 6 years ago 2018-12-23 15:02:46

Chapter 2: Box of rays is now visible
2 files changed with 4 insertions and 1 deletions:
0 comments (0 inline, 0 general)
items.lua
Show inline comments
 
@@ -717,126 +717,126 @@ item_dynamo = obj {
 
        end;
 
    end;
 
    dsc = [[На одном из столов лежит небольшая {коробочка} с вращающейся рукояткой. ]];
 
    inv = function(s)
 
        if s.state == 0 then
 
            return [[Небольшая динамо-машина с рукояткой и клеммами для подключения к электрической цепи. При вращении рукоятки вырабатывается электрический ток. ]];
 
        else
 
            return [[Разобранная динамо-машина. ]];
 
        end;
 
    end;
 
    tak = [[Вы забираете динамо-машину. ]];
 
    used = function(s, o)
 
        if s.state == 0 then
 
            if o == item_toolbox then
 
                if here().underwater then
 
                    return [[Вы не можете сделать это здесь. ]];
 
                else
 
                    s.state = 1;
 
                    return [[Вы разбираете динамо-машину. ]];
 
                end;
 
            end;
 
        elseif s.state == 1 then
 
            if o == item_electric_lamp and item_electric_lamp.state == 1 then
 
                if here().underwater then
 
                    return [[Вы не можете сделать это здесь. ]];
 
                else
 
                    item_electric_lamp.state = 2;
 
                    remove(s, pl);
 
                    return [[Вы собираете лампу с динамо-машиной в одном корпусе. Теперь батарею можно заряжать не разбирая лампу. Вождь навьяров будет рад такому подарку. ]]
 
                end;
 
            end;
 
        end;
 
    end;
 
};
 
 
item_electric_lamp = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = "item_electric_lamp";
 
    disp = function(s)
 
        if s.state == 0 then
 
            return "Лампа";
 
        elseif s.state == 1 then
 
            return "Разобранная лампа";
 
        elseif s.state == 2 then
 
            return "Лампа с динамо-машиной";
 
        end;
 
    end;
 
    dsc = [[В шкафу лежат на полках {лампы}, предназначенные для монтирования на скафандры. ]];
 
    inv = function(s)
 
        if s.state == 0 then
 
            return "Электрическая лампа в герметичном корпусе, содержащем саму лампу и батарею для ее питания. Батареи хватит примерно на полчаса-час работы. ";
 
        elseif s.state == 1 then
 
            return "Детали электрической лампы: Корпус, лампа, батарея. ";
 
        elseif s.state == 2 then
 
            return "Электрическая лампа в герметичном корпусе, содержащем саму лампу, батарею для ее питания и динамо-машину. Батареи хватит примерно на полчаса-час работы. Покрутите рукоятку чтобы зарядить батарею. ";
 
        end;
 
    end;
 
    tak = "Вы забираете одну из ламп. ";
 
    used = function(s, o)
 
        if s.state == 0 then
 
            if o == item_toolbox then
 
                if here().underwater then
 
                    return [[Вы не можете сделать это здесь. ]];
 
                else
 
                    s.state = 1;
 
                    return [[Вы разбираете лампу. ]];
 
                end;
 
            end;
 
        elseif s.state == 1 then
 
            if o == item_dynamo and item_dynamo.state == 1 then
 
                if here().underwater then
 
                    return [[Вы не можете сделать это здесь. ]];
 
                else
 
                    s.state = 2;
 
                    remove(item_dynamo, pl);
 
                    return [[Вы собираете лампу с динамо-машиной в одном корпусе. Теперь батарею можно заряжать не разбирая лампу. Вождь навьяров будет рад такому подарку. ]]
 
                end;
 
            end;
 
        end;
 
    end;
 
};
 
 
item_shark_tooth = obj {
 
    nam = "item_shark_tooth";
 
    disp = "Зуб акулы";
 
    dsc = [[{Мертвая акула} лежит здесь, пронзенная вашим гарпуном. ]];
 
    inv = [[Острый зуб кровожадной акулы, жившей у храма Ираафаанотра. ]];
 
    tak = [[Вы вырываете у акулы из пасти зуб и забираете его себе. ]];
 
};
 
 
item_raybox = obj {
 
	nam = 'item_raybox';
 
	disp = 'Коробочка лучей';
 
	dsc = function(s)
 
		if here() == 'ven_ravine_crypt' then
 
		if stead.deref(here()) == 'ven_ravine_crypt' then
 
			return [[Среди множества приборов, расположенных вдоль стен комнаты, ваше внимание привлекает небольшая прозрачная {коробочка} с несколькими прорезями. Внутри ее непрерывно движутся тонкие лучики света. ]];
 
		else
 
			return [[В центре стола, опутанная паутиной проводов, установлена {коробочка лучей}. Внутри нее, в точности как там, в навьярском хранилище, движутся тонкие лучики света. ]];
 
		end;
 
	end;
 
	inv = [[Навьярский прибор, известный вам как "коробочка лучей". Осталось научиться пользоваться им. ]];
 
	act = function(s)
 
		if here() == 'ven_ravine_crypt' then
 
			remove(item_raybox, where(item_raybox));
 
			take(item_raybox, pl);
 
			return [[Вы аккуратно извлекаете "коробочку лучей" из механизма, в который она установлена. Светящиеся линии в ее недрах мгновенно гаснут. ]];
 
		end;
 
	end;
 
	used = function(s, o)
 
		if o == item_map_disc then
 
			deep_temple_found = true;
 
			remove(item_map_disc, pl);
 
			return [[Вы помещаете диск внутрь коробочки и он тут же опутывается лучами, которые начинают отражаться от него. Над поверхностью коробочки возникает полупрозрачное изображение -- это очень детальная навьярская карта, описывающая какое-то место, находящееся очень далеко отсюда. Цветные полосы, возникшие над изображением гласят "храм". ]];
 
		end;
 
	end
 
}
 
 
item_map_disc = obj {
 
	nam = "item_temple_disk";
 
	disp = "Светодиск из катакомб";
 
	dsc = [[У стены лежит небольшой блестящий {диск}. ]];
 
	tak = [[Вы поднимаете диск. ]];
 
	inv = [[Найденный в катакомбах Нлейисланотра блестящий гладкий диск из неизвестного материала. Диаметр около 10 сантиметров. В центре небольшое треугольное отверстие. Вдоль внешней кромки тянутся цветные полосы. ]];
 
}
 
\ No newline at end of file
journey_venaedanotrr.lua
Show inline comments
 
@@ -1027,192 +1027,195 @@ ven_ravine_learr_dlg_2 = dlg {
 
        {'[Передатчик]Левиафан, прием. Я отправляю Леарр к вам. Отправьте кого-нибудь на встречу.', [[В динамиках вы слышите голос Уолтера Рэдклиффа: "Левиафан на связи. Вас понял, Дрейк. Левиафан, конец связи."]], code [[psub('leviathan');]]};
 
        {tag='leviathan'};
 
        {'[Кодировщик]Возвращайся на Левиафан. Я пойду дальше. Тебя встретит человек с Левиафана.', [[Леарр уходит. ]], code [[
 
            ven_learr_met = true;
 
            ven_learr_sent_away = true;
 
            char_learr:accompany(false);
 
            for i = 1, #pl.party do
 
                if pl.party[i] == 'learr' then
 
                    table.remove(pl.party, i);
 
                    break;
 
                end;
 
            end;
 
            remove(char_learr, where(char_learr));
 
            back();
 
        ]]};
 
    };
 
}
 

	
 
ven_ravine_4 = room {
 
    nam = 'Ущелье';
 
    dsc = [[Здесь ущелье сужается до такой степени, что вам, в скафандре туда не пройти. ]];
 
    obj = {
 
        'ven_ravine_door',
 
        'ven_ravine_gratings',
 
        'ven_item_phanearr_unconscious'
 
    };
 
    way = {
 
        kh_vroom('Назад', 'ven_ravine_3');
 
        kh_vroom('В дверь', function(s)
 
            if ven_ravine_door.state == 0 then
 
                pr [[Вы не знаете, как открыть эту дверь. ]];
 
                return false;
 
            else
 
                return 'ven_ravine_crypt_entrance';
 
            end;
 
        end);
 
        kh_vroom('Глубже в ущелье', function(s)
 
            pr [[Вы не сможете туда протиснуться. ]];
 
            return false;
 
        end);
 
    };
 
}
 

	
 
ven_ravine_door = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'ven_ravine_door';
 
    dsc = function(s)
 
        if s.state == 0 then
 
            return [[В скале слева от вас вы видите массивную металлическую {дверь}, испещренную черными линиями странных едва заметных узоров. ]];
 
        else
 
            return [[В скале слева от вас вы видите массивную металлическую {дверь}, испещренную светящимися ярким зеленоватым светом линиями странных узоров. ]];
 
        end;
 
    end;
 
    act = function(s)
 
        if s.state == 0 then
 
            return [[При внимательном осмотре вы замечаете в центре двери небольшую квадратную выемку -- около пяти сантиметров. ]];
 
        else
 
            return [[При вашем приближении дверь начинает медленно открываться, но стоит вам отойти, она возвращается на прежнее место. ]];
 
        end;
 
    end;
 
    used = function(s, o)
 
        if o == ven_item_key and s.state == 0 then
 
            s.state = 1;
 
            remove(ven_item_key, pl);
 
            return [[Кубик входит внутрь ниши. Линии узоров на двери, еще недавно бывшие черными, начинают светиться ярким зеленоватым светом. ]];
 
        end;
 
    end;
 
}
 

	
 
ven_ravine_crypt_entrance = room {
 
    nam = 'Ущелье, тайное хранилище';
 
    dsc = [[В мутной воде вы с трудом различаете очертания металлических стен, покрытых узорами светящихся зеленоватых линий. Из-под решетчатого пола грязным зеленым дымом поднимается ирфирр. Навьяры никогда не смогли бы войти сюда. В дальнем конце помещения вы видите очертания небольшой двери. ]];
 
    obj = {
 
        'ven_towers_machine';
 
    };
 
    way = {
 
        kh_vroom('Выйти в ущелье', 'ven_ravine_4');
 
        kh_vroom('В дверь', function(s)
 
            if ven_towers_machine_look.solved then
 
                return 'ven_ravine_crypt';
 
            else
 
                pr [[Дверь не открывается. ]];
 
                return false;
 
            end;
 
        end)
 
    };
 
}
 

	
 
ven_ravine_crypt = room {
 
    nam = 'Ущелье, тайное хранилище';
 
    dsc = [[Вода здесь существенно чище, чем в предыдущем помещении. Лишь из вентиляционных решеток сочится небольшое количество Ирфирра. Стены здесь покрыты черными стеклянными панелями, под которыми слабо светятся все время меняющиеся изображения и цветные символы древнего, давно забытого, языка навьяров. Пол и потолок покрыты концентрическими кругами светящихся ровным белым светом линий. ]];
 
    obj = {
 
        'item_raybox';
 
    };
 
    way = {
 
        kh_vroom('К выходу', 'ven_ravine_crypt_entrance');
 
    };
 
}
 

	
 
ven_ravine_gratings = obj {
 
    nam = 'ven_ravine_gratings';
 
    dsc = [[В дно ущелья вмонтировано несколько {решеток}, через которые просачивается темнозеленая жидкость, медленно растворяющаяся в окружающей воде. ]];
 
}
 

	
 
ven_item_phanearr_unconscious = obj {
 
    var {
 
        state = 0;
 
    };
 
    nam = 'ven_item_phanearr_unconscious';
 
    disp = 'Навьяр';
 
    dsc = [[Рядом с дверью неподвижно лежит {навьяр}.]];
 
    act = function(s)
 
        if s.state == 0 then
 
            s.state = 1;
 
            return [[Присмотревшись, вы понимаете, что навьяр еще жив. ]];
 
        else
 
            if have(ven_item_learr_unconscious) then
 
                return [[Вы не сможете унести двоих навьяров. Вам придется вернуться за ним позже. ]];
 
            else
 
                remove(ven_item_phanearr_unconscious, here());
 
                put(ven_item_phanearr_unconscious, pl);
 
                return [[Вы поднимаете неподвижного навьяра на руки. ]];
 
            end;
 
        end;
 
    end;
 
    inv = [[Навьяр без сознания. Он едва дышит. ]];
 
}
 

	
 
ven_item_learr_unconscious = obj {
 
    nam = 'ven_item_learr_unconscious';
 
    disp = 'Леарр';
 
    dsc = [[Прямо посередине ущелья лежит {Леарр}. Она без сознания. ]];
 
    tak = function(s)
 
        if have(ven_item_phanearr_unconscious, pl) then
 
            pr [[Вы не сможете унести двоих навьяров. Вам придется вернуться за Леарр позже. ]];
 
            return false;
 
        end;
 
        return [[Вы поднимаете Леарр на руки. ]];
 
    end;
 
    inv = [[Леарр без сознания. Она едва дышит. ]];
 
}
 

	
 
ven_cutscene_learr_ill = cutscene('ven_cutscene_learr_ill', 'Левиафан', function(s)
 
    if ven_quest_status < 5 then
 
        return [[Вы возвращаетесь на Левиафан. Состояние Леарр остается прежним -- навьяресса остается без сознания и не подает никаких признаков улучшения. Вы оставляете ее в одной из кают, а сами возвращаетесь завершить задание. ]]
 
    else
 
        return [[Вы возвращаетесь на Левиафан. Состояние навьяров остается прежним. Вы полным ходом спешите в Венаэданотр в надежде найти способ вылечить их. ]];
 
    end;
 
end, function(s)
 
    ven_learr_has_returned = true;
 
    remove(ven_item_learr_unconscious, pl);
 
    remove(ven_item_phanearr_unconscious, pl);
 
    if ven_quest_status == 5 then
 
        -- Return to venaedanotrr, put learr and phanearr to healer's house
 
        move(submarine_leviathan, "ven_center");
 
        put(ven_char_phanearr_ill, "ven_healer_house_room");
 
        put(ven_char_learr_ill, "ven_healer_house_room");
 
        return 'ven_cutscene_return_to_city';
 
    end;
 
    return 'ven_ravine_entrance';
 
end);
 

	
 
ven_cutscene_phanearr_returned = cutscene('ven_cutscene_phanearr_returned', 'Левиафан', function(s)
 
    if ven_learr_has_returned or ven_learr_met then
 
        return [[Вы возвращаетесь на Левиафан вместе с телом исследователя. Состояние Леарр за время вашего отсутствия не изменилось.  Вы полным ходом спешите в Венаэданотр в надежде найти способ вылечить навьяров. ]];
 
    elseif not ven_learr_ill_heavy then
 
        return [[Вы возвращаетесь на Левиафан вместе с телом исследователя. Вы полным ходом спешите в Венаэданотр в надежде найти способ вылечить навьярa. ]];
 
    else
 
        return [[Вы возвращаетесь на Левиафан вместе с телом исследователя. Вы оставляете его в одной из кают, а сами возвращаетесь за Леарр. ]];
 
    end;
 
end, function(s)
 
    ven_quest_status = 5;
 
    put(ven_char_phanearr_ill, "ven_healer_house_room");
 
    remove(ven_item_learr_unconscious, pl);
 
    remove(ven_item_phanearr_unconscious, pl);
 
    if ven_learr_has_returned or ven_learr_met then
 
        move(submarine_leviathan, "ven_center");
 
        put(ven_char_learr_ill, "ven_healer_house_room");
 
        return "ven_cutscene_return_to_city";
 
    elseif not ven_learr_ill_heavy then
 
        move(submarine_leviathan, "ven_center");
 
        return "ven_cutscene_return_to_city";
 
    else
 
        return "ven_ravine_entrance";
 
    end;
 
end)
 

	
 
ven_char_phanearr_ill = obj {
 
    nam = 'ven_char_phanearr_ill';
 
    dsc = [[{Фанеарр} лежит без сознания на одной из кроватей. ]];
 
    act = [[Вам нужно найти способ вылечить его. ]];
 
}
 

	
0 comments (0 inline, 0 general)