--$Author:Alexander Yakolev, 2017 --$Version:1.0 require "format" require "dbg" require "dbg-ru" declare "isdebug" (true) require 'ui' require 'tools' declare "char" ({}) format.dash = true format.quotes = true format.para = true -- https://www.google.ru/maps/place/%D0%9C%D0%B5%D0%BA%D1%81%D0%B8%D0%BA%D0%B0/@22.8355052,-105.0808555,16z/data=!4m5!3m4!1s0x84043a3b88685353:0xed64b4be6b099811!8m2!3d23.634501!4d-102.552784 -- Необходимые правки стиля перед релизом: -- 1. Убрать курсив от ответов на диалоги, чтобы они просто слились с основным текстом -- 2. Убрать вывод текста ответов на первый из диалогов (выбор обращения) -- 3. Сделать ссылки в инвентаре не по двойному, а по одинарному щелчку -- 4. Отключить автосписок инвентаря в области, собственно, инвентаря -- 5. вернуть txtem() и вообще функции форматирования dlg { nam = 'main', dsc = [[ От автобусной остановки до дома Чо было полтора километра. По пути вы осматривали окрестности: высокая гора, бесконечные пашни и маленькое село вокруг единственной колонки с водой.^^ Семья Чо отгородилась от села широкой полосой деревьев. Их пашня не отличалась от остальных: такое же чёрное поле с рядами роботов, которые молча копались в земле. Перед полем стоял невысокий красновато-чёрный дом с двумя окнами.^^ На стук в дверь открыла низенькая черноволосая девушка.^^ -- А, так вы тот инженер из города? Проходите, мы сейчас всё покажем. Я же правильно говорю, вы же инженер? ]], obj = { { { 'Инженер (она)', function() char.gender = "she"; char.plural = false; walk('start2'); return true; end }, { 'Инженер (он)', function() char.gender = "he"; char.plural = false; walk('start2'); return true; end }, { 'Инженер (оно)', function() char.gender = "it"; char.plural = false; walk('start2'); return true; end }, { 'Инженер (они)', function() char.gender = "they"; char.plural = false; walk('start2'); return true; end }, { 'Инженеры (они)', function() char.gender = "they"; char.plural = true; walk('start2'); return true; end }, { cond = function() return isdebug end, 'Пропустить интро', function() char.gender = rndstr({"they", "it", "he", "she"}) char.plural = rndalt(true, false) char.war = rndstr({"earth", "moon"}) walk('chos'); return true; end } } } } dlg { nam = 'start2', dsc = function() return [[ -- А, это хорошо что ]]..engineer()..[[. Мы уже думали, что наша гарантия всё. Это же такие старые роботы, всё время в поле.^^ Она вышла из дома и пригласила вас за собой. Вы шли вдоль поля; металлические рабочие не обращали на вас внимания.^^ -- Вы знаете, у нас же нет других машин. Когда-то хотели купить что-нибудь для дома, но тут эта война с Луной… Вы были на войне? ]] end, obj = { { { function() return [[Цех РБ-65, с первого до последнего дня. Чинил]]..endings()..[[ ремонтных ботов.]] end, function() char.war = "earth"; p '-- Доблесть рабочих, конечно.'; walk('start3'); return true; end }, -- + к симпатизирующим Земле { 'Да, но Луна проиграла.', function() char.war = "moon"; p "-- Ой, вы из этих… Извините." walk('start3'); return true; end }, -- + к симпатизирующим Луне }, }, } dlg { nam = 'start3', dsc = [[ (курсивом) Сюда, пожалуйста.^^ Она провела вас в большой сарай, где пылился высокий автоматический сельхозкомбайн. -- Вот и наш больной. Мы прогрели его весной, а он и не едет. Вы же ]]..engineer()..[[, вы сможете его починить? А то мы потеряем урожай. ]], decor = [[ Старушка Чо внимательно смотрит на вас. В её глазах вы читаете, что от починки этого комбайна зависит несколько жизней. ]], obj = {{ onempty = function() walk('start4') end, { 'Зачем вы заводили комбайн весной?', '-- Он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.' }, { 'У вас же столько роботов. Неужели вы не справитесь без комбайна?', [[-- Всего семеро, и они обычно упаковывают и складывают. Если они будут ещё и косить, мы не управимся до осени. Урожай сгниёт под дождями.]] }, { 'Да, '..pronoun_1()..' -- '..engineer()..[[. Но я могу только определить проблему, у вас же нет мастерской или инструментов.]], '-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.' }, { 'Давно он у вас?', [[-- Ну, лет двадцать уже, наверное. То есть, я хотела сказать, девятнадцать. Гарантия же ещё действует, правда?]] } }} } dlg { nam = 'start4', dsc = function() return [[ Комбайн оказался ещё довоенным. Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^ -- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую.^^ -- А нельзя прямо здесь? У нас же урожай скоро!^^ -- Нет, это…^^ -- Послушайте. У меня сестра работает в Берёзовке, я знаю что нужно. Вас устроит… десять тысяч?^^ -- В смысле?^^ -- Подождите, не отказывайтесь. Десять новых кусков. Золотом. И вы почините это здесь.^^ Вы задумались. На десять кусков можно было бы купить новый комбайн - конечно, не такой мощный, но если продать золото на Луну… Был один хитрый выход.^^ -- Давайте так: ]]..pronoun_1()..[[ здесь на три дня. Если за эти три дня что-то получится… Но после урожая -- сразу в мастерскую, нужен основательный ремонт. У кого, вы говорили, здесь мастерская?^^ -- Спасибо! -- она улыбнулась. -- Я скажу внучке, чтобы вас проводила. Сейчас.^^ Вы вернулись к дому. Старушка исчезла за дверью, а затем быстро вернулась с чумазой девушкой лет семнадцати. -- Это Катя, она вас проводит. Катя, до Павла и обратно, хорошо?^^ Девушка хотела что-то возразить, но передумала, опустила голову и тихо ответила:^^ -- Хорошо, бабушка. ]] end, decor = [[ Вы стояли и смотрели на Катю. А Катя смотрела на вас.^^ Между вами - тишина. ]], obj = {{ onempty = function() char.act = 1 p "Она отворачивается. Видимо, разговор закончен." walk('chos') end, {'Привет.', 'Привет.'} }} } room { nam = 'exit_west', disp = 'Дорога на запад', way = {'intersection', 'pavels', 'abandoned'}, decor = [[ Вы стоите на окраине Жестианы. Прямая автодорога идёт на запад, где начинается лес. В лесу она тут же делает крутой поворот.^^ Отсюда видны два здания в стороне. ]] } room { nam = 'abandoned', disp = 'Одноэтажный дом', -- занят роботами way = {'exit_north'}, decor = [[ ]] } room { nam = 'pavels', disp = 'Павлов дом', decor = [[ Вы стоите перед типовым напечатанным одноэтажным домом. С одной стороны к стене прислонилась маленькая пристройка для дров. С другой стороны — {suit|боевой механизированный костюм.} ]], obj = { obj { nam = 'suit', act = function() out = [[ Боевой механизированный костюм высотой 2,7 метров, марка РГ-22. Рассчитан на одного пилота. Вооружён автоматической пушкой калибра 5мм и огнемётом.^^]] if char.war == "earth" then out = out .. [[ Вы чинили эти двуногие танки день и ночь. Лунные мины становились всё изощрённее, и приходилось срочно отлаживать программы починки, а иногда и лезть вручную. Боты никогда не заботились о том, чтобы вычистить остатки пилота из кабины.^^ ]] end if char.war == "moon" then out = out .. [[ Где бы вы ни сражались, эти двуногие твари шли на вас тысячами. Вам приходилось еженедельно изобретать новые мины, чтобы получить хоть какой-то шанс отбиться. Сорок восемь смертельных чертежей против главной уязвимости этой модели — человека в кабине.^^ ]] end out = out..[[Такие штамповались на Земле сотнями тысяч, но после войны оказалось, что большая часть потеряна на поле боя. Конечно, по официальной версии. ]] end } } } room { nam = 'exit_north', disp = 'Дорога на север', way = {'town', 'abandoned'}, decor = [[ Вы стоите на окраине Жестианы. Прямая автодорога идёт на север. Здесь от неё отходит небольшой заезд на запад. ]] } room { nam = 'chos', disp = 'Дом Чо', way = {'town', 'intersection'}, dsc = [[ Вы стоите перед небольшим домом. Отсюда видна бесконечная пашня, по которой ходят фермерские роботы. ]] } room { nam = 'intersection', disp = 'Перекрёсток', decor = [[]], way = {'exit_west', 'chos', 'town'}, exit = function() end } room { nam = 'town', disp = 'Жестиана', way = {'exit_north', 'chos', 'intersection', 'factory'}, decor = [[]] } room { nam = 'factory', disp = [[Здание на горе]], way = {'town'}, dsc = [[ Вы забираетесь на склон горы. Здесь стоит Отсюда хорошо видна вся Жестиана. ]] }