diff --git a/lseryanotrr_intro.lua b/lseryanotrr_intro.lua --- a/lseryanotrr_intro.lua +++ b/lseryanotrr_intro.lua @@ -3,6 +3,7 @@ global { lse_intro_with_jack = false; lse_intro_with_walter = false; lse_intro_with_anna = false; + lse_key = false; }; lse_entered = cutscene("lse_entered", "Левиафан, рубка", [[ @@ -487,4 +488,120 @@ lse_walk_intro = cutscene("lse_walk_intro", "Лсэрианотр", function(s) end; end; end; -end, "lse_black_intro"); \ No newline at end of file +end, "lse_black_intro"); + +lse_black_intro = dlg { + nam = "lse_black_intro"; + disp = "Лсэрианотр, центральный зал"; + entered = function(s) + pr [[ + Когда вы входите в центральный зал, ваш взгляд падает на статую навьяра, стоящую в центре комнаты. Вокруг статуи расположено четыре невысоких стеклянных пилона, а со всех сторон круглого зала к статуе в центре и к пилонам тянутся толстые провода. ^ + Адриан Блэк стоит в дальнем конце комнаты. ^ + ]]; + + if (lse_intro_with_learr) then + pr [[ + Леарр застыла в замешательстве и ждет развития событий. + ]]; + end; + + if (lse_intro_with_jack) then + pr [[ + Джек окидывает взглядом комнату. На его лице явно читается интерес к расположенным в комнате вещам, однако, он не говорит ни слова. + ]]; + end; + + if (lse_intro_with_anna) then + pr [[ + Анна что-то записывает в своем блокноте. + ]]; + end; + + if (lse_intro_with_walter) then + pr [[ + Взгляд Уолтера устремлен в сторону Адриана Блэка. + ]]; + end; + + if (have("item_naethvjirr_key")) then + pon("control"); + end; + + pr [[ + Аэдхиарр подходит к Блэку и сообщает ему: "Гости прибыли". Блэк оборачивается к вам: "Добро пожаловать. Мое имя - Адриан Блэк. Я веду здесь исследовательскую деятельность". + ]]; + + if (lse_intro_with_walter) then + pr [[ + Как только Блэк заканчивает, слово берет Уолтер Рэдклифф: "Думаю, мы знакомы. Где остальной экипаж Надежды?" Блэк спокойно отвечает: "К сожалению, сюда добрались не все. Я единственный остался из экипажа Надежды". Рэдклифф задает следующий вопрос: "Вы знаете навьяра по имени Фаэтларр?" Адриан пожимает плечами: "Я не знаю каждого из них по имени. Что с ним?" Уолтер продолжает свой допрос: "Мы встретили его в Заисланотре. Он говорит, что был на борту Надежды". В глазах Блэка на секунду мелькает страх, но потом он успокаивается: "А, припоминаю. К сожалению, у нас не получилось вернуться за ним после неудачной вылазки в храм Заисланотра. Скажите, он с вами?" Леарр прислушалась и нервно сжала кулаки, а Рэдклифф все так же спокойно ответил: "Нет, он вернулся в Венаэданотр". Леарр облегченно вздохнула, а Блэк лишь печально произнес: "Очень жаль. Я думал, он хочет увидеть наш триумф". + ]]; + end; + end; + phr = { + {"Мое имя - Дэвид Дрейк", [[ + "Рад знакомству, Дэвид. Ты должно быть искал своего отца? Жаль, что так получилось. Последние несколько лет он стремился попасть сюда", - Блэк делает короткую паузу, после чего продолжает, - "Но не смог. Однако я собираюсь продолжить его дело". + ]]}; + {"О каких исследованиях идет речь?", [[ + "Вас не удивляет то, что видели перед тем как попасть сюда, в этот зал? Начиная от древних храмов со светящимися экранами и заканчивая этим городом. Очевидно, что древние навьяры знали и умели гораздо больше теперешних. И, самое главное, гораздо больше нас. Но здесь, в этом зале, находится вершина их достижений. Тот, кого называют Наэтвьирром - спящим в глубинах". + ]], code [[ psub("naethvjirr"); ]]}; + {"Вы хотите пробудить Наэтвьирра?", [[ + "Да". + ]], code [[ psub("naethvjirr"); ]]}; + {tag="naethvjirr"}; + {"Вы понимаете, какой опасности вы подвергаете мир?", [[ + "Если мы все сделаем правильно, Наэтвьирр будет подвластен мне и не сможет сделать ничего без моего ведома. И мне не помешает ваша помощь". + ]], code [[ psub("choise"); ]]}; + {tag="choise"}; + {tag="control", false, "[Показать ключ из древнего храма]Вы не сможете управлять Наэтвьирром без этого", [[ + В глазах Блэка мелькнуло любопытство: "Дайте его сюда, господин Дрейк". Вы не успеваете среагировать, как Аэдхиарр вырывает ключ из ваших рук. + ]], code [[ lse_key = true; ]]}; + {"Я готов помочь", function(s) + walk("lse_help_black"); + end}; + {"Я не стану вам помогать", function(s) + walk("lse_confront"); + end} + }; +}; + +lse_confront = cutscene("lse_confront_intro", "Лсэрианотр", function(s) + if (have("item_naethvjirr_key")) then + lse_key = true; + end; + if (lse_intro_with_learr or lse_intro_with_jack or lse_intro_with_walter or lse_intro_with_anna) then + return [[ + Блэк недовольно поправляет галстук: "Не хотите по-хорошему - будет по-плохому". ^ + В помещение входят несколько вооруженнных стражников. "Обыщите их и отведите в тюрьму. Аэдхиарр, осмотри Левиафан", - приказывает Блэк и возвращается к своим делам. Навьяры делают свое дело тщательно - они забирают все, что было при вас. Сопротивляться бесполезно - их слишком много. Они уводят вас в тюремную камеру и запирают там. Ваших спутников схватили вместе с вами. Вы садитесь на пол и обхватываете голову руками с мыслью: "Все пропало. Это конец". + ]]; + else + return [[ + Блэк недовольно поправляет галстук: "Не хотите по-хорошему - будет по-плохому". ^ + В помещение входят несколько вооруженнных стражников. "Обыщите их и отведите в тюрьму. Аэдхиарр, осмотри Левиафан", - приказывает Блэк и возвращается к своим делам. Навьяры делают свое дело тщательно - они забирают все, что было при вас. Сопротивляться бесполезно - их слишком много. Они уводят вас в тюремную камеру и запирают там. Вы садитесь на пол и обхватываете голову руками с мыслью: "Все пропало. Это конец". + ]]; + end; +end, "lse_phaetlarr_intro"); + +lse_phaetlarr_intro = cutscene("lse_phaetlarr_intro", "Левиафан, грузовой отсек", function(s) + pr [[Когда последователи Блэка вошли в Левиафан, Фаэтларр был на складе. Услышав приближение врагов, навьяр спрятался за один из стеллажей в углу помещения. Через узкую щель между ящиками он легко мог видеть все, что делалось в отсеке. К счастью, стражники, не слишком хорошо знакомые с хевьярской техникой не уделили должного внимания комнате. Впрочем, Фаэтларр все равно почерпнул много нового из разговоров захватчиков: Дрейк схвачен]]; + + if (#player_drake.party > 1) then + pr [[ и, вместе с ним, скорее всего и весь остальной экипаж]]; + end; + + pr [[, а Левиафан и все материалы попали в руки Блэку. Через некоторое время, когда стражники осмотрели все, что посчитали нужным, они покинули субмарину и Левиафан остался пустым. Настало время действовать. + ]]; +end, "lse_switch"); + +lse_switch = room { + nam = "lse_switch"; + disp = "limbo"; + entered = function() + player_phaetlarr.where = "lse_leviathan_cargo_hold"; + pl = player_phaetlarr; + end; +}; + +player_phaetlarr = player { + nam = "player_phaetlarr"; + obj = {}; +} \ No newline at end of file diff --git a/lseryanotrr_locations.lua b/lseryanotrr_locations.lua --- a/lseryanotrr_locations.lua +++ b/lseryanotrr_locations.lua @@ -1,7 +1,152 @@ -lse_gate = room { - nam = "lse_gate"; - disp = "Лсэрианотр, ворота"; - view = [[ +lse_item_toolbox = obj { + nam = "toolbox"; + disp = "Ящик с инструментами"; + dsc = [[ + У входа лежит {ящик с инструментами}, столь опрометчиво(или предусмотрительно?) оставленный Дэвидом. + ]]; + tak = [[ + Фаэтларр забирает ящик с собой. + ]]; + inv = [[ + Ящик со всевозможными инструментами. Большую часть из них Фаэтларр видит впервые. + ]]; +}; + +lse_leviathan_cargo_hold = room { + nam = "lse_leviathan_cargo_hold"; + disp = "Левиафан, грузовой отсек"; + dsc = [[ + Фаэтларр находится в грузовом отсеке Левиафана, среди множества ящиков в котором так легко затеряться. + ]]; + obj = { + "player_phaetlarr", + "lse_item_toolbox" + }; + way = { + kh_vroom("В коридор", "lse_leviathan_corridor"); + }; +}; + +lse_leviathan_corridor = room { + nam = "lse_leviathan_corridor"; + disp = "Левиафан, коридор"; + dsc = [[ + Фаэтларр находится в основном коридоре Левиафана. Длинный металлический коридор освещен ярким светом электрических ламп. По левому борту расположены двери кают. Одна из них была выделена Фаэтларру и навьяр на некоторое время задержал взгляд на ней - дверь ничем не отличалась от соседних, за исключением цифры "5", нарисованной на ней белой краской. + ]]; + way = { + kh_vroom("В каюту капитана", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + kh_vroom("В каюту №1", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + kh_vroom("В каюту №2", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + kh_vroom("В каюту №3", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + kh_vroom("В каюту №4", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + kh_vroom("В каюту №5", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + kh_vroom("В кают-компанию", "lse_leviathan_wardroom", 1); + kh_vroom("В грузовой отсек", "lse_leviathan_cargo_hold", 1); + kh_vroom("В машинный отсек", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + kh_vroom("На нижнюю палубу", function(s) + pr [[ + "Не стоит тратить на это время", - промелькнула мысль в голове Фаэтларра. + ]]; + return false; + end); + }; +}; + +lse_leviathan_wardroom = room { + nam = "lse_leviathan_wardroom"; + disp = "Левиафан, кают-компания"; + dsc = [[ + Фаэтларр находится в кают-компании Левиафана. Это просторная комната, освещенная ярким светом электрических ламп. В центре кают-компании укреплен массивный металлический стол, вокруг которого стоят несколько стульев. + ]]; + way = { + kh_vroom("В рубку", function(s) + pr [["Там я ничего не смогу сделать", - промелькнула мысль в голове Фаэтларра. ]]; + return false; + end); + kh_vroom("В шлюз", "lse_leviathan_airlock"); + kh_vroom("В коридор", "lse_leviathan_corridor"); + }; + obj = { + "lse_phone_wardroom"; + }; +}; + +lse_phone_wardroom = obj { + nam = "lse_phone_wardroom"; + disp = "Телефон"; + dsc = [[На столе, рядом с креслом Дрейка установлен {телефонный аппарат}. ^]]; + act = [[Фаэтларр не умеет этим пользоваться. ]]; +}; + +lse_leviathan_airlock = room { + nam = "lse_leviathan_airlock"; + disp = "Левиафан, шлюз"; + dsc = [[Фаэтларр находится в шлюзовом отсеке Левиафана. Люк не задраен. ]]; + way = { + kh_vroom("В кают-компанию", "lse_leviathan_wardroom"); + kh_vroom("Наружу", "lse_leviathan_airlock_up"); + }; +}; + +lse_leviathan_airlock_up = room { + nam = "lse_leviathan_airlock_up"; + disp = "Левиафан, люк"; + dsc = function(s) + return [[Фаэтларр выглядывает из люка Левиафана. Субмарина находится все там же - в доке, у ворот Лсэрианотра. ]]; + end; + obj = { + "lse_lev_guard" + }; + way = { - ]]; + }; +}; + +lse_lev_guard = obj { + var { + state = 0; + }; + nam = "lse_lev_guard"; + dsc = function(s) + if (s.state == 0) then + return "У пирса рядом с Левиафаном стоит {группа стражников}"; + else + return "Стражники отошли в дальний конец дока. Фаэтларр сможет незаметно пробежать мимо. "; + end; + end; }; \ No newline at end of file diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -76,7 +76,7 @@ global { -pl = player { +player_drake = player { nam = "player"; disp = "Дэвид Дрейк"; disp2 = "Дрейка"; @@ -116,6 +116,8 @@ intro = room { } }; +pl = player_drake; + game.nam = "Пробуждение"; game.dsc = [[ Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка, сына владельца крупной транспортной компании "Вестхейвен Трансоушен". Несколько лет назад Уильям Дрейк, отец главного героя бесследно пропадает. Компания вскоре разваливается. Поиски ни к чему не приводят. Когда казалось бы уже все потеряно, в доме Дрейков находят тайник с документами Уильяма. Несколько схем строений, принадлежащих компании и клочок бумаги с адресом некоего Майкла Райта в Лондоне. Естественно, Дэвид как можно скорее отправляется в Великобританию... @@ -241,7 +243,7 @@ function init() put(item_colt, pl); --ven_shark.position = "55"; --pl.where = "za_plaetlarr_fight"; - pl.where = "lse_entered"; + pl.where = "lse_confront"; move(submarine_leviathan, "za_temple_back_entrance_foot"); char_anna.follow = true; --pl.where = "ven_chest_look";