1
0
Fork 0
mirror of https://gitlab.com/Oreolek/duel.git synced 2024-07-02 14:55:15 +03:00
duel/main3.lua

396 lines
13 KiB
Lua
Raw Normal View History

--$Author:Alexander Yakolev, 2017
--$Version:1.0
require "format"
require "dbg"
2017-02-20 18:40:12 +02:00
require 'tools'
2017-02-21 16:16:48 +02:00
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. Отключить автосписок инвентаря в области, собственно, инвентаря
2017-02-23 14:25:27 +02:00
-- 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)
2017-02-21 16:17:21 +02:00
char.lastroom = from.nam
end,
pic = function()
local map = 'images/satellite.jpg'
2017-02-21 16:17:21 +02:00
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()
2017-02-21 16:16:48 +02:00
char.gender = "she";
char.plural = false;
walk('start2');
return true;
end
},
{
'Инженер (он)',
function()
2017-02-21 16:16:48 +02:00
char.gender = "he";
char.plural = false;
walk('start2');
return true;
end
},
{
'Инженер (оно)',
function()
2017-02-21 16:16:48 +02:00
char.gender = "it";
char.plural = false;
walk('start2');
return true;
end
},
{
'Инженер (они)',
function()
2017-02-21 16:16:48 +02:00
char.gender = "they";
char.plural = false;
walk('start2');
return true;
end
},
{
'Инженеры (они)',
function()
2017-02-21 16:16:48 +02:00
char.gender = "they";
char.plural = true;
walk('start2');
return true;
end
}
}
}
}
dlg {
nam = 'start2',
2017-02-20 18:40:12 +02:00
dsc = function()
return [[
2017-02-20 18:40:12 +02:00
-- А, это хорошо что ]]..engineer()..[[.
Мы уже думали, что наша гарантия всё.
Это же такие старые роботы, всё время в поле.^^
Она вышла из дома и пригласила вас за собой.
Вы шли вдоль поля; металлические рабочие не обращали на вас внимания.^^
-- Вы знаете, у нас же нет других машин.
Когда-то хотели купить что-нибудь для дома, но тут эта война с Луной
Вы были на войне?
]]
end,
obj = {
{
2017-02-20 18:40:12 +02:00
{
function()
return [[Цех РБ-23, с первого до последнего дня. Чинил]]..endings()..[[ ремонтных ботов.]]
end,
function()
2017-02-21 16:16:48 +02:00
char.earth = 1;
p '-- Доблесть рабочих, конечно.';
2017-02-23 14:25:27 +02:00
walk('start3');
return true;
2017-02-20 18:40:12 +02:00
end
}, -- + к симпатизирующим Земле
{
function()
return 'Нет, '..pronoun_1()..' не был'..endings()..'.'
end,
function()
char.earth = 0;
p '-- А вы не… Хотя это не моё дело.';
2017-02-23 14:25:27 +02:00
walk('start3');
return true;
end
},
-- нет эффекта
{
'Да, но Луна проиграла.',
function()
char.earth = -1;
p "-- Ой, вы из этих… Извините."
2017-02-23 14:25:27 +02:00
walk('start3');
return true;
end
},
-- + к симпатизирующим Луне
},
2017-02-20 18:40:12 +02:00
},
}
dlg {
nam = 'start3',
dsc = [[
(курсивом) Сюда, пожалуйста.^^
Она провела вас в большой сарай, где пылился высокий автоматический сельхозкомбайн.
2017-02-20 18:40:12 +02:00
-- Вот и наш больной. Мы прогрели его весной, а он и не едет.
Вы же ]]..engineer()..[[, вы сможете его починить?
А то мы потеряем урожай.
2017-02-20 18:40:12 +02:00
]],
decor = [[
Старушка Чо внимательно смотрит на вас.
В её глазах вы читаете, что от починки этого комбайна зависит несколько жизней.
]],
obj = {{
onempty = function()
walk('start4')
end,
{
'Зачем вы заводили комбайн весной?',
'-- Он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.'
},
{
'У вас же столько роботов. Неужели вы не справитесь без комбайна?',
[[-- Всего семеро, и они обычно упаковывают и складывают.
Если они будут ещё и косить, мы не управимся до осени.
Урожай сгниёт под дождями.]]
},
{
'Да, '..pronoun_1()..' -- '..engineer()..[[.
Но я могу только определить проблему, у вас же нет мастерской или инструментов.]],
'-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.'
},
{
'Давно он у вас?',
[[-- Ну, лет двадцать уже, наверное.
То есть, я хотела сказать, девятнадцать.
Гарантия же ещё действует, правда?]]
2017-02-20 18:40:12 +02:00
}
}}
}
dlg {
nam = 'start4',
dsc = function()
return [[
Комбайн оказался старым, очень старым.
Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^
-- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую.^^
-- А нельзя прямо здесь? У нас же урожай скоро!^^
-- Нет, это…^^
-- Послушайте. У меня сестра работает в Берёзовке, я знаю что нужно.
Вас устроит десять тысяч?^^
-- В смысле?^^
-- Подождите, не отказывайтесь. Десять новых кусков. Золотом. И вы почините это здесь.^^
Вы задумались. На десять кусков можно было бы купить новый комбайн - конечно, не такой мощный, но если продать золото на Луну Был один хитрый выход.^^
-- Давайте так: ]]..pronoun_1()..[[ здесь на три дня. Если за эти три дня что-то получится… Но после урожая -- сразу в мастерскую, нужен основательный ремонт. У кого, вы говорили, здесь мастерская?^^
-- Спасибо! -- она улыбнулась. -- Я скажу внучке, чтобы вас проводила. Сейчас.^^
Вы вернулись к дому. Старушка исчезла за дверью, а затем быстро вернулась с чумазой девушкой лет семнадцати.
-- Это Катя, она вас проводит. Катя, до Павла и обратно, хорошо?^^
Девушка хотела что-то возразить, но передумала, опустила голову и тихо ответила:^^
-- Хорошо, бабушка.
]]
end,
decor = [[
Вы стояли и смотрели на Катю. А Катя смотрела на вас.^^
Между вами - тишина.
]],
obj = {{
onempty = function()
char.act = 1
walk('chos')
end,
{'Привет.', 'Привет.'}
}}
}
room {
nam = 'exit_west',
disp = 'Дорога на запад',
way = {'intersection', 'pavels', 'abandoned'},
decor = [[
Вы стоите на окраине Жестианы.
Прямая автодорога идёт на запад, где начинается лес.
В лесу она тут же делает крутой поворот.^^
Отсюда видны два здания в стороне.
]]
}
room {
nam = 'abandoned',
disp = 'Заброшенный дом',
decor = [[
]]
}
room {
nam = 'pavels',
disp = 'Павлов дом',
decor = [[
]]
}
room {
nam = 'exit_north',
disp = 'Дорога на север',
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',
disp = 'Жестиана',
way = {'exit_north', 'chos', 'intersection', 'factory'},
decor = [[]]
}
room {
nam = 'factory',
disp = [[Здание на горе]],
way = {'town'},
dsc = [[
Вы забираетесь на склон горы. Здесь стоит
Отсюда хорошо видна вся Жестиана.
]]
}