mirror of
https://gitlab.com/Oreolek/duel.git
synced 2024-05-04 10:08:47 +03:00
604 lines
24 KiB
Lua
604 lines
24 KiB
Lua
-- + можно выкупить программатор в обмен на ___ у роботов
|
||
|
||
room {
|
||
nam = 'chos',
|
||
disp = 'Богатый дом',
|
||
way = {'intersection'},
|
||
decor = [[
|
||
Вы стояли перед большим {chos_house|напечатанным домом.}
|
||
Отсюда начиналась большая пашня, по которой ходили фермерские роботы.^^
|
||
|
||
Возле дома в удобном гамаке спала {angelina|старушка.}
|
||
]],
|
||
obj = {
|
||
obj {
|
||
nam = 'chos_house',
|
||
disp = 'дом',
|
||
take = function()
|
||
pn('Вы не знаете, как можно '..fmt.em('взять')..' двухэтажный дом.')
|
||
return false
|
||
end,
|
||
act = [[К типовому двухэтажному дому из нанотрубок со временем допечатывали несколько модулей.
|
||
Часть второго этажа выглядела совсем новой — возможно, её недавно расширили.]],
|
||
};
|
||
obj {
|
||
nam = 'angelina',
|
||
take = function()
|
||
pn('Старушке это не понравится.')
|
||
return false
|
||
end,
|
||
disp = function()
|
||
if not visited('cho_dlg2') then
|
||
return 'старушка'
|
||
else
|
||
return 'Ангелина'
|
||
end
|
||
end,
|
||
act = function(s)
|
||
return 'Старушка мирно посапывала, раскачиваясь в гамаке.'
|
||
end,
|
||
talk = function() return walk('cho_dlg'); end,
|
||
}
|
||
}
|
||
}
|
||
-- Диалог с Анжелиной Чо
|
||
dlg {
|
||
nam = 'cho_dlg',
|
||
disp = false,
|
||
dsc = function(s)
|
||
if not visited('cho_dlg2') then
|
||
return [[
|
||
-- А? Что? Вы… вы ]]..engineer()..[[ из фирмы? Нет, я не сплю.^^
|
||
|
||
Она встаёт и протирает глаза.
|
||
]]
|
||
end
|
||
s:reset '#разговор'
|
||
return [[-- А? Это вы? Извините, я задремала.]]
|
||
end,
|
||
decor = [[
|
||
Старушка внимательно смотрит на вас.
|
||
]],
|
||
obj = {
|
||
{
|
||
{
|
||
function() return 'Откуда вы поняли, что '..pronoun_1()..' — '..engineer() end,
|
||
function()
|
||
return [[
|
||
-- Откуда вы поняли, что ]]..pronoun_1()..' — '..engineer()..[[?^
|
||
-- Я же вас и вызывала. У нас комбайн сломан. Вы чините зерноуборочные комбайны?
|
||
]]
|
||
end
|
||
};
|
||
{
|
||
always = true,
|
||
fmt.em('Как вас зовут?'),
|
||
[[
|
||
-- Как вас зовут?^
|
||
-- Ангелина. Я вызывала мастера по гарантии.
|
||
]],
|
||
next = '#комбайн-начало'
|
||
}
|
||
};
|
||
{ '#комбайн-начало',
|
||
{
|
||
'Что случилось?',
|
||
[[
|
||
-- Что случилось?^
|
||
-- Мы прогрели его весной, а он и не едет. Вы же '..engineer()..', вы сможете его починить?
|
||
]]
|
||
};
|
||
{
|
||
fmt.em('Можно посмотреть комбайн?'),
|
||
function() return walk('cho_dlg2') end,
|
||
};
|
||
};
|
||
{ '#разговор',
|
||
{
|
||
'#сдать',
|
||
cond = function()
|
||
return char.quests.chos == 4
|
||
end,
|
||
'Комбайн работает…',
|
||
function()
|
||
disable('#сдать')
|
||
return [[
|
||
-- Комбайн работает. Всё в норме, но надо будет пригнать на проверку к зиме.^
|
||
-- Спасибо! Я что-то вам должна?^
|
||
-- Ну, ремонт идёт за счёт пожизненной гарантии. Но есть одна просьба…
|
||
]]
|
||
end,
|
||
next = '#починил'
|
||
};
|
||
{
|
||
cond = function()
|
||
return char.quests.chos > 0 and char.quests.chos < 4
|
||
end,
|
||
'Вы не могли бы показать '..plural('мне', 'нам')..' комбайн ещё раз?',
|
||
function()
|
||
if have('programmator') then
|
||
walk('combine')
|
||
return [[
|
||
-- Вы не могли бы показать ]]..plural('мне', 'нам')..[[ комбайн ещё раз?^^
|
||
Она привела вас к зерноуборочному комбайну, и вы начали работать.
|
||
]]
|
||
else
|
||
return [[
|
||
-- Вы не могли бы показать ]]..plural('мне', 'нам')..[[ комбайн ещё раз?^^
|
||
Она привела вас к комбайну. Машина в том же сломанном состоянии. Вам пришлось вернуться ни с чем.
|
||
]]
|
||
end
|
||
end,
|
||
};
|
||
{
|
||
'Вы давно здесь живёте?',
|
||
[[
|
||
-- Вы давно здесь живёте?^^
|
||
Она пожимает плечами:^^
|
||
-- Лет тридцать. Начинали всего с одним роботом.
|
||
]]
|
||
};
|
||
{
|
||
fmt.em('Ничего. Доброе утро.'),
|
||
function()
|
||
walk('chos')
|
||
return [[
|
||
-- Ничего. Доброе утро.^
|
||
-- И вам того же.^^
|
||
|
||
Она закрыла глаза и задремала.
|
||
]]
|
||
end,
|
||
};
|
||
};
|
||
{
|
||
'#починил',
|
||
{
|
||
cond = function()
|
||
return char.took_kathy == true
|
||
end,
|
||
'…ваша внучка просится к нам на стажировку. Хочет стать инженером.',
|
||
[[
|
||
-- Ну, ремонт идёт за счёт пожизненной гарантии.
|
||
Но есть одна просьба: ваша внучка просится к нам на стажировку. Хочет стать инженером.^
|
||
-- Ах, вы, наверное, о моей правнучке. Вы правда возьмёте её на работу? С зарплатой?^
|
||
-- Ну, у ]]..plural('меня', 'нас')..[[ есть несколько вариантов--^
|
||
-- Катя! Собирайся, ты едешь в город!^^
|
||
Ну что ж, портить технику она умеет. Значит, научим чинить.
|
||
]],
|
||
next = '#разговор'
|
||
};
|
||
{
|
||
'…отправьте внучку в городскую школу. Такая умная девочка должна хорошо себя показать.',
|
||
[[
|
||
-- Ну, ремонт идёт за счёт пожизненной гарантии.
|
||
Но есть одна просьба: отправьте внучку в городскую школу. Такая умная девочка должна хорошо себя показать.^
|
||
-- Ах, мы, наверное, о моей правнучке. Но у неё хорошая робоучительница, ещё моего сына учила.^
|
||
-- Городскую. Школу. С реальными учениками.^
|
||
-- Я подумаю.
|
||
]],
|
||
next = '#разговор'
|
||
};
|
||
{
|
||
'…нет, забудьте.',
|
||
[[
|
||
-- Ну, ремонт идёт за счёт пожизненной гарантии. Но есть одна просьба… хотя нет, забудьте.^^
|
||
|
||
Она пожала плечами:^^
|
||
|
||
-- Как скажете.
|
||
]],
|
||
next = '#разговор'
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
dlg {
|
||
nam = 'cho_dlg2',
|
||
disp = false,
|
||
dsc = [[
|
||
-- Можно посмотреть комбайн?^
|
||
-- Да-да, конечно.^^
|
||
Она провела вас в большой сарай, где пылился высокий автоматический зерноуборочный комбайн.
|
||
|
||
-- Вот и наш больной. Только вы, пожалуйста, можете его починить побыстрее, а то у нас урожай уже скоро.
|
||
]],
|
||
decor = [[
|
||
Старушка Чо внимательно смотрела на вас.
|
||
В её глазах вы видели, что от починки этого сельхозкомбайна зависело несколько жизней.
|
||
]],
|
||
obj = {
|
||
{
|
||
onempty = function()
|
||
walk('start4')
|
||
end,
|
||
{
|
||
'Что точно случилось?',
|
||
[[
|
||
-- Что точно случилось?^
|
||
-- Мы его заводим, а он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.
|
||
]]
|
||
},
|
||
{
|
||
'У вас же столько роботов. Неужели вы не справитесь без комбайна?',
|
||
[[
|
||
-- У вас же столько роботов. Неужели вы не справитесь без комбайна?^
|
||
-- Всего семеро, и они обычно упаковывают и складывают.
|
||
Если они будут ещё и косить, мы не управимся до осени.
|
||
Урожай сгниёт под дождями.
|
||
]]
|
||
},
|
||
{
|
||
'Да, '..pronoun_1()..' -- '..engineer()..[[.
|
||
Но ]]..plural('я могу', 'мы можем')..[[ только определить проблему, у вас же нет мастерской или инструментов.]],
|
||
[[
|
||
-- Да, ]]..pronoun_1()..' -- '..engineer()..[[.
|
||
Но ]]..plural('я могу', 'мы можем')..[[ только определить проблему, у вас же нет мастерской или инструментов.^
|
||
-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.
|
||
]]
|
||
},
|
||
{
|
||
'Давно он у вас?',
|
||
[[
|
||
-- Давно он у вас?^
|
||
-- Ну, лет двадцать уже, наверное.
|
||
Никогда не ломался. Но у меня на него пожизненная гарантия.
|
||
]]
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
-- Починка комбайна
|
||
dlg {
|
||
nam = 'start4',
|
||
disp = false,
|
||
dsc = function()
|
||
char.quests.chos = 1
|
||
return [[
|
||
Комбайн оказался ещё довоенным.
|
||
Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^
|
||
|
||
-- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую. Программатор сломался.^
|
||
-- Програ-что?^
|
||
-- Ну, это очень старая плата передвижения. Раньше везде стояла, но сейчас её надо заказывать.^
|
||
-- Ходули, что ли? А может, у нас поищем? Здесь много у кого есть техника.^
|
||
-- Нет, надо заказывать. Не волнуйтесь, через месяц придёт.^
|
||
-- Слушайте, но нам же нельзя ждать целый месяц, урожай за порогом. Хотите, я заплачу?
|
||
-- Давайте так: ]]..pronoun_1()..[[ здесь ещё ]]..plural('задерживаюсь', 'задерживаемся')..[[. Возможно, здесь, на месте, что-то получится. Но после урожая -- сразу в мастерскую на техосмотр.^
|
||
-- Спасибо. -- она улыбнулась. -- Попробуйте спросить Пашу? У него много техники, он поможет.
|
||
]]
|
||
end,
|
||
decor = [[
|
||
Вы вернулись к дому. Стоит ли спросить что-то ещё?
|
||
]],
|
||
obj = {{
|
||
onempty = function()
|
||
char.quests.kathy = 0
|
||
-- place('kathy', here())
|
||
-- lifeon('kathy')
|
||
p "Видимо, разговор закончен."
|
||
lifeon('call-unknown')
|
||
walk('chos')
|
||
end,
|
||
{
|
||
'Где живёт этот Павел?',
|
||
[[
|
||
-- Где живёт этот Павел?^
|
||
-- Это такой зелёный домик, вы его
|
||
не пропустите. Как позвоните в домофон, Паша вас пустит. Он — добрый друг нашей семьи.
|
||
]]
|
||
}
|
||
}}
|
||
}
|
||
obj {
|
||
nam = 'kathy',
|
||
disp = 'Катя',
|
||
dsc = "Рядом с вами стояла {Катя}.",
|
||
talk = function()
|
||
return walk('kathy_dlg')
|
||
end,
|
||
life = function(self)
|
||
if player_moved() then
|
||
place('kathy', here())
|
||
end
|
||
local reactions = {
|
||
'Катя зевнула.';
|
||
'Катя стучала серым кроссовком.';
|
||
'Катя смотрела на что-то в небе.';
|
||
}
|
||
if rnd(10) > 4 then -- вероятность реакции 40%
|
||
p(rndstr(reactions))
|
||
return
|
||
end
|
||
end,
|
||
take = function()
|
||
pn 'Плохая идея.'
|
||
return false
|
||
end,
|
||
act = 'Чумазая китаянка со спутанными волосами.'
|
||
}
|
||
dlg {
|
||
nam = 'kathy_dlg';
|
||
decor = [[
|
||
Вы стояли и смотрели на Катю. А Катя смотрела на вас.
|
||
]];
|
||
obj = {{
|
||
onempty = function()
|
||
return "Она отворачивается. Видимо, разговор закончен."
|
||
end,
|
||
{
|
||
'#привет',
|
||
'Привет.',
|
||
function()
|
||
disable '#привет'
|
||
return 'Привет.'
|
||
end
|
||
};
|
||
{
|
||
'Покажешь дорогу до этого Павла?',
|
||
function()
|
||
walk 'pavels'
|
||
return 'Ну пошли.'
|
||
end,
|
||
};
|
||
{
|
||
'Ты можешь подождать где-нибудь? Кое-какие дела.',
|
||
function()
|
||
lifeoff 'kathy'
|
||
return '-- Ну хорошо. Я буду у себя дома, если что.'
|
||
end,
|
||
};
|
||
{
|
||
always = true,
|
||
function()
|
||
return pronoun_1()..' '..plural('хочу', 'хотим')..' кое-что посмотреть. Можешь подождать здесь?'
|
||
end,
|
||
function()
|
||
lifeoff('kathy')
|
||
place('kathy', 'chos')
|
||
return "Хорошо. Но я лучше вернусь домой, бабушка будет волноваться."
|
||
end
|
||
}
|
||
}}
|
||
}
|
||
obj {
|
||
nam = 'call-unknown',
|
||
disp = false,
|
||
timer = 0,
|
||
life = function(s)
|
||
s.timer = s.timer + 1
|
||
char.call = 'unknown'
|
||
if s.timer < 8 then
|
||
pn 'У вас звонит телефон.' -- не могу сделать ссылкой
|
||
end
|
||
if s.timer == 8 then
|
||
char.call = nil
|
||
lifeoff(s)
|
||
end
|
||
end,
|
||
}
|
||
local backtocho = function()
|
||
walk(from(from(here())))
|
||
return 'Бросили трубку.'
|
||
end
|
||
dlg {
|
||
nam = 'caller-unknown',
|
||
disp = false,
|
||
decor = function()
|
||
return [[
|
||
В трубке говорил незнакомый девичий голос.^^
|
||
-- Ты не ]]..wrong_gendered('должен', 'должна')..[[ чинить этот комбайн.
|
||
Погибнут люди.
|
||
Лучше бы ты просто ]]..wrong_gendered('уехал', 'уехала')..[[ отсюда.
|
||
]]
|
||
end,
|
||
obj = {{
|
||
{
|
||
'Иди ты к чёрту.',backtocho
|
||
};
|
||
{
|
||
'Ну хорошо.',backtocho
|
||
};
|
||
{
|
||
'А мне-то что?',function()
|
||
changeop('reputation', -10)
|
||
return backtocho()
|
||
end
|
||
};
|
||
{
|
||
'Да это же просто комбайн.',backtocho
|
||
};
|
||
}}
|
||
}
|
||
|
||
dlg {
|
||
nam = 'combine',
|
||
enter = function()
|
||
remove('programmator')
|
||
return true
|
||
end,
|
||
-- Здесь я хотел вставить интерактив но не придумал ни-че-го
|
||
dsc = [[
|
||
Ремонт двигался прекрасно; техника была достойной, несмотря на возраст
|
||
и то, что почти год стояла в сарае. Вы подготовились
|
||
вывезти машину на поездку вокруг сарая.^^
|
||
|
||
И тут начались выстрелы.
|
||
После войны вы моментально реагировали на громкий хлопок и металлический «бзынь» в сантиметре от руки.
|
||
Вы спрятались в кабине, но вам не было видно, что происходит на входе в сарай.^^
|
||
|
||
-- Я говорила вам не чинить этот комбайн!^^
|
||
|
||
Хотя вам и не надо было смотреть, только лишь считать выстрелы.
|
||
]],
|
||
shots = 4,
|
||
update = function(s)
|
||
s.shots = s.shots - 1
|
||
if s.shots == 3 then
|
||
s.decor = 'Три.'
|
||
end
|
||
if s.shots == 2 then
|
||
s.decor = 'Два.'
|
||
end
|
||
if s.shots == 1 then
|
||
s.decor = 'Один.'
|
||
end
|
||
end,
|
||
decor = 'Четыре.',
|
||
obj = {
|
||
{
|
||
{
|
||
'Кто ты?',
|
||
function()
|
||
here().update(here())
|
||
return [[
|
||
-- Кто ты?^
|
||
-- Ха! [паф] Так я тебе и сказала.
|
||
]]
|
||
end
|
||
};
|
||
{
|
||
'Чего ты хочешь?',
|
||
function()
|
||
here().update(here())
|
||
walk('combine2')
|
||
return [[
|
||
-- Чего ты хочешь?^
|
||
-- Никаких урожаев. [бзынь!] Бросить эту дыру. Собрать вещи и уехать отсюда.
|
||
]]
|
||
end,
|
||
next = '#second'
|
||
};
|
||
{
|
||
'Какое тебе дело до древних сельхозкомбайнов?',
|
||
function()
|
||
here().update(here())
|
||
walk('combine2')
|
||
return [[
|
||
-- Какое тебе дело до древних сельхозкомбайнов?^
|
||
-- Нет комбайна [бзынь!] нет урожая. Можно будет бросить эту дыру. Уехать отсюда.
|
||
]]
|
||
end,
|
||
}
|
||
};
|
||
}
|
||
}
|
||
dlg {
|
||
nam = 'combine2',
|
||
-- Здесь я хотел вставить интерактив но не придумал ни-че-го
|
||
dsc = [[
|
||
Вы резко выпрыгиваете из кабины и прячетесь за машиной.
|
||
В дверях стоит девочка, на вид лет пятнадцати, китаянка.
|
||
В руках дрожит пневматический пистолет.
|
||
]],
|
||
obj = {{
|
||
{
|
||
'Это ты испортила схемы машины?',
|
||
[[
|
||
-- Это ты испортила схемы машины?^
|
||
-- Нет, не я! Не смей чинить, опять залью её чаем!
|
||
]]
|
||
};
|
||
{
|
||
cond = function()
|
||
return char.actions > 40
|
||
end,
|
||
'{}[Оригинальность > 60%] Хочешь, я возьму тебя с собой в город? Большой город. Сейчас.',
|
||
''
|
||
};
|
||
{
|
||
cond = function()
|
||
return char.actions <= 40
|
||
end,
|
||
'[Оригинальность > 60%] Хочешь, я возьму тебя с собой в город? Большой город. Сейчас.',
|
||
function()
|
||
char.quests.chos = 4
|
||
take('gun')
|
||
char.took_kathy = true
|
||
walk('chos');
|
||
return [[
|
||
-- Хочешь, я возьму тебя с собой в город? Большой город. Сейчас.^
|
||
-- Вы… вы серьёзно?^
|
||
Она всхлипнула.^
|
||
-- Если ты не против, ]]..pronoun_1()..' '..plural('хочу', 'хотим')[[ попасть в город ]]..
|
||
plural('невредимым', 'невредимыми')..[[.^^
|
||
Вы вышли из-за комбайна и направились к ней.^^
|
||
-- Но что же скажет-^
|
||
-- ]]..plural('Я разберусь', 'Мы разберёмся')..[[. А теперь дай сюда эту штуку и иди собирай вещи.^
|
||
-- Я пойду с вами! Буду везде ходить и помогать, со всеми вас познакомлю.^
|
||
-- Нет уж. Когда ]]..plural('я поеду', 'мы поедем')..[[ из города, ты узнаешь, хорошо? Как тебя зовут?^
|
||
-- Катя.^^
|
||
|
||
Девочка тут же юркнула наружу.^
|
||
Вы покрутили в руках оружие, закрыли подачу газа.
|
||
Опасные игрушки. Как она здесь живёт, если пошла на такой кошмар?
|
||
]]
|
||
end
|
||
};
|
||
{
|
||
'<Выйти и выбить оружие.>',
|
||
function()
|
||
char.quests.chos = 4
|
||
take('gun')
|
||
char.took_kathy = false
|
||
wounds()
|
||
return [[
|
||
В вас давно не стреляли. Вы уже забыли, каково это.
|
||
Это больно. Очень больно, но вы знали, что не смертельно.
|
||
Вы подошли к девочке и вырвали пистолет из её рук.
|
||
]]
|
||
end,
|
||
next = '#end'
|
||
};
|
||
};
|
||
{
|
||
'#end',
|
||
{
|
||
function()
|
||
return plural('Я не скажу', 'Мы не скажем')..' твоей бабушке, а ты перестанешь ломать технику.'
|
||
end,
|
||
function()
|
||
walk('chos');
|
||
return [[
|
||
-- ]]..plural('Я не скажу', 'Мы не скажем')..[[ твоей бабушке, а ты перестанешь ломать технику.^^
|
||
Девочка кивнула и быстро исчезла в дверях.
|
||
Вы покрутили в руках оружие, закрыли подачу газа. Опасная игрушка.
|
||
]]
|
||
end,
|
||
};
|
||
{
|
||
'Вырастешь - сама уедешь. Урожай здесь ни при чём.',
|
||
function()
|
||
walk('chos');
|
||
return [[
|
||
-- Вырастешь - сама уедешь. Урожай здесь ни при чём.^^
|
||
|
||
Девочка кивнула и быстро исчезла в дверях.
|
||
Вы покрутили в руках оружие, закрыли подачу газа. Опасная игрушка.
|
||
]]
|
||
end,
|
||
};
|
||
{
|
||
'Может, ты должна быть здесь. Помогать семье, учиться жизни, творить добро.',
|
||
function()
|
||
walk('chos');
|
||
return [[
|
||
-- Может, ты должна быть здесь. Помогать семье, учиться жизни, творить добро.^^
|
||
|
||
Девочка кивнула и быстро исчезла в дверях.
|
||
Вы покрутили в руках оружие, закрыли подачу газа. Опасная игрушка.
|
||
]]
|
||
end,
|
||
};
|
||
}
|
||
}
|
||
}
|
||
obj {
|
||
nam = 'gun',
|
||
disp = 'пистолет',
|
||
mech = true,
|
||
inv = 'Пневматический автоматический пистолет с настройкой газовой струи.'
|
||
}
|