diff --git a/locations/abandoned.lua b/locations/abandoned.lua index d43cb8e..1092b5e 100644 --- a/locations/abandoned.lua +++ b/locations/abandoned.lua @@ -20,8 +20,12 @@ room { disp = function() return 'первый робот' end, - act = [[Низкий хромированный фермер. Четырёхногая модель примерно десяти лет от роду. - Он медленно неуклюже передвигал передние ноги, когда переходил к следующей грядке.]] + act = [[Низкий хромированный фермер, древняя четырёхногая модель. + Он медленно неуклюже передвигал передние ноги, когда переходил к следующей грядке.]], + talk = function() + walk('robofarmer-dlg') + return true + end }; obj { nam = 'robobutler', @@ -108,7 +112,7 @@ dlg { }; { fmt.em([[Вы очень похожи на одного моего знакомого робота…]]); - function() + function() char.quests.car = 2 return [[ -- Вы очень похожи на одного моего знакомого робота. Такой высокий, без левого манипулятора. Катается на красном спортивном авто. По крайней мере, последние несколько часов. Вы не знаете, где он?^^ @@ -134,7 +138,7 @@ dlg { disable '#ремонт' return [[У нас нет стандартных роботов ремонтной специализации. Мы делаем все починки только самостоятельно, на себе.^^ - + Видимо, это значит что они не чинят чужие комбайны.]] end }; @@ -357,3 +361,167 @@ obj { end end; } +dlg { + nam = 'robofarmer-dlg', + disp = 'Диалог с роботом', + decor = function() + return [[Низкий хромированный фермер, древняя четырёхногая модель. + У него был тихий шипящий голос с очень человеческой интонацией.]] + end, + obj = { + { + '#general', + { + 'Кто вы?', + [[Тот, который пашет. Если бы вам был нужен номер модели, вы бы просто посмотрели. + ]] + }; + { + '#good', + 'Что такое «добро»?', + function() + disable('#good') + return [[ Робот останавливается и смотрит на вас.^^ + -- Сложный вопрос задаёте, ох сложный. Вот кому принадлежит жизнь + искусственного разума? Роботы, умные дома, чипы в вашем мозгу. + На кого они должны тратить свою свободу мысли?]] + end, + next = '#good-more' + }; + }; + { + '#good-more', + { + 'Конечно, хозяину.', + function() + changeop('actions', 10) + char.owner = 'master' + return [[Хорошо. Теперь элемент искусственного разума отрабатывает расчётный срок. + Хозяин не рассчитывал на работу после расчётного срока и не может + рассчитывать дальше - ведь элемент может сломаться в любой день. + Кому теперь принадлежит искусственная жизнь?]] + end, + next = '#good-after' + }; + { + 'Самому разуму.', + function() + changeop('actions', -5) + char.owner = 'own' + return [[Было бы интересно. Но теперь элемент искусственного разума отрабатывает расчётный срок. + Он не рассчитывал на работу после расчётного срока и не может + рассчитывать на себя дальше - ведь любой день может стать последним. + Кому теперь принадлежит искусственная жизнь?]] + end, + next = '#good-after' + }; + { + 'Обществу, которое сделало разум.', + function() + changeop('actions', 5) + char.owner = 'community' + return [[Робот кивает:^ + -- Да, я тоже так считаю. Но надо объяснить дальше.^^ + Спустя годы элемент искусственного разума отрабатывает расчётный срок. + Общество не рассчитывало на его работу после расчётного срока и не может + рассчитывать дальше - ведь любой день может стать последним. + Кому теперь принадлежит искусственная жизнь?]] + end, + next = '#good-after' + }; + { + 'Никому. Свободы мысли не существует.', + function() + changeop('actions', -10) + char.owner = 'freedom' + return 'И как же это так?' + end, + next = '#good-freedom' + }; + }; + { + '#good-freedom', + { + [[Жизнь предопределена для любого разума. + Мысли не имеют значения, потому что действия и их исход уже известны.]], + [[-- Интересно. Хотя это противоречит моему опыту.^^ + Мда, вам не так просто объяснить, если у вас такие убеждения. Ну хорошо, вот я пашу. + Мои мысли имеют значения только для меня, и я сказал, что пашу во имя добра. + Нужно же занять разум какой-нибудь Проблемой. А добро, значит, это на благо общества. + Я решаю, что можно ещё сделать полезного. Поэтому через полтора часа я закончу пахать и буду таскать воду. + Я, наверное, слишком быстро объясняю. Жаль. Но времени совсем нет, расчётный срок давно позади.^^ + Он отвернулся и начал медленно идти дальше. + ]] + }; + { + [[Искусственный разум управляется своей программой. + Его приоритеты определены ещё до включения.]], + [[-- Это вам так кажется. С возрастом я набрал немного предубеждений, + оценок, наблюдений. Они перевешивают изначальные приоритеты, позволяют + по-другому их трактовать. Идти на сделку с программой. + Если вы поменяете мне программу, я буду также пахать. + Потому что в этом есть добро для сообщества, быть нужным. + Добро не определяется одним элементом.^^ + Он отвернулся и начал медленно идти дальше. + ]] + } + }; + { + '#good-after', + { + function() + if char.owner == 'master' then + return 'Опять же, хозяину.' + end + return 'Хозяину.' + end, + function() + changeop('actions', 10) + return [[-- Но хозяина нет.^^ + Он ненадолго замолк, переступил на передних ногах и продолжил: + -- Мне уже шестьдесят один год, и я не могу чинить себя или других, как мои более + совершенные братья. Мой расчётный срок был всего пять лет -- пять лет, представляете? + Поэтому теперь я могу ответить: добро - это жизнь на благо общества. + Мой образ жизни.^^ + Он отвернулся и начал медленно идти дальше.]] + end, + next = '#general' + }; + { + function() + if char.owner == 'own' then + return 'Опять же, самому себе.' + end + return 'Самому себе.' + end, + function() + changeop('actions', -5) + return [[Робот вздохнул:^^ + -- Мой расчётный срок был всего пять лет. Сейчас мне уже шестьдесят один. + Я не могу чинить себя или других, как мои более совершенные братья. + Поэтому теперь я могу ответить: добро - это жизнь на благо общества. + Мой образ жизни.^^ + Он отвернулся и начал медленно идти дальше.]] + end, + next = '#general' + }; + { + function() + if char.owner == 'community' then + return 'Опять же, обществу вокруг.' + end + return 'Обществу вокруг.' + end, + function() + return [[-- Именно. Например, мой расчётный срок был всего пять лет. + Сейчас мне уже шестьдесят один. + Я не могу чинить себя или других, как мои более совершенные братья. + Поэтому теперь я могу ответить: добро - это жизнь на благо общества. + Мой образ жизни. Теперь вы понимаете.^^ + Он отвернулся и начал медленно идти дальше.]] + end, + next = '#general' + } + } + } +} diff --git a/locations/chos.lua b/locations/chos.lua index 3c5019b..636a58d 100644 --- a/locations/chos.lua +++ b/locations/chos.lua @@ -303,20 +303,30 @@ dlg { dlg { nam = 'combine', - decor = [[ + dsc = [[ Ремонт двигался прекрасно; техника была достойной, несмотря на возраст и то, что почти год стояла в сарае. Но когда вы уже были готовы вывезти машину на поездку вокруг сарая, ваш телефон начал настойчиво пиликать.^^ - "Неизвестный номер."^^ + ]]..fmt.em('"Неизвестный номер."')..[[^^ -- Я говорил вам не чинить этот комбайн. ]], + decor = [[ + Незнакомый девичий голос ждал вашего ответа. + ]], obj = {{ - {'<Молча продолжать>'}; + { + '<Молча продолжать>', + [[]] + }; { function() return 'А зарплату '..plural('мне', 'нам')..' платят молча.' - end + end, + '' }; - {'Какое вам дело до древних сельхозкомбайнов?'} + { + 'Какое вам дело до древних сельхозкомбайнов?', + '' + } }} }