-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room6_" или "kitchen_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации matches, также игрок может открыть дверь на западе предметом longkey, игрок может прийти в локацию как с ним, так и без него
mp.clear_on_move=false;-- GORAPH
room{
-"кухня,комната";
nam="room6_kitchen";
title="Кухня";
dsc=function(s)
p"Оранжевые стены кухни радуют глаз. Свет пробивается в приоткрытое окно в западной стене.^^Если пойти на север, можно вернуться в столовую, через белую дверь, а облупившаяся деревянная дверь на востоке ведёт в кладовку.";
-"дверь в столовую,северная дверь,белая дверь,дверь/жр,ед,~од";
nam="kitchen_door_north";
door_to=function(s,d)
kitchen_drop_items()
return'room7_stolovaya';-- ! GORAPH
end;
}:attr'concealed,open,openable,static';
obj{
-"длинный ключ,ключ|завитушка";
nam="longkey";
description="Длинный ключ из чугуна, с завитушкой, похожей на восьмёрку.";
}
obj{
-"столешница,раковина";
nam="kitchen_main_table";
dsc="Вдоль южной стены простирается кухонная столешница.";
description=function(s)
p"Это обычная столешница, тут есть кухонные приборы, по большей части тебе ненужные, а также раковина, в которой моют продукты или утварь.";
mp:content(s);
end;
obj={'kitchen_knife','kitchen_breadbox'};
}:attr'static,supporter';
obj{
-"нож";
nam="kitchen_knife";
description="Острый кухонный нож с деревянной ручкой.";
}:attr'';
obj{
-"прямоугольный стол,стол";
nam="kitchen_round_table";
dsc="Посреди комнаты стоит прямоугольный стол.";
description=function(s)
p"Это стол прямоугольной формы из массива дерева. Он имеет характерные потёртости, сколы и многочисленные следы от ножей. На нём стоит корзина для фруктов.";
mp:content(s)
end;
before_Take="Это старинный стол из массива дерева. Его невозможно сдвинуть с места.";
before_Smell="Стол пахнет каштанами, а ещё чем-то неуловимым.";
before_LookUnder=function(s)
if_'kitchen_old_man'.told_you_a_story==truethen
p"Под столом ты находишь выжженную надпись: «Комната #6 для проекта “17 комнат”, авторы: Всеволод Зубарев и Антон Артамонов, 2021. Тестеры: Гога и Пётр. Спасибо за внимание!»";
else
p"Там что-то есть, но ты, пожалуй, потом посмотришь — сейчас есть дела поважнее.";
end;
end;
obj={'kitchen_basket'};
}:attr'static,supporter';
obj{
-"корзина для фруктов,корзина";
nam="kitchen_basket";
-- dsc = "На прямоугольном деревянном столе посреди комнаты стоит корзина для фруктов.";
description=function(s)
p"Пологая плетёная корзина для хранения фруктов.";
description="Бутерброд с авокадо: на куске хлеба лежат ломтики авокадо.";
before_Eat="К сожалению, придётся отдать его старику.";
before_Cut="Кусок хлеба уже отрезан.";
}:attr'edible';
obj{
-"кухонный лифт,лифт|ниша";
nam="kitchen_lift";
loc='down';-- / 'up'
used=false,
looked_at=false;
dsc="В восточной стене есть ниша, в которой обустроен кухонный лифт.";
description=function(s)
ifs.looked_at==falsethen
s.looked_at=true;
p"Ты видишь лифт для транспортировки еды из кухни, скорее всего на верхний этаж. Вспоминаешь, что видела подобное устройство много раз в фильмах. «Всегда мечтала, чтобы каждое утро мне подавали завтрак подобным способом», — слегка улыбнувшись, подумала ты.^^";
ifs:has'open'ands.loc=='down'then
p"Он открыт.";
if#objs'kitchen_lift'==0then
p"Внутри ничего нет.";
end;
mp:content(s);
else
p"Он закрыт.";
end;
p"С правой стороны от лифта на отдельной панели есть две расположенные одна под другой круглые потёртые кнопки, на них изображены стрелки вверх и вниз соответственно.";
else
p"Кухонный лифт.";
ifs:has'open'ands.loc=='down'then
p"Он открыт.";
if#objs'kitchen_lift'==0then
p"Внутри ничего нет.";
end;
mp:content(s);
else
p"Он закрыт.";
end;
end;
end;
before_Enter="Он недостаточно большой, чтобы в него забраться.";
before_Take="Лифт не представляется возможным вытащить из стены, он жёстко прикреплён к подъёмному механизму.";
before_Open=function(s)
ifs.loc=='up'then
p"Дверца лифта не открывается — похоже, он находится наверху.";
returntrue;
end;
returnfalse;
end;
before_Receive=function(s,i)
ifi^'matches'then
if_'kitchen_old_man'.received_lighter==truethen
p"Больше деду помощь не нужна.";
else
p"Нет, это тебе ещё пригодится. Лучше отдай ему зажигалку, и он будет доволен.";
p"Ты нажимаешь кнопку, и лифт возвращается вниз.";
end;
end;
}:attr'static,concealed';
obj{
-"старик,дед,репродуктор";
nam="kitchen_old_man";
counter=0;
counter_lift_interaction=0;
counter_lift_interaction_2=0;
counter_since_fed=0;
mentioned_matches=false;
fed=false;
annoyed=false;
received_lighter=false;
told_you_a_story=false;
description="Старика здесь нет, он общается с тобой через репродуктор, видимо, из какой-то другой комнаты.";
before_Default=function(s,ev,w)
p"Старика здесь нет, он общается с тобой через репродуктор, видимо, из другой комнаты.";
end;
before_Talk="Ты пытаешься заговорить с дедом, но он тебя не слышит — связь с ним, увы, односторонняя.";
daemon=function(s)
ifwhere(pl)~=_'room6_kitchen'then
return;
end;
s.counter=s.counter+1;
ifs.counter==3then
p"«Кхе-кхе! Алло?! — раздаётся старческий голос из какого-то невидимого репродуктора. — Там кто-нибудь есть?»";
elseifs.counter==4then
p"«Не молчи. Я видел, как ты входила в дом. Должно быть, ты моя новая сиделка», — говорит он.";
elseifs.counter==6then
p"«Слушай, мне плевать, кто ты. Я голоден и требую чтобы ты, паразитка, сейчас же позаботилась об этом. Сделай для меня бутерброд с авокадо и отправь его мне через во-он тот лифт в стене, слышишь?» У тебя создаётся впечатление, что он за тобой наблюдает.";
elseifs.counter==7then
p"«Эй, я не собираюсь ждать вечно. На кухне есть всё, что тебе потребуется, давай, вперёд, au boulot !» — заканчивает он.";
end;
ifs.counter>7then
ifs.fed==truethen
s.counter_since_fed=s.counter_since_fed+1;
ifs.counter_since_fed==3then
ifs.annoyed==truethen
p"«Ладно, хоть какая-то польза от тебя есть».";
else
p"«Хотел ещё раз поблагодарить тебя за то, что в итоге не отказала в просьбе старику, t'es une fille sage».";
end;
elseifs.counter_since_fed==4then
s.mentioned_matches=true;
ifs.annoyed==truethen
p"«Ещё вот. Мне очень хочется покурить, но спички, как назло, закончились. Поищи где-то в печи и отправь мне, ясно тебе?»";
else
p"«Однако, постой, ma chérie, тут вновь нужна твоя помощь. Мне очень хочется покурить, но обнаружилось, что у меня закончились спички. Не могла бы ты отправить их мне? Полагаю, ты сможешь найти их где-то рядом с печью».";
p"«Опять ты надо мной издеваешься!» — он со злостью захлопывает дверцу лифта со своей стороны.";
else
s.annoyed=true;
p"«Что за чёрт побери! Отправь мне чем я смогу прикурить», — он громко закрывает дверь лифта со своей стороны.";
end;
end;
elseifs.counter_lift_interaction_2==2then
s.counter_lift_interaction_2=3;
_'kitchen_lift':attr'~open';
s.received_lighter=true;
p"«Так, ну, расскажу тебе теперь байку о хозяйке этого дома».";
elseifs.counter_lift_interaction_2==3then
s.counter_lift_interaction_2=4;
p"«Жила она когда-то на улице Весенних Территорий, — не спрашивай, где это, — в семейном коттедже. На тот момент было у неё два мужичка. Они, то есть два мужичка, были, по своей натуре, людьми неприхотливыми. Все трое жили хорошо, дружно, душа в душу. Если бы не одна неудобная, но в общем-то мелкая на первый взгляд вещь. У хозяйки было странное хобби. Она коллекционировала каштаны. Была просто помешана на каштанах».";
elseifs.counter_lift_interaction_2==4then
s.counter_lift_interaction_2=5;
p"«…И когда мужички пытались ей намекнуть на то, что она чрезмерно увлеклась своим хобби, — ведь к тому моменту каштанами был завален весь дом, их можно было найти в каждом шкафчике, в каждой комнате — и что собирать каштаны — это глупо, в ответ она лишь смеялась и говорила, что просто любит каштаны за их форму, за то, что они успокаивают, когда ты держишь их в руке. С её точки зрения, каштаны были даже важнее, чем шампанское, и поэтому она тратила огромные суммы на путешествия по всей стране, в поисках мест, где она ещё их не собирала. А стол вот этот кухонный, он здесь как раз из того дома, с улицы Весенних Территорий».";
elseifs.counter_lift_interaction_2==5then
s.counter_lift_interaction_2=6;
s.told_you_a_story=true;
p"«…На нем лежали много разных каштанов, от самых мелких до крупных и экзотических. И временами она их собирала и подолгу разглядывала. И в эти моменты на её лице появлялось какое-то странное выражение. А потом она подходила к окну и тихо плакала. Никто так и не знает о причинах столь странного её поведения. Иногда она проводила с ними так много времени, что могла заснуть прямо на полу, под этим самым столом. И вот однажды она рассказала нам, что, проснувшись, неожиданно для себя обнаружила, что под столом выжжены имена мастеров данного труда, но, честно говоря, за столько лет я так и не проверил это. Но, возможно, это будет сделать интересно тебе. Спасибо, что послушала эту небольшую историю».";
p"«Что это такое? Ты издеваешься?» — он злобно захлопывает дверцу лифта.";
end;
elseifs.counter_lift_interaction==2then
move('kitchen_candy','kitchen_lift');
_'kitchen_lift':attr'~open';
_'kitchen_lift'.loc='down';
p"«Спасибо, было вполне себе сносно. Полагаю, проявленная тобою забота заслуживает соразмерной награды, хе-хе», — он захлопывает дверцу лифта и отправляет его вниз.";
description="Если бы не растаявший шоколад, просочившийся сквозь выцветшую обёртку, то отнести данную субстанцию к когда-то бывшей конфете, пришедшей к нам, видимо, прямиком из СССР, было бы практически невозможно. Отвратительно.";
after_Eat=function(s)
p"Ты начинаешь медленно отрывать обёртку от смеси шоколада, ореховой крошки и кремовой прослойки. Кусок за куском. Затем ногтями выковыриваешь те остатки бумаги, которые возможно. Руки становятся липкими, стремительно покрываются шоколадными следами. Создаётся ощущение, что от этого уже невозможно будет отмыться. Наконец, то, что когда-то было конфетой, обнажило все свои слои и освободилось от упаковки.^^\
p"^^Ты вспоминаешь о коте за окном. А ведь можно было просто… отдать конфету ему!";
end;
end;
}:attr'edible';
obj{
-"окно";
nam="kitchen_window";
description="Окно приоткрыто. За ним виднеется лужайка, а поодаль высится лес.";
before_Open="Окно и так уже приоткрыто.";
before_Close="Сегодня тёплый день, ни к чему закрывать окно.";
}:attr'static,concealed';
obj{
-"лужайка";
nam="kitchen_grass";
description=function(s)
ifinside('kitchen_cat','room6_kitchen')then
p"Ты видишь, как на лужайке под солнцем развалился белый кот.";
else
p"Солнце освещает лужайку, но кота и след простыл.";
end;
end
}:attr'static,concealed';
obj{
-"кот,котик|бабочка";
seen=false;
nam="kitchen_cat";
description=function(s)
s.seen=true;
p"Беззаботный белый котик с рыжими пятнами. На шее у него висит чёрная бабочка. Признаться, тебе хотелось бы быть им, а не решать загадки этого дома.";
end;
before_Default=function(s,ev,w)
s.seen=true;
ifev=='Exam'then
p"Беззаботный белый котик с рыжими пятнами. На шее у него висит чёрная бабочка. Признаться, тебе хотелось бы быть им, а не решать загадки этого дома."
returntrue;
end;
p"Не стоит беспокоить котика без причины.";
end;
before_ThrownAt=function(s,w)
ifw^"kitchen_candy"then
p"Ты бросаешь конфету за окошку коту. Он игриво хватает конфету и убегает с ней в лес.";
remove'kitchen_candy';
remove'kitchen_cat';
else
p"Это не нужно давать коту, может, попробовать что-то другое?";
end;
end;
life_Give=function(s,w)
ifw^"kitchen_candy"then
p"Ты бросаешь конфету за окошку коту. Он игриво хватает конфету и убегает с ней в лес.";
remove'kitchen_candy';
remove'kitchen_cat';
else
p"Это не нужно давать коту, может, попробовать что-то другое?";
end;
end;
}:attr'static,concealed,animate';
obj{
-"лес";
nam="kitchen_forest";
description="Ты видишь непроглядный лес.";
}:attr'static,concealed';
obj{
-"стены";
nam="kitchen_walls";
description="Стены, покрытые оранжевой краской.";
}:attr'static,concealed';
obj{
-"потолок";
nam="kitchen_ceiling";
description="Потолок высотой примерно четыре метра. Местами в углу паутина, где-то чёрные пятна копоти от печи. В целом, всё, что ожидаешь увидеть в подобном месте.";
}:attr'static,concealed';
obj{
-"печь/жр|горнило,подпечье";
dsc="Справа от лифта находится печь.";
nam="kitchen_pec";
searched=false;
description=function(s)
if_'kitchen_old_man'.mentioned_matches==truethen
ifs.searched==falsethen
s.searched=true;
move('matches',me());
move('kitchen_lighter',me());
mp.score=mp.score+1;
p"Ты обыскиваешь горнило и находишь спички и зажигалку. Ты забираешь их себе.";
else
p"Больше в печи ничего нет.";
end;
else
p"Печь как печь. Стенки, горнило и подпечье, забитое дровами.";
end;
end;
before_Burn="У тебя нет времени или необходимости разводить огонь.";
}:attr'static';
obj{
-"зажигалка";
nam="kitchen_lighter";
description="Зажигалка. На дне ещё есть немного газа.";