diff --git a/dock2.lua b/dock2.lua new file mode 100644 --- /dev/null +++ b/dock2.lua @@ -0,0 +1,86 @@ +--[[ +Игрок может попасть сюда только после диалога с Майклом. +Верфь заброшена, многие механизмы придется ремонтировать. +Здесь игрок найдет подводную лодку, которую нужно будет восстановить. +]] +shipyard_2 = room { + nam = "shipyard_2"; + disp = "Верфь"; + dsc = [[ + Вы стоите у входа в огромное обветшалое здание. Полусодранная вывеска сообщает, что здание является собственностью компании Вест-Хэйвен Транс-Оушен. + ]]; + enter = function(s) + move(char_coachman, here()); + end; + obj = { + vway("Вход", "Огромные ворота слегка приоткрыты. Вы можете {войти}^", "shipyard_inside") + }; +}; + +shipyard_inside = room { + nam = "shipyard_inside"; + disp = "Верфь"; + dsc = [[ + Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. + Вдоль стен лежат сотни ящиков. Большинство из них уже успели прогнить, но некоторые сохранились весьма неплохо. + ]]; + view = [[ + Левиафан находится в доке + ]]; + obj = { + vway("Ржавая лестница", "Старая проржавевшая лестница ведет {на второй этаж}^", "shipyard_2nd_floor"), + vway("Выход", "Огромные ворота слегка приоткрыты. Вы можете {выйти}^", "shipyard_2") + }; +}; + +shipyard_2nd_floor = room { + nam = "shipyard_2nd_floor"; + disp = "Верфь, второй этаж"; + dsc = [[ + Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. + Вы находитесь на металлических мостках на уровне второго этажа. + ]]; + obj = { + vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на первый этаж}^", "shipyard_inside"), + vway("Ржавая лестница вверх", "Старая проржавевшая лестница ведет {на третий этаж}^", "shipyard_3rd_floor"), + }; +}; + +shipyard_3rd_floor = room { + nam = "shipyard_3rd_floor"; + disp = "Верфь, третий этаж"; + dsc = [[ + Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. + Вы находитесь на металлических мостках на уровне третьего этажа. + ]]; + obj = { + vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на второй этаж}^", "shipyard_2nd_floor"), + vway("Ржавая лестница вверх", "Старая проржавевшая лестница ведет {на четвертый этаж}^", "shipyard_4th_floor"), + }; +}; + +shipyard_4th_floor = room { + nam = "shipyard_4th_floor"; + disp = "Верфь, четвертый этаж"; + dsc = [[ + Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. + Вы находитесь на металлических мостках на уровне четвертого этажа. + ]]; + obj = { + vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на третий этаж}^", "shipyard_3rd_floor"), + vway("Ржавая лестница вверх", "Старая проржавевшая лестница ведет {на пятый этаж}^", "shipyard_5th_floor"), + }; +}; + +shipyard_5th_floor = room { + nam = "shipyard_5th_floor"; + disp = "Верфь, пятый этаж"; + disp = "Верфь, третий этаж"; + dsc = [[ + Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. + Вы находитесь на металлических мостках под самым потолком. + ]]; + obj = { + vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на четвертый этаж}^", "shipyard_4th_floor") + }; +}; \ No newline at end of file diff --git a/items.lua b/items.lua --- a/items.lua +++ b/items.lua @@ -1,3 +1,43 @@ +item_note_1 = obj { + nam = "note1"; + disp = "Записка"; + inv = [[Клочок бумаги с адресом: [Адрес Майкла Райта], Майкл Райт]]; +}; + +item_documents = obj { + nam = "documents"; + disp = "Документы отца"; + dsc = [[ + На столе лежат {схемы складов и верфей} Вест-Хэйвен Транс-Оушен + ]]; + inv = [[ + Схемы нескольких строений, принадлежавших компании отца. На некоторых схемах есть места отмечены жирными крестиками. + Схемы с крестиками обозначены как склад 18, верфь 2, склад 32 + ]]; + use = function(s, o) + if (o == char_michael) then + remove(s, pl); + put(s, item_michael_table); + char_michael.documents = true; + return [[ + Вы отдаете бумаги Майклу. Он кладет их на стол и принимается изучать. + ]]; + end; + end; + tak = function() + char_michael.documents = false; + return "Вы забираете бумаги"; + end; +}; + +item_toolbox = obj { + nam = "toolbox"; + disp = "Ящик с инструментами"; + dsc = [[ + Вы видите {ящик} со всевозможными полезными и не очень инструментами - отвертками, ключами, молотками и т.д.^ + ]]; +}; + item_pickaxe = obj { nam = "pickaxe"; disp = "Кирка"; diff --git a/jack.lua b/jack.lua new file mode 100644 --- /dev/null +++ b/jack.lua @@ -0,0 +1,159 @@ +--[[ +Здесь игрок получает адреса всех ключевых локаций первой части +]] +door_michael = obj { + nam = "door_michael"; + disp = "Дверь"; + locked = true; + act = function(s) + if (s.locked) then + walkin "michael_entry_dlg"; + else + walk "michael_house_inside"; + end; + return true; + end; + dsc = function(s) + if (s.locked) then + return [[ Дверь в дом заперта. Можно попробовать {постучаться}^ ]]; + else + return [[ Дверь открыта, вы можете {войти}^ ]]; + end; + end; +}; + +item_michael_table = obj { + nam = "michael_table"; + disp = "Стол"; + dsc =[[ + Вы видите массивный старый стол. + ]]; + obj = { + vobj("Газеты", [[На столе лежит стопка {газет}]]) + }; +}; + +char_michael = obj { + nam = "michael"; + disp = "Майкл Райт"; + dsc = function(s) + if (s.documents) then + return [[ ^{Майкл Райт} с интересом рассматривает схемы, которые вы ему отдали^ ]]; + else + return [[ ^Вы видите {пожилого человека} одетого в изрядно поношенный костюм^ ]]; + end; + end; + act = function(s) + if (s.documents) then + walkin "michael_main_dlg"; + else + walkin "michael_pre_dlg"; + end; + end; +}; + +michael_entry_dlg = dlg { + nam = "michael_entry_dlg"; + disp = "Голос за дверью"; + dsc = "Кто здесь?"; + hideinv = true; + phr = { + {"Могу я увидеть Майкла Райта?", "Кто спрашивает?", [[ psub 'who' ]]}, + {always = true, "Извините, я ошибся адресом", function(s) + back() + end}, + {tag = 'who'}, + {"Это сын Уильяма Дрейка", "Заходи, нам есть о чем поговорить", function () + door_michael.locked = false; + walk 'michael_house_inside'; + end}, + {"Майкл Райт здесь живет?", "Кто спрашивает?"}, + {"У меня важное сообщение для него", "Здесь таких нет, до свидания", function(s) + back() + end} + + }; +}; + +michael_main_dlg = dlg { + nam = "michael_main_dlg"; + disp = "Майкл Райт"; + dsc = [[ + Майкл неспешно просматривает одну за другой схемы, которые вы ему передали. Часть из них, очевидно, знакомы ему. + ]]; + hideinv = true; + phr = { + {"Вы можете что-то мне подсказать с этим?", [[ + Не знаю. Это схемы зданий, принадлежащих компании Уильяма. Часть из них заброшена, многие разрушены, остальные перекуплены и сейчас используются. Я могу сказать тебе адреса. [Майкл сообщает вам адреса интересующих вас зданий] + ]]}, + {"Что могут означать места отмеченные крестами?", [[ + Понятия не имею. Я работал на Верфи 2, Уильям часто бывал там, но я не замечал ничего необычного в месте, которое здесь отмечено. Сейчас она заброшена, так что можешь попробовать погулять там. Если что-то выяснишь - сообщи мне. + ]]}, + {"До свидания", "До встречи"} + }; +}; + +michael_pre_dlg = dlg { + nam = "michael_pre_dlg"; + disp = "Майкл Райт"; + dsc = [[ + Пожилой человек внимательно смотрит на вас и начинает говорить: + Как ты уже, наверное, догадался, я и есть Майкл. Да, я работал на твоего отца. + Вероятно, ты удивлен, что до этого момента никто не смог выйти на меня. + Это связано лишь с одним - то, чем я и твой отец занимались было, да и остается, крайне секретным. + ]]; + hideinv = true; + phr = { + {"Расскажите больше об Уильяме", [[ + Я мало что о нем знаю. Уильям был отличным руководителем - Вест-Хэйвен Транс-Оушен процветала под его руководством. + Мы были впереди всех по современности используемых технологий. У нас всегда были самые быстрые и надежные корабли. + Однако, в последние годы, твой отец как будто стал уделять компании меньше внимания - он стал намного реже выходить из своего кабинета, общаясь только с ограниченным кругом лиц. + Дела пошли на спад. Конкуренты медленно, но верно нагоняли нас. А потом он просто исчез. + ]]}, + {"Расскажите о себе", [[ + Да мне нечего рассказывать. Более 20 лет я работал на Вест-Хэйвен Транс-Оушен ведущим инженером. Занимался разработкой новых двигателей. + Уильям создал все условия для моей работы - у меня не было недостатка ни в материалах, ни в рабочих руках. Когда компания развалилась я решил отойти от дел. + Моих сбережений вполне хватало на спокойную жизнь. Чертежи я сберечь не сумел, а то непременно бы продал их кому-нибудь. Впрочем я не сильно об этом жалею. + ]]}, + {"Чем же таким секретным вы занимались?", [[ + Учитывая, что Вест-Хэйвен Транс-Оушен уже давно нет, я думаю, что могу рассказать тебе это. Вобщем я был начальником инженерного отделения. + Конкретно, я занимался увеличением скорости движения наших кораблей. Должен признать, я достиг больших результатов. + Последние мои корабли были вдвое быстрее чем лучшие из кораблей конкурентов. А потом Уильям исчез. Через полгода компания развалилась. + Корабли были разобраны на металлолом, а мои чертежи пропали. + ]]}, + {"Вы знаете, где мой отец сейчас?", [[ + Нет, я потерял связь с ним около 10 лет назад. Меня, конечно, удивило, что он оставил свою компанию, семью, все свое благосостояние. + Он как под воду ушел - еще утром сидел в своем кабинете, а вечером полмира его искало. + ]]}, + {always = true, "Спасибо, я узнал все", [[ + До встречи + ]], function(s) + back(); + end} + }; +}; + +michael_house_inside = room { + nam = "michael_house_inside"; + disp = "Дом Майкла Райта"; + dsc = [[ + Вы находитесь в небольшом уютном домике. Окна закрыты плотными занавесками. В комнате светло за счет нескольких электрических ламп. + ]]; + obj = { + 'item_michael_table', + 'char_michael', + vway("Выйти", "{Выйти из дома}", "michael_house") + }; +}; + +michael_house = room { + nam = "michael_house"; + disp = "Дом Майкла Райта"; + enter = function(s) + put(char_coachman, here()); + end; + dsc = [[ + Вы стоите у входа в дом, указанный в записке. + ]]; + obj = {'door_michael'}; +}; \ No newline at end of file diff --git a/london.lua b/london.lua new file mode 100644 diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -16,9 +16,10 @@ dofile "items.lua" dofile "party.lua" dofile "game_over.lua"; -- Часть 1 -dofile "michael.lua" +dofile "london.lua" +dofile "jack.lua" dofile "coachman.lua" -dofile "shipyard2.lua" +dofile "dock2.lua" dofile "warehouse18.lua" dofile "warehouse32.lua" -- Часть 2 @@ -33,46 +34,6 @@ dofile "first_city_inner_rim.lua" dofile "first_city_middle_rim.lua" dofile "first_city_outer_rim.lua" -item_note_1 = obj { - nam = "note1"; - disp = "Записка"; - inv = [[Клочок бумаги с адресом: [Адрес Майкла Райта], Майкл Райт]]; -}; - -item_documents = obj { - nam = "documents"; - disp = "Документы отца"; - dsc = [[ - На столе лежат {схемы складов и верфей} Вест-Хэйвен Транс-Оушен - ]]; - inv = [[ - Схемы нескольких строений, принадлежавших компании отца. На некоторых схемах есть места отмечены жирными крестиками. - Схемы с крестиками обозначены как склад 18, верфь 2, склад 32 - ]]; - use = function(s, o) - if (o == char_michael) then - remove(s, pl); - put(s, item_michael_table); - char_michael.documents = true; - return [[ - Вы отдаете бумаги Майклу. Он кладет их на стол и принимается изучать. - ]]; - end; - end; - tak = function() - char_michael.documents = false; - return "Вы забираете бумаги"; - end; -}; - -item_toolbox = obj { - nam = "toolbox"; - disp = "Ящик с инструментами"; - dsc = [[ - Вы видите {ящик} со всевозможными полезными и не очень инструментами - отвертками, ключами, молотками и т.д.^ - ]]; -}; - pl = player { nam = "player"; disp = "Дэвид Дрейк"; @@ -80,7 +41,7 @@ pl = player { hitpoints = 10; obj = {'item_umbrella', "item_documents", "item_note_1", "item_first_city_key", "item_colt"}; -- party array. Should be empty on start - party = {"learr", "radcliffe", --[["phaetlarr", ]]"wright"}; + party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]}; companion = nil; }; diff --git a/michael.lua b/michael.lua deleted file mode 100644 --- a/michael.lua +++ /dev/null @@ -1,159 +0,0 @@ ---[[ -Здесь игрок получает адреса всех ключевых локаций первой части -]] -door_michael = obj { - nam = "door_michael"; - disp = "Дверь"; - locked = true; - act = function(s) - if (s.locked) then - walkin "michael_entry_dlg"; - else - walk "michael_house_inside"; - end; - return true; - end; - dsc = function(s) - if (s.locked) then - return [[ Дверь в дом заперта. Можно попробовать {постучаться}^ ]]; - else - return [[ Дверь открыта, вы можете {войти}^ ]]; - end; - end; -}; - -item_michael_table = obj { - nam = "michael_table"; - disp = "Стол"; - dsc =[[ - Вы видите массивный старый стол. - ]]; - obj = { - vobj("Газеты", [[На столе лежит стопка {газет}]]) - }; -}; - -char_michael = obj { - nam = "michael"; - disp = "Майкл Райт"; - dsc = function(s) - if (s.documents) then - return [[ ^{Майкл Райт} с интересом рассматривает схемы, которые вы ему отдали^ ]]; - else - return [[ ^Вы видите {пожилого человека} одетого в изрядно поношенный костюм^ ]]; - end; - end; - act = function(s) - if (s.documents) then - walkin "michael_main_dlg"; - else - walkin "michael_pre_dlg"; - end; - end; -}; - -michael_entry_dlg = dlg { - nam = "michael_entry_dlg"; - disp = "Голос за дверью"; - dsc = "Кто здесь?"; - hideinv = true; - phr = { - {"Могу я увидеть Майкла Райта?", "Кто спрашивает?", [[ psub 'who' ]]}, - {always = true, "Извините, я ошибся адресом", function(s) - back() - end}, - {tag = 'who'}, - {"Это сын Уильяма Дрейка", "Заходи, нам есть о чем поговорить", function () - door_michael.locked = false; - walk 'michael_house_inside'; - end}, - {"Майкл Райт здесь живет?", "Кто спрашивает?"}, - {"У меня важное сообщение для него", "Здесь таких нет, до свидания", function(s) - back() - end} - - }; -}; - -michael_main_dlg = dlg { - nam = "michael_main_dlg"; - disp = "Майкл Райт"; - dsc = [[ - Майкл неспешно просматривает одну за другой схемы, которые вы ему передали. Часть из них, очевидно, знакомы ему. - ]]; - hideinv = true; - phr = { - {"Вы можете что-то мне подсказать с этим?", [[ - Не знаю. Это схемы зданий, принадлежащих компании Уильяма. Часть из них заброшена, многие разрушены, остальные перекуплены и сейчас используются. Я могу сказать тебе адреса. [Майкл сообщает вам адреса интересующих вас зданий] - ]]}, - {"Что могут означать места отмеченные крестами?", [[ - Понятия не имею. Я работал на Верфи 2, Уильям часто бывал там, но я не замечал ничего необычного в месте, которое здесь отмечено. Сейчас она заброшена, так что можешь попробовать погулять там. Если что-то выяснишь - сообщи мне. - ]]}, - {"До свидания", "До встречи"} - }; -}; - -michael_pre_dlg = dlg { - nam = "michael_pre_dlg"; - disp = "Майкл Райт"; - dsc = [[ - Пожилой человек внимательно смотрит на вас и начинает говорить: - Как ты уже, наверное, догадался, я и есть Майкл. Да, я работал на твоего отца. - Вероятно, ты удивлен, что до этого момента никто не смог выйти на меня. - Это связано лишь с одним - то, чем я и твой отец занимались было, да и остается, крайне секретным. - ]]; - hideinv = true; - phr = { - {"Расскажите больше об Уильяме", [[ - Я мало что о нем знаю. Уильям был отличным руководителем - Вест-Хэйвен Транс-Оушен процветала под его руководством. - Мы были впереди всех по современности используемых технологий. У нас всегда были самые быстрые и надежные корабли. - Однако, в последние годы, твой отец как будто стал уделять компании меньше внимания - он стал намного реже выходить из своего кабинета, общаясь только с ограниченным кругом лиц. - Дела пошли на спад. Конкуренты медленно, но верно нагоняли нас. А потом он просто исчез. - ]]}, - {"Расскажите о себе", [[ - Да мне нечего рассказывать. Более 20 лет я работал на Вест-Хэйвен Транс-Оушен ведущим инженером. Занимался разработкой новых двигателей. - Уильям создал все условия для моей работы - у меня не было недостатка ни в материалах, ни в рабочих руках. Когда компания развалилась я решил отойти от дел. - Моих сбережений вполне хватало на спокойную жизнь. Чертежи я сберечь не сумел, а то непременно бы продал их кому-нибудь. Впрочем я не сильно об этом жалею. - ]]}, - {"Чем же таким секретным вы занимались?", [[ - Учитывая, что Вест-Хэйвен Транс-Оушен уже давно нет, я думаю, что могу рассказать тебе это. Вобщем я был начальником инженерного отделения. - Конкретно, я занимался увеличением скорости движения наших кораблей. Должен признать, я достиг больших результатов. - Последние мои корабли были вдвое быстрее чем лучшие из кораблей конкурентов. А потом Уильям исчез. Через полгода компания развалилась. - Корабли были разобраны на металлолом, а мои чертежи пропали. - ]]}, - {"Вы знаете, где мой отец сейчас?", [[ - Нет, я потерял связь с ним около 10 лет назад. Меня, конечно, удивило, что он оставил свою компанию, семью, все свое благосостояние. - Он как под воду ушел - еще утром сидел в своем кабинете, а вечером полмира его искало. - ]]}, - {always = true, "Спасибо, я узнал все", [[ - До встречи - ]], function(s) - back(); - end} - }; -}; - -michael_house_inside = room { - nam = "michael_house_inside"; - disp = "Дом Майкла Райта"; - dsc = [[ - Вы находитесь в небольшом уютном домике. Окна закрыты плотными занавесками. В комнате светло за счет нескольких электрических ламп. - ]]; - obj = { - 'item_michael_table', - 'char_michael', - vway("Выйти", "{Выйти из дома}", "michael_house") - }; -}; - -michael_house = room { - nam = "michael_house"; - disp = "Дом Майкла Райта"; - enter = function(s) - put(char_coachman, here()); - end; - dsc = [[ - Вы стоите у входа в дом, указанный в записке. - ]]; - obj = {'door_michael'}; -}; \ No newline at end of file diff --git a/shipyard2.lua b/shipyard2.lua deleted file mode 100644 --- a/shipyard2.lua +++ /dev/null @@ -1,86 +0,0 @@ ---[[ -Игрок может попасть сюда только после диалога с Майклом. -Верфь заброшена, многие механизмы придется ремонтировать. -Здесь игрок найдет подводную лодку, которую нужно будет восстановить. -]] -shipyard_2 = room { - nam = "shipyard_2"; - disp = "Верфь"; - dsc = [[ - Вы стоите у входа в огромное обветшалое здание. Полусодранная вывеска сообщает, что здание является собственностью компании Вест-Хэйвен Транс-Оушен. - ]]; - enter = function(s) - move(char_coachman, here()); - end; - obj = { - vway("Вход", "Огромные ворота слегка приоткрыты. Вы можете {войти}^", "shipyard_inside") - }; -}; - -shipyard_inside = room { - nam = "shipyard_inside"; - disp = "Верфь"; - dsc = [[ - Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. - Вдоль стен лежат сотни ящиков. Большинство из них уже успели прогнить, но некоторые сохранились весьма неплохо. - ]]; - view = [[ - Левиафан находится в доке - ]]; - obj = { - vway("Ржавая лестница", "Старая проржавевшая лестница ведет {на второй этаж}^", "shipyard_2nd_floor"), - vway("Выход", "Огромные ворота слегка приоткрыты. Вы можете {выйти}^", "shipyard_2") - }; -}; - -shipyard_2nd_floor = room { - nam = "shipyard_2nd_floor"; - disp = "Верфь, второй этаж"; - dsc = [[ - Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. - Вы находитесь на металлических мостках на уровне второго этажа. - ]]; - obj = { - vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на первый этаж}^", "shipyard_inside"), - vway("Ржавая лестница вверх", "Старая проржавевшая лестница ведет {на третий этаж}^", "shipyard_3rd_floor"), - }; -}; - -shipyard_3rd_floor = room { - nam = "shipyard_3rd_floor"; - disp = "Верфь, третий этаж"; - dsc = [[ - Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. - Вы находитесь на металлических мостках на уровне третьего этажа. - ]]; - obj = { - vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на второй этаж}^", "shipyard_2nd_floor"), - vway("Ржавая лестница вверх", "Старая проржавевшая лестница ведет {на четвертый этаж}^", "shipyard_4th_floor"), - }; -}; - -shipyard_4th_floor = room { - nam = "shipyard_4th_floor"; - disp = "Верфь, четвертый этаж"; - dsc = [[ - Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. - Вы находитесь на металлических мостках на уровне четвертого этажа. - ]]; - obj = { - vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на третий этаж}^", "shipyard_3rd_floor"), - vway("Ржавая лестница вверх", "Старая проржавевшая лестница ведет {на пятый этаж}^", "shipyard_5th_floor"), - }; -}; - -shipyard_5th_floor = room { - nam = "shipyard_5th_floor"; - disp = "Верфь, пятый этаж"; - disp = "Верфь, третий этаж"; - dsc = [[ - Вы находитесь внутри верфи. Огромное полупустое здание. Под потолком расположены краны, некогда служившие для подъема и спуска кораблей. - Вы находитесь на металлических мостках под самым потолком. - ]]; - obj = { - vway("Ржавая лестница вниз", "Старая проржавевшая лестница ведет {на четвертый этаж}^", "shipyard_4th_floor") - }; -}; \ No newline at end of file