1
0
Fork 0
mirror of https://gitlab.com/Oreolek/duel.git synced 2024-06-30 22:05:07 +03:00
duel/main3.lua

340 lines
14 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--$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 = [[
Вы забираетесь на склон горы. Здесь стоит
Отсюда хорошо видна вся Жестиана.
]]
}