mirror of https://github.com/goraph/17rooms.git
commit
035e28237e
29
room10.lua
29
room10.lua
|
@ -253,8 +253,15 @@ obj {
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
before_Fill = function(s,w)
|
before_Fill = function(s,w)
|
||||||
if not have('kerosin') then
|
if not w and _'kerosin':access() then
|
||||||
|
mp:check_held(_'kerosin');
|
||||||
|
elseif w then
|
||||||
|
mp:check_held(w);
|
||||||
|
end;
|
||||||
|
if not w and not have('kerosin') then
|
||||||
p "Тебе нечем наполнить лампу!";
|
p "Тебе нечем наполнить лампу!";
|
||||||
|
elseif w and not w^'kerosin' then
|
||||||
|
return false;
|
||||||
else
|
else
|
||||||
_'lamp'.kerosin = 1;
|
_'lamp'.kerosin = 1;
|
||||||
remove ('kerosin');
|
remove ('kerosin');
|
||||||
|
@ -281,7 +288,7 @@ obj {
|
||||||
p "Зажигалка слишком толстая и не влазит в узкое горло керосиновой лампы.";
|
p "Зажигалка слишком толстая и не влазит в узкое горло керосиновой лампы.";
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
before_Rub = "Ты потёрла старую лампу, но ничего не произошло, и никакого джина из неё не вылезла. Попытаться, впрочем, стоило.";
|
before_Rub = "Ты потёрла старую лампу, но ничего не произошло, и никакого джина из неё не вылезло. Попытаться, впрочем, стоило.";
|
||||||
score=false;
|
score=false;
|
||||||
after_Take = function(s)
|
after_Take = function(s)
|
||||||
if not s.score then
|
if not s.score then
|
||||||
|
@ -291,3 +298,21 @@ obj {
|
||||||
return false;
|
return false;
|
||||||
end;
|
end;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
VerbExtend {"#Fill",
|
||||||
|
"в {noun}/вн {noun}/вн : Fill",
|
||||||
|
"~ внутрь {noun}/рд {noun}/вн : Fill",
|
||||||
|
"~ {noun}/вн {noun}/тв : Fill",
|
||||||
|
"~ {noun}/вн в {noun}/вн : Fill reverse",
|
||||||
|
"~ {noun}/вн внутрь {noun}/рд : Fill reverse",
|
||||||
|
"~ {noun}/тв {noun}/вн : Fill reverse"
|
||||||
|
}
|
||||||
|
|
||||||
|
function mp:after_Fill(w,wh)
|
||||||
|
if wh then
|
||||||
|
mp:message 'Fill.FILL2'
|
||||||
|
else
|
||||||
|
mp:message 'Fill.FILL'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
mp.msg.Fill.FILL2 = "Наполнять {#first/вн} {#second/тв} бессмысленно."
|
||||||
|
|
22
room16.lua
22
room16.lua
|
@ -86,7 +86,15 @@ room {
|
||||||
end;
|
end;
|
||||||
return false
|
return false
|
||||||
end;
|
end;
|
||||||
obj = { 'room16_wardrobe','room16_parquet','room16_bookstand','room16_pedestal','room16_slit' };
|
["before_PutOn,Insert"] = function(s, w, i)
|
||||||
|
if i == _'room16_witch' then
|
||||||
|
-- "положить в/на тетю что-то" вызывает "резать тетю чем-то"
|
||||||
|
mp:xaction('Cut', i, w)
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
obj = { 'room16_wardrobe','room16_parquet','room16_bookstand','room16_pedestal','room16_slit','room16_walls' };
|
||||||
-- obj = { 'statuetka','book','dagger','room16_wardrobe','room16_parquet','room16_bookstand','room16_pedestal','room16_slit' };
|
-- obj = { 'statuetka','book','dagger','room16_wardrobe','room16_parquet','room16_bookstand','room16_pedestal','room16_slit' };
|
||||||
--obj = { 'room16_wardrobe','room16_parquet','room16_bookstand','room16_pedestal','room16_slit' };
|
--obj = { 'room16_wardrobe','room16_parquet','room16_bookstand','room16_pedestal','room16_slit' };
|
||||||
}
|
}
|
||||||
|
@ -1444,7 +1452,6 @@ obj {
|
||||||
_'room16_wardrobe':attr 'enterable'
|
_'room16_wardrobe':attr 'enterable'
|
||||||
move(_'room16_witch',_'room16_mystical')
|
move(_'room16_witch',_'room16_mystical')
|
||||||
move(_'room16_wall',_'room16_mystical')
|
move(_'room16_wall',_'room16_mystical')
|
||||||
move(_'room16_walls',_'room16_mystical')
|
|
||||||
DaemonStart 'room16_AI'
|
DaemonStart 'room16_AI'
|
||||||
end;
|
end;
|
||||||
aiturn = function()
|
aiturn = function()
|
||||||
|
@ -1756,6 +1763,9 @@ obj {
|
||||||
before_Answer = function(s)
|
before_Answer = function(s)
|
||||||
p('Разговаривать с тётей, когда она в таком состоянии, бессмысленно.')
|
p('Разговаривать с тётей, когда она в таком состоянии, бессмысленно.')
|
||||||
end;
|
end;
|
||||||
|
["before_Take,Remove,Enter,PutOn,Insert"] = function(s, ev, w)
|
||||||
|
p 'Ты серьёзно?'
|
||||||
|
end;
|
||||||
obj = {
|
obj = {
|
||||||
obj {
|
obj {
|
||||||
-"глаза,глаз*";
|
-"глаза,глаз*";
|
||||||
|
@ -1788,7 +1798,13 @@ obj {
|
||||||
-"стены";
|
-"стены";
|
||||||
nam = 'room16_walls';
|
nam = 'room16_walls';
|
||||||
state = 0;
|
state = 0;
|
||||||
description = 'Стены как стены. Нельзя сказать, что какая-то стена выделяется относительно остальных. Или можно?';
|
description = function(s)
|
||||||
|
if _'room16_mystical'.state == 0 then
|
||||||
|
return 'Стены как стены.';
|
||||||
|
else
|
||||||
|
return 'Стены как стены. Нельзя сказать, что какая-то стена выделяется относительно остальных. Или можно?';
|
||||||
|
end
|
||||||
|
end;
|
||||||
}:attr 'static, scenery'
|
}:attr 'static, scenery'
|
||||||
|
|
||||||
obj {
|
obj {
|
||||||
|
|
21
room4.lua
21
room4.lua
|
@ -33,11 +33,11 @@ room {
|
||||||
title = "Кладовка";
|
title = "Кладовка";
|
||||||
transported = false,
|
transported = false,
|
||||||
dsc = function(s)
|
dsc = function(s)
|
||||||
|
local v = ""
|
||||||
if from() ^ "room4_ostrov" and s:once() then
|
if from() ^ "room4_ostrov" and s:once() then
|
||||||
return "Я увидела своё отражение, стоящее в кладовке. Затем мир покачнулся, и я снова оказалась в тесной комнате."
|
v = "Я увидела своё отражение, стоящее в кладовке. Затем мир покачнулся, и я снова оказалась в тесной комнате.^^"
|
||||||
else
|
|
||||||
return "Тесная неинтересная комната. К западу кухня, на востоке прихожая."
|
|
||||||
end
|
end
|
||||||
|
return v .. "Тесная неинтересная комната. К западу кухня, на востоке прихожая."
|
||||||
end;
|
end;
|
||||||
onenter = function(s)
|
onenter = function(s)
|
||||||
if not s.transported then
|
if not s.transported then
|
||||||
|
@ -50,10 +50,10 @@ room {
|
||||||
end;
|
end;
|
||||||
w_to = "room6_kitchen";
|
w_to = "room6_kitchen";
|
||||||
e_to = function(s)
|
e_to = function(s)
|
||||||
if s:once() then
|
if _'room3_hall'.west == 0 then
|
||||||
p 'Ты толкнула дверь и оказалась в прихожей. Оказывается здесь есть проход! Теперь ходить между помещениями будет куда удобней!';
|
p 'Ты толкнула дверь и оказалась в прихожей. Оказывается, здесь есть проход! Теперь ходить между помещениями будет куда удобней!';
|
||||||
|
_'room3_hall'.west = 1;
|
||||||
end;
|
end;
|
||||||
_'room3_hall'.west = 1;
|
|
||||||
return 'room3_hall';
|
return 'room3_hall';
|
||||||
end;
|
end;
|
||||||
d_to = function(s)
|
d_to = function(s)
|
||||||
|
@ -199,14 +199,13 @@ room {
|
||||||
nam = "room4_ostrov";
|
nam = "room4_ostrov";
|
||||||
title = "За зеркалом";
|
title = "За зеркалом";
|
||||||
dsc = function(s)
|
dsc = function(s)
|
||||||
|
local v = ""
|
||||||
if s:once() then
|
if s:once() then
|
||||||
-- Сообщение при первом посещении комнаты
|
-- Сообщение при первом посещении комнаты
|
||||||
-- {#Me/падеж} вписует ГГ в соответствие с pl.word (задаётся в init() в main3.lua)
|
-- {#Me/падеж} вписует ГГ в соответствие с pl.word (задаётся в init() в main3.lua)
|
||||||
return "Всего лишь мельком я увидела своё отражение в старинном зеркале, и меня завертело, закружило, ослепило... Проморгавшись, я поняла, что оказалась совсем в другом месте."
|
v = "Всего лишь мельком я увидела своё отражение в старинном зеркале, и меня завертело, закружило, ослепило... Проморгавшись, я поняла, что оказалась совсем в другом месте.^^"
|
||||||
else
|
|
||||||
-- При последующих осмотрах/посещениях
|
|
||||||
return "Маленький остров, представляющий собой цветочную поляну, окружённую водой."
|
|
||||||
end
|
end
|
||||||
|
return v .. "Маленький остров, представляющий собой цветочную поляну, окружённую водой."
|
||||||
end;
|
end;
|
||||||
obj = {
|
obj = {
|
||||||
"room4_mirror",
|
"room4_mirror",
|
||||||
|
@ -332,7 +331,7 @@ room {
|
||||||
before_Touch = "Немного влажная, будто не так давно шёл дождь.";
|
before_Touch = "Немного влажная, будто не так давно шёл дождь.";
|
||||||
}:attr "scenery",
|
}:attr "scenery",
|
||||||
obj {
|
obj {
|
||||||
-"человеческие кости|кости|человеческие останки|останки";
|
-"человеческие кости|кости/мн,но|человеческие останки|останки";
|
||||||
description = "Множество человеческих костей. Да это могильник!";
|
description = "Множество человеческих костей. Да это могильник!";
|
||||||
before_Take = "Фу, я не буду к этому прикасаться.";
|
before_Take = "Фу, я не буду к этому прикасаться.";
|
||||||
before_Smell = "Я не буду это нюхать!";
|
before_Smell = "Я не буду это нюхать!";
|
||||||
|
|
|
@ -45,7 +45,7 @@ room {
|
||||||
end;
|
end;
|
||||||
before_Yes = "Ты хочешь ответить, но старик не услышит тебя.";
|
before_Yes = "Ты хочешь ответить, но старик не услышит тебя.";
|
||||||
before_No = "Ты хочешь ответить, но старик не услышит тебя.";
|
before_No = "Ты хочешь ответить, но старик не услышит тебя.";
|
||||||
obj = {'kitchen_main_table', 'kitchen_grass', 'kitchen_round_table', 'kitchen_basket', 'kitchen_lift', 'kitchen_door_north', 'kitchen_door_west', 'kitchen_button_up', 'kitchen_button_down', 'kitchen_old_man', 'kitchen_window', 'kitchen_forest', 'kitchen_walls', 'kitchen_ceiling', 'kitchen_pec', 'kitchen_cat'};
|
obj = {'kitchen_main_table', 'kitchen_grass', 'kitchen_round_table', 'kitchen_lift', 'kitchen_door_north', 'kitchen_door_west', 'kitchen_button_up', 'kitchen_button_down', 'kitchen_old_man', 'kitchen_window', 'kitchen_forest', 'kitchen_walls', 'kitchen_ceiling', 'kitchen_pec', 'kitchen_cat'};
|
||||||
}
|
}
|
||||||
|
|
||||||
room {
|
room {
|
||||||
|
@ -245,7 +245,7 @@ obj {
|
||||||
}:attr 'static,container,openable,closed';
|
}:attr 'static,container,openable,closed';
|
||||||
|
|
||||||
obj {
|
obj {
|
||||||
-"буханка чёрного хлеба,буханка|хлеб";
|
-"буханка чёрного хлеба,буханка|чёрный хлеб,хлеб/но";
|
||||||
nam = "kitchen_bread";
|
nam = "kitchen_bread";
|
||||||
was_cut = false;
|
was_cut = false;
|
||||||
description = function(s)
|
description = function(s)
|
||||||
|
@ -300,6 +300,9 @@ obj {
|
||||||
mp.score=mp.score+1;
|
mp.score=mp.score+1;
|
||||||
end
|
end
|
||||||
return true;
|
return true;
|
||||||
|
else
|
||||||
|
p "Так ты бутерброд не приготовишь.";
|
||||||
|
return true;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
before_Cut = "Кусок хлеба уже отрезан.";
|
before_Cut = "Кусок хлеба уже отрезан.";
|
||||||
|
|
10
room7.lua
10
room7.lua
|
@ -153,13 +153,13 @@ obj {
|
||||||
description = "Кайзерка с маком - муляж изготовленный из папье-маше. Не очень-то и похожа на настоящую.";
|
description = "Кайзерка с маком - муляж изготовленный из папье-маше. Не очень-то и похожа на настоящую.";
|
||||||
before_Smell = "Пахнет краской, лаком и растворителем.";
|
before_Smell = "Пахнет краской, лаком и растворителем.";
|
||||||
before_Tear = function(s)
|
before_Tear = function(s)
|
||||||
p "Ты разрываешь булочку из папье-маше и обнаруживаешь внутри предмет.";
|
s:tearApart("разрываешь");
|
||||||
move ('longkey',pl);
|
|
||||||
mp.score=mp.score+1;
|
|
||||||
remove(s);
|
|
||||||
end;
|
end;
|
||||||
before_Attack = function(s)
|
before_Attack = function(s)
|
||||||
p "Ты разламываешь булочку из папье-маше и обнаруживаешь внутри предмет.";
|
s:tearApart("разламываешь");
|
||||||
|
end;
|
||||||
|
tearApart = function(s, t)
|
||||||
|
p ("Ты " .. t .. " булочку из папье-маше и обнаруживаешь внутри " .. _'longkey':noun'вн' .. ".");
|
||||||
move ('longkey',pl);
|
move ('longkey',pl);
|
||||||
mp.score=mp.score+1;
|
mp.score=mp.score+1;
|
||||||
remove(s);
|
remove(s);
|
||||||
|
|
Loading…
Reference in New Issue