1
0
Fork 0
mirror of https://gitlab.com/Oreolek/duel.git synced 2024-05-04 10:08:47 +03:00
duel/locations/chos.lua

604 lines
24 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.

-- + можно выкупить программатор в обмен на ___ у роботов
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 = 'Пневматический автоматический пистолет с настройкой газовой струи.'
}