Changeset - ed3e36144593
[Not reviewed]
default
0 5 1
Silverwing - 7 years ago 2016-11-05 09:07:00

zayslanotrr additions. Added new file
6 files changed with 434 insertions and 2 deletions:
0 comments (0 inline, 0 general)
game_over.lua
Show inline comments
 
game_over_za_temple = game_over("game_over_za_temple", [[
 
    Развернув субмарину вы подставили винт под удары ваших противников. Несколько попаданий в винт выводят его из строя и Левиафан оказывается обездвижен. Теперь вы совершенно беззащитны перед атаками противника. 
 
]]);
 
 
game_over_za_fight = game_over("game_over_za_fight", [[
 
    Стражники навьяров - опасные противники. Очередной удар копья проделывает дыру в вашем скафандре и он наполняется водой. Вскоре вы задыхаетесь. 
 
]]);
items.lua
Show inline comments
 
@@ -664,4 +664,35 @@ item_suit = suit {
 
	--cantakeoff = function(s)
 
	--	return not where(pl).underwater;
 
	--end;
 
};
 
 
item_deep_key = obj {
 
    nam = "item_deep_key";
 
    disp = "Пирамидка";
 
    dsc = [[
 
        На пьедестале вы видите небольшой блестящий {предмет}.
 
    ]];
 
    inv = [[
 
        Небольшая полупрозрачная пирамидка из неизвестного материала. Гладкая и холодная на ощупь. На гранях пирамидки нанесены непонятные символы. 
 
    ]];
 
    tak = [[
 
        Это оказалась небольшая полупрозрачная пирамидка. Вы забираете ее себе. 
 
    ]];
 
};
 
 
item_navjiarr_chart_z = obj {
 
nam = "item_navjiarr_chart_z";
 
    disp = "Навьярская табличка";
 
    dsc = [[
 
        На пьедестале лежит небольшая металлическая {табличка}.
 
    ]];
 
    tak = function(s)
 
        
 
        return [[
 
            Вы поднимаете предмет - это небольшая металлическая табличка. Вдалеке вы слышите скрежет камней - дверь храма снова открыта. 
 
        ]];
 
    end;
 
    inv = [[
 
        Металлическая табличка, на которую нанесены странные обозначения. 
 
    ]];
 
};
 
\ No newline at end of file
journey_temple.lua
Show inline comments
 
new file 100644
journey_venaedanotrr.lua
Show inline comments
 
