-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room14_" или "secondfloor_"
-- Все описания можно менять
-- Задача: Игрок должен найти в локации предмет bonekey, а также открыть проход на восток в спальню предметом circlekey и на запад в таинственную комнату предметом piramidekey, изначально проходы должны быть перекрыты
-- Игрок может придти в локацию как с одним и обоими ключами, так и без них, и иметь возможность спустится вниз или поднятся наверх
--e_to = 'room15_bedroom';
--w_to = 'room16_mystical';
obj{
-"пирамидальный ключ, ключ|пирамидка, пирамидка с письменами, письмена";
nam="piramidekey";
description="Пирамидальный ключ. Небольшая деревянная треугольная пирамидка. С древними письменами на ней.";
inv="пирамидальный ключ";
-- found_in = {'room14_secondfloor'}
score=false;
after_Take=function(s)
ifnots.scorethen
mp.score=mp.score+1;
end;
_'piramidekey'.score=true;
returnfalse;
end;
}
obj{
-"круглый ключ, ключ|ригельный ключ";
nam="circlekey";
description="Круглый ключ. Толстый стальной ригельный. Сантиметров шестнадцать в длину. Увесистый.";
pr"Справа от него стальная дверь, скрывшаяся в стене. ";
end
p[[Справа от зеркала — женский манекен.]];
if_"room14_carpet".moving==truethen
p[[На полу лежит свёрнутый роскошный персидский ковёр.]];
if_"room14_drawer".moving==truethen
p"На пластине в центре пола стоит комод. На комоде стоит стеклянная витрина.";
else
p"В центре пола находится пластина.";
end
else
if_"room14_drawer".moving==truethen
p[[На полу лежит роскошный персидский ковёр, на котором стоит комод. На комоде стоит стеклянная витрина.]];
else
p[[На полу лежит роскошный персидский ковёр.]];
end
end
if_"room14_glove".seen==falsethen
p"Кажется, из-под ковра что-то торчит.";
else
p"Из-под ковра торчит перчатка горничной.";
end
p[[Недалеко от зеркала на стене]];
if_"room14_plan".seen==falsethen
p'какая-то схема.';
else
p'план комнаты.^ На востоке, судя по схеме, должна быть спальня. А на западе — таинственная комната. Внизу на первом этаже — зал. А лестница в конце коридора ведёт наверх, на чердак.';
end
end;
before_Attack=function(s)
p"Ты не собираешься ничего ломать в доме тёти. Конечно, ты немного ей завидуешь, но не настолько.";
end;
before_Walk=function(s,ev)
if_"room14_dress".wornthen
return"Ты не можешь разгуливать по дому в чужом платье. Тем более, в таком неудобном.";
description="Стальная напольная вешалка, ножки которой надёжно прикручены к полу.";
scope={};
before_Exam=function(s)
_"room14_wardrobe".scope:add("room14_wardrobe1");
returnfalse
end;
}:attr'scenery'
obj{
-"ножки, ножки вешалки";
nam="room14_wardrobe1";
description="Ножки cтальной напольной вешалки, надёжно прикрученные к полу.";
}:attr'scenery'
--"дверь"
obj{
-"деревянная дверь, дверь";
nam="room14_door";
description="Массивная деревянная дверь. Что удивительно: нет ни дверной ручки, ни замочной скважины.";
['before_Walk,Enter']=function(s)
p"Деревянная дверь заперта. В неё невозможно войти."
end
}:attr'scenery'
obj{
-"стальная дверь, дверь";
nam="room14_door1";
seen=false;
description="Прямоугольный лист металла, встроенный в стену. Нет ни дверной ручки, ни петель, ни замочной скважины. Лишь форма напоминает, что это массивная стальная дверь.";
before_Exam=function(s)
if_"room14_hole".door==truethen
p"Стальная дверь полностью скрылась в стене."
else
returnfalse
end
end;
['before_Walk,Enter']=function(s)
if_"room14_hole".door==truethen
p"Стальная дверь полностью скрылась в стене. В неё невозможно войти."
else
p"Стальная дверь заперта. В неё невозможно войти."
description="Кроме изображённой на нём схемы листок бумаги более ничем не примечателен.";
Exam=function(s)
if_"room14_plan".seen~=truethen
returnfalse
else
p"Кроме изображённой на нём схемы листок бумаги более ничем не примечателен.";
end
end;
}:attr"scenery"
obj{
-"стекло";
nam="room14_glass";
description="Обычное прозрачное стекло, за которым находится план комнаты.";
}:attr"scenery"
obj{
-"грубоватые штрихи, штрихи, старые штрихи, полустёртые штрихи, старые полустёртые штрихи| выцветшие чернила, чернила, синие чернила";
nam="room14_ink";
description="Старые полустёртые штрихи, нанесённые синими чернилами. Ничего интересного.";
}:attr"scenery"
-- СПАЛЬНЯ
obj{
-"картина";
nam="room14_picture";
description="Портрет молодой тёти Агаты и её мужа. Обнявшись, они стоят в комнате рядом с зеркалом. Тетя Агата в платье, а её муж в строгом фраке. Кажется, они выглядят счастливыми. Наверное, портрет был сделан вскоре после их свадьбы.";
seen=false;
before_Exam=function(s)
_"room14_picture".seen=true;
returnfalse
end;
}:attr"scenery"
-- Одежда
obj{
-"платье|вечернее платье";
nam="room14_dress";
--description = "Тёмно-синее лаконичное вечернее платье прямого покроя с отдельными кружевными элементами на рукавах и глубоким вырезом. Идеально подчеркнёт женственные формы, которых у тебя нет.";
p"Тёмно-синее лаконичное вечернее платье прямого покроя с отдельными кружевными элементами на рукавах и глубоким вырезом. Идеально подчеркнёт женственные формы, которых у тебя нет.";
end
end;
--, w:noun'вн'
before_Wear=function(s,w)
-- if w ~= "" then
-- p("Судя по размерам, платье для этого не предназначено.");
p"Старинное декоративное зеркало во всю стену с деревянной рамой, инкрустированной драгоценными камнями. В одном из узоров на раме зеркала ты увидела небольшую коричневую кнопку, которую не было видно издали.";
else
p"Старинное декоративное зеркало во всю стену с рамой, инкрустированной драгоценными камнями. В одном из узоров на раме зеркала ты увидела небольшую коричневую кнопку, которую не было видно издали.";
description="Высокий манекен с внешностью красивой обнажённой девушки, чем-то отдалённо напоминающей тётю в молодости. Руки скрещены на груди, ноги сдвинуты и крепко стоят на стальной подставке.";
scope={};
before_Exam=function(s)
_"room14_dummy".scope:add("room14_hands");
_"room14_dummy".scope:add("room14_chest");
_"room14_dummy".scope:add("room14_rack");
_"room14_dummy".scope:add("room14_legs");
p[[Высокий манекен с внешностью красивой обнажённой девушки, чем-то отдалённо напоминающей тётю в молодости. ]];
if_"room14_door1".seen~=truethen
pr[[Руки скрещены на груди, ноги сдвинуты и крепко стоят на стальной подставке.]];
else
pr[[Руки манекена, совсем не прикрывают обнажённую грудь. Ноги манекена раздвинуты в стороны.]];
_"room14_secondfloor".obj:add("room14_hole");
end
end;
}:attr'scenery, ~animate'
obj{
-"руки| руки манекена | тонкие руки";
nam="room14_hands";
before_Exam=function(s)
if_"room14_door1".seen~=truethen
p[[Руки манекена, скрещенные на груди.]];
else
p[[Тонкие руки манекена, совсем не прикрывающие обнажённую грудь.]];
description=[[Стальная подставка, на которой твёрдо стоит манекен. Судя по всему, она надёжно прикреплена к полу и её не сдвинуть с места.]];
}:attr'scenery'
obj{
-"ноги| ноги манекена | нога | нога манекена";
nam="room14_legs";
before_Exam=function(s)
if_"room14_door1".seen~=truethen
p[[Плотно сдвинутые ноги манекена.]];
elseif_"room14_hole".door==truethen
p[[Ноги манекена, раздвинутые в стороны. Между ног манекена вставлен круглый ригельный ключ.]];
else
p[[Ноги манекена, раздвинутые в стороны. Между ног манекена, вместо ожидаемого зрелища, ты увидела скрытое ранее круглое отверстие, напоминающее замочную скважину.]];
description="Роскошный персидский ковёр с длинным ворсом, занимающий половину коридора. Мягкий, полностью заглушающий шаги, в отличии от паркета.";
moving=false;
scope={};
['before_Take,Push,Pull,Turn']=function(s)
if_"room14_drawer".moving==truethen
p"Ковёр невозможно сдвинуть, пока на нём стоит тяжёлый комод";
else
if_"room14_carpet".moving==falsethen
p"Попробовав поднять ковёр, ты поняла, что он слишком тяжёлый, чтобы переместить его, но, откинув край ковра, ты увидела на полу посреди коридора квадратную пластину. А рядом с пластиной — грязную перчатку горничной.";
_"room14_carpet".scope:add("room14_glove");
_"room14_carpet".moving=true;
_"room14_glove".seen=true;
_"room14_secondfloor".scope:add("room14_plate");
_"room14_secondfloor".obj:add("room14_plate");
else
p"Ковёр слишком тяжёлый, чтобы его перемещать, поэтому ты просто расправила край ковра на полу. Теперь ничто здесь не напоминает о твоих похождениях.";
p"Длинная атласная перчатка, судя по всему, из костюма горничной. Когда-то была чёрной, но теперь вся покрыта пылью и какими-то белыми пятнами. У тёти разве была горничная?";
description="Стены, отделанные бордовой венецианской штукатуркой, имитирующей узоры яшмы. Безумно дорого. Такое ты видела только в модном журнале в статье о дворцах венецианских дожей. Сколько же денег получила тётя после смерти мужа?";
}:attr'scenery'
obj{
-"пластина, напольная пластина";
nam="room14_plate";
description=function(s)
if_"room14_plate":empty()then
p"Напольная деревянная квадратная пластина. На ней изображена какая-то девушка с весами, на которых стоят пустые бокалы.";
mp:content(s);
else
p"Напольная деревянная квадратная пластина. На ней изображена какая-то девушка с весами, на которых стоят пустые бокалы.";
mp:content(s);
p"Сейчас пластина нажата.";
end
end;
dsc=function(s)
p(description);
content(s);
end;
-- before_Receive = function(s,w)
-- p("Ты положила ", w:noun"вн", " на пластину.");
-- return false
-- end;
before_Any=function(s)
if_"room14_carpet".moving==falsethen
returnp"Но пластина сейчас под ковром.";
else
returnfalse
end
end;
['before_Enter,Walk']=function(s)
if_"room14_drawer".moving==falsethen
p"Ты встала на пластину. Пластина нажалась, но ничего больше не произошло. Возможно, здесь нужен другой вес. ^Ты сошла с пластины.";
else
p"На пластину невозможно встать, всю её поверхность занял комод.";
end
end;
before_Push=function(s)
p"Ты нажала на квадратную пластину, но ничего не произошло. Судя по всему, пластина реагирует на вес предметов.";
end;
--before_Receive = function(s)
-- if _"room14_plate":empty() == false then
-- p("Но на пластине уже находится ", mp:content(_"room14_plate"), ".");
p"Внезапно раздался щелчок, и пластина нажалась. Похоже, вес предметов оказался подходящим. Из стены рядом с деревянной дверью выдвинулась небольшая платформа.";
end
end;
capacity=1;
}:attr'supporter,scenery,enterable,transparent'
obj{
-"платформа|деревянная платформа|углубление";
nam="room14_platform";
description="Небольшая толстая деревянная платформа в центре которой есть треугольное углубление.";
p("Ты положила ",w:noun'вн'," на платформу. Но",w:noun'им'," совершенно не подходит для треугольного углубления, поэтому ты забрала ",w:noun'вн'," обратно.");
p"Большая папка с бумагами, документами и газетными вырезками. Просмотрев бумаги, ты поняла, что они посвящены какому-то преступлению. Возможно, надо поискать что-то в документах.";
return
else
localfound
forx,yinipairs(s.topic)do
ifw:find(y)then
found=x;
break
end
end
iffound==nilthen
p"Большая папка с бумагами, документами и газетными вырезками. Просмотрев бумаги, ты поняла, что они посвящены какому-то преступлению. Возможно, надо поискать в документах что-то другое.";
return
end
iffound==1orfound==2orfound==27then
p"Ты поискала в документах упоминания мужа тёти и обнаружила, что его звали Тимо Йокинен, и он был миллиардером из Финляндии. ";
p"Согласно папке, преступление произошло спустя несколько лет после свадьбы тёти. Судя по свидетельствам тёти, убийца вечером проникла в их спальню и попыталась застрелить тётю. Но вместо неё погиб муж, пытаясь отобрать пистолет убийцы. После чего убийца покончила с собой на пороге комнаты. О внебрачной связи своего мужа тётя узнала только после того, как на пороге их спальни появилась горничная.";
elseiffound==10then
p'Ты нашла в документах следующее: "...никаких следов выстрела на руках горничной не осталось, поскольку она была в длинных атласных перчатках..."';
elseiffound==11orfound==12orfound==13then
p"Судя по отчёту, горничную Веронику наняли сразу после свадьбы для того, чтобы вести хозяйство большого особняка. Мотивом преступления стала ревность, которую убийца испытывала к жене своего любовника. После неудачной попытки убийства, находясь в состоянии аффекта от смерти любовника, она покончила с собой.";
p"Пролистав папку, ты обнаружила, что орудием преступления являлся пистолет Beretta 92FS, с позолоченной рукояткой, который принадлежал жертве и хранился в его кабинете.";
p'В бумагах написано: "...cледов борьбы не обнаружено. На потерпевшей обнаружена кровь мужа. На убийце нет никаких следов, кроме следов от выстрела в сердце при самоубийстве..."';
p"Ты нашла краткие заметки ручкой в блокноте из которых следовало, что тётя собиралась подарить особняк тебе.";
elseiffound>=23andfound<=26then
p"Тётя оказалась единственной наследницей своего мужа, упомянутой в завещании, и получила гигантское состояние, в том числе особняк.";
elseiffound==28then
p[[Вотчтонашлосьвзаметках:"...cтаринный фамильный особняк семейства Йокиненов был построен в девятнадцатом веке, представляет собой настоящее чудо инженерной мысли. Состоит из восемнадцати комнат.