-- + можно выкупить программатор в обмен на ___ у роботов room { nam = 'chos', disp = 'Богатый дом', way = {'intersection'}, decor = [[ Вы стояли перед большим {chos_house|напечатанным домом.} Отсюда начиналась большая пашня, по которой ходили фермерские роботы.^^ Возле дома в удобном гамаке спала {angelina|старушка.} ]], obj = { obj { nam = 'chos_house', disp = 'дом', take = function() pn('Вы не знаете, как можно '..fmt.em('взять')..' двухэтажный дом.') return false end, act = [[К типовому двухэтажному дому из нанотрубок со временем допечатывали несколько модулей. Часть второго этажа выглядела совсем новой — возможно, её недавно расширили.]], }; obj { nam = 'angelina', take = function() pn('Старушке это не понравится.') return false end, disp = function() if not visited('cho_dlg2') then return 'старушка' else return 'Ангелина' end end, act = 'Старушка мирно посапывала, раскачиваясь в гамаке.', talk = function() return walk('cho_dlg'); end, } } } -- Диалог с Анжелиной Чо dlg { nam = 'cho_dlg', disp = false, dsc = function(s) if not visited('cho_dlg2') then return [[ -- А? Что? Вы… вы ]]..engineer()..[[ из фирмы? Нет, я не сплю.^^ Она встаёт и протирает глаза. ]] end s:reset '#разговор' return [[-- А? Это вы? Извините, я задремала.]] end, decor = [[ Старушка внимательно смотрит на вас. ]], obj = { { { function() return 'Откуда вы поняли, что '..pronoun_1()..' — '..engineer() end, 'Я же вас и вызывала. У нас комбайн сломан. Вы чините зерноуборочные комбайны?' }; { always = true, fmt.em('Как вас зовут?'), 'Ангелина. Я вызывала мастера по гарантии.', next = '#комбайн-начало' } }; { '#комбайн-начало', { 'Что случилось?', '-- Мы прогрели его весной, а он и не едет. Вы же '..engineer()..', вы сможете его починить?' }; { fmt.em('Можно посмотреть комбайн?'), function() return walk('cho_dlg2') end, }; }; { '#разговор', { always = true, 'Вы не могли бы показать мне комбайн ещё раз?', function() if have('programmator') then walk('combine') return [[Она привела вас к зерноуборочному комбайну, и вы начали работать.]] else return 'Она привела вас к комбайну. Машина в том же сломанном состоянии. Вам пришлось вернуться ни с чем.' end end, }; { 'Вы давно здесь живёте?', 'Она пожимает плечами:^^-- Лет тридцать. Начинали всего с одним роботом.' }; { fmt.em('Ничего. Доброе утро.'), function() walk('chos_house') return '-- И вам того же.^^Она закрыла глаза и задремала.' end, }; } } } dlg { nam = 'cho_dlg2', disp = false, dsc = [[-- Да-да, конечно.^^ Она провела вас в большой сарай, где пылился высокий автоматический зерноуборочный комбайн. -- Вот и наш больной. Только вы, пожалуйста, можете его починить побыстрее, а то у нас урожай уже скоро. ]], decor = [[ Старушка Чо внимательно смотрела на вас. В её глазах вы видели, что от починки этого сельхозкомбайна зависело несколько жизней. ]], obj = { { onempty = function() walk('start4') end, { 'Что точно случилось?', '-- Мы его заводим, а он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.' }, { 'У вас же столько роботов. Неужели вы не справитесь без комбайна?', [[-- Всего семеро, и они обычно упаковывают и складывают. Если они будут ещё и косить, мы не управимся до осени. Урожай сгниёт под дождями.]] }, { 'Да, '..pronoun_1()..' -- '..engineer()..[[. Но я могу только определить проблему, у вас же нет мастерской или инструментов.]], '-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.' }, { 'Давно он у вас?', [[-- Ну, лет двадцать уже, наверное. Никогда не ломался. Но у меня на него пожизненная гарантия.]] } } } } -- Починка комбайна dlg { nam = 'start4', disp = false, dsc = function() char.quests.chos = 1 return [[ Комбайн оказался ещё довоенным. Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^ -- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую. Программатор сломался.^ -- Програ-что?^ -- Ну, это очень старая плата передвижения. Раньше везде стояла, но сейчас её надо заказывать.^ -- Ходули, что ли? А может, у нас поищем? Здесь много у кого есть техника.^ -- Нет, надо заказывать. Не волнуйтесь, через месяц придёт.^ -- Слушайте, но нам же нельзя ждать целый месяц, урожай за порогом. Хотите, я заплачу? -- Давайте так: ]]..pronoun_1()..[[ здесь ещё ]]..plural('задерживаюсь', 'задерживаемся')..[[. Возможно, здесь, на месте, что-то получится. Но после урожая -- сразу в мастерскую на техосмотр.^ -- Спасибо. -- она улыбнулась. -- Попробуйте спросить Пашу? У него много техники, он поможет. ]] end, decor = [[ Вы вернулись к дому. Стоит ли спросить что-то ещё? ]], obj = {{ onempty = function() char.quests.kathy = 0 -- place('kathy', here()) -- lifeon('kathy') p "Видимо, разговор закончен." lifeon('call-unknown') walk('chos') end, {'Где живёт этот Павел?', [[Это такой зелёный домик, вы его не пропустите. Как позвоните в домофон, Паша вас пустит. Он — добрый друг нашей семьи.]]} }} } obj { nam = 'kathy', disp = 'Катя', dsc = "Рядом с вами стояла {Катя}.", talk = function() return walk('kathy_dlg') end, life = function(self) if player_moved() then place('kathy', here()) end local reactions = { 'Катя зевнула.'; 'Катя стучала серым кроссовком.'; 'Катя смотрела на что-то в небе.'; } if rnd(10) > 4 then -- вероятность реакции 40% p(rndstr(reactions)) return end end, take = function() pn 'Плохая идея.' return false end, act = 'Чумазая китаянка со спутанными волосами.' } dlg { nam = 'kathy_dlg'; decor = [[ Вы стояли и смотрели на Катю. А Катя смотрела на вас. ]]; obj = {{ onempty = function() return "Она отворачивается. Видимо, разговор закончен." end, { '#привет', 'Привет.', function() disable '#привет' return 'Привет.' end }; { 'Покажешь дорогу до этого Павла?', function() walk 'pavels' return 'Ну пошли.' end, }; { 'Ты можешь подождать где-нибудь? Кое-какие дела.', function() lifeoff 'kathy' return '-- Ну хорошо. Я буду у себя дома, если что.' end, }; { always = true, function() return pronoun_1()..' '..plural('хочу', 'хотим')..' кое-что посмотреть. Можешь подождать здесь?' end, function() lifeoff('kathy') place('kathy', 'chos_house') return "Хорошо. Но я лучше вернусь домой, бабушка будет волноваться." end } }} } obj { nam = 'call-unknown', disp = false, timer = 0, life = function(s) s.timer = s.timer + 1 char.call = 'unknown' if s.timer < 8 then pn 'У вас звонит телефон.' -- не могу сделать ссылкой end if s.timer == 8 then char.call = nil lifeoff(s) end end, } local backtocho = function() walk('chos') return 'Бросили трубку.' end dlg { nam = 'caller-unknown', decor = function() return [[В трубке говорил незнакомый девичий голос.^^ -- Ты не]]..wrong_gendered('должен', 'должна')..[[чинить этот комбайн. Погибнут люди.]] end, obj = {{ { 'Иди ты к чорту.',backtocho }; { 'Ну хорошо.',backtocho }; { 'А мне-то что?',function() changeop('reputation', -10) return backtocho() end }; { 'Да это же просто комбайн.',backtocho }; }} } dlg { nam = 'combine', -- Здесь я хотел вставить интерактив но не придумал ни-че-го dsc = [[ Ремонт двигался прекрасно; техника была достойной, несмотря на возраст и то, что почти год стояла в сарае. Вы подготовились вывезти машину на поездку вокруг сарая.^^ И тут начались выстрелы. После войны вы моментально реагировали на громкий хлопок и металлический «бзынь» в сантиметре от руки. Вы спрятались в кабине, но вам не было видно, что происходит на входе в сарай.^^ -- Я говорила вам не чинить этот комбайн! С другой стороны, надо было только считать выстрелы. ]], shots = 4, update = function(s) s.shots = s.shots - 1 if s.shots == 3 then s.decor = 'Три.' end if s.shots == 2 then s.decor = 'Два.' end if s.shots == 1 then s.decor = 'Один.' end end, decor = 'Четыре.', obj = { { { 'Кто ты?', function() here().update(here()) return '-- Ха! [паф] Так я тебе и сказала.' end }; { 'Чего ты хочешь?', function() here().update(here()) return [[-- Никаких урожаев. [бзынь!] Бросить эту дыру. Собрать вещи и уехать отсюда.]] end, next = '#second' }; { 'Какое тебе дело до древних сельхозкомбайнов?', function() here().update(here()) return [[-- Нет комбайна [бзынь!] нет урожая. Можно будет бросить эту дыру. Уехать отсюда.]] end, next = '#second' } }; { '#second', { '?' } } } }