@@ -217,6 +217,9 @@ ven_center = room {
 
	dsc = [[
 
		Центральная площадь навьярского города вымощена камнем. Во все стороны вокруг тянутся невысокие каменные строения. Вдали на востоке вы видите башню, возвышающуюся над остальными зданиями города. 
 
	]];
 
    view = [[
 
        Из иллюминаторов Левиафана открывается великолемный вид на навьярский город. Множество каменных строений, раскинувшихся вокруг центрального обелиска соединены между собой ровными улицами, протянувшимися от окраин к центру. 
 
    ]];
 
	obj = {
 
		'ven_obelisk',
 
		'ven_chieftain'
journey_zayslanotrr_temple.lua
Show inline comments
 
za_temple_entrance_foot = room {
 
    nam = "Храм Заисланотра, вход";
 
    handwheel_room = "za_temple_entrance_foot";
 
    underwater = true;
 
    no_exit = [[
 
        Нет смысла покидать Левиафан здесь. 
 
    ]];
 
    view = [[
 
        Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой.
 
    ]];
 
};
 

	
 
za_temple_entrance = dlg {
 
    nam = "Левиафан, рубка";
 
    var {
 
        state = 0;
 
    };
 
    entered = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            return [[
 
                Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой. ^
 
                В рубку поднимается Фаэтларр и окидывает взглядом скалу перед вами. Медленно подойдя к иллюминатору он произносит: "Другой-вход в-храм-такой-есть. Он меньше-охраняться-должен. Ты смотри правее. У нас так построено, значит и у них так". 
 
            ]];
 
        else
 
            return [[
 
                Через иллюминаторы вы видите вдалеке главный вход в храм Заисланотра. Над вырезанными в каменной толще массивными воротами видны узоры, нанесенные светящейся краской. У входа стоят несколько стражников, вооруженных копьями. Рядом с ними кружат их верные ездовые акулы, а чуть поодаль вы видите двух скатов, готовых рвануться в бой. 
 
            ]];
 
        end;
 
    end;
 
    phr = {
 
        {"[Двигаться налево вдоль скалы]", [[ 
 
            Вы двигаетесь довольно долго, но когда становится очевидно, что там ничего нет, вы возвращаетесь на исходную позицию. 
 
        ]]};
 
        {"[Двигаться направо вдоль скалы]", [[
 
            Фаэтларр оказался прав. Совсем скоро вы замечаете узкий проход в скале. Если второй вход в храм существует, то он здесь. 
 
        ]], code = [[ walk("za_temple_back_entrance");]]};
 
        {"[Отправиться в другое место]", code = [[ walk("leviathan_wheelhouse"); ]]};
 
        {"[Отойти от штурвала]", code = [[ walk("leviathan_wheelhouse");]]};
 
    };
 
};
 

	
 
za_temple_back_entrance_foot = room {
 
    nam = "Храм Заисланотра, задний вход";
 
    dsc = [[
 
        Вы стоите перед расщелиной в скале, освещенной мощным лучом прожектора вашей субмарины. 
 
    ]];
 
    underwater = true;
 
    view = [[
 
        Через иллюминаторы вы видите расщелину в скале, освещенную мощным лучом прожектора Левиафана. 
 
    ]];
 
    way = {
 
        kh_vroom("В Левиафан", function(s)
 
            if (not have(item_navjiarr_chart_z)) then
 
                return leviathan_airlock;
 
            else
 
                return "za_leviathan_fight";
 
            end;
 
        end);
 
        kh_vroom("В ущелье", "za_ravine_1");
 
    };
 
};
 

	
 
za_temple_back_entrance = dlg {
 
    nam = "Левиафан, рубка";
 
    entered = [[
 
        Через иллюминаторы вы видите расщелину в скале, освещенную мощным лучом прожектора. 
 
    ]];
 
    phr = {
 
        {"[Вернуться к главному входу]", code = [[ walk("za_temple_entrance"); ]]};
 
        {"[Отправиться в другое место]", code = [[ walk("leviathan_wheelhouse"); ]]};
 
        {"[Отойти от штурвала]", code = [[ walk("leviathan_wheelhouse");]]};
 
    };
 
};
 

	
 
za_ravine_1 = room {
 
    nam = "za_ravine_1";
 
    disp = "Ущелье";
 
    dsc = [[
 
        Вы находитесь в узком темном ущелье. Вы с трудом можете передвигаться по нему не задевая стен. Впереди ущелье разветвляется. Левое ответвление достаточно широкое, чтобы вы могли спокойно пройти. Правое настолько узкое, что вы с трудом сможете протиснуться в него. 
 
    ]];
 
    way = {
 
        kh_vroom("Выйти из ущелья", "za_temple_back_entrance_foot");
 
        kh_vroom("Налево", "za_ravine_2");
 
        kh_vroom("Направо", "za_ravine_3");
 
    };
 
};
 

	
 
za_ravine_2 = room {
 
    nam = "za_ravine_2";
 
    disp = "Ущелье, вход в храм";
 
    dsc = [[
 
        В конце ущелья вы видите массивую металлическую дверь. 
 
    ]];
 
    way = {
 
        kh_vroom("Назад", "za_ravine_1");
 
        kh_vroom("В храм", function(s)
 
            if (za_panel.state == 1) then
 
                return "za_temple_chamber";
 
            else
 
                pr [[
 
                    Дверь заперта и вы не знаете как ее открыть. 
 
                ]];
 
                return false;
 
            end;
 
        end);
 
    };
 
};
 

	
 
za_ravine_3 = room {
 
    nam = "za_ravine_3";
 
    disp = "Ущелье";
 
    dsc = [[
 
        Вы находитесь в конце одного из ответвлений ущелья. Здесь так тесно, что вы не можете даже развернуться. 
 
    ]];
 
    obj = {
 
        "za_panel"
 
    };
 
    way = {
 
        kh_vroom("Назад", "za_ravine_1");
 
    };
 
};
 

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

	
 
za_temple_chamber = room {
 
    var {
 
        state = 0;
 
    };
 
    nam = "za_temple_chamber";
 
    disp = "Храм Заисланотра, главный зал";
 
    dsc = [[
 
        Вы находитесь в главном помещении древнего храма. Металлические стены зала освещены сиянием люминесцентных водорослей на потолке и на полу. 
 
    ]];
 
    entered = function(s)
 
        if (s.state == 0) then
 
            s.state = 1;
 
            return [[
 
                Дверь позади вас закрывается и вы оказываетесь заперты в помещении. 
 
            ]];
 
        end;
 
    end;
 
    obj = {
 
        "za_pedestal",
 
        "item_deep_key"
 
    };
 
    way = {
 
        kh_vroom("Выйти", function(s)
 
            if (have(item_navjiarr_chart_z)) then
 
                return "za_ravine_2";
 
            else
 
                return "Дверь заперта";
 
            end;
 
        end);
 
    };
 
};
 

	
 
za_temple_lower_level1 = room {
 
    nam = "za_temple_lower_level1";
 
    disp = "Храм Заисланотра, нижний этаж, спуск";
 
    dsc = [[
 
        Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. Коридор плавно уходит вниз, в недра скалы. 
 
    ]];
 
    way = {
 
        kh_vroom("Наверх", "za_temple_chamber");
 
        kh_vroom("Дальше по коридору", "za_temple_lower_level2");
 
    };
 
};
 

	
 
za_temple_lower_level2 = room {
 
    nam = "za_temple_lower_level2";
 
    disp = "Храм Заисланотра, нижний этаж";
 
    dsc = [[
 
        Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. 
 
    ]];
 
    way = {
 
        kh_vroom("Назад", "za_temple_lower_level1");
 
        kh_vroom("Дальше по коридору", "za_temple_lower_level3");
 
    };
 
};
 

	
 
za_temple_lower_level3 = room {
 
    nam = "za_temple_lower_level3";
 
    disp = "Храм Заисланотра, нижний этаж, тупик";
 
    dsc = [[
 
        Вы находитесь в узком коридоре, ярко освещенном люминесцентными водорослями. В конце коридора находится массивная металлическая дверь. 
 
    ]];
 
    way = {
 
        kh_vroom("Назад", "za_temple_lower_level2");
 
        kh_vroom("В дверь", "za_temple_lower_hall");
 
    };
 
};
 

	
 
za_temple_room1 = room {
 
    nam = "za_temple_room1";
 
    disp = "Храм Заисланотра, нижний этаж, комната";
 
    dsc = [[
 
        Вы находитесь в небольшой комнате. Так же, как и другие помещения храма, пол и потолок ее покрыты светящимися водорослями. 
 
    ]];
 
    obj = {
 
        "za_temple_room1_walls", 
 
        "za_temple_room1_niche", 
 
    };
 
};
 

	
 
za_temple_room2 = room {
 
    nam = "za_temple_room2";
 
    disp = "Храм Заисланотра, нижний этаж, комната";
 
    dsc = [[
 
        Вы находитесь в небольшой комнате. Так же, как и другие помещения храма, пол и потолок ее покрыты светящимися водорослями. 
 
    ]];
 
    obj = {
 
        "za_temple_room2_niche"
 
    };
 
};
 

	
 
za_temple_room1_walls = obj {
 
    nam = "za_temple_room1_walls";
 
    dsc = [[
 
        На стенах комнаты нанесены навьярские {записи}.
 
    ]];
 
    act = [[
 
        Записи гласят, что где-то в этом храме должен быть ключ от древнего храма, где сокрыт некий "тайный предмет". 
 
    ]];
 
};
 

	
 
za_temple_room1_niche = obj {
 
    nam = "za_temple_room1_niche";
 
    dsc = [[
 
        В одной из стен вы видите небольшую {выемку}. 
 
    ]];
 
    act = function(s)
 
        if (seen(za_temple_room2_niche, za_temple_room2)) then
 
            return [[
 
                Вам здесь больше нечего делать. 
 
            ]];
 
        else
 
            za_temple_room2_niche:enable();
 
            return [[
 
                Внутри выемки вы нажимаете на что-то и слышите скрежет камня в соседней комнате. 
 
            ]];
 
        end;
 
    end;
 
};
 

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

	
 
za_temple_room2_niche:disable();
 

	
 
za_temple_lower_hall = room {
 
    nam = "za_temple_lower_hall";
 
    disp = "Храм Заисланотра, нижний этаж, главный зал";
 
    dsc = [[
 
        Вы находитесь в просторном зале на нижнем этаже храма Заисланотра. 
 
    ]];
 
    obj = {
 
        "za_temple_hall_walls";
 
        "za_hall_pedestal";
 
        "item_navjiarr_chart_z";
 
    };
 
    way = {
 
        kh_vroom("В коридор", "za_temple_lower_level3");
 
    };
 
};
 

	
 
za_temple_hall_walls = obj {
 
    nam = "za_temple_hall_walls";
 
    dsc = [[
 
        На стенах зала нанесены навьярские {записи}.
 
    ]];
 
    act = [[
 
        
 
    ]];
 
};
 

	
 
za_pedestal = obj {
 
    nam = "za_pedestal";
 
    dsc = [[
 
        В центре зала установлен небольшой пьедестал.
 
    ]];
 
};
 

	
 
za_hall_pedestal = obj {
 
    nam = "za_hall_pedestal";
 
    dsc = [[
 
        В центре зала установлен небольшой пьедестал.
 
    ]];
 
};
 

	
 
za_leviathan_fight = dlg {
 
    var {
 
        state = 0;
 
    };
 
    nam = "za_leviathan_fight";
 
    disp = "Левиафан, рубка";
 
    entered = function(s)
 
        pr [[
 
            Еще забираясь в люк, вы замечаете, как со стороны главного входа храма к вам движется вооруженный отряд навьяров. Вы быстро снимаете скафандр и отправляетесь в рубку. Фаэтларр уже стоит у иллюминатора и внимательно наблюдает за происходящим. Повернувшись к вам, навьяр говорит: "Ваш-корабль быстрее их-воинов. Мы легко-уйдем".
 
        ]];
 
        if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
            pr [[
 
                Леарр, стоящая рядом соглашается с ним: "Я им-вредить-не-хочу. Если мы просто-уйти-можем, то мы просто-уйдем".
 
            ]];
 
        end;
 
        pr [[
 
            Встав за штурвал, вы оцениваете ситуацию: со стороны главного входа к вам приближаются несколько всадников на акулах и три ската. вслед за ними плывут около десятка воинов вооруженных копьями. Просто уйти вы не сможете - пока Левиафан будет разворачиваться, враги догонят вас. 
 
        ]];
 
    end;
 
    phr = {
 
        {tag="torpedo", "[Выпустить торпеду]", function(s)
 
            rel_learr = rel_learr - 1;
 
            rel_phaetlarr = rel_phaetlarr - 1;
 
            
 
            pr [[
 
                Мощный взрыв раскидывает ошарашенных навьяров. Вода окрашивается кровью и ваш путь оказывается свободен. Фаэтларр в ужасе прильнул к степклу иллюминатора. По его плавникам бегут цветные полосы: "Что ты наделал?"
 
            ]];
 
            if (ArrayUtils.indexOf(pl.party, 'learr') ~= 0) then
 
                pr [[
 
                    Леарр не говоря ни слова покидает рубку. 
 
                ]];
 
            end;
 
        end, code [[ poff("sonic"); za_leviathan_fight.state = 2; ]]};
 
        {tag="sonic", "[Выстрелить из звуковой пушки]", [[
 
            Несколько выстрелов из звуковой пушки успешно дезориентируют противника. Теперь у вас есть достаточно времени, чтобы уйти. 
 
        ]], code [[ za_leviathan_fight.state = 1; ]]};
 
        {tag="away", "[Развернуть субмарину]", code = function(s)
 
            if (za_leviathan_fight.state == 0) then
 
                walk("game_over_za_temple_escape");
 
            elseif (za_leviathan_fight.state == 1) then
 
                walk("za_temple_escape_sonic");
 
            else
 
                walk("za_temple_escape_torpedo");
 
            end;
 
        end};
 
    };
 
};
 

	
 
za_temple_escape_sonic = cutscene("za_temple_escape_sonic", "Левиафан, рубка", [[
 
    Пользуясь смятением в рядах противника, вы разворачиваете субмарину и быстро набираете скорость. 
 
]], "leviathan_wheelhouse");
 

	
 
za_temple_escape_torpedo = cutscene("za_temple_escape_sonic", "Левиафан, рубка", [[
 
    Вы разворачиваете субмарину и покидаете место бойни. Немногие выжившие противники в ужасе бегут. 
 
]], "leviathan_wheelhouse");
main.lua
Show inline comments
 
@@ -38,6 +38,8 @@ dofile "atlantis_catching_the_tail.lua"
 
-- Часть 3
 
dofile "journey_venaedanotrr.lua"
 
dofile "journey_zayslanotrr.lua"
 
dofile "journey_zayslanotrr_temple.lua"
 
dofile "journey_temple.lua"
 
-- Часть 4
 
dofile "final_scene.lua";
 
dofile "final_battle.lua";
 
@@ -219,8 +221,8 @@ function init()
 
    put(item_colt, pl);
 
    --ven_shark.position = "55";
 
	--pl.where = "za_plaetlarr_fight";
 
    pl.where = "za_phaetlarr_dlg";
 
    move(submarine_leviathan, "ven_center");
 
    pl.where = "za_temple_back_entrance";
 
    move(submarine_leviathan, "za_temple_back_entrance_foot");
 
    char_anna.follow = true;
 
    --pl.where = "ven_chest_look";
 
    --move(ven_shark, "ven_temple_l1");
0 comments (0 inline, 0 general)