1
0
Fork 0
mirror of https://gitlab.com/Oreolek/duel.git synced 2024-05-18 17:08:36 +03:00

Новое начало игры

This commit is contained in:
Alexander Yakovlev 2017-03-07 13:51:27 +07:00
parent 1ee62545c9
commit efe02534d1
4 changed files with 181 additions and 158 deletions

190
intro.lua
View file

@ -1,8 +1,10 @@
room {
nam = 'main',
disp = false,
disp = 'Ремонтник',
decor = '^^'..fmt.c('{start|Начать игру}')..[[^^
Игра использует код Петра Косых по лицензии MIT (модуль ]]..fmt.em('proxymenu)')..[[
Игра использует код Петра Косых по лицензии MIT (модуль ]]..fmt.em('proxymenu)')..[[^^
F2 - сохранить игру^
F3 - загрузить игру
]],
obj = {
obj {
@ -14,26 +16,31 @@ room {
dlg {
nam = 'intro',
disp = false,
disp = 'Ремонтник',
dsc = [[
От автобусной остановки до дома Чо было полтора километра.
По пути вы осматривали окрестности: высокая гора, бесконечные пашни
и маленькое село вокруг единственной колонки с водой.^^
Скоростная магистраль сменилась автодорогой, с которой вы съехали на просёлочный тракт.
Через несколько километров от дороги осталась только линия на карте навигатора:
это было больше похоже на русские горки.^^
Семья Чо отгородилась от села широкой полосой деревьев.
Их пашня не отличалась от остальных: такое же чёрное поле с рядами
роботов, которые молча копались в земле. Перед полем стоял
невысокий красновато-чёрный дом с двумя окнами.^^
Жестиана стояла далеко от цивилизации, но вызов есть вызов.
Вам надо было найти Анжелину Чо, починить всё что у неё по гарантии и быстро вернуться.
Если бы не эти ямы, это могла быть приятная поездка за город.^^
На стук в дверь открыла низенькая черноволосая девушка.^^
После одного очень заметного «ух» навигатор вдруг дрогнул и отключился.
Вы попробовали вести прямо, но потеряли направление в однообразных полях и лесках.
На счастье, на краю одного из лесков вы заметили металлический блеск.
-- А, так вы тот инженер из города? Проходите, мы сейчас всё покажем.
Я же правильно говорю, вы же инженер?
Это был робот неизвестной модели, по виду социальный.
У него не хватало левой руки, а глаза были закрыты за солнцезащитными очками.
Он говорил скрипуче, с сильным акцентом; вам было трудно его понять без переводчика.
-- З-с-ждравствуйте. По моему протоколу я долж-з-сен уточнить, какое обращ-сение вам
подходит наилуц-с-шим образом. Что вы предпоц-читаете?
]],
obj = {
{
{
'Инженер (она)',
'Инженер-ремонтник (она)',
function()
char.gender = "she";
char.plural = false;
@ -42,7 +49,7 @@ dlg {
end
},
{
'Инженер (он)',
'Инженер-ремонтник (он)',
function()
char.gender = "he";
char.plural = false;
@ -51,7 +58,7 @@ dlg {
end
},
{
'Инженер (оно)',
'Инженер-ремонтник (оно)',
function()
char.gender = "it";
char.plural = false;
@ -60,7 +67,7 @@ dlg {
end
},
{
'Инженер (они)',
'Инженер-ремонтник (они)',
function()
char.gender = "they";
char.plural = false;
@ -69,7 +76,7 @@ dlg {
end
},
{
'Инженеры (они)',
'Инженеры-ремонтники (они)',
function()
char.gender = "they";
char.plural = true;
@ -98,136 +105,33 @@ dlg {
disp = false,
dsc = function()
return [[
-- А, это хорошо что ]]..engineer()..[[.
Мы уже думали, что наша гарантия всё.
Это же такие старые роботы, всё время в поле.^^
Она вышла из дома и пригласила вас за собой.
Вы шли вдоль поля; металлические рабочие не обращали на вас внимания.^^
-- Вы знаете, у нас же нет других машин.
Когда-то хотели купить что-нибудь для дома, но тут эта война с Луной
Вы были на войне?
-- Добро пож-з-саловать в Ж-жестиану, ]]..official()..[[.
Вам требуец-тся помоц-щь?
]]
end,
obj = {
{
{
function()
return [[Цех РБ-65, с первого до последнего дня. Чинил]]..endings()..[[ ремонтных ботов.]]
end,
function()
char.war = "earth";
p '-- Доблесть рабочих, конечно.';
walk('start3');
return true;
end
}, -- + к симпатизирующим Земле
function() return 'Где '..pronoun_1()..'?'; end,
'-- Добро поз-саловать в Зжсестиану. Деревня Малогхо раийона, население дефхятнадтцат\' человек.'
};
{
'Да, но Луна проиграла.',
function() return 'Как проехать до Жестианы? '..plural('У меня', 'У нас')..' в машине навигатор отключился.'; end,
function()
char.war = "moon";
p "-- Ой, вы из этих… Извините."
walk('start3');
return true;
end
},
-- + к симпатизирующим Луне
},
},
walk('exit_west');
return [[-- Давайте я показжу. Пожалуйцта, встан'те сюда.^^
Вы выходите из машины и встаёте рядом с роботом. Он показывает на солнце.
-- Там восток. Жестиана на юге.^^
После этого он поворачивается и фыркает:^
-- Обнаружен технологический объект.^
Вы оборачиваетесь и видите, как робот залезает в вашу машину и заводит её:^
-- Технологический объект реквизирован. Во славу добра.^
-- Эй!^^
Вы бежите, стараясь догнать машину, но робот уже уезжает, идеально обходя все кочки и ухабы.^^
Вам остаётся только следовать пешком. На юг.
]]
end,
};
};
}
}
dlg {
nam = 'start3',
disp = false,
dsc = [[
(курсивом) Сюда, пожалуйста.^^
Она провела вас в большой сарай, где пылился высокий автоматический сельхозкомбайн.
-- Вот и наш больной. Мы прогрели его весной, а он и не едет.
Вы же ]]..engineer()..[[, вы сможете его починить?
А то мы потеряем урожай.
]],
decor = [[
Старушка Чо внимательно смотрит на вас.
В её глазах вы читаете, что от починки этого комбайна зависит несколько жизней.
]],
obj = {{
onempty = function()
walk('start4')
end,
{
'Зачем вы заводили комбайн весной?',
'-- Он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.'
},
{
'У вас же столько роботов. Неужели вы не справитесь без комбайна?',
[[-- Всего семеро, и они обычно упаковывают и складывают.
Если они будут ещё и косить, мы не управимся до осени.
Урожай сгниёт под дождями.]]
},
{
'Да, '..pronoun_1()..' -- '..engineer()..[[.
Но я могу только определить проблему, у вас же нет мастерской или инструментов.]],
'-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.'
},
{
'Давно он у вас?',
[[-- Ну, лет двадцать уже, наверное.
То есть, я хотела сказать, девятнадцать.
Гарантия же ещё действует, правда?]]
}
}}
}
dlg {
nam = 'start4',
disp = false,
dsc = function()
return [[
Комбайн оказался ещё довоенным.
Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^
-- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую.^^
-- А нельзя прямо здесь? У нас же урожай скоро!^^
-- Нет, это…^^
-- Послушайте. У меня сестра работает в Берёзовке, я знаю что нужно.
Вас устроит десять тысяч?^^
-- В смысле?^^
-- Подождите, не отказывайтесь. Десять новых кусков. Золотом. И вы почините это здесь.^^
Вы задумались. На десять кусков можно было бы купить новый комбайн - конечно, не такой мощный, но если продать золото на Луну Был один хитрый выход.^^
-- Давайте так: ]]..pronoun_1()..[[ здесь на три дня. Если за эти три дня что-то получится… Но после урожая -- сразу в мастерскую, нужен основательный ремонт. У кого, вы говорили, здесь мастерская?^^
-- Спасибо! -- она улыбнулась. -- Я скажу внучке, чтобы вас проводила. Сейчас.^^
Вы вернулись к дому. Старушка исчезла за дверью, а затем быстро вернулась с чумазой девушкой лет семнадцати.
-- Это Катя, она вас проводит. Катя, до Павла и обратно, хорошо?^^
Девушка хотела что-то возразить, но передумала, опустила голову и тихо ответила:^^
-- Хорошо, бабушка.
]]
end,
decor = [[
Вы стояли и смотрели на Катю. А Катя смотрела на вас.^^
Между вами - тишина.
]],
obj = {{
onempty = function()
char.quests.main = 1
char.quests.kathy = 0
p "Она отворачивается. Видимо, разговор закончен."
walk('chos')
end,
{'Привет.', 'Привет.'}
}}
}

View file

@ -2,6 +2,7 @@
--$Version:1.0
require "fmt"
require "proxymenu"
require "noinv"
declare "isdebug" (true)
if isdebug then
@ -499,3 +500,101 @@ dlg {
Он одет в кожаную куртку, а на шее он носит длинный розовый плащ, который свисает до колен.
]]
}
-- Диалог с Анжелиной Чо
dlg {
nam = 'start3',
disp = false,
dsc = [[
(курсивом) Сюда, пожалуйста.^^
Она провела вас в большой сарай, где пылился высокий автоматический сельхозкомбайн.
-- Вот и наш больной. Мы прогрели его весной, а он и не едет.
Вы же ]]..engineer()..[[, вы сможете его починить?
А то мы потеряем урожай.
]],
decor = [[
Старушка Чо внимательно смотрит на вас.
В её глазах вы читаете, что от починки этого комбайна зависит несколько жизней.
]],
obj = {{
onempty = function()
walk('start4')
end,
{
'Зачем вы заводили комбайн весной?',
'-- Он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.'
},
{
'У вас же столько роботов. Неужели вы не справитесь без комбайна?',
[[-- Всего семеро, и они обычно упаковывают и складывают.
Если они будут ещё и косить, мы не управимся до осени.
Урожай сгниёт под дождями.]]
},
{
'Да, '..pronoun_1()..' -- '..engineer()..[[.
Но я могу только определить проблему, у вас же нет мастерской или инструментов.]],
'-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.'
},
{
'Давно он у вас?',
[[-- Ну, лет двадцать уже, наверное.
То есть, я хотела сказать, девятнадцать.
Гарантия же ещё действует, правда?]]
}
}}
}
-- Починка комбайна
dlg {
nam = 'start4',
disp = false,
dsc = function()
return [[
Комбайн оказался ещё довоенным.
Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^
-- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую.^^
-- А нельзя прямо здесь? У нас же урожай скоро!^^
-- Нет, это…^^
-- Послушайте. У меня сестра работает в Берёзовке, я знаю что нужно.
Вас устроит десять тысяч?^^
-- В смысле?^^
-- Подождите, не отказывайтесь. Десять новых кусков. Золотом. И вы почините это здесь.^^
Вы задумались. На десять кусков можно было бы купить новый комбайн - конечно, не такой мощный, но если продать золото на Луну Был один хитрый выход.^^
-- Давайте так: ]]..pronoun_1()..[[ здесь на три дня. Если за эти три дня что-то получится… Но после урожая -- сразу в мастерскую, нужен основательный ремонт. У кого, вы говорили, здесь мастерская?^^
-- Спасибо! -- она улыбнулась. -- Я скажу внучке, чтобы вас проводила. Сейчас.^^
Вы вернулись к дому. Старушка исчезла за дверью, а затем быстро вернулась с чумазой девушкой лет семнадцати.
-- Это Катя, она вас проводит. Катя, до Павла и обратно, хорошо?^^
Девушка хотела что-то возразить, но передумала, опустила голову и тихо ответила:^^
-- Хорошо, бабушка.
]]
end,
decor = [[
Вы стояли и смотрели на Катю. А Катя смотрела на вас.^^
Между вами - тишина.
]],
obj = {{
onempty = function()
char.quests.main = 1
char.quests.kathy = 0
p "Она отворачивается. Видимо, разговор закончен."
walk('chos')
end,
{'Привет.', 'Привет.'}
}}
}

View file

@ -3,24 +3,24 @@ init = function ()
std.dlg.noinv = true
game.player = std.menu_player {}
char.quests = {}
take(menu {
place(menu {
nam = "Карта",
menu = function()
walk('map')
end
})
take(menu {
}, me())
place(menu {
nam = "Квесты",
menu = function()
walk('quests')
end
})
take(menu {
nam = "Инвентарь",
}, me())
place(menu {
nam = "Телефон",
menu = function()
walk('inventory')
end
})
}, me())
char.act = nil
place( proxy_menu {
disp = 'ОСМОТРЕТЬ';
@ -116,3 +116,15 @@ rndalt = function(yes, no)
end
return no
end
official = function()
if char.gender == 'she' then
return 'уважаемая'
end
if char.gender == 'he' then
return 'уважаемый'
end
if char.gender == 'it' then
return 'уважаемое'
end
return 'уважаемые'
end

24
ui.lua
View file

@ -51,9 +51,17 @@ dlg {
cond = function()
return char.act == nil
end,
'Нет активных квестов',
'Пройдите чуть подальше по сюжету и возвращайтесь.'
},
'Найти Анжелину Чо',
'Вы приехали по гарантийному вызову. Вам надо найти Анжелину Чо, починить всё что у неё есть по гарантии и вернуться.'
};
{
always = true,
cond = function()
return char.act == nil
end,
'Вернуть автомобиль',
'Неизвестный робот посчитал ваш автомобиль за бесхозную технику. Скорее всего, он где-то в этой деревне.'
};
{
always = true,
cond = function()
@ -63,7 +71,7 @@ dlg {
[[Мужчина в Клубе Памяти интересуется роботами на северной ферме.
Их хозяин умер, и теперь ценные работники не подчиняются никому.
Он хочет, чтобы вы настроили роботов на его голос.]]
},
};
{
always = true,
cond = function()
@ -71,21 +79,21 @@ dlg {
end,
'Найти дом Павла',
'Вы должны найти дом Павла при помощи своего проводника и попросить у него доступ в мастерскую.'
},
};
{
always = true,
'Назад',
function() walkout() end,
},
};
}}
}
room {
nam = 'inventory',
disp = "Инвентарь",
disp = "Телефон",
hideinv = true,
decor = function()
local dsc = 'Пока что ваши карманы пусты.'
local dsc = 'Здесь будут все телефоны и заметки, которые вы запишете в телефон.'
return dsc..'^^{back|Назад}'
end,
obj = {'back'}