--[[ Порт ]] char_captain = character { nam = "char_captain"; disp = "Капитан"; dsc = [[ {Капитан} стоит на носу и задумчиво смотрит на происходящее на палубе. ]]; phrases = { "Завтра мы отправляемся обратно в Америку. ", "\"Северное сияние\" - лучший из кораблей, которыми я управлял. ", "Кажется, дождь собирается. ", "Как вам путешествие?", "Этот пароход - гордость компании. ", "Иногда я вспоминаю свою молодость на \"Чайке\" и \"Нефритовой королеве\". " }; }; char_first_mate = character { nam = "char_first_mate"; disp = "Первый помощник"; dsc = [[ {Первый помощник} наблюдает за покидающими корабль людьми. ]]; phrases = { "Скорей бы обратно в море. ", "Как вам путешествие?", "Надо бы осмотреть машину... ", "Капитан раньше командовал \"Чайкой\". Я не знаю, что стало с ней сейчас. ", "\"Северное сияние\" - гордость компании. ", "Это был мой первый трансатлантический рейс в качестве первого помощника. " }; }; aurora_borealis = room { nam = "aurora_borealis"; disp = "\"Северное сияние\", палуба"; dsc = [[ На палубе парохода людно. Пассажиры один за другим сходят на берег. Небо покрыто тяжелыми тучами. Со всех сторон доносятся гудки пароходов. ]]; obj = {'char_captain', 'char_first_mate'}; way = { vroom("Сойти на берег", "london_mooring"); }; }; london_mooring = room { nam = "london_mooring"; disp = "Причал"; dsc = [[ У причала не протолкнуться. У вас не остается выбора, кроме как отойти к порту вместе с толпой. ]]; way = { vroom("Отойти от причала", "port"); }; }; port = room { nam = "port"; disp = "Порт"; entered = function(s) move(char_coachman, here()); end; dsc = [[ Вы находитесь в порту. Небо покрыто тяжелыми тучами - вот-вот начнется дождь. Вокруг кипит жизнь: снуют толпы народу, то и дело раздаются гудки пароходов, слышно ржание лошадей, запряженных в многочисленные экипажи, привозящие и увозящие людей. ]]; obj = {'item_toolbox', 'char_worker'}; }; char_worker = character { nam = "char_worker"; disp = "Портовый рабочий"; dsc = [[ Рядом с ящиком стоит {портовый рабочий} и курит трубку.^ ]]; dlg = "char_worker_dlg"; }; char_worker_dlg = dlg { nam = "char_worker_dlg"; disp = "Портовый рабочий"; dsc = [[ Чего надо? ]]; phr = { {always=true, "Могу я воспользоваться вашими инструментами?", "Нет. ", [[ psub 'bribe_try' ]]}; {always=true, "Нет, ничего", "Вали отсюда. ", [[ back(); ]]}; {tag='bribe_try'}; {always=true, "Поменяю на бутылку"}; {always=true, "Могу я купить их у вас?", "Сколько?", [[ psub 'bribing_20' ]]}; {always=true, "Нет, ничего", "Вали отсюда. ", [[ back(); ]]}; {tag='bribing_20'}; {"5 шиллингов?", "Смеешься?"}; {always=true, "10 шиллингов?", "15", [[psub 'bribing_15']]}; {always=true, "20 шиллингов?", "Идет", [[ char_worker.bought = true; back();]]}; {always=true, "30 шиллингов?", "Идет", [[ char_worker.bought = true; back();]]}; {tag='bribing_15'}; {always=true, "10", "14", [[psub 'bribing_14']]}; {always=true, "11", "14", [[psub 'bribing_14']]}; {always=true, "12", "14", [[psub 'bribing_14']]}; {always=true, "13", "14", [[psub 'bribing_14']]}; {always=true, "14", "14", [[ char_worker.bought = true; back(); ]]}; {tag='bribing_14'}; {always=true, "10", "13", [[psub 'bribing_13']]}; {always=true, "11", "13", [[psub 'bribing_13']]}; {always=true, "12", "13", [[psub 'bribing_13']]}; {always=true, "13", "13", [[ char_worker.bought = true; back(); ]]}; {tag='bribing_13'}; {always=true, "10", "Вали отсюда, надоел. ", [[ back(); ]]}; {always=true, "11", "Вали отсюда, надоел. ", [[ back(); ]]}; {always=true, "12", "Идет", [[ char_worker.bought = true; back(); ]]}; }; }; --[[ Банк ] bank_street = room { nam = "bank_street"; disp = "У входа в банк"; entered = function(s) move(char_coachman, here()); -- lifeon(s); end; dsc = [ Вы находитесь на улице у входа в банк - двухэтажное здание с большой украшенной вывеской "Банк Джонсона" над входом. ]; way = { vroom("В банк", "bank_inside"); }; --left = function(s) -- lifeoff(s); --end; }; bank_inside = room { nam = "bank_inside"; disp = "В банке"; dsc = [ Вы находитесь в банке. Высокие окна закрыты плотными занавесками, однако в зале светло благодаря многочисленным газовым лампам, укрепленным на стенах и колоннах по всему залу. Мраморный пол идеально чист, несмотря на снующих посетителей. ]; way = { vroom("На улицу", "bank_street"); }; obj = { 'clerk' }; }; clerk = obj { nam = "clerk"; dsc = [ За мраморной стойкой вы видите скучающего {клерка}. ]; act = [ Без банковской книжки вам здесь денег не выдадут. ]; used = function(s, o) if (o == item_bankbook) then global.has_money = true; remove(item_bankbook, pl); take(item_money); return "Вы протягиваете клерку вашу банковскую книжку и снимаете некоторое количество денег со счета"; end; end; };]] --[[ Гостиница ]] ginshop = room { nam = "ginshop"; disp = "Пивная лавка"; dsc = [[ Вы находитесь в небольшой комнатушке. ]]; obj = {'ginshop_trader'}; }; ginshop_trader = character { nam = "ginshop_trader"; disp = "Торговец"; dsc = [[ За грязным прилавком, не раз залитым пивом и другими напитками стоит подслеповатый {торговец}. ]]; dlg = "ginshop_trader_dlg"; }; ginshop_trader_dlg = dlg { nam = "ginshop_trader_dlg"; disp = "Торговец"; dsc = [[ Добро пожаловать, чем могу вам помочь? ]]; phr = { {1, "Бутылочку чего-нибудь покрепче, пожалуйста", "Ага, щас"}; {2, always = true, "Это все, спасибо", "До свидания", function() back(); end; }; }; }; hotel_street = room { nam = "hotel_street"; disp = "У входа в гостиницу"; entered = function(s) move(char_coachman, here()); end; dsc = [[ Вы стоите на улице у входа в гостиницу. Гостиница представляет собой трехэтажное кирпичное здание. Ниже по улице вы видите здание, на котором висит вывеска пивной лавки. ]]; way = { vroom("В гостиницу", "hotel_hall"); vroom("В переулок", "hotel_alley"); vroom("В пивную лавку", "ginshop"); }; }; hotel_hall = room { nam = "hotel_hall"; disp = "Гостиница"; dsc = [[ Вы находитесь в холле гостиницы. Просторный зал, по высоте составляющий два этажа. В задней части вы видите широкую лестницу, застеленную красной дорожкой. Занавески на окнах аккуратно собраны в стороны, позволяя свету проникнуть в помещение. Несмотря на это, под потолком горит огромная люстра, украшенная золотом и серебром. ]]; obj = { 'hotel_concierge' }; way = { vroom("На улицу", "hotel_street"); vroom("К номерам на первом этаже", "hotel_corridor_1"); vroom("на второй этаж", "hotel_corridor_2"); }; }; hotel_corridor_1 = room { nam = "hotel_corridor_1"; disp = "Отель, первый этаж"; dsc = "Вы находитесь в коридоре гостиницы. "; way = { vroom("В холл", "hotel_hall"); vroom("В комнату №2", "hotel_room_2"):disable(); }; }; hotel_corridor_2 = room { nam = "hotel_corridor_2"; disp = "Отель, второй этаж"; dsc = "Вы находитесь в коридоре гостиницы. "; way = { vroom("В холл", "hotel_hall"); vroom("В комнату №7", "hotel_room_7"):disable(); }; }; hotel_room_2 = room { nam = "hotel_room_2"; disp = "Комната №2"; dsc = [[ Вы находитесь в комнате Джозефа Старлайта. ]]; }; hotel_room_7 = room { nam = "hotel_room_7"; disp = "Комната №7"; dsc = [[ Вы находитесь в вашей комнате в отеле. ]]; way = { vroom("Спуститься вниз", "hotel_hall"); }; }; hotel_alley = room { nam = "hotel_alley"; disp = "Переулок"; entered = function(s) lifeon(alley_trader); end; left = function(s) lifeoff(alley_trader); end; dsc = [[ Узкий, грязный проулок. ]]; obj = { 'alley_trader' }; way = { vroom("Ко входу в гостиницу", "hotel_street"); } }; alley_trader = obj { nam = "alley_trader"; disp = "Торговец редкостями"; dsc = "Немолодой {человек} в старом пальто и очках стоит, опершись на стену одного из домов."; life = function(s) if(math.random(5) > 3 and where(pl) ~= alley_trader_dlg) then pn("Повернувшись к вам, человек спрашивает: \"Могу я чем-нибудь помочь?\""); end; end; act = function(s) walkin "alley_trader_dlg"; end; }; alley_trader_dlg = dlg { nam = "alley_trader_dlg"; disp = "Торговец"; hideinv = true; entered = function(s) if (global.light_needed) then pon(1); else poff(1); end; if (global.lockpick_needed) then pon(2); else poff(2); end; return [["У меня есть все, что вам нужно"]]; end; phr = { {1, "Мне нужна лампа", function() take(item_lamp); return "Без проблем"; end}; {2, "Мне нужна отмычка", function() global.lockpick_needed = false; take(item_lockpick); return "Без проблем"; end}; {255, always = true, "Это все", function() back(); return "До встречи"; end}; }; }; hotel_concierge = obj { nam = "hotel_concierge"; disp = "Консьерж"; dsc = [[ За стойкой скучает {консьерж}. ]]; act = function(s) if (hotel_concierge.paid) then pn("Я уже снял номер"); else walkin(hotel_concierge_dlg); end; end; }; hotel_concierge_dlg = dlg { nam = "hotel_concierge_dlg"; disp = "Консьерж"; entered = [[ Консьерж оживился, как только вы подошли: "Здравствуйте! Желаете снять номер?" ]]; phr = { {1, "Да, мне нужна комната на неделю. ", function() hotel_concierge.paid = true; path("В номер", hotel_hall):enable(); back(); return "Вы оплачиваете проживание и консьерж дает вам ключ от вашего номера."; end;}; {255, always = true, "не сейчас", function() back(); return "Когда соберетесь тогда и приходите."; end}; }; };