--$Author:Alexander Yakolev, 2017 --$Version:1.0 require "format" require "dbg" 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() и вообще функции форматирования init = function () map = obj { nam = "Карта", inv = function() walk('map') end } take(map) quests = obj { nam = "Квесты", inv = function() walk('quests') end } take(quests) inventory = obj { nam = "Инвентарь", inv = function() walk('inventory') end } take(inventory) char.act = nil end obj { nam = 'back', act = function() return walkout() end } local markers = { chos = "626,666", } room { nam = 'map', disp = "Карта", hideinv = true, enter = function (here, from) char.lastroom = from.nam end, pic = function() local map = 'images/satellite.jpg' if markers[char.lastroom] then map = map .. ';images/marker.png@' .. markers[char.lastroom] end return map end, decor = [[ Вы сверяетесь с картой.^^ {back|Назад} ]], obj = {'back'} } dlg { nam = 'quests', disp = "Квесты", hideinv = true, decor = [[ Вы вспоминаете обо всём, что нужно сделать.^^ ]], obj = {{ { true, cond = function() return char.act == nil end, 'Нет активных квестов', 'Пройдите чуть подальше по сюжету и возвращайтесь.' }, { true, cond = function() return char.act == 1 and char.kathy == true end, 'Найти дом Павла', 'Вы должны найти дом Павла при помощи своего проводника и попросить у него доступ в мастерскую.' }, { true, 'Назад', function() walkout() end, }, }} } room { nam = 'inventory', disp = "Инвентарь", hideinv = true, decor = function() local dsc = 'Пока что ваши карманы пусты.' return dsc..'^^{back|Назад}' end, obj = {'back'} } 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 } } } } dlg { nam = 'start2', dsc = function() return [[ -- А, это хорошо что ]]..engineer()..[[. Мы уже думали, что наша гарантия всё. Это же такие старые роботы, всё время в поле.^^ Она вышла из дома и пригласила вас за собой. Вы шли вдоль поля; металлические рабочие не обращали на вас внимания.^^ -- Вы знаете, у нас же нет других машин. Когда-то хотели купить что-нибудь для дома, но тут эта война с Луной… Вы были на войне? ]] end, obj = { { { function() return [[Цех РБ-23, с первого до последнего дня. Чинил]]..endings()..[[ ремонтных ботов.]] end, function() char.earth = 1; p '-- Доблесть рабочих, конечно.'; walk('start3'); return true; end }, -- + к симпатизирующим Земле { function() return 'Нет, '..pronoun_1()..' не был'..endings()..'.' end, function() char.earth = 0; p '-- А вы не… Хотя это не моё дело.'; walk('start3'); return true; end }, -- нет эффекта { 'Да, но Луна проиграла.', function() char.earth = -1; p "-- Ой, вы из этих… Извините." walk('start3'); return true; end }, -- + к симпатизирующим Луне }, }, } dlg { nam = 'start3', dsc = [[ (курсивом) Сюда, пожалуйста.^^ Она провела вас в большой сарай, где пылился высокий автоматический сельхозкомбайн. -- Вот и наш больной. Мы прогрели его весной, а он и не едет. Вы же ]]..engineer()..[[, вы сможете его починить? А то мы потеряем урожай. ]], decor = [[ Старушка Чо внимательно смотрит на вас. В её глазах вы читаете, что от починки этого комбайна зависит несколько жизней. ]], onempty = function() walk('start4') end, obj = { { 'Зачем вы заводили комбайн весной?', '-- Он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.' }, { 'У вас же столько роботов. Неужели вы не справитесь без комбайна?', [[Всего семеро, и они обычно упаковывают и складывают. Если они будут ещё и косить, мы не управимся до осени. Урожай сгниёт под дождями.]] }, { 'Да, '..pronoun_1()..' -- '..engineer()..[[. Но я могу только определить проблему, у вас же нет мастерской или инструментов.]], '-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.' }, { 'Давно он у вас?', [[Ну, лет двадцать уже, наверное. То есть, я хотела сказать, девятнадцать. Гарантия же ещё действует, правда?]] } } } dlg { nam = 'start4', dsc = function() return [[ Комбайн оказался старым, очень старым. Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^ -- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую.^^ -- А нельзя прямо здесь? У нас же урожай скоро!^^ -- Нет, это…^^ -- Послушайте. У меня сестра работает в Берёзовке, я знаю что нужно. Вас устроит… десять тысяч?^^ -- В смысле?^^ -- Подождите, не отказывайтесь. Десять новых кусков. Золотом. И вы почините это здесь.^^ Вы задумались. На десять кусков можно было бы купить новый комбайн - конечно, не такой мощный, но если продать золото на Луну… Был один хитрый выход.^^ -- Давайте так: ]]..pronoun_1()..[[ здесь на три дня. Если за эти три дня что-то получится… Но после урожая -- сразу в мастерскую, нужен основательный ремонт. У кого, вы говорили, здесь мастерская?^^ -- Спасибо! -- она улыбнулась. -- Я скажу внучке, чтобы вас проводила. Сейчас.^^ Вы вернулись к дому. Старушка исчезла за дверью, а затем быстро вернулась с чумазой девушкой лет семнадцати. -- Это Катя, она вас проводит. Катя, до Павла и обратно, хорошо?^^ Девушка хотела что-то возразить, но передумала, опустила голову и тихо ответила:^^ -- Хорошо, бабушка. ]] end, decor = [[ Вы стояли и смотрели на Катю. А Катя смотрела на вас.^^ Между вами - тишина. ]], onempty = function() char.act = 1 walk('chos') end, } room { nam = 'exit_west', title = 'Дорога на запад', way = {'intersection', 'pavels', 'abandoned'}, decor = [[ Вы стоите на окраине Жестианы. Прямая автодорога идёт на запад, где начинается лес. В лесу она тут же делает крутой поворот.^^ Отсюда видны два здания в стороне. ]] } room { nam = 'abandoned', disp = 'Заброшенный дом', decor = [[ ]] } room { nam = 'pavels', disp = 'Павлов дом', decor = [[ ]] } room { nam = 'exit_north', title = 'Дорога на север', way = {'town'}, 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', title = 'Жестиана', way = {'exit_north', 'chos', 'intersection', 'factory'}, decor = [[]] } room { nam = 'factory', disp = [[Здание на горе]], way = {'town'}, dsc = [[ Вы забираетесь на склон горы. Здесь стоит Отсюда хорошо видна вся Жестиана. ]] }