room { nam = 'pavels', disp = 'Дом на окраине', way = {'exit_west'}, decor = [[ Вы стояли перед типовым напечатанным одноэтажным домом. С одной стороны к стене прислонилась маленькая пристройка для дров. С другой стороны — {suit|боевой механизированный костюм.} Возле входной двери горела {call|кнопка домофона.} ]], obj = { obj { nam = 'call'; disp = 'домофон'; act = 'Домофон был включён, хозяин — дома. Достаточно было только поговорить с ним.'; talk = function() return walk('pavels-call') end; take = function() pn "Вам не был нужен домофон или какая-то его деталь." return false end, open = function() pn "Домофон не разбирался." return false end }; obj { nam = 'suit', disp = 'боевой костюм', talk = 'Костюм не принимал ваших команд. Если, конечно, он вообще вас слушал.', take = function() pn "Вам не нужна была боевая машина. Возвращаться в город на своём кабриолете было бы приятнее и быстрее." return false end, act = function() local out = [[ Боевой механизированный костюм высотой 2,7 метров, марка РГ-22. Рассчитан на одного пилота. Вооружён автоматической пушкой калибра 5мм и огнемётом.^^]] if char.war == "earth" then out = out .. [[ Вы чинили эти двуногие танки день и ночь. Лунные мины становились всё изощрённее, и приходилось срочно отлаживать программы починки, а иногда и лезть вручную. Боты никогда не заботились о том, чтобы вычистить остатки пилота из кабины.^^ ]] end if char.war == "moon" then out = out .. [[ Где бы вы ни сражались, эти двуногие твари шли на вас тысячами. Вам приходилось еженедельно изобретать новые мины, чтобы получить хоть какой-то шанс отбиться. Сорок восемь смертельных чертежей против главной уязвимости этой модели — человека в кабине.^^ ]] end out = out..[[Такие штамповались на Земле сотнями тысяч, но после войны оказалось, что большая часть потеряна на поле боя. Конечно, по официальной версии. ]] return out end } } } dlg { nam = 'pavels-call', disp = 'Разговор с домофоном', decor = [[Камера домофона смотрела на вас бесстрастным блеском.]], enter = [[-- Кто там? — спросил неприветливый мужской низкий голос.]], obj = { { { '#robot', 'Здесь не проезжал такой робот…', function() disable('#robot') return [[— Вы не видели, как здесь проезжал робот на автомобиле? Он такой…^^ Домофон отключился. Видимо, нет.]] end }; { '#yours', 'Это ваш РГ-22?', function() disable('#yours') return 'Не продаётся.' end }; { '#repair', cond = function() return char.quests.chos > 0 end, function() disable('#repair') enable('#enter') return fmt.em(plural('Я занимаюсь', 'Мы занимаемся')..' ремонтом для Анжелины; она сказала, что у вас есть своя мастерская и вы можете помочь.') end, [[ -- То есть, ]]..pronoun_2()..[[ чинишь железяки.^ -- Ну, скорее это больше программаторы, платы управления, ИскИны, роботы.^^ Голос на той стороне замолчал и начал чем-то шуршать.^^ -- В какой бригаде служил]]..endings()..[[?]], next = '#war' }; { cond = function() return live('kathy') end, fmt.em('<Попросить Катю поговорить с хозяином дома>'), function() local out = [[Здравствуйте, ]]..pronoun_1()..' — '..engineer() .. '.' return out end }; }; { '#war', { function() return plural('Зампотех старший лейтенант', 'Зампотехи старшие лейтенанты')..' мехастрелковой роты, Фронт Обороны Земли.' end, function() char.war = "earth" walk('pavels-inside') return [[-- Старший лейтенант? А по голосу не скажешь. Ну хоть будет о чём поболтать.^^]]..enter_pavels() end }; { function() return plural('Майор', 'Майоры')..' ремонтного батальона, Армия Освобождения Луны.' end, function() char.war = "moon" walk('pavels-inside') return [[-- Луны, значит… А по голосу не скажешь. Ладно, что прошло -- то не взлетело.^^]]..enter_pavels() end }; } } } enter_pavels = function() return [[ Дверь открылась с громким щелчком.^^ Вы вошли в тёмную гостиную.^ -- Я здесь, внизу! -- раздался голос хозяина. ]]; end room { nam = 'pavels-inside', disp = 'Гостиная', way = {'pavels-under'}, enter = function() find('pavel-call').timer = 0 lifeon('pavel-call') return 'Вы разулись на сером махровом коврике с надписью «Человек человеку добр».' end, decor = [[ Эта комната была большой, но здесь было так мало свободного места, что вам пришлось перепрыгивать через {table|журнальный столик,} чтобы пересечь её. Предметы были разбросаны, как будто из окон пролилась река, внесла эти случайные вещи и ушла, оставив их лежать на дне комнаты.^^ На полу были разбросаны {paper|какие-то бумажки.} За широким письменным столом висели фотокарточки в рамках. На подоконнике слабо светился {aqua|аквариум.} Со стен на вас смотрели красочные {portraits|портреты незнакомых людей.} ]], obj = { obj { nam = 'aqua', disp = 'аквариум', talk = 'Вы ещё не готовы разговаривать с аквариумами.', act = [[ Лазурные водоросли медленно сокращались и расслаблялись в прозрачной воде. Они сокращались и расслаблялись, сокращались и расслаблялись, как будто дышали чем-то ]]..fmt.em('другим.')..[[ Вы заметили мелкие фиолетовые пузырьки, которые всплывали из переплетения водорослей к краям аквариума. ]] }; obj { nam = 'table', disp = 'журнальный столик', talk = 'Вам нечего сказать журнальному столику. Да и он немногословен.', act = [[На столике лежал рисунок карандашом: робот-летописец тянет пишущую руку вверх. В нижней части листа ручкой было написано: «Слава Земле»]] }; obj { nam = 'paper', disp = 'бумаги на полу', talk = 'Бумага может сказать только то, что на ней напечатано.', act = [[Медицинский листок: «Контузия женщина 26 лет передвигала шкаф свалилась внутрь. Сломано два правых ребра, жалобы на боль в плече. Просит найти Хурхэнова.»^ Детским почерком: «Трудный 3-1. Прыжок влево, вправо, Круг, Квадрат, Вверх, Круг, Квадрат.»^ Страница из Горной Энциклопедии, буква Х: Халцедон, Хризолит, Хризопраз.^ Распечатка инструкции по обновлению нейронных сетей пилотов серии РГ.^ Таблица зависимости времени посадки цитрусовых от влажности воздуха. ]] }; obj { nam = 'portraits', disp = 'портреты', talk = 'Портреты молчали, отчего вам стало жутковато.', act = [[ Угрюмый старик в деловом костюме. Грустный мужчина в генеральском кителе. Напряжённая женщина в полосатой блузке с двумя галстуками. Девочка в кабине красного боевого механизированного костюма, почти втрое больше неё.^^ Как будто вы стояли в каком-то музее, куда даже не купили билет. ]] } } } obj { nam = 'pavel-call', timer = 0, life = function(s) s.timer = s.timer + 1 local response = { '-- Я внизу!', '-- Эй! Сюда, в подвал!', '-- Эй, там, наверху! Вы скоро?', '-- Ничего там не трогать!', '-- Разобьёшь что-нибудь — убью!' } if timer % 4 == 1 then return rndstr(response) end end } room { nam = 'pavels-under', disp = 'Подвал', decor = [[]] }