1
0
Fork 0
mirror of https://gitlab.com/Oreolek/duel.git synced 2024-07-04 15:54:29 +03:00
duel/locations/chos.lua

521 lines
20 KiB
Lua
Raw Normal View History

-- + можно выкупить программатор в обмен на ___ у роботов
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 = [[К типовому двухэтажному дому из нанотрубок со временем допечатывали несколько модулей.
2017-03-25 07:32:14 +02:00
Часть второго этажа выглядела совсем новой возможно, её недавно расширили.]],
};
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)
if not isduel then
return 'Старушка мирно посапывала, раскачиваясь в гамаке.'
else
return s.talk()
end
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,
2017-03-27 21:08:44 +03:00
'Я же вас и вызывала. У нас комбайн сломан. Вы чините зерноуборочные комбайны?'
};
{
always = true,
fmt.em('Как вас зовут?'),
'Ангелина. Я вызывала мастера по гарантии.',
next = '#комбайн-начало'
}
};
{ '#комбайн-начало',
{
'Что случилось?',
'-- Мы прогрели его весной, а он и не едет. Вы же '..engineer()..', вы сможете его починить?'
};
{
fmt.em('Можно посмотреть комбайн?'),
function() return walk('cho_dlg2') end,
};
};
{ '#разговор',
2017-03-29 13:20:37 +03:00
{
'#сдать',
cond = function()
return char.quests.chos == 4
2017-03-29 13:20:37 +03:00
end,
'Комбайн работает…',
function()
disable('#сдать')
return [[-- Комбайн работает. Всё в норме, но надо будет пригнать на проверку к зиме.^
-- Спасибо! Я что-то вам должна?^
-- Ну, ремонт идёт за счёт пожизненной гарантии, только вот…]]
end,
next = '#починил'
};
{
cond = function()
return char.quests.chos > 0 and char.quests.chos < 4
end,
'Вы не могли бы показать мне комбайн ещё раз?',
2017-03-26 12:24:40 +03:00
function()
if have('programmator') then
walk('combine')
2017-03-27 21:08:44 +03:00
return [[Она привела вас к зерноуборочному комбайну, и вы начали работать.]]
2017-03-26 12:24:40 +03:00
else
return 'Она привела вас к комбайну. Машина в том же сломанном состоянии. Вам пришлось вернуться ни с чем.'
end
end,
};
{
'Вы давно здесь живёте?',
'Она пожимает плечами:^^-- Лет тридцать. Начинали всего с одним роботом.'
};
{
fmt.em('Ничего. Доброе утро.'),
function()
2017-03-29 14:59:27 +03:00
walk('chos')
2017-03-26 12:24:40 +03:00
return '-- И вам того же.^^Она закрыла глаза и задремала.'
end,
};
2017-03-29 13:20:37 +03:00
};
{
'#починил',
{
cond = function()
return char.took_kathy == true
end,
'…ваша внучка просится к нам на стажировку. Хочет стать инженером.',
[[Ах, вы, наверное, о моей правнучке. Вы правда возьмёте её на работу? С зарплатой?
2017-03-29 13:29:30 +03:00
-- Ну, у ]]..plural('меня', 'нас')..[[ есть несколько вариантов--
2017-03-29 13:20:37 +03:00
-- Катя! Собирайся, ты едешь в город!
Ну что ж, портить технику она умеет. Значит, научим чинить.
]],
next = '#разговор'
};
{
'…отправьте внучку в городскую школу. Такая умная девочка должна хорошо себя показать.',
[[-- Ах, мы, наверное, о моей правнучке. Но у неё хорошая робоучительница, ещё моего сына учила.
-- Городскую. Школу. С реальными учениками.
-- Я подумаю.
]],
next = '#разговор'
};
{
'…нет, забудьте.',
'Она пожала плечами: -- Как скажете.',
next = '#разговор'
}
}
}
}
dlg {
nam = 'cho_dlg2',
disp = false,
dsc = [[-- Да-да, конечно.^^
2017-03-27 21:08:44 +03:00
Она провела вас в большой сарай, где пылился высокий автоматический зерноуборочный комбайн.
-- Вот и наш больной. Только вы, пожалуйста, можете его починить побыстрее, а то у нас урожай уже скоро.
]],
decor = [[
Старушка Чо внимательно смотрела на вас.
2017-03-27 21:08:44 +03:00
В её глазах вы видели, что от починки этого сельхозкомбайна зависело несколько жизней.
]],
obj = {
{
onempty = function()
walk('start4')
end,
{
'Что точно случилось?',
'-- Мы его заводим, а он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы.'
},
{
'У вас же столько роботов. Неужели вы не справитесь без комбайна?',
[[-- Всего семеро, и они обычно упаковывают и складывают.
Если они будут ещё и косить, мы не управимся до осени.
Урожай сгниёт под дождями.]]
},
{
'Да, '..pronoun_1()..' -- '..engineer()..[[.
Но я могу только определить проблему, у вас же нет мастерской или инструментов.]],
'-- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская.'
},
{
'Давно он у вас?',
[[-- Ну, лет двадцать уже, наверное.
Никогда не ломался. Но у меня на него пожизненная гарантия.]]
}
}
}
}
-- Починка комбайна
dlg {
nam = 'start4',
disp = false,
2017-03-26 12:24:40 +03:00
dsc = function()
2017-03-09 14:04:05 +02:00
char.quests.chos = 1
return [[
Комбайн оказался ещё довоенным.
Вы копались не меньше часа, пока не нашли износившийся программаторный блок.^^
-- Ну что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Но придётся забрать в город, в мастерскую. Программатор сломался.^
-- Програ-что?^
-- Ну, это очень старая плата передвижения. Раньше везде стояла, но сейчас её надо заказывать.^
-- Ходули, что ли? А может, у нас поищем? Здесь много у кого есть техника.^
-- Нет, надо заказывать. Не волнуйтесь, через месяц придёт.^
-- Слушайте, но нам же нельзя ждать целый месяц, урожай за порогом. Хотите, я заплачу?
-- Давайте так: ]]..pronoun_1()..[[ здесь ещё ]]..plural('задерживаюсь', 'задерживаемся')..[[. Возможно, здесь, на месте, что-то получится. Но после урожая -- сразу в мастерскую на техосмотр.^
-- Спасибо. -- она улыбнулась. -- Попробуйте спросить Пашу? У него много техники, он поможет.
]]
end,
decor = [[
2017-03-19 11:27:49 +02:00
Вы вернулись к дому. Стоит ли спросить что-то ещё?
]],
obj = {{
onempty = function()
char.quests.kathy = 0
2017-03-19 11:27:49 +02:00
-- place('kathy', here())
-- lifeon('kathy')
2017-03-25 15:33:42 +02:00
p "Видимо, разговор закончен."
2017-03-25 09:56:33 +02:00
lifeon('call-unknown')
walk('chos')
end,
{'Где живёт этот Павел?', [[Это такой зелёный домик, вы его
2017-03-19 11:27:49 +02:00
не пропустите. Как позвоните в домофон, Паша вас пустит. Он добрый друг нашей семьи.]]}
}}
}
2017-03-09 14:04:05 +02:00
obj {
nam = 'kathy',
disp = 'Катя',
2017-03-17 14:21:18 +02:00
dsc = "Рядом с вами стояла {Катя}.",
2017-03-09 14:04:05 +02:00
talk = function()
return walk('kathy_dlg')
end,
life = function(self)
if player_moved() then
place('kathy', here())
end
2017-03-17 14:21:18 +02:00
local reactions = {
'Катя зевнула.';
'Катя стучала серым кроссовком.';
'Катя смотрела на что-то в небе.';
}
if rnd(10) > 4 then -- вероятность реакции 40%
p(rndstr(reactions))
return
end
end,
2017-03-09 14:04:05 +02:00
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,
};
2017-03-17 14:21:18 +02:00
{
'Ты можешь подождать где-нибудь? Кое-какие дела.',
function()
lifeoff 'kathy'
return '-- Ну хорошо. Я буду у себя дома, если что.'
end,
};
{
always = true,
function()
return pronoun_1()..' '..plural('хочу', 'хотим')..' кое-что посмотреть. Можешь подождать здесь?'
end,
function()
lifeoff('kathy')
place('kathy', 'chos')
return "Хорошо. Но я лучше вернусь домой, бабушка будет волноваться."
end
}
2017-03-09 14:04:05 +02:00
}}
}
2017-03-25 07:32:14 +02:00
obj {
2017-03-25 09:56:33 +02:00
nam = 'call-unknown',
2017-03-25 07:32:14 +02:00
disp = false,
2017-03-25 09:56:33 +02:00
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,
2017-03-25 07:32:14 +02:00
}
-- TODO придумать способ вернуть игрока на 2 шага назад (walkout дважды не работает)
2017-03-25 07:32:14 +02:00
local backtocho = function()
walk(from(from(here())))
2017-03-25 07:32:14 +02:00
return 'Бросили трубку.'
end
dlg {
nam = 'caller-unknown',
2017-03-29 14:56:51 +03:00
disp = false,
2017-03-25 07:32:14 +02:00
decor = function()
return [[В трубке говорил незнакомый девичий голос.^^
2017-03-29 14:56:51 +03:00
-- Ты не ]]..wrong_gendered('должен', 'должна')..[[ чинить этот комбайн. Погибнут люди.]]
2017-03-25 07:32:14 +02:00
end,
obj = {{
{
'Иди ты к чорту.',backtocho
};
{
'Ну хорошо.',backtocho
};
{
'А мне-то что?',function()
changeop('reputation', -10)
return backtocho()
end
};
{
'Да это же просто комбайн.',backtocho
};
}}
}
2017-03-26 12:24:40 +03:00
dlg {
nam = 'combine',
enter = function()
remove('programmator')
return true
end,
2017-03-27 21:08:44 +03:00
-- Здесь я хотел вставить интерактив но не придумал ни-че-го
2017-03-27 07:35:05 +03:00
dsc = [[
2017-03-26 12:24:40 +03:00
Ремонт двигался прекрасно; техника была достойной, несмотря на возраст
2017-03-27 21:08:44 +03:00
и то, что почти год стояла в сарае. Вы подготовились
вывезти машину на поездку вокруг сарая.^^
И тут начались выстрелы.
2017-03-29 12:20:39 +03:00
После войны вы моментально реагировали на громкий хлопок и металлический «бзынь» в сантиметре от руки.
2017-03-27 21:08:44 +03:00
Вы спрятались в кабине, но вам не было видно, что происходит на входе в сарай.^^
-- Я говорила вам не чинить этот комбайн!
2017-03-29 12:20:39 +03:00
С другой стороны, надо было только считать выстрелы.
2017-03-27 07:35:05 +03:00
]],
2017-03-29 12:20:39 +03:00
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 = {
2017-03-26 12:24:40 +03:00
{
2017-03-29 12:20:39 +03:00
{
'Кто ты?',
function()
here().update(here())
return '-- Ха! [паф] Так я тебе и сказала.'
end
};
{
'Чего ты хочешь?',
function()
here().update(here())
2017-03-29 13:20:37 +03:00
walk('combine2')
2017-03-29 12:20:39 +03:00
return [[-- Никаких урожаев. [бзынь!] Бросить эту дыру. Собрать вещи и уехать отсюда.]]
end,
next = '#second'
};
{
'Какое тебе дело до древних сельхозкомбайнов?',
function()
here().update(here())
2017-03-29 13:20:37 +03:00
walk('combine2')
2017-03-29 12:20:39 +03:00
return [[-- Нет комбайна [бзынь!] нет урожая. Можно будет бросить эту дыру. Уехать отсюда.]]
end,
}
2017-03-26 12:24:40 +03:00
};
2017-03-29 13:20:37 +03:00
}
}
dlg {
nam = 'combine2',
-- Здесь я хотел вставить интерактив но не придумал ни-че-го
dsc = [[
Вы резко выпрыгиваете из кабины и прячетесь за машиной.
В дверях стоит девочка, на вид лет пятнадцати, китаянка.
В руках дрожит пневматический пистолет.
]],
obj = {{
2017-03-27 07:35:05 +03:00
{
2017-03-29 13:20:37 +03:00
'Это ты испортила схемы машины?',
'Нет! И опять залью её чаем!'
};
{
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 [[-- Вы… вы серьёзно?^
Она всхлипнула.^
2017-03-29 13:29:30 +03:00
-- Если ты не против, ]]..pronoun_1()..' '..plural('хочу', 'хотим')[[ попасть в город ]]..
plural('невредимым', 'невредимыми')..[[.^^
2017-03-29 13:20:37 +03:00
Вы вышли из-за комбайна и направились к ней.^^
-- Но что же скажет-^
2017-03-29 13:29:30 +03:00
-- ]]..plural('Я разберусь', 'Мы разберёмся')..[[. А теперь дай сюда эту штуку и иди собирай вещи.^
2017-03-29 13:20:37 +03:00
-- Я пойду с вами! Буду везде ходить и помогать, со всеми вас познакомлю.^
2017-03-29 13:29:30 +03:00
-- Нет уж. Когда ]]..plural('я поеду', 'мы поедем')..[[ из города, ты узнаешь, хорошо? Как тебя зовут?^
2017-03-29 13:20:37 +03:00
-- Катя.^^
Девочка тут же юркнула наружу.^
Вы покрутили в руках оружие, закрыли подачу газа.
Опасные игрушки. Как она здесь живёт, если пошла на такой кошмар?]]
end
};
{
'<Выйти и выбить оружие.>',
function()
char.quests.chos = 4
take('gun')
char.took_kathy = false
wounds()
2017-03-29 13:20:37 +03:00
return [[
В вас давно не стреляли. Вы уже забыли, каково это.
Это больно. Очень больно, но вы знали, что не смертельно.
Вы подошли к девочке и вырвали пистолет из её рук.
]]
end,
next = '#end'
};
};
{
'#end',
2017-03-29 12:20:39 +03:00
{
2017-03-29 13:29:30 +03:00
function()
return plural('Я не скажу', 'Мы не скажем')..' твоей бабушке, а ты перестанешь ломать технику.'
end,
2017-03-29 13:20:37 +03:00
function()
walk('chos');
return [[Девочка кивнула и быстро исчезла в дверях.
Вы покрутили в руках оружие, закрыли подачу газа. Опасная игрушка.
]]
end,
};
{
'Вырастешь - сама уедешь. Урожай здесь ни при чём.',
function()
walk('chos');
return [[Девочка кивнула и быстро исчезла в дверях.
Вы покрутили в руках оружие, закрыли подачу газа. Опасная игрушка.
]]
end,
};
{
'Может, ты должна быть здесь. Помогать семье, учиться жизни, творить добро.',
function()
walk('chos');
return [[Девочка кивнула и быстро исчезла в дверях.
Вы покрутили в руках оружие, закрыли подачу газа. Опасная игрушка.
]]
end,
};
2017-03-27 07:35:05 +03:00
}
2017-03-29 12:20:39 +03:00
}
2017-03-26 12:24:40 +03:00
}
2017-03-29 13:20:37 +03:00
obj {
nam = 'gun',
disp = 'пистолет',
mech = true,
inv = 'Пневматический автоматический пистолет с настройкой газовой струи.'
}