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

348 lines
16 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()..' '..plural('чинишь', 'чините')..[[ железяки.^
2017-03-20 14:32:21 +02:00
-- Ну, скорее это больше программаторы, платы управления, ИскИны, роботы.^^
Голос на той стороне замолчал и начал чем-то шуршать.^^
-- В какой роте служил]]..endings()..[[?]],
2017-03-20 14:32:21 +02:00
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('Зампотех старший лейтенант', 'Зампотехи старшие лейтенанты')..' третьей мехастрелковой роты, Фронт Обороны Земли.'
2017-03-20 14:32:21 +02:00
end,
function()
char.war = "earth"
walk('pavels-inside')
return [[-- Старший лейтенант? А по голосу не скажешь. Ну хоть будет о чём поболтать.^^]]..enter_pavels()
end
};
{
function()
return plural('Майор', 'Майоры')..' первого ремонтного батальона, Армия Освобождения Луны.'
2017-03-20 14:32:21 +02:00
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 = [[
Вы спустились в светлую холодную комнату, закрытую белыми плотными шторами.
Она была похожа на какой-нибудь командный центр только не на настоящий
военный штаб, которых вы насмотрелись на войне, а на что-то более фантастическое.^^
В центре чистой комнаты с белыми стенами стоял широкий круглый стол.
Внутри за рядами приборов и датчиков возвышалось мягкое Главное Кресло.
2017-03-21 13:37:06 +02:00
И в кресле сидел {pavel|хозяин дома.}
]],
obj = {
obj {
nam = 'npcpavel',
2017-03-21 13:37:06 +02:00
disp = 'хозяин дома',
talk = function()
return walk('pavel')
2017-03-21 13:37:06 +02:00
end,
act = [[
Он смотрел на вас хитрым прищуром заинтересованной кошки.
Кошки с пышными усами, которая никуда не спешит.
]]
}
}
}
dlg {
nam = 'pavel',
disp = false,
decor = [[
Он смотрел на вас хитрым прищуром заинтересованной кошки.
Кошки с пышными усами, которая никуда не спешит.
]],
obj = {
{
'#приветствие',
{
'[Традиционализм > 50%] Хороший у вас дом. А где же слуги?', -- обсуждение роботов
"Слуги? А, вы про роботов. Мне они не нужны."
};
--[[
{ -- осуждение дома
function()
local out = [ [Как у вас чисто.
Наверное, вы заманиваете сюда маленьких ] ]
out = out..gendered('мальчиков', 'девочек', 'ребят', 'ребят')
out = out..[ [, а потом показываете им обучающие фильмы про ] ]
if char.war == "earth" then
out = out..'Триумф Войны'
end
if char.war == "moon" then
out = out..'Землян-Победителей'
end
out = out..'. Идеальное убежище посреди нигде.'
return out
end
}]]
{
'<Молча обойти стол и посмотреть на приборы>', -- передача инициативы в диалоге
[[Вы медленно обходите стол, осматривая приборы на нём.
Мониторы, которые до этого были закрыты от вас, показывают видео с камер
наблюдения. Снаружи дома, внутри гостиной. Одна из камер направлена на вас.^^
-- Вы сами по себе или из компании?]],
next = '#гарантия'
};
{ -- заткнись и дай пройти мой квест
'Мне нужна твоя мастерская. Сейчас.',
};
};
{
'#гарантия',
{
[[Гарантийный вызов.]],
function() walk('pavel-warranty') end,
},
{
'Вы давно видели свободных ремонтников? Мастерские стоят дорого, а без них вы ничего не сможете сделать.',
function() walk('pavel-warranty') end,
},
{
'Правильное слово - корпорации. Транспланетной корпорации.',
function() walk('pavel-warranty') end,
}
};
{
'#начало',
{
'И при чём же здесь военная служба? Зачем выпытывать роту?'
}
};
}
}
dlg {
nam = 'pavel-warranty',
disp = false,
decor = [[-- Боевой опыт и квалификация. Редкая птица в этих краях.]],
obj = {
{
{
'Кстати, про боевой опыт. В какой роте сам служил?',
'Четвёртый мехапехотный, пятнадцать выбросов.'
}
2017-03-21 13:37:06 +02:00
}
}
2017-03-20 14:32:21 +02:00
}