--[[ Здесь игрок получает адреса всех ключевых локаций первой части ]] door_wright = obj { nam = "door_wright"; disp = "Дверь"; locked = true; act = function(s) if (s.locked) then walkin "wright_entry_dlg"; end; return true; end; dsc = function(s) if (s.locked) then return [[ Обшарпанная деревянная {дверь}, ведущая в дом, заперта изнутри. ^ ]]; else return [[ Входная дверь дома открыта. ^ ]]; end; end; }; char_wright_home = obj { nam = "char_wright_home"; disp = "Джек Райт"; dsc = function(s) if (s.documents) then return [[ ^{Джек Райт} с интересом рассматривает схемы, которые вы ему отдали^ ]]; else return [[ ^Вы видите {молодого человека} одетого в недорогой, но опрятный костюм. ^ ]]; end; end; act = function(s) walkin(wright_dlg); end; }; wright_dlg = dlg { nam = "wright_dlg"; disp = "Джек Райт"; state = 1; enter = function(s) --Небольшой костылик - вырубаем проверку на пустой диалог. Логика тут довольно запутанная и движок скорее всего ниасилит все условия end; entered = function(s) if (atlantis_found and submarine_leviathan.air_level > 400000 and submarine_leviathan.circuit_breaks == 0 and submarine_leviathan.power_on) then psub('leviathan_restored'); return [[ "Привет". ]]; elseif (s.state == 1) then --First meeting psub('first_visit'); return [[ "Добрый день. Я Джек Райт. Майкл мой отец, но он пропал несколько лет назад". ]]; elseif (s.state == 2) then --Documents not given psub('ask_documents'); return [[ "Привет. Ты обещал какие-то документы принести". ]]; elseif (s.state == 3) then --Documents given if (not leviathan_discovered) then psub('checking_documents'); return [[ "Привет. Я пока больше ничего не нашел, приходи позже". ]]; else s.state = 5; warehouse32_found = true; psub('warehouse_discovered'); return [[ "Привет, я нашел, где находится склад 32". ]]; end; elseif (s.state == 4) then --Documents taken back psub('ask_documents2'); return [[ "Привет. Если вернешь бумаги, я продолжу поиски". ]]; elseif (s.state == 5) then psub('empty'); return [[ "Привет". ]]; elseif (s.state == 6) then psub('warehouse_discovered2'); return [[ "Привет". ]]; elseif (s.state == 7) then psub('warehouse_discovered3'); return [[ "Привет". ]]; end; end; phr = { {tag='first_visit'}; {"У меня есть кое-какие документы и этот адрес. Возможно они помогут понять, что произошло и куда пропали мой и твой отец. ", [[ "Я просмотрел много материала. Тогда пропало больше двух десятков сотрудников Вестхейвен Трансоушен, но конкретнее я ничего сказать не могу. Если покажешь мне свои бумаги, возможно я смогу что-то сказать". ]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]}; {200, tag='ask_documents'}; {always = true, "[Отдать документы Джеку]", [[ Джек забирает бумаги из ваших рук и тщательно их рассматривает. Через некоторое время он говорит: "Док 2 мне знаком. Отец там часто бывал. Остальные - затрудняюсь ответить. Если оставишь документы мне, я попробую поискать". ]], code[[ dock_found = true; wright_dlg.state = 3; remove(item_charts, pl); back(); ]]}; {always = true, "У меня есть несколько вопросов", [[ "Чем смогу - помогу". ]], code [[psub('questions')]]}; {always = true, "Я вернусь позже. ", [[ "До встречи". ]], code [[ back(); ]]}; {300, tag='checking_documents'}; {always = true, "Можешь вернуть мне бумаги?", [[ "Забирай, только без них я ничего не смогу найти", - Джек возвращает вам документы. ]], code [[ wright_dlg.state = 4; put(item_charts, pl); back(); ]]}; {always = true, "У меня есть несколько вопросов", [[ "Чем смогу - помогу". ]], code [[psub('questions')]]}; {always = true, "Я вернусь позже. ", [[ "До встречи". ]], code [[ back(); ]]}; {400, tag='questions'}; {"Ты знаешь, чем Майкл занимался в Вестхейвен Трансоушен?", [[ "Частично", - Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому - никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и господина Дрейка. " ]]}; {always = true, "Вернемся к делу", [[ "Слушаю" ]], code [[ pret(); ]]}; {500, tag='ask_documents2'}; {always = true, "[Отдать документы Джеку]", [[ Джек забирает бумаги и раскладывает их на своем столе. ]], code[[ wright_dlg.state = 3; remove(item_charts, pl); back(); ]]}; {always = true, "У меня есть несколько вопросов", [[ "Чем смогу - помогу". ]], code [[psub('questions')]]}; {always = true, "Я вернусь позже. ", [[ "До встречи". ]], code [[ back(); ]]}; {600, tag='warehouse_discovered'}; {"Знаешь, что я нашел в доке? [Рассказать о Левиафане]", [[ Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть! " ]], code [[ walkin('wright_leviathan_cutscene1'); ]]}; {always = true, "Отлично, я съезжу туда и посмотрю, что удастся найти. ", [[ "До встречи". ]], code [[ back(); ]]}; {700, tag='warehouse_discovered2'}; {always = true, "На склад мне попасть не удалось. ", [[ Джек с досадой стучит по столу: "Черт! "^ Еще пару минут он задумчиво сидит в кресле, после чего предлагает идею: "Может попробуем попасть туда ночью? Я сам довезу тебя, но внутри все придется делать тебе. " ]], code [[ wright_dlg.state = 6; psub('warehouse_break_in'); ]]}; {always = true, "Я вернусь позже. ", [[ "До встречи". ]], code [[ back(); ]]}; {750, tag='empty'}; {always = true, "Я вернусь позже. ", [[ "До встречи". ]], code [[ back(); ]]}; {800, tag='warehouse_break_in'}; {always = true, "Надо попробовать. ", [[ "Хорошо". Приготовления занимают все время до вечера. Наконец, после наступления темноты, вы садитесь в повозку и Джек привозит вас к складу 32. ]], code [[ walk('warehouse_32_night'); ]]}; {always = true, "Лучше не стоит. ", [[ Джек разочарованно отвечает: "Дело твое". ]], code [[ pret(); ]]}; {900, tag='warehouse_discovered3'}; {always = true, "Надо еще раз попасть на склад. ", [[ "Могу устроить сегодня ночью. Устроит? " ]], code [[ psub('warehouse_break_in'); ]]}; {always = true, "Я вернусь позже. ", [[ "До встречи". ]], code [[ back(); ]]}; {1000, tag='leviathan_restored'}; {always = true, "Мне удалось починить \"Левиафан\". Мне понадобится помощник на борту ", [[ Джек поднимается с кресла и одевает пальто: "Безусловно, я готов", - сообщает вам он. "Здесь меня ничто не держит, а там... Я хочу попытаться найти моего отца, раз уж выдался такой шанс". ]], code [[ lifeon("char_wright"); table.insert(pl.party, 'wright'); walk('leviathan_wardroom'); ]]}; {always = true, "Я вернусь позже. ", [[ "До встречи". ]], code [[ back(); ]]}; }; }; wright_leviathan_cutscene1 = dlg { nam = "wright_leviathan_cutscene1"; disp = "Джек Райт"; entered = [[ Вместе с Джеком вы приехали в док 2. Райт долго и с интересом осматривает металлический корпус субмарины. С задумчивым видом он ходит вокруг, рассматривая его. Наконец он спрашивает: "Она работает?" ]]; phr = { {"10 лет под водой. Не думаю, что там хоть что-то сохранилось... ", [[ Джек задумчиво смотрит на металлический корпус, на табличку с выгравированным названием. Наконец он говорит: "Надо попытаться попасть внутрь, а затем посмотрим". Еще немного постояв, он возвращается к кэбу. Джек оборачивается к вам и спрашивает: "Едешь?" ]], code [[ psub('choice'); ]]}; {"Не уверен, но, думаю, да. ", [[ Джек задумчиво смотрит на металлический корпус, на табличку с выгравированным названием. Наконец он говорит: "Надо попытаться попасть внутрь, а затем посмотрим". Еще немного постояв, он возвращается к кэбу. Джек оборачивается к вам и спрашивает: "Едешь?" ]], code [[ psub('choice'); ]]}; {tag='choice'}; {"Да, поехали. ", [[ Вы садитесь в кэб и возвращаетесь домой к Джеку. ]], [[ walk('wright_house_cabinet'); ]]}; {"Я останусь тут. ", [[ Джек садится в кэб и уезжает домой. ]], [[ walk('dock_mooring'); ]]}; }; }; wright_entry_dlg = dlg { nam = "wright_entry_dlg"; disp = "Голос за дверью"; entered = function(s) psub("start"); return [[ Вы стучите в дверь. Через некоторое время вам отвечает сонный голос: "Кто здесь?" ]]; end; hideinv = true; phr = { {tag = "start"}; {always = true, "Могу я увидеть Майкла Райта?", [[ "Кто спрашивает?" ]], code [[ psub('who') ]]}; {always = true, "Извините, я ошибся адресом", code [[ back(); ]]}, {tag = 'who'}; {"Вы знаете Уильяма Дрейка?", [[ "Понятия не имею. Кто спрашивает?" - В голосе собеседника явно прослеживается некоторое недовольство. ]], code [[ psub('irritated') ]]}; {"Майкл Райт здесь живет?", [[ "Кто спрашивает?" - В голосе собеседника явно прослеживается некоторое недовольство. ]], code [[ psub('irritated') ]]}; {always = true, "У меня важное сообщение для него", [[ "Он тут не живет уже много лет. Уходите" - вам показалось, что голос собеседника слегка дрогнул при этих словах. ]], code [[ back(); ]]}; {tag = 'irritated'}; {"Мой отец - Уильям Дрейк, работал с Майклом Райтом. Так вы знаете его?", [[ Вы слышите звук отодвигающегося засова и ответ: "Проходите". ]], code [[ door_wright.locked = false; path("В дом", wright_house):enable(); back(); ]]}; }; }; wright_drawing = obj { nam = 'wright_drawing'; dsc = [[ На одной из стен висит большая {картина}, изображающая пароход. ]]; act = [[ На картине во всех деталях изображен пароход _"Огненная стрела"_, принадлежавший Вестхейвен Трансоушен. Огромный пароход, полным ходом движущийся по бескрайнему океану. Яркое солнце освещает палубу, на которой находится множество пассажиров, прогуливающихся, общающихся, сидящих на скамейках. Из всех трех труб _"Огненной стрелы"_ идет густой черный дым, а на корме развевается флаг Соединенного Королевства. Под картиной вы видите небольшую табличку с надписью: _"Майклу Райту, создателю великолепной ,,Огненной стрелы''. Альберт Мур, 1889"_ ]]; }; wright_table = obj { nam = "wright_table"; disp = "Стол"; dsc =[[ В центре комнаты стоит массивный дубовый стол. На полированной поверхности стола разбросаны в кажущемся беспорядке листы бумаги, письменные принадлежности и множество других полезных и не очень предметов. ]]; obj = { }; }; wright_house_cabinet = room { nam = "wright_house_cabinet"; disp = "Дом Райта, кабинет"; dsc = [[ Вы находитесь в кабинете Райта. Сквозь большие окна в комнату проникает достаточно света. Стены оклеены старыми обоями с полустершимся рисунком. ]]; obj = { 'wright_table', 'wright_drawing', 'char_wright_home' }; way = { vroom("В гостиную", "wright_house_front_room"); }; }; wright_house_front_room = room { nam = "wright_house_front_room"; disp = "Дом Райта, гостиная"; dsc = [[ Вы находитесь в гостиной в доме Райта. Окна завешены тяжелыми занавесками и в полутьме вы с трудом различаете очертания предметов интерьера - дорогих старых кресел, изящно украшенных шкафов, покрытых многолетним слоем пыли канделябров. ]]; entered = function(s) if (not s.visited) then s.visited = true; pn([[ У двери стоит молодой человек, примерно вашего возраста. Как только вы заходите, он закрывает за вами дверь и просит проследовать за ним в кабинет. ]]); end; end; way = { vroom("На улицу", "wright_house"); vroom("В кабинет", "wright_house_cabinet"); }; }; wright_house = room { nam = "wright_house"; disp = "Дом Райта"; enter = function(s) put(char_coachman, here()); end; dsc = [[ Вы стоите посреди небольшой тихой улочки, расположенной почти на окраине Лондона. Напротив вас расположен небольшой кирпичный особняк, принадлежащий Майклу Райту, если верить записке. Дом выглядит неухоженным - штукатурка местами осыпалась, лужайка заросла высокой травой, часть окон закрыта плотными ставнями, которые явно давно не открывались. ]]; obj = {'door_wright'}; way = { vroom("В дом", "wright_house_front_room"):disable(); }; };