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

242 lines
11 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 = 'pavels',
disp = 'Дом на окраине',
way = {'exit_west'},
decor = [[
Вы стояли перед типовым напечатанным одноэтажным домом.
С одной стороны к стене прислонилась маленькая пристройка для дров.
С другой стороны — {suit|боевой механизированный костюм.}
Возле входной двери горела {call|кнопка домофона.}
]],
obj = {
obj {
nam = 'call';
disp = 'домофон';
act = 'Домофон был включён, хозяин — дома. Достаточно было только поговорить с ним.';
talk = function()
return walk('pavels-call')
end;
take = function()
pn "Вам не был нужен домофон или какая-то его деталь."
return false
end,
open = function()
pn "Домофон не разбирался."
return false
end
};
obj {
nam = 'suit',
disp = 'боевой костюм',
talk = 'Костюм не принимал ваших команд. Если, конечно, он вообще вас слушал.',
take = function()
pn "Вам не нужна была боевая машина. Возвращаться в город на своём кабриолете было бы приятнее и быстрее."
return false
end,
act = function()
local out = [[
Боевой механизированный костюм высотой 2,7 метров, марка РГ-22.
Рассчитан на одного пилота.
Вооружён автоматической пушкой калибра 5мм и огнемётом.^^]]
if char.war == "earth" then
out = out .. [[
Вы чинили эти двуногие танки день и ночь.
Лунные мины становились всё изощрённее, и
приходилось срочно отлаживать программы починки, а иногда и лезть вручную.
Боты никогда не заботились о том, чтобы вычистить остатки пилота из кабины.^^
]]
end
if char.war == "moon" then
out = out .. [[
Где бы вы ни сражались, эти двуногие твари шли на вас тысячами.
Вам приходилось еженедельно изобретать новые мины, чтобы получить хоть какой-то
шанс отбиться.
Сорок восемь смертельных чертежей против главной уязвимости этой модели —
человека в кабине.^^
]]
end
out = out..[[Такие штамповались на Земле сотнями тысяч, но после войны оказалось, что большая часть потеряна на поле боя.
Конечно, по официальной версии.
]]
return out
end
}
}
}
dlg {
nam = 'pavels-call',
disp = 'Разговор с домофоном',
decor = [[Камера домофона смотрела на вас бесстрастным блеском.]],
enter = [[-- Кто там? — спросил неприветливый мужской низкий голос.]],
obj = {
{
{
'#robot',
'Здесь не проезжал такой робот…',
function()
disable('#robot')
return [[— Вы не видели, как здесь проезжал робот на автомобиле? Он такой…^^
Домофон отключился. Видимо, нет.]]
end
};
{
'#yours',
'Это ваш РГ-22?',
function()
disable('#yours')
return 'Не продаётся.'
end
};
{
'#repair',
cond = function()
return char.quests.chos > 0
end,
function()
disable('#repair')
enable('#enter')
return fmt.em(plural('Я занимаюсь', 'Мы занимаемся')..' ремонтом для Анжелины; она сказала, что у вас есть своя мастерская и вы можете помочь.')
end,
[[ -- То есть, ]]..pronoun_2()..[[ чинишь железяки.^
-- Ну, скорее это больше программаторы, платы управления, ИскИны, роботы.^^
Голос на той стороне замолчал и начал чем-то шуршать.^^
-- В какой бригаде служил]]..endings()..[[?]],
next = '#war'
};
{
cond = function()
return live('kathy')
end,
fmt.em('<Попросить Катю поговорить с хозяином дома>'),
function()
local out = [[Здравствуйте, ]]..pronoun_1()..' — '..engineer() .. '.'
return out
end
};
};
{
'#war',
{
function()
return plural('Зампотех старший лейтенант', 'Зампотехи старшие лейтенанты')..' мехастрелковой роты, Фронт Обороны Земли.'
end,
function()
char.war = "earth"
walk('pavels-inside')
return [[-- Старший лейтенант? А по голосу не скажешь. Ну хоть будет о чём поболтать.^^]]..enter_pavels()
end
};
{
function()
return plural('Майор', 'Майоры')..' ремонтного батальона, Армия Освобождения Луны.'
end,
function()
char.war = "moon"
walk('pavels-inside')
return [[-- Луны, значит… А по голосу не скажешь. Ладно, что прошло -- то не взлетело.^^]]..enter_pavels()
end
};
}
}
}
enter_pavels = function()
return [[
Дверь открылась с громким щелчком.^^
Вы вошли в тёмную гостиную.^
-- Я здесь, внизу! -- раздался голос хозяина.
]];
end
room {
nam = 'pavels-inside',
disp = 'Гостиная',
way = {'pavels-under'},
enter = function()
find('pavel-call').timer = 0
lifeon('pavel-call')
return 'Вы разулись на сером махровом коврике с надписью «Человек человеку добр».'
end,
decor = [[
Эта комната была большой, но здесь было так мало свободного места, что
вам пришлось перепрыгивать через {table|журнальный столик,} чтобы пересечь её.
Предметы были разбросаны, как будто из окон пролилась река, внесла эти случайные вещи
и ушла, оставив их лежать на дне комнаты.^^
На полу были разбросаны {paper|какие-то бумажки.} За широким письменным столом
висели фотокарточки в рамках. На подоконнике слабо светился {aqua|аквариум.}
Со стен на вас смотрели красочные {portraits|портреты незнакомых людей,} как будто вы стояли в
каком-то музее, куда ещё не купили билет.
]],
obj = {
obj {
nam = 'aqua',
disp = 'аквариум',
talk = 'Вы ещё не готовы разговаривать с аквариумами.',
act = [[
Лазурные водоросли медленно сокращались и расслаблялись в прозрачной воде.
Они сокращались и расслаблялись, сокращались и расслаблялись, как будто
дышали чем-то ]]..fmt.em('другим.')..[[ Вы заметили мелкие фиолетовые пузырьки,
которые всплывали из переплетения водорослей к краям аквариума.
]]
};
obj {
nam = 'table',
disp = 'журнальный столик',
talk = 'Вам нечего сказать журнальному столику. Да и он немногословен.',
act = [[На столике лежал рисунок карандашом: робот-летописец тянет пишущую руку вверх.
В нижней части листа ручкой было написано: «Слава Земле»]]
};
obj {
nam = 'paper',
disp = 'бумаги на полу',
talk = 'Бумага может сказать только то, что на ней напечатано.',
act = [[Медицинский листок: «Контузия женщина 26 лет передвигала шкаф свалилась внутрь.
Сломано два правых ребра, жалобы на боль в плече. Просит найти Хурхэнова.»^
Детским почерком: «Трудный 3-1. Прыжок влево, вправо, Круг, Квадрат, Вверх, Круг, Квадрат.»^
Страница из Горной Энциклопедии, буква Х: Халцедон, Хризолит, Хризопраз.^
Распечатка инструкции по обновлению нейронных сетей пилотов серии РГ.^
Таблица зависимости времени посадки цитрусовых от влажности воздуха.
]]
};
obj {
nam = 'portraits',
disp = 'портреты',
talk = 'Портреты молчали, отчего вам стало жутковато.',
act = [[
Угрюмый старик в деловом костюме.
Грустный мужчина в генеральском кителе.
Напряжённая женщина в полосатой блузке с двумя галстуками.
Девочка в кабине красного боевого механизированного костюма, почти втрое больше неё.^^
Вы не знали этих людей.
]]
}
}
}
obj {
nam = 'pavel-call',
timer = 0,
life = function(s)
s.timer = s.timer + 1
local response = {
'-- Я внизу!',
'-- Эй! Сюда, в подвал!',
'-- Эй, там, наверху! Вы скоро?',
'-- Ничего там не трогать!',
'-- Разобьёшь что-нибудь — убью!'
}
if timer % 4 == 1 then
return rndstr(response)
end
end
}
room {
nam = 'pavels-under',
disp = 'Подвал',
decor = [[]]
}