2021-05-04 14:35:02 +03:00
-- Доступное пространство имён для объектов - все имена объектов должны начинаться с "room15_" или "bedroom_"
-- В с е описания можно менять
-- Задача: Игрок должен найти в локации предмет statuetka
-- Спальня находится на втором этаже
room {
nam = " room15_bedroom " ;
book_read = false ;
title = " Спальня " ;
2021-05-08 01:34:11 +03:00
dsc = function ( s )
if pl : where ( ) ^ ' room15_void ' then
return " Тебя окружает пустота. Через окно ты видишь просторную спальню. " ;
else
return " Просторная комната с единственным окном. Выход из комнаты находится на западе. " ;
end ;
end ;
2021-05-04 14:35:02 +03:00
w_to = ' room14_secondfloor ' ;
2021-08-25 23:26:14 +03:00
out_to = ' room14_secondfloor ' ;
2021-05-04 14:35:02 +03:00
awake = false ;
complete = false ;
lampon = false ;
[ " before_Push,Pull,Turn,SwitchOn,SwitchOff,Take,Insert,Remove,Eat,Taste,Drink,Rub,Touch,Kiss,Open,Close " ] = function ( s , w )
if pl : where ( ) ^ ' room15_bedroom ' or w == nil or w : where ( ) == nil or pl : where ( ) ^ ' room15_bed ' and w ^ ' room15_lamp ' or pl : where ( ) ^ ' room15_void ' and w : where ( ) ^ ' room15_void ' then
return false ;
else
pr ' Отсюда это сделать не получится. ' ;
end ;
end ;
before_Drop = function ( s , w )
if pl : where ( ) ^ ' room15_void ' then
pr ' Т е б е это не кажется хорошей идеей. ' ;
return ;
end ;
return false ;
end ;
[ " after_Push,Pull,Turn " ] = ' Это так не работает. ' ;
before_Walk = function ( s , w )
if pl : where ( ) ^ ' room15_bedroom ' then
2021-10-04 21:31:32 +03:00
if ( not w ^ ' @w_to ' and not w ^ ' @out_to ' ) or s.awake then
2021-05-04 14:35:02 +03:00
return false ;
else
pr ' З а порогом ты не видишь ничего, кроме пустоты. Ты не решаешься сделать шаг. Уж не {$fmt em|спишь} ли ты?' ;
end ;
else
pr ' Отсюда не получится. ' ;
end ;
end ;
after_Listen = function ( s , w )
if w ~= nil then
return false ;
end ;
if _ ' room15_tv ' : has ( ' on ' ) then
pr ( _ ' room15_tv ' : sound ( ) ) ;
else
pr " Негромкое тикание часов отчетливо слышно в тишине. " ;
if not s.awake then
pr " Из-под кровати доносятся непонятные звуки. " ;
end ;
end ;
end ;
after_Smell = function ( s , w )
if w ~= nil then
return false ;
end ;
if w == nil then
return " Пахнет свежевыглаженным постельным бельем. " ;
else
return false ;
end ;
end ;
before_Open = function ( s , w )
if w ~= nil then
return false ;
end ;
if not pl : where ( ) ^ ' room15_bedroom ' and not have ( w ) then
return ' Придется встать с кровати. ' ;
else
return false ;
end ;
end ;
before_Exam = function ( s , o )
if o ^ ' @w_to ' then
pr ' З а порогом ты не видишь ничего, кроме пустоты. Уж не {$fmt em|спишь} ли ты?'
else
return false ;
end ;
end ;
after_Wait = function ( s )
if s.awake then
return " Проходит немного времени. Н е происходит ничего не обычного. " ;
else
return " Проходит немного времени. Кажется, рисунок на обоях слегка изменился. " ;
end ;
end ;
2021-06-15 21:05:20 +03:00
after_Dig = function ( s , w )
if w == nil then
return " Т е б е слишком дорог твой маникюр, чтобы делать это руками. " ;
end ;
return false ;
end ;
2021-05-04 14:35:02 +03:00
after_Jump = " Пол жалобно поскрипывает после твоего приземления. " ;
after_Think = function ( s )
if s.awake and not s.complete then
pr " Думать вредно -- голова болит. Лучше {$fmt em|поспать}. " ;
else
pr " Думать вредно -- голова болит. Лучше поесть. " ;
end ;
end ;
before_Sing = function ( s )
2021-06-14 23:08:36 +03:00
if not s.awake and _ ' room15_tv ' : has ( ' on ' ) then
2021-05-04 14:35:02 +03:00
pr ' Твой голос сливается с голосами из телевизора и оттого ужасающее пение становится еще более жутким. ' ;
end ;
2021-06-14 23:08:36 +03:00
return false ;
2021-05-04 14:35:02 +03:00
end ;
after_Sleep = function ( s )
if pl : where ( ) ^ ' room15_bed ' then
_ ' room15_spider ' : disable ( ) ;
if s.complete then
pr ' Прошлый сон все еще слишком свеж в твоей памяти, чтобы погружаться в новый. ' ;
elseif _ ' room15_curtain ' : has ( ' open ' ) then
pr ' Свет из окна не дает тебе заснуть. ' ;
elseif _ ' room15_tv ' : has ( ' luminous ' ) then
pr ' Телевизор не дает тебе заснуть. ' ;
elseif s.awake then
s.awake = false ;
s.lampon = _ ' room15_lamp ' : has ( ' light ' ) ;
remove ( ' room15_sky ' , ' room15_bedroom ' ) ;
put ( ' room15_void ' , ' room15_bedroom ' ) ;
pr ' Ты быстро погружаешься в сон. Через какое-то время ты просыпаешься от ощущения, что в комнате что-то не так. ' ;
pl : need_scene ( true ) ;
else
pr ( ' Ты долго ворочаешься, но никак не можешь уснуть. тебе кажется, что кто-то есть под кроватью! ' ) ;
end ;
else
pr " Лучше делать это в кровати. " ;
end ;
end ;
after_Wake = function ( s )
if s.awake then
return false ;
end ;
s.awake = true ;
walk ( ' room15_bed ' ) ;
-- Восстанавливаем состояние комнаты как было -- вне сна все равно трогать ничего нельзя.
_ ' room15_window ' . rope = false ;
_ ' room15_curtain ' : attr ( ' ~open ' ) ;
_ ' room15_window ' : attr ( ' ~open ' ) ;
local cabinet = lookup ( ' #room15_in_cabinet ' , ' room15_cabinet ' ) ;
cabinet : attr ( ' ~open ' ) ;
if s.lampon then
_ ' room15_lamp ' : attr ( ' on,light ' ) ;
else
_ ' room15_lamp ' : attr ( ' ~on,~light ' ) ;
end ;
2021-08-25 23:26:14 +03:00
_ ' room15_cabinet ' : attr ( ' ~luminous ' ) ;
_ ' #room15_at_cabinet ' : attr ( ' ~luminous ' ) ;
2021-05-04 14:35:02 +03:00
_ ' room15_tv ' : attr ( ' ~on,~luminous ' ) ;
_ ' room15_rope ' : attr ( ' ~static ' ) ;
_ ' room15_void ' : disable ( ) ;
_ ' room15_spider ' : disable ( ) ;
remove ( ' room15_book ' , where ( ' room15_book ' ) ) ;
remove ( ' room15_linen ' , where ( ' room15_linen ' ) ) ;
remove ( ' room15_void ' , ' room15_bedroom ' ) ;
remove ( ' room15_shreds ' , where ( ' room15_shreds ' ) ) ;
remove ( ' room15_rope ' , where ( ' room15_rope ' ) ) ;
remove ( ' room15_book ' , where ( ' room15_book ' ) ) ;
if not s.complete then
remove ( ' statuetka ' , where ( ' statuetka ' ) ) ;
put ( ' statuetka ' , ' room15_void ' ) ;
pr ' Осознав, что спишь, ты довольно быстро просыпаешься. Однако, ты чувствуешь, что готова провалиться обратно в {$fmt em|сон}. ' ;
end ;
put ( ' room15_linen ' , cabinet ) ;
put ( ' room15_book ' , cabinet ) ;
put ( ' room15_sky ' , ' room15_bedroom ' ) ;
pl : need_scene ( true ) ;
end ;
after_Yes = ' Борода. ' ;
after_No = ' Бородатый дед. ' ;
obj = { ' room15_walls ' , ' room15_curtain ' , ' room15_window ' , ' room15_bed ' , ' room15_spider ' , ' room15_table ' , ' room15_lamp ' , ' room15_cabinet ' , ' room15_void ' } ;
} : attr ( ' ~light ' )
obj {
- " небо на обоях,небо|стены/жр|обои|панели|облака " ;
nam = ' room15_walls ' ;
dsc = ' Стены обиты панелями снизу, а сверху оклеены обоями с облачками. ' ;
before_Exam = function ( s )
if _ ' room15_bedroom ' . awake then
return ' Нижняя часть стен обита деревянными панелями, верхняя же оклеена обоями, на которых изображено голубое небо с облаками. ' ;
else
return ' Нижняя часть стен обита деревянными панелями, верхняя же оклеена обоями, на которых изображено голубое небо с облаками. Т е б е кажется, что облака медленно движутся вдоль стен. ' ;
end ;
end ;
before_Smell = ' Стены ничем не пахнут. ' ;
[ " before_Taste,Eat " ] = ' Ты предпочла бы съесть что-нибудь... Более съедобное. ' ;
before_Touch = ' Ты не испытываешь никаких необычных ощущений. ' ;
[ " before_Push,Pull,Turn,Rub,Tear,Tie,Cut,Attack,Kiss " ] = ' Вот придешь к с е б е домой -- там делай с о своими стенами все, что захочешь. ' ;
[ " before_Talk,Tell,Answer " ] = ' Стены молчат в ответ. ' ;
[ " before_Ask,AskFor,AskTo " ] = ' Бесполезно. Стены не отвечают на твои слова. ' ;
before_Blow = function ( s )
if _ ' room15_bedroom ' . awake then
pr ' Ты дуешь на стены. Ничего не происходит. ' ;
else
pr ' Ты дуешь на стены и облака разбегаются в стороны от потока воздуха. ' ;
end ;
end ;
before_Take = ' Халк крушить! Халк ломать! Халк надорвался... ' ;
} : attr ( ' static ' ) ;
obj {
- " занавески|занавеска|шторы " ;
nam = ' room15_curtain ' ;
description = function ( s )
if s : has ( ' open ' ) then
pr ' Тяжелые занавески из плотной ткани темно-с е р о г о цвета. Сейчас они раздвинуты. ' ;
else
pr ' Тяжелые занавески из плотной ткани темно-с е р о г о цвета. Сейчас они закрыты. ' ;
end ;
end ;
after_Open = function ( s )
if _ ' room15_bedroom ' . awake then
s : attr ( ' light ' ) ;
enable ( ' room15_sky ' ) ;
pr ' Ты открываешь занавески. Яркий свет ослепляет тебя после полумрака комнаты. ' ;
else
enable ( ' room15_void ' ) ;
pr ' Ты открываешь занавески. З а окном ты видишь непроглядную пустоту. ' ;
mp : content ( _ ' room15_void ' ) ;
end ;
end ;
before_Close = function ( s )
if s : has ( ' ~open ' ) then
return false ;
end ;
if _ ' room15_window ' : has ( ' open ' ) then
pr ' Створки окна мешают закрыть занавески. ' ;
else
s : attr ( ' ~light,~open ' ) ;
disable ( ' room15_void ' ) ;
disable ( ' room15_sky ' ) ;
pr ' Ты закрываешь занавески. ' ;
end ;
end ;
before_Smell = ' Занавески пахнут пылью. ' ;
before_Taste = ' Ткань безвкусная. ' ;
before_Eat = function ( s )
if _ ' room15_bedroom ' . awake then
pr ' Тетушке не понравится, если ты съешь занавески. ' ;
else
2021-06-15 21:05:20 +03:00
pr ' Жуется, конечно, приятно, но съесть целую занавеску? Н у уж нет. ' ;
2021-05-04 14:35:02 +03:00
end ;
end ;
before_Touch = ' Плотная ткань немного жесткая, но довольно приятная на ощупь. ' ;
[ " before_Push,Pull,Turn,Rub,Tear,Tie,Cut,Attack,Kiss " ] = ' Остановись! Занавески ни в чем не виноваты! ' ;
[ " before_Talk,Tell,Answer " ] = ' Занавески ничем не выдают заинтересованности в разговоре с тобой. ' ;
[ " before_Ask,AskFor,AskTo " ] = ' Увы, занавески отказываются исполнять твою просьбу. Объяснить свой отказ они тоже не изволят. ' ;
before_Blow = ' Ты дуешь на занавески, но тяжелая ткань почти не шевелится. ' ;
before_Take = ' Занавески тебе не понадобятся. ' ;
} : attr ( ' concealed,openable,luminous,static ' ) ;
obj {
- " окно " ;
nam = ' room15_window ' ;
rope = false ;
dsc = function ( s )
if _ ' room15_curtain ' : has ( ' open ' ) then
if _ ' room15_bedroom ' . awake then
pr ' З а окном ты видишь голубое небо. ' ;
else
2021-05-08 01:34:11 +03:00
if not pl : where ( ) ^ ' room15_void ' then
pr ' З а окном ты видишь непроглядную пустоту. ' ;
mp : content ( _ ' room15_void ' ) ;
end ;
2021-05-04 14:35:02 +03:00
end ;
else
pr ' Окно закрыто плотными занавесками. ' ;
end ;
end ;
description = function ( s )
if _ ' room15_curtain ' : has ( ' open ' ) then
if _ ' room15_bedroom ' . awake then
pr ' З а окном ты видишь голубое небо. ' ;
else
pr ' З а окном ничего нет. Совсем ничего. Одна пустота. ' ;
if s : has ( ' open ' ) then
pr ' Окно открыто. '
end ;
mp : content ( _ ' room15_void ' ) ;
if s.rope then
pr ' К подоконнику прикреплена веревка из обрывков простыней. ' ;
end ;
end ;
else
pr ' Окно закрыто занавесками. ' ;
end ;
end ;
before_Open = function ( s )
if not _ ' room15_curtain ' : has ( ' open ' ) then
pr ' {$fmt em|(сначала открыть занавески)}^ ' ;
mp : subaction ( ' Open ' , _ ' room15_curtain ' ) ;
end ;
if not s : has ( ' open ' ) then
pr ' Ты открываешь окно. ' ;
if _ ' room15_bedroom ' . awake then
pr ' В комнату врывается порыв свежего прохладного воздуха. ' ;
end ;
s : attr ( ' open ' ) ;
else
return false ;
end ;
end ;
before_Close = function ( s )
if s.rope then
pr ' Веревка мешает закрыть окно. ' ;
return
end ;
return false ;
end ;
before_Smell = ' Окно ничем не пахнет. ' ;
before_Taste = ' Дерево ты еще могла бы погрызть, но краска вряд ли скажется положительно на твоем желудке. А уж стекло -- и подавно. ' ;
before_Eat = ' Дерево ты еще могла бы погрызть, но краска вряд ли скажется положительно на твоем желудке. А уж стекло -- и подавно. ' ;
before_Touch = ' Окно гладкое на ощупь. ' ;
[ " before_Push,Pull,Turn,Rub,Tear,Tie,Cut,Attack,Kiss " ] = ' Ты решаешь не портить окно в доме тётушки. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = ' Окно игнорирует тебя. ' ;
before_Blow = ' Окно запотевает от твоего дыхания. ' ;
before_Take = ' Халк крушить! Халк ломать! Халк надорвался... ' ;
before_Enter = function ( s )
if _ ' room15_curtain ' : has ( ' ~open ' ) then
pr ' Сначала стоит открыть занавески. ' ;
return ;
end ;
2021-05-08 01:34:11 +03:00
2021-08-25 23:26:14 +03:00
if not _ ' room15_bedroom ' . awake then
if pl : where ( ) ^ ' room15_void ' then
mp : xaction ( ' Exit ' , _ ' room15_void ' ) ;
else
mp : xaction ( ' Enter ' , _ ' room15_void ' ) ;
end ;
2021-05-08 01:34:11 +03:00
else
2021-08-25 23:26:14 +03:00
pr ' Выпрыгнуть из окна? Нет уж. ' ;
2021-05-08 01:34:11 +03:00
end ;
2021-05-04 14:35:02 +03:00
end ;
before_Receive = function ( s )
if _ ' room15_curtain ' : has ( ' ~open ' ) then
pr ' Сначала стоит открыть занавески. ' ;
return ;
end ;
mp : xaction ( ' Receive ' , _ ' room15_void ' ) ;
end ;
} : attr ( ' openable,static,container,luminous ' ) ;
obj {
2021-08-25 23:26:14 +03:00
- " кровать,постель " ;
2021-05-04 14:35:02 +03:00
nam = ' room15_bed ' ;
2021-10-04 21:31:32 +03:00
title = ' в кровати ' ;
2021-05-04 14:35:02 +03:00
dsc = ' У стены стоит большая кровать. ' ;
description = function ( s )
2021-06-14 23:08:36 +03:00
pr ' Большая кровать, застеленная покрывалом. ' ;
2021-05-04 14:35:02 +03:00
mp : content ( s ) ;
end ;
inside_dsc = ' Ты лежишь на большой кровати. ' ;
after_Enter = ' Ты ложишься на кровать. ' ;
before_LookUnder = function ( s )
if mp : thedark ( ) then
pr ' Ничего не видно. ' ;
return ;
elseif pl : where ( ) ^ ' room15_bedroom ' then
enable ( ' room15_spider ' ) ;
if _ ' room15_bedroom ' . awake then
pr ' Под кроватью живет паучок. ' ;
else
pr ' Из-под кровати на тебя своими восемью глазищами смотрит огромный паук. ' ;
end ;
return ;
elseif pl : where ( ) ^ ' room15_bed ' then
pr ' Сначала придется слезть с кровати. ' ;
return ;
elseif pl : where ( ) ^ ' room15_void ' then
pr ' Отсюда ничего не видно. ' ;
return ;
end ;
return false ;
end ;
2021-06-14 23:08:36 +03:00
before_Smell = ' Пахнет тканью, деревом и пылью. ' ;
2021-05-04 14:35:02 +03:00
before_Taste = ' Ты аккуратно кусаешь угол кровати. Н а вкус как дерево. ' ;
2021-06-14 23:08:36 +03:00
before_Eat = ' Долго рассматривая кровать, ты так и не решила, с чего начать е е есть. ' ;
2021-05-04 14:35:02 +03:00
[ " before_Touch,Rub " ] = function ( s )
if _ ' room15_bedroom ' . awake and not _ ' room15_bedroom ' . complete then
pr ' Постель мягкая и приятная на ощупь. Так и тянет {$fmt em|спать}. ' ;
else
pr ' Постель мягкая и приятная на ощупь. Так и тянет спать. ' ;
end ;
end ;
[ " before_Tear,Tie,Cut,Attack " ] = ' Почему тебе так нравится все ломать? ' ;
before_Kiss = ' Кровать не реагирует на твое проявление чувств. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = ' Кровать не отвечает на твои потуги заговорить. ' ;
before_Blow = ' Ты подула на кровать, но ничего не изменилось. ' ;
before_Take = ' Кровать слишком тяжелая. ' ;
obj = {
2021-06-14 23:08:36 +03:00
' room15_bedspread '
2021-05-04 14:35:02 +03:00
} ;
} : attr ( ' enterable,supporter,static,luminous ' ) ;
obj {
2021-06-14 23:08:36 +03:00
- " покрывало " ;
nam = ' room15_bedspread ' ;
description = ' Мягкое бархатное покрывало лежит на кровати. ' ;
before_Take = ' Что ты задумала? ' ;
before_Smell = ' Пахнет тканью и пылью. ' ;
before_Tear = ' Тётя Агата будет очень недовольна, если ты это сделаешь. ' ;
before_Tie = ' Ты не понимаешь, для чего тебе это. ' ;
[ " before_Taste,Eat " ] = ' Ты пытаешься отгрызть уголок покрывала, но у тебя ничего не получается. Т е б е остается лишь надеяться, что тетушка не заметит погрызенное покрывало. ' ;
[ " before_Rub,Touch " ] = ' Покрывало гладкое и мягкое. ' ;
before_Cut = ' Ты не думаешь, что это хорошая идея. ' ;
before_Attack = ' Ты с о всей силы бьешь покрывало. Оно мягкое, все стерпит. ' ;
2021-05-04 14:35:02 +03:00
before_Blow = ' Ты дуешь на ткань. ' ;
2021-06-14 23:08:36 +03:00
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Покрывалу очень интересно, правда. Продолжай. " ;
before_Kiss = " Покрывалу, должно быть, очень приятно. Н о оно никак не реагирует. " ;
2021-05-04 14:35:02 +03:00
} : attr ( ' concealed ' ) ;
obj {
- " паук,паучок " ;
nam = ' room15_spider ' ;
description = function ( s )
if _ ' room15_bedroom ' . awake then
pr ' Маленький безобидный паучок мирно плетёт свою маленькую безобидную паутинку. ' ;
else
pr ' Огромный голодный паук! Как только он уместился там?! ' ;
end ;
end ;
before_Take = function ( s )
if _ ' room15_bedroom ' . awake then
pr ' Паучок никуда с тобой не пойдет. ' ;
else
pr ' Паук хищно шипит, открыв пасть и желание притрагиваться к нему резко пропадает. ' ;
end ;
end ;
[ " before_Smell,Taste,Eat " ] = ' Т е б е почему-то очень не хочется это делать. ' ;
[ " before_Push,Pull,Turn,Rub,Touch,Tear,Tie,Cut " ] = function ( s )
if _ ' room15_bedroom ' . awake then
return ' Ты опасаешься раздавить паучка и решаешь ничего не предпринимать. ' ;
else
return ' Паук щелкает пастью, и ты поспешно отдергиваешь руки. ' ;
end ;
end ;
[ " before_Talk,Tell,Answer " ] = function ( s )
if _ ' room15_bedroom ' . awake then
pr ' Паучок молча слушает тебя. ' ;
else
pr ' Паук молча выслушивает тебя, а потом делает резкий выпад в твою сторону. Ты еле успеваешь отпрыгнуть, а паук возвращается на свое место. ' ;
end ;
end ;
[ " before_Ask,AskFor,AskTo " ] = function ( s )
if _ ' room15_bedroom ' . awake then
pr ' Паучок не хочет тебе помогать. ' ;
else
pr ' Паук молча выслушивает тебя, а потом делает резкий выпад в твою сторону. Ты еле успеваешь отпрыгнуть, а паук возвращается на свое место. Ты понимаешь, что он не станет делать то, что тебе нужно. ' ;
end ;
end ;
before_Attack = function ( s )
if _ ' room15_bedroom ' . awake then
return ' Разве можно так поступать с маленьким безобидным паучком?! ' ;
else
return ' Н е стоит лезть на рожон. ' ;
end ;
end ;
before_Blow = function ( s )
if _ ' room15_bedroom ' . awake then
return ' Ты опасаешься навредить паучку и решаешь этого не делать. ' ;
else
return ' Ты опасаешься разозлить паука и решаешь этого не делать. ' ;
end ;
end ;
2021-06-14 23:08:36 +03:00
life_Show = function ( s , w )
print ( ' FUG ' ) ;
if _ ' room15_bedroom ' . awake then
return ' Паучок старательно делает вид, что ему интересно. ' ;
else
return ' Паук недовольно шипит на ' .. w : noun ( ' вн ' ) .. ' . ' ;
end ;
end ;
2021-05-04 14:35:02 +03:00
before_Kiss = ' Чего?! ' ;
before_Listen = function ( s )
if _ ' room15_bedroom ' . awake then
return false ;
else
return ' Паук шипит, щелкает пастью и скрежещет своими лапами по полу. ' ;
end ;
end ;
2021-06-14 23:08:36 +03:00
} : attr ( ' static,animate ' ) : disable ( ) ;
2021-05-04 14:35:02 +03:00
obj {
- " стол,столик|столешница " ;
nam = ' room15_table ' ;
dsc = function ( s )
pr ' Рядом с ней расположен маленький столик. ' ;
mp : content ( s ) ;
end ;
description = function ( s )
pr ' Небольшой круглый столик с дубовой столешницей. ' ;
mp : content ( s ) ;
end ;
obj = {
' room15_clock ' ;
' room15_vase ' ;
} ;
before_Take = ' Ты слишком опасаешься уронить предметы, стоящие на столе, чтобы сделать это. ' ;
before_Smell = ' Стол слабо пахнет деревом. ' ;
[ " before_Taste,Eat " ] = ' Ты не в настроении грызть дерево. ' ;
before_Rub = ' Ты зачем-то протираешь ладонью стол. Пыли на поверхности почти нет. ' ;
before_Touch = " Стол гладкий и приятный на ощупь " ;
[ " before_Tear,Tie,Cut " ] = " Как ты с е б е это представляешь? " ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Ты в своем уме, с мебелью разговаривать? " ;
before_Attack = " Тётушка расстроится, если я сломаю е е столик. " ;
before_Blow = " Ты дуешь на стол. Ничего не происходит. " ;
before_Kiss = ' Стол никак не реагирует, а ты чего ждала? ' ;
} : attr ( ' supporter,static ' ) ;
obj {
- " часы|стрелка/жр,но|стрелки/жр,но,мн " ;
dsc = ' Н а краешке стола стоят часы. ' ;
nam = ' room15_clock ' ;
description = ' Старинные бронзовые часы с позолотой показывают примерно полчетвертого. Секундная стрелка размеренно движется по кругу. ' ;
[ " before_Take,Push,Pull,Turn,Rub,Touch,Attack,Kiss " ] = ' Ты не решаешься трогать столь редкую и дорогую вещь. ' ;
before_Smell = ' Часы пахнут стариной. ' ;
[ " before_Taste,Eat " ] = ' Это не пойдет на пользу твоим зубам. ' ;
[ " before_Tear,Tie,Cut " ] = " Нет. Просто нет. " ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Часы выслушивают тебя и продолжают медленно отсчитывать секунды. " ;
before_Blow = " Ты дуешь на стол. Ничего не происходит. " ;
before_Listen = ' Тикание часов отчетливо слышно в тишине. ' ;
} : attr ( ' static ' ) ;
obj {
- " ваза|цветы,тюльпаны|цветок,тюльпан " ;
nam = ' room15_vase ' ;
dsc = ' В центре стола стоит ваза с цветами. ' ;
description = ' Хрустальная ваза. В вазе стоят несколько благоухающих тюльпанов. ' ;
before_Take = ' Цветам и здесь хорошо. Н е надо их трогать. ' ;
before_Smell = ' Ты вдыхаешь восхитительный аромат тюльпанов. Тётя Агата очень любит эти цветы. ' ;
[ " before_Taste,Eat " ] = ' Ты вспоминаешь как однажды в детстве съела несколько горьких, неприятных на вкус лепестков и решаешь не повторять этот опыт. До сих пор удивляешься, как что-то настолько невкусное может так приятно пахнуть. ' ;
[ " before_Push,Pull,Turn,Rub,Touch,Attack,Tear,Tie,Cut,Blow " ] = ' Ты даже боишься с е б е представить, что будет, если ты разобьешь вазу. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Цветы остаются безучастными к твоим мольбам. " ;
before_Kiss = " Может, лучше не надо? " ;
} : attr ( ' static ' ) ;
obj {
- " настенная лампа,лампа|светильник|ночник " ;
nam = ' room15_lamp ' ;
dsc = function ( s )
if s : has ( ' on ' ) then
pr ' Н а стене над кроватью висит зажженная лампа. ' ;
else
pr ' Н а стене над кроватью висит лампа. ' ;
end ;
end ;
description = ' Настенный светильник с о светло-бежевым абажуром. ' ;
before_Take = ' Лампе и здесь хорошо. ' ;
before_Smell = ' Лампа ничем не пахнет. Странно. ' ;
[ " before_Taste,Eat " ] = ' Ты долго раздумываешь над вкусовыми качествами пластиковых абажуров и стеклянных ламп, и в итоге решаешь не пробовать ни то ни другое. ' ;
2021-06-14 23:08:36 +03:00
before_Touch = function ( s )
if s : has ( ' light ' ) then
pr ' Лампа слишком горячая! ' ;
else
pr ' Светильник теплый на ощупь. '
end ;
end ;
[ " before_Push,Pull,Turn,Rub,Attack,Tear,Tie,Cut " ] = ' Да сколько можно все вокруг ломать? ' ;
2021-05-04 14:35:02 +03:00
before_Blow = ' Ты дуешь на светильник. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Ваза остается безучастной к твоим мольбам. " ;
before_Kiss = " Может, лучше не надо? " ;
before_SwitchOn = function ( s )
s : attr ( ' light ' ) ;
return false ;
end ;
before_SwitchOff = function ( s )
s : attr ( ' ~light ' ) ;
return false ;
end ;
} : attr ( ' static,on,light,switchable,luminous ' ) ;
obj {
- " тумбочка,тумба|ящик|ящики " ;
dsc = function ( s )
pr ' У стены напротив кровати стоит массивная тумбочка. ' ;
mp : content ( s ) ;
end ;
nam = ' room15_cabinet ' ;
before_Receive = function ( s , w )
if mp.xevent == ' Insert ' then
if _ ' #room15_in_cabinet ' : hasnt ' open ' then
p " Тумбочка закрыта. "
return
end
move ( w , ' #room15_in_cabinet ' )
p ( " Ты кладешь " , w : noun ' вн ' , " в тумбочку. " )
elseif mp.xevent == ' PutOn ' then
move ( w , ' #room15_at_cabinet ' )
p ( " Ты кладешь " , w : noun ' вн ' , " на тумбочку. " )
else
return false
end
end ;
before_Open = function ( s )
if _ ' room15_bedroom ' . awake then
pr ' Там нет ничего интересного. ' ;
else
return mp : xaction ( ' Open ' , _ ' #room15_in_cabinet ' ) ;
end ;
end ;
before_Close = function ( s )
return mp : xaction ( ' Close ' , _ ' #room15_in_cabinet ' ) ;
end ;
description = function ( s )
pr ' Внушительных размеров тумбочка с ящиками. ' ;
mp : content ( s ) ;
end ;
obj = {
obj {
- " тумбочка " ;
nam = ' #room15_in_cabinet ' ;
dsc = function ( s )
mp : content ( s )
end ;
obj = {
' room15_linen ' ;
' room15_book ' ;
} ;
} : attr ( ' container,openable,static ' ) ;
obj {
- " тумбочка " ;
nam = ' #room15_at_cabinet ' ;
dsc = function ( s )
mp : content ( s )
end ;
obj = {
' room15_tv ' ;
} ;
} : attr ( ' supporter,static ' ) ;
} ;
before_Take = ' Тумбочка слишком тяжелая. ' ;
before_Smell = ' Тумбочка пахнет мебелью. ' ;
[ " before_Taste,Eat " ] = ' Обойдя тумбочку с о всех сторон, ты так и не понимаешь, с какой стороны е е можно удобно укусить. ' ;
[ " before_Push,Pull,Turn " ] = ' Тумбочка слишком тяжелая. ' ;
[ " before_Rub,Touch,Attack,Tear,Tie,Cut " ] = ' Тебя бабушка не учила не ломать вещи когда ты в гостях? ' ;
before_Blow = ' Ты сдуваешь пыль с тумбочки. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Тумбочке не интересно тебя слушать. " ;
before_Kiss = " Тумбочке приятно. Нет, правда. " ;
} : attr ( ' container,transparent,open,static ' ) ;
obj {
2021-06-14 23:08:36 +03:00
- " простыня,простынь " ;
2021-05-04 14:35:02 +03:00
nam = ' room15_linen ' ;
2021-06-14 23:08:36 +03:00
description = ' Чистая простыня. Она кажется достаточно прочной, чтобы выдержать твой вес. ' ;
2021-05-04 14:35:02 +03:00
before_Take = function ( s )
if _ ' room15_book ' : disabled ( ) then
_ ' room15_book ' : enable ( ) ;
2021-06-14 23:08:36 +03:00
pr ' Под простынёй лежит книга! ' ;
2021-05-04 14:35:02 +03:00
end ;
return false ;
end ;
2021-06-14 23:08:36 +03:00
tearApart = function ( s )
remove ( ' room15_linen ' , where ( ' room15_linen ' ) ) ;
mp.score = mp.score + 1
take ( ' room15_shreds ' ) ;
pr ' Ты разрываешь простыню, теперь у тебя есть обрывки ткани. ' ;
if _ ' room15_book ' : disabled ( ) then
_ ' room15_book ' : enable ( ) ;
pr ' Под простынёй лежит книга! ' ;
end ;
end ;
2021-05-04 14:35:02 +03:00
before_Smell = ' Пахнет чистой постелью. ' ;
before_Tear = function ( s )
2021-10-18 20:33:00 +03:00
if _ ' room15_bedroom ' . awake then
2021-05-04 14:35:02 +03:00
pr ' Тётя Агата будет очень недовольна, если ты это сделаешь. ' ;
else
2021-06-14 23:08:36 +03:00
s : tearApart ( ) ;
2021-05-04 14:35:02 +03:00
end ;
end ;
before_Tie = function ( s , w )
2021-10-18 20:33:00 +03:00
if _ ' room15_bedroom ' . awake then
2021-05-04 14:35:02 +03:00
pr ' Ты не понимаешь, для чего тебе это. ' ;
elseif w == nil or w ^ ' room15_window ' then
2021-06-14 23:08:36 +03:00
pr ' Так ничего не получится. Она слишком короткая и чересчур толстая. ' ;
elseif w ^ ' statuetka ' then
pr ' Статуэтка слишком далеко. '
2021-05-04 14:35:02 +03:00
else
pr ' Ты не понимаешь, для чего тебе это. ' ;
end ;
end ;
2021-06-14 23:08:36 +03:00
[ " before_Taste,Eat " ] = ' Ты отгрызаешь уголок простыни, надеясь, что тётушка не заметит этого. Ткань приятно жуется и почти безвкусная. ' ;
[ " before_Rub,Touch " ] = ' Простыня шершавая, но очень приятная на ощупь. ' ;
before_Cut = function ( s , w )
2021-10-18 20:33:00 +03:00
if _ ' room15_bedroom ' . awake then
2021-06-14 23:08:36 +03:00
pr ' Тётя Агата будет очень недовольна, если ты это сделаешь. ' ;
else
if w == nil then
return ' Твои руки недостаточно острые. ' ;
elseif w ^ ' dagger ' then
s : tearApart ( ) ;
else
return ' Простыня не режется. Возможно стоит резать е е чем-то другим. ' ;
end ;
end ;
end ;
before_Attack = ' Ты с о всей силы бьешь простыню. Она мягкая, все стерпит. ' ;
2021-05-04 14:35:02 +03:00
before_Blow = ' Ты дуешь на ткань. ' ;
2021-06-14 23:08:36 +03:00
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Простыне очень интересно, правда. Продолжай. " ;
before_Kiss = " Простыня никак не реагируют. " ;
2021-05-04 14:35:02 +03:00
} ;
obj {
2021-10-04 21:31:32 +03:00
- " обрывки простыни,обрывки ткани,обрывки|простыня,простынь|ткань " ;
2021-05-04 14:35:02 +03:00
nam = ' room15_shreds ' ;
description = ' Прочные и длинные полосы из простыней. ' ;
before_Tie = function ( s , w )
if w == nil then
remove ( ' room15_shreds ' , where ( ' room15_linen ' ) ) ;
take ( ' room15_rope ' ) ;
mp.score = mp.score + 1
pr ' Ты связываешь обрывки между собой. Получается достаточно прочная веревка. ' ;
elseif w ^ ' room15_window ' then
pr ' Ты сомневаешься, что их длины будет достаточно. ' ;
else
return false ;
end ;
end ;
before_Smell = ' Обрывки ткани все еще пахнут чистыми простынями ' ;
[ " before_Taste,Eat " ] = ' Ты сгрызаешь немного ткани. Ткань легко жуется и почти безвкусная. ' ;
[ " before_Push,Pull,Turn " ] = ' Это так не работает. ' ;
[ " before_Rub,Touch " ] = ' Простыня шершавая, но очень приятная на ощупь. ' ;
[ " before_Attack " ] = ' В этом уже нет никакого смысла. ' ;
[ " before_Tear,Cut " ] = ' Ткань уже достаточно рваная. ' ;
before_Blow = ' Ты дуешь на ткань. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Сперва изодрала в клочья, а теперь заговорить пытаешься? " ;
before_Kiss = " Нет, простыни тебя не простят. Даже так. " ;
}
obj {
2021-10-07 20:59:59 +03:00
- " веревка|простыня,простынь|обрывки простыни,обрывки ткани,обрывки|ткань " ;
2021-05-04 14:35:02 +03:00
nam = ' room15_rope ' ;
description = ' Веревка связанная из обрывков простыней. Достаточно прочная, чтобы выдержать тебя. ' ;
before_Tie = function ( s , o )
if o ~= nil then
if o ^ ' room15_window ' then
if _ ' room15_window ' : has ( ' open ' ) then
remove ( ' room15_rope ' , me ( ) ) ;
s : attr ( ' static ' ) ;
if _ ' room15_window ' . rope == false then
mp.score = mp.score + 1 ;
end ;
_ ' room15_window ' . rope = true ;
put ( ' room15_rope ' , ' room15_window ' ) ;
pr ' Ты прикрепляешь веревку к окну. Теперь ты можешь {$fmt em|войти в пустоту}. ' ;
else
pr ' Сначала придется открыть окно. ' ;
end ;
else
pr ' Сюда это крепить незачем. ' ;
end ;
else
pr ' Это надо {$fmt em|куда-то} прикрепить. ' ;
end ;
end ;
before_Smell = ' Обрывки ткани все еще пахнут чистыми простынями ' ;
[ " before_Taste,Eat " ] = ' Ты сгрызаешь немного ткани. Ткань легко жуется и почти безвкусная. ' ;
[ " before_Push,Pull,Turn " ] = ' Это так не работает. ' ;
[ " before_Rub,Touch " ] = ' Простыня шершавая, но очень приятная на ощупь. ' ;
[ " before_Attack " ] = ' В этом уже нет никакого смысла. ' ;
[ " before_Tear,Cut " ] = ' Ткань уже достаточно рваная. ' ;
before_Blow = ' Ты дуешь на ткань. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Сперва изодрала в клочья, а теперь заговорить пытаешься? " ;
before_Kiss = " Нет, простыни тебя не простят. Даже так. " ;
before_Take = function ( s )
if s : has ( ' static ' ) then
pr ' Ты долго возишься, но так и не можешь отвязать веревку. Зато теперь ты точно уверена, что она не отвяжется сама. ' ;
return ;
end ;
return false ;
end ;
}
obj {
- " узорчатая книга,книга,книжка,обложка|переплет|узоры на переплете,узоры " ;
nam = ' room15_book ' ;
description = ' "В с е и ничто" С . Оминус. Книга очень старая, потрепанная. Переплет украшен позолоченными узорами, местами истершимися от времени -- должно быть очень ценная и редкая. Странно, что тётушка не оставила е е среди других книг, а спрятала здесь. Ты бегло пролистываешь страницы. Какая-то оккультная чушь про пустоту, окружающую наш мир. ' ;
after_Consult = function ( s , o )
2021-08-25 23:26:14 +03:00
if not _ ' room15_bedroom ' . awake and ( o : find ( " пусто " ) or o : find ( " ничем " ) or o : find ( " ничт " ) or o : find ( " ничём " ) ) then
2021-05-04 14:35:02 +03:00
pr [ [
В к н и г е п о д р о б н о о п и с а н с п о с о б о т к р ы т и я п о р т а л а в п у с т о т у . В с е ч т о д л я э т о г о н е о б х о д и м о -- любой проем, закрытый прозрачным материалом. После завершения ритуала прозрачный материал можно убрать. Далее на много страниц описывается ритуал открытия портала и способы взаимодействия с пустотой. ]];
else
pr ' Т е б е некогда читать всякую муть. ' ;
end ;
end ;
before_Smell = ' Пахнет старой книгой. ' ;
[ " before_Taste,Eat " ] = ' Вряд ли это все еще вкусно. ' ;
[ " before_Rub " ] = ' Хм, узоры не стираются. ' ;
[ " before_Touch " ] = ' Ты проводишь пальцем по гладкому переплету. ' ;
[ " before_Attack,Tear,Tie,Cut " ] = ' Вандализм -- это нормально. Н о только в своем собственном жилище. ' ;
before_Blow = ' Ты сдуваешь пыль с о страниц. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = " Ты побаиваешься изливать душу старой зловещей книге. " ;
before_Kiss = " Вот эту книгу?! Ты серьезно? " ;
} : disable ( ) ;
obj {
- " телевизор,телек,телик,экран|тв/мр " ;
nam = ' room15_tv ' ;
dsc = function ( s )
if s : has ( ' on ' ) then
pr ' Н а тумбочке стоит включенный телевизор. ' ;
else
pr ' Н а тумбочке стоит телевизор. ' ;
end ;
end ;
description = function ( s )
pr ' Старинный телевизор в идеальном состоянии. ' ;
if s : has ( ' on ' ) then
2021-10-18 20:33:00 +03:00
if not _ ' room15_bedroom ' . awake then
2021-05-04 14:35:02 +03:00
pr ( s : sound ( ) ) ;
end ;
pr ( s : vision ( ) ) ;
end ;
end ;
2021-06-14 23:08:36 +03:00
[ " before_Take,Pull,Push " ] = ' Он слишком тяжелый. ' ;
2021-05-04 14:35:02 +03:00
after_SwitchOn = function ( s )
2021-08-25 23:26:14 +03:00
_ ' room15_cabinet ' : attr ( ' luminous ' ) ;
_ ' #room15_at_cabinet ' : attr ( ' luminous ' ) ;
2021-05-04 14:35:02 +03:00
s : attr ( ' luminous ' ) ;
2021-10-18 20:33:00 +03:00
if _ ' room15_bedroom ' . awake then
2021-05-04 14:35:02 +03:00
pr ( ' Ты включаешь телевизор. ' .. s : vision ( ) ) ;
else
pr ( ' Ты включаешь телевизор. ' .. s : sound ( ) .. s : vision ( ) ) ;
end ;
end ;
after_SwitchOff = function ( s )
2021-08-25 23:26:14 +03:00
_ ' room15_cabinet ' : attr ( ' ~luminous ' ) ;
_ ' #room15_at_cabinet ' : attr ( ' ~luminous ' ) ;
2021-05-04 14:35:02 +03:00
s : attr ( ' ~luminous ' ) ;
2021-10-18 20:33:00 +03:00
if _ ' room15_bedroom ' . awake then
2021-05-04 14:35:02 +03:00
pr ' Ты выключаешь телевизор. ' ;
else
pr ' Ты выключаешь телевизор. Странные звуки прекращаются. ' ;
end ;
end ;
sound = function ( s )
2021-10-18 20:33:00 +03:00
if _ ' room15_bedroom ' . awake then
2021-05-04 14:35:02 +03:00
return ' По телевизору идет какой-то фильм про гангстеров. ' ;
else
return ' Сквозь помехи ты слышишь шум ветра и тихий вкрадчивый шепот. Среди прочих, многократно повторяется слово "{$fmt em|окно}". ' ;
end ;
end ;
vision = function ( s )
if _ ' room15_bedroom ' . awake then
return ' Н а экране идет какой-то фильм про гангстеров. ' ;
elseif _ ' room15_curtain ' : has ( ' open ' ) then
2021-06-14 23:08:36 +03:00
if pl : where ( ) ^ ' room15_void ' then
return ' Н а экране с трудом различимо окно, через которое видна какая-то комната очень похожая на спальню тетушки. ' ;
else
return ' Н а экране с трудом различимо окно, через которое видна какая-то комната. Да там же ты! ' ;
end ;
2021-05-04 14:35:02 +03:00
else
return ' Н а экране с трудом различимо какое-то окно, закрытое шторами. ' ;
end ;
end ;
before_Smell = ' Пахнет старой электроникой. ' ;
[ " before_Taste,Eat " ] = ' Вряд ли это вкусно. ' ;
[ " before_Rub,Touch " ] = function ( s )
if s : has ( ' on ' ) then
2021-05-08 01:35:43 +03:00
pr ' Экран гладкий и приятный на ощупь. Ты чувствуешь легкое покалывание в пальцах от наэлектризованного кинескопа. ' ;
2021-05-04 14:35:02 +03:00
else
pr ' Экран гладкий и приятный на ощупь. ' ;
end ;
end ;
[ " before_Attack,Tear,Tie,Cut " ] = ' Это же антикварный телевизор! Как ты можешь с ним так поступить? ' ;
before_Blow = ' Ты сдуваешь пыль с экрана. ' ;
[ " before_Talk,Tell,Answer,Ask,AskFor,AskTo " ] = function ( s )
if s : has ( ' on ' ) then
2021-10-18 20:33:00 +03:00
if _ ' room15_bedroom ' . awake then
2021-05-04 14:35:02 +03:00
local phrs = {
' Из телевизора доносится: "И что дальше?" ' ;
' Из телевизора доносится: "Что мне с этого будет?" ' ;
' Из телевизора доносится: "Может мне будет проще тебя подстрелить?" ' ;
' Из телевизора доносится: "Сходи проспись, Винни!" ' ;
} ;
pr ( phrs [ rnd ( # phrs ) ] ) ;
else
pr ' Зловещий шепот с экрана продолжается. ' ;
end ;
else
pr ' Телевизор молчит в ответ. ' ;
end ;
end ;
before_Kiss = " Что если тебя током ударит? " ;
before_Take = ' Н е трогай, уронишь!' ;
} : attr ( ' switchable,static,on ' ) ;
obj {
- " пустота,тьма,темнота|ничто,ничто за окном|ничего,ничего за окном " ;
nam = ' room15_void ' ;
2021-10-04 21:31:32 +03:00
title = ' в пустоте ' ;
2021-05-04 14:35:02 +03:00
before_Enter = function ( s )
if _ ' room15_window ' : has ( ' ~open ' ) then
pr ' Ты не можешь пройти через закрытое окно. ' ;
return ;
end ;
if _ ' room15_window ' . rope then
walk ( ' room15_void ' ) ;
pr ' Держась за веревку, ты аккуратно погружаешься в ничто. Гравитация здесь отсутствует и ты повисаешь в пустоте. ' ;
else
pr ' Ты не решаешься шагнуть в пустоту. Т е б е нужно будет как-то вернуться. ' ;
end ;
end ;
before_Receive = ' Т е б е это не кажется хорошей идеей. ' ;
before_LetGo = function ( s , o )
if pl : where ( ) ^ ' room15_void ' then
return false ;
elseif _ ' room15_window ' : has ( ' open ' ) then
pr ( o : Noun ' им ' .. ' слишком далеко. Руками не дотянуться. ' ) ;
else
pr ( ' Сначала придется открыть окно. ' ) ;
end ;
end ;
2021-06-14 23:08:36 +03:00
after_LetGo = function ( s , o )
if o ^ ' statuetka ' and have ( ' statuetka ' ) then
2021-08-21 14:17:03 +03:00
if not _ ' room15_bedroom ' . complete and not _ ' statuetka ' . score then
2021-08-20 11:40:02 +03:00
mp.score = mp.score + 1 ;
2021-08-21 14:17:03 +03:00
_ ' statuetka ' . score = true ;
2021-08-20 11:40:02 +03:00
end ;
2021-05-04 14:35:02 +03:00
_ ' room15_bedroom ' . complete = true ;
2021-06-15 21:05:20 +03:00
pr ( ' Едва схватив ' .. _ ' statuetka ' : noun ' вн ' .. ' , ты ощущаешь, что начинаешь падать. Веревка выскальзывает из твоей руки и ты просыпаешься от сильного удара. Ты лежишь на кровати, крепко сжимая в руке ' .. _ ' statuetka ' : noun ' вн ' .. ' . ' ) ;
2021-05-04 14:35:02 +03:00
mp : subaction ( ' Wake ' ) ;
2021-06-14 23:08:36 +03:00
return
2021-05-04 14:35:02 +03:00
end ;
2021-06-14 23:08:36 +03:00
return false ;
end ;
before_Exam = function ( s )
pr ' Там пусто. ' ;
mp : content ( s ) ;
2021-05-04 14:35:02 +03:00
end ;
obj = {
' statuetka ' ;
} ;
before_Take = ' Как ты с е б е это представляешь? ' ;
} : attr ( ' container,enterable,transparent,open,static,concealed,luminous ' ) : disable ( ) ;
obj {
- " небо за окном,небо|свет " ;
nam = ' room15_sky ' ;
description = ' Чистое голубое небо. Ни облачка. ' ;
before_Any = function ( s , event )
if event == ' Exam ' then
return false ;
end ;
pr ' Н е б о слишком далеко. ' ;
end ;
} : attr ( ' concealed,static,luminous ' ) : disable ( ) ;
-- Менять нельзя!!!! Это не ваш предмет!!! Вы не знаете как он выглядит, е г о придумает другой автор!!!
--obj {
-- -"статуетка";
-- nam = "statuetka";
-- description = "Статуетка.";
--}