1
0
Fork 0
mirror of https://gitlab.com/Oreolek/duel.git synced 2024-07-07 09:14:27 +03:00
duel/locations/pavels.lua

265 lines
13 KiB
Lua
Raw Normal View History

2017-03-21 13:37:06 +02:00
-- Вся эта локация от и до выстроена как одна большая битва с боссом.
-- В которой вы проходите через его двор, его дом, его святую мастерскую
-- перед тем, как встретиться и начать переговоры.
room {
nam = 'pavels',
disp = 'Дом на окраине',
way = {'exit_west'},
decor = [[
Вы стояли перед типовым напечатанным одноэтажным домом.
С одной стороны к стене прислонилась маленькая пристройка для дров.
С другой стороны {suit|боевой механизированный костюм.}
Возле входной двери горела {call|кнопка домофона.}
]],
obj = {
obj {
nam = 'call';
disp = 'домофон';
act = 'Домофон был включён, хозяин — дома. Достаточно было только поговорить с ним.';
2017-03-09 14:04:05 +02:00
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',
2017-03-09 14:04:05 +02:00
disp = 'Разговор с домофоном',
decor = [[Камера домофона смотрела на вас бесстрастным блеском.]],
2017-03-20 14:32:21 +02:00
enter = [[-- Кто там? — спросил неприветливый мужской низкий голос.]],
obj = {
2017-03-09 14:04:05 +02:00
{
{
'#robot',
'Здесь не проезжал такой робот…',
function()
disable('#robot')
return [[ Вы не видели, как здесь проезжал робот на автомобиле? Он такой^^
Домофон отключился. Видимо, нет.]]
end
};
{
2017-03-20 14:32:21 +02:00
'#yours',
2017-03-09 14:04:05 +02:00
'Это ваш РГ-22?',
2017-03-20 14:32:21 +02:00
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'
2017-03-09 14:04:05 +02:00
};
{
cond = function()
2017-03-17 14:21:18 +02:00
return live('kathy')
2017-03-09 14:04:05 +02:00
end,
2017-03-19 11:27:49 +02:00
fmt.em('<Попросить Катю поговорить с хозяином дома>'),
2017-03-09 14:04:05 +02:00
function()
2017-03-19 11:27:49 +02:00
local out = [[Здравствуйте, ]]..pronoun_1()..' — '..engineer() .. '.'
2017-03-09 14:04:05 +02:00
return out
end
};
};
2017-03-20 14:32:21 +02:00
{
'#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|портреты незнакомых людей.}
2017-03-20 14:32:21 +02:00
]],
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 = [[
Угрюмый старик в деловом костюме.
Грустный мужчина в генеральском кителе.
Напряжённая женщина в полосатой блузке с двумя галстуками.
Девочка в кабине красного боевого механизированного костюма, почти втрое больше неё.^^
Как будто вы стояли в каком-то музее, куда даже не купили билет.
2017-03-20 14:32:21 +02:00
]]
}
}
}
2017-03-20 14:32:21 +02:00
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 = 'Подвал',
2017-03-21 13:37:06 +02:00
enter = [[Вы нашли маленькую дверцу, за которой начиналась лестница в тёмный подвал.
Где-то внизу, в конце лестницы, мигал слабый электрический свет.]],
decor = [[
Вы спустились в светлую холодную комнату, закрытую белыми плотными шторами.
Она была похожа на какой-нибудь командный центр только не на настоящий
военный штаб, которых вы насмотрелись на войне, а на что-то более фантастическое.
На белых стенах висели шкафы со столярными инструментами, медицинскими препаратами
и вычислительной техникой.
В центре комнаты стоял широкий круглый стол с разными приборами и датчиками.
внутри которого стояло мягкое Главное Кресло.
И в кресле сидел {pavel|хозяин дома.}
]],
obj = {
obj {
nam = 'pavel',
disp = 'хозяин дома',
talk = function()
end,
act = ''
}
}
2017-03-20 14:32:21 +02:00
}