diff --git a/images/stones.png b/images/stones.png index 93f702520fdd9b3d247dba25fbd976ee8423c04c..7f0c321d7f514677b8fcc513f8049413ae1441a4 GIT binary patch literal 434 zc$@*U0ZsmiP)4V5jA5Re4B_5%FKGr<g!UZ6wWW0?4P|TIZmQsGv&;NVGABZfwJd3VH>>^O|(WF8_4-x?qYH2-L0; z5lTOXk%)#cxYorfGOij>`rCXxrd)BJKm5ip?%Vwk25@x8j>8xi3RJF-F_qT<1}0a> zRd%hDdgWTMAG=m7;arn^IgK@qZPJu-bXggdL9IZ!IC7Qb=~{RFzAE&^34Rbr`S}AI z>Jz63j$E0F#BEV?5L%?585C2GSF~DP9&#HH34e7CXQ^7s$rnd*yVfcBGM=3~B9i%* c8}fK*KdyYLElfZQ@Bjb+07*qoM6N<$f{Go*KL7v# diff --git a/london.lua b/london.lua --- a/london.lua +++ b/london.lua @@ -66,6 +66,9 @@ port_street = room { }; char_worker = npc { + var { + bought = false; + }; nam = "char_worker"; disp = "Портовый рабочий"; dsc = [[На скамейке у стены склада сидит {рабочий} и курит трубку. ]]; @@ -166,6 +169,9 @@ ginshop = room { }; ginshop_trader = npc { + var { + bought = false; + }; nam = "ginshop_trader"; disp = "Продавец"; dsc = [[За грязным прилавком, не раз залитым местными напитками, стоит пожилой {продавец}. Сквозь потрескавшееся мутное стекло в старых очках(второе отсутствует, судя по всему, уже давно) он пытается рассмотреть вас. ]]; @@ -258,6 +264,9 @@ hotel_corridor_1 = room { }; hotel_corridor_2 = room { + var { + room_visited = false; + }; nam = "hotel_corridor_2"; disp = "Гостиница, второй этаж"; dsc = [[Широкий коридор без окон, освещенный газовыми лампами, укрепленными на стенах. По обе стороны от вас расположены двери, ведущие в комнаты постояльцев. ]]; diff --git a/wright.lua b/wright.lua --- a/wright.lua +++ b/wright.lua @@ -2,9 +2,11 @@ Здесь игрок получает адреса всех ключевых локаций первой части ]] door_wright = obj { + var { + locked = true; + }; nam = "door_wright"; disp = "Дверь"; - locked = true; act = function(s) if (s.locked) then walkin "wright_entry_dlg"; @@ -13,21 +15,29 @@ door_wright = obj { end; dsc = function(s) if (s.locked) then - return [[ Обшарпанная деревянная {дверь}, ведущая в дом, заперта изнутри. ^ ]]; + return [[Обшарпанная деревянная {дверь}, ведущая в дом, заперта изнутри. ]]; else - return [[ Входная дверь дома открыта. ^ ]]; + return [[Обшарпанная деревянная {дверь}, ведущая в дом, незаперта. ]]; end; end; }; char_wright_home = obj { + var { + known = false; + documents = false; + }; nam = "char_wright_home"; disp = "Джек Райт"; dsc = function(s) if (s.documents) then - return [[ ^{Джек Райт} с интересом рассматривает схемы, которые вы ему отдали^ ]]; + return [[За столом сидит {Джек Райт} и с интересом рассматривает схемы, которые вы ему отдали. ]]; else - return [[ ^Вы видите {молодого человека} одетого в недорогой, но опрятный костюм. ^ ]]; + if (s.known) then + return [[За столом сидит {Джек Райт}, неспешно просматривая какие-то бумаги. ]]; + else + return [[За столом сидит {молодой человек}, неспешно просматривающий какие-то бумаги. ]]; + end; end; end; act = function(s) @@ -36,12 +46,11 @@ char_wright_home = obj { }; wright_dlg = dlg { + var { + state = 1; + }; 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'); @@ -51,111 +60,67 @@ wright_dlg = dlg { elseif (s.state == 1) then --First meeting psub('first_visit'); - return [[ - "Добрый день. Я Джек Райт. Майкл мой отец, но он пропал несколько лет назад". - ]]; + return [[Перед вами молодой человек, одетый в недорогой, но опрятный костюм. Его бледное лицо украшает короткая темная борода и пышные усы. Темные волосы коротко острижены. Серые глаза с интересом разглядывают вас. Он протягивает вам руку и представляется: "Добрый день. Мое имя -- Джек Райт. Майкл -- мой отец, но он пропал несколько лет назад". ]]; elseif (s.state == 2) then --Documents not given psub('ask_documents'); - return [[ - "Привет. Ты обещал какие-то документы принести". - ]]; + return [[Джек Райт отвлекается от газеты: "Добрый день. Вы обещали принести какие-то документы". ]]; elseif (s.state == 3) then --Documents given if (not leviathan_discovered) then psub('checking_documents'); - return [[ - "Привет. Я пока больше ничего не нашел, приходи позже". - ]]; + return [[Джек Райт отвлекается от документов: "Добрый день. Если вы по поводу документов, то я еще ничего не нашел". ]]; else s.state = 5; warehouse32_found = true; psub('warehouse_discovered'); - return [[ - "Привет, я нашел, где находится склад 32". - ]]; + return [[Джек Райт отвлекается от документов: "Добрый день. У меня хорошие новости. Я нашел склад 32", - он достает карту города и показывает вам место. ]]; end; elseif (s.state == 4) then --Documents taken back psub('ask_documents2'); - return [[ - "Привет. Если вернешь бумаги, я продолжу поиски". - ]]; + return [[Джек Райт отвлекается от газеты: "Добрый день. Я хотел бы еще раз вглянуть на эти бумаги". ]]; elseif (s.state == 5) then psub('empty'); - return [[ - "Привет". - ]]; + return [[Джек Райт отвлекается от газеты: "Добрый день". ]]; elseif (s.state == 6) then psub('warehouse_discovered2'); - return [[ - "Привет". - ]]; + return [[Джек Райт отвлекается от газеты: "Добрый день". ]]; elseif (s.state == 7) then psub('warehouse_discovered3'); - return [[ - "Привет". - ]]; + return [[Джек Райт отвлекается от газеты: "Добрый день". ]]; end; end; phr = { {tag='first_visit'}; - {"У меня есть кое-какие документы и этот адрес. Возможно они помогут понять, что произошло и куда пропали мой и твой отец. ", [[ - "Я просмотрел много материала. Тогда пропало больше двух десятков сотрудников Вестхейвен Трансоушен, но конкретнее я ничего сказать не могу. Если покажешь мне свои бумаги, возможно я смогу что-то сказать". - ]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]}; + {"Мое имя -- Дэвид Дрейк. Мне удалось найти кое-какие документы в одном из тайников отца. Этот адрес был среди них. Вы что-то знаете о судьбе моего отца? ", [[Джек вздыхает: "Это бесполезно. Я изучил практически все, до чего сумел дотянуться - газеты, судебные дела. И ничего - никаких зацепок. Компания обанкротилась, руководители пропали". ]], code [[wright_dlg.state = 2; psub('ask_documents'); ]]}; {200, tag='ask_documents'}; - {always = true, "[Отдать документы Джеку]", [[ - Джек забирает бумаги из ваших рук и тщательно их рассматривает. Через некоторое время он говорит: "Док 2 мне знаком. Отец там часто бывал. Остальные - затрудняюсь ответить. Если оставишь документы мне, я попробую поискать". - ]], code[[ + {always = true, "[Отдать документы]Посмотрите это. Не думаю, что вы это видели. ", [[Джек нехотя забирает бумаги из ваших рук и бегло их осматривает. Пожимая плечами, он комментирует: "Ничего интересного, просто планы старых зданий. Док 2? Отец там часто бывал, впрочем не думаю, что после 10 лет там что-то осталось. Если хотите - можете оставить документы, я попробую разузнать побольше". ]], code [[ dock_found = true; wright_dlg.state = 3; remove(item_charts, pl); back(); ]]}; - {always = true, "У меня есть несколько вопросов", [[ - "Чем смогу - помогу". - ]], code [[psub('questions')]]}; - {always = true, "Я вернусь позже. ", [[ - "До встречи". - ]], code [[ back(); ]]}; + {always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]}; + {always = true, "Я вернусь позже. ", [[ Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]}; {300, tag='checking_documents'}; - {always = true, "Можешь вернуть мне бумаги?", [[ - "Забирай, только без них я ничего не смогу найти", - Джек возвращает вам документы. - ]], code [[ + {always = true, "Вы можете вернуть мне бумаги? ", [["Конечно. Если принесете их снова -- я возобновлю поиски", - Джек возвращает вам документы. ]], code [[ wright_dlg.state = 4; put(item_charts, pl); back(); ]]}; - {always = true, "У меня есть несколько вопросов", [[ - "Чем смогу - помогу". - ]], code [[psub('questions')]]}; - {always = true, "Я вернусь позже. ", [[ - "До встречи". - ]], code [[ back(); ]]}; + {always = true, "У меня есть несколько вопросов. ", [[Джек кивает: "Чем смогу - помогу". ]], code [[psub('questions')]]}; + {always = true, "Я вернусь позже. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]}; {400, tag='questions'}; - {"Ты знаешь, чем Майкл занимался в Вестхейвен Трансоушен?", [[ - "Частично", - Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому - никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и господина Дрейка. " - ]]}; - {always = true, "Вернемся к делу", [[ - "Слушаю" - ]], code [[ pret(); ]]}; + {"Чем ваш отец занимался в Вестхейвен Трансоушен? ", [["Частично", - Джек показывает на картину на стене: "Он проектировал корабли, был главным инженером. Перед тем, как исчезнуть, он часто запирался в этом кабинете, подолгу что-то чертил. До глубокой ночи книги читал... Никаких материалов он не оставил. Он, вообще, очень ответственно относился к этому - никто никогда не знал, чем конкретно он занимается, кроме его подчиненных и вашего отца". ]]}; + {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(); ]]}; + {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(); ]]}; + {"[Рассказать о Левиафане]Я кое-что нашел в доке...", [[Джек мгновенно вскакивает со стула, восклицая: "Ничего себе, я должен это видеть!" ]], code [[ walkin('wright_leviathan_cutscene1'); ]]}; + {always = true, "Отлично, я съезжу туда и посмотрю, что удастся найти. ", [[Джек возвращается к своим делам: "До встречи". ]], code [[ back(); ]]}; {700, tag='warehouse_discovered2'}; {always = true, "На склад мне попасть не удалось. ", [[ Джек с досадой стучит по столу: "Черт! "^ @@ -265,35 +230,23 @@ wright_entry_dlg = dlg { wright_drawing = obj { nam = 'wright_drawing'; - dsc = [[ - На одной из стен висит большая {картина}, изображающая пароход. - ]]; - act = [[ - На картине во всех деталях изображен пароход _"Огненная стрела"_, принадлежавший Вестхейвен Трансоушен. Огромный пароход, полным ходом движущийся по бескрайнему океану. Яркое солнце освещает палубу, на которой находится множество пассажиров, прогуливающихся, общающихся, сидящих на скамейках. Из всех трех труб _"Огненной стрелы"_ идет густой черный дым, а на корме развевается флаг Соединенного Королевства. - Под картиной вы видите небольшую табличку с надписью: _"Майклу Райту, создателю великолепной ,,Огненной стрелы''. Альберт Мур, 1889"_ - ]]; + dsc = [[На стене напротив двери висит большая {картина}, изображающая пароход. ]]; + act = [[На картине во всех деталях изображен пароход _"Огненная стрела"_, принадлежавший Вестхейвен Трансоушен, полным ходом идущий по бескрайнему океану. Яркое солнце освещает палубу, на которой находится множество пассажиров, прогуливающихся, общающихся, сидящих на скамейках. Из всех трех труб _"Огненной стрелы"_ идет густой черный дым, а на корме развевается флаг Соединенного Королевства. Под картиной вы видите небольшую табличку с надписью: _"Майклу Райту, создателю ,,Огненной стрелы''. Альберт Мур, 1889"_. ]]; }; wright_table = obj { nam = "wright_table"; disp = "Стол"; - dsc =[[ - В центре комнаты стоит массивный дубовый стол. На полированной поверхности стола разбросаны в кажущемся беспорядке листы бумаги, письменные принадлежности и множество других полезных и не очень предметов. - ]]; - obj = { - - }; + dsc =[[В центре комнаты стоит массивный дубовый стол. На его полированной поверхности разбросаны в кажущемся беспорядке бумаги, письменные принадлежности, старые газеты и другие предметы. ]]; }; wright_house_cabinet = room { nam = "wright_house_cabinet"; disp = "Дом Райта, кабинет"; - dsc = [[ - Вы находитесь в кабинете Райта. Сквозь большие окна в комнату проникает достаточно света. Стены оклеены старыми обоями с полустершимся рисунком. - ]]; + dsc = [[Стены комнаты оклеены старыми обоями с полустершимся рисунком. Сквозь большие окна в комнату проникает достаточно света. ]]; obj = { + 'wright_drawing', 'wright_table', - 'wright_drawing', 'char_wright_home' }; way = { @@ -304,15 +257,11 @@ wright_house_cabinet = room { wright_house_front_room = room { nam = "wright_house_front_room"; disp = "Дом Райта, гостиная"; - dsc = [[ - Вы находитесь в гостиной в доме Райта. Окна завешены тяжелыми занавесками и в полутьме вы с трудом различаете очертания предметов интерьера - дорогих старых кресел, изящно украшенных шкафов, покрытых многолетним слоем пыли канделябров. - ]]; + dsc = [[Окна в гостиной завешены тяжелыми занавесками и в полутьме вы с трудом различаете очертания предметов интерьера - дорогих старых кресел, изящно украшенных шкафов, покрытых многолетним слоем пыли канделябров. ]]; entered = function(s) if (not s.visited) then s.visited = true; - pn([[ - У двери стоит молодой человек, примерно вашего возраста. Как только вы заходите, он закрывает за вами дверь и просит проследовать за ним в кабинет. - ]]); + pn([[У двери стоит молодой человек, примерно вашего возраста. Как только вы заходите, он закрывает за вами дверь и просит проследовать за ним в кабинет. ]]); end; end; way = { @@ -327,9 +276,7 @@ wright_house = room { enter = function(s) put(char_coachman, here()); end; - dsc = [[ - Вы стоите посреди небольшой тихой улочки, расположенной почти на окраине Лондона. Напротив вас расположен небольшой кирпичный особняк, принадлежащий Майклу Райту, если верить записке. Дом выглядит неухоженным - штукатурка местами осыпалась, лужайка заросла высокой травой, часть окон закрыта плотными ставнями, которые явно давно не открывались. - ]]; + dsc = [[Небольшой кирпичный особняк, принадлежащий Майклу Райту, стоит на одной из тихих улочек, на окраине Лондона. Дом выглядит неухоженным - штукатурка местами осыпалась, лужайка заросла высокой травой, часть окон закрыта ставнями, явно давно не открывавшимися. ]]; obj = {'door_wright'}; way = { vroom("В дом", "wright_house_front_room"):disable();