Блестящая поверхность и объяснение загадки - #4

This commit is contained in:
Alexander Yakovlev 2021-01-07 20:32:10 +07:00
parent 1736db5ff2
commit f25a6bd42a
Signed by: oreolek
GPG key ID: 1CDC4B7820C93BD3
6 changed files with 94 additions and 5 deletions

View file

@ -2,6 +2,9 @@
### История изменений ### История изменений
#### 1.2.8 - 7 января
Проясняем вопрос статуи
#### 1.2.7 - 5 января #### 1.2.7 - 5 января
Багфиксы Багфиксы

View file

@ -29,6 +29,7 @@
юг юг
осмотреть дверь осмотреть дверь
вырезать Т из щита вырезать Т из щита
вырезать П из лампы
осмотреть дверь осмотреть дверь
вырезать И из щи вырезать И из щи
съесть щи съесть щи

View file

@ -181,6 +181,9 @@ function mp:SetShoot(what, letter)
end) end)
end end
if newTarget then if newTarget then
if (newTarget:has 'animate') then
return 'Вырезатель не может создать живое существо ('.. newTarget:noun('вн').. ') из неживого предмета ('.. what:noun('рд')..').';
end
what:remove(); what:remove();
put(newTarget, here()); put(newTarget, here());
p('Вы стреляете в '.. what:noun'вн' ..', и '..what:it('им')..' '); p('Вы стреляете в '.. what:noun'вн' ..', и '..what:it('им')..' ');

View file

@ -1,5 +1,5 @@
--$Name: Полёт в Петербург$ --$Name: Полёт в Петербург$
--$Version: 1.2.7$ --$Version: 1.2.8$
--$Author:Александр Яковлев$ --$Author:Александр Яковлев$
require "fmt" require "fmt"

View file

@ -81,10 +81,10 @@ obj {
scored = false; scored = false;
nam = 'patina'; nam = 'patina';
oncreate = function() oncreate = function()
p 'Блестящие поверхности вокруг начинают покрываться слоем патины.' p 'Статуя на верхней полке покрывается слоем патины.'
here().dirty = true; here().dirty = true;
end; end;
description = 'Слой грязно-серой патины лежит на всём вокруг вас.'; description = 'Слой зеленоватой патины грязнит бронзовую статую.';
}: dict { }: dict {
['патина/рд'] = 'патины'; ['патина/рд'] = 'патины';
['патина/дт'] = 'патине'; ['патина/дт'] = 'патине';
@ -98,6 +98,12 @@ obj {
canonical = 'пластика'; canonical = 'пластика';
nam = 'platika'; nam = 'platika';
description = 'Кусок белого пластилина. Он довольно бесполезен без духового шкафа.'; description = 'Кусок белого пластилина. Он довольно бесполезен без духового шкафа.';
}: dict {
['пластика/рд'] = 'пластики';
['пластика/дт'] = 'пластике';
['пластика/вн'] = 'пластику';
['пластика/тв'] = 'пластикой';
['пластика/пр'] = 'пластике';
} }
obj { obj {
@ -116,3 +122,31 @@ obj {
['булава/тв'] = 'булавой'; ['булава/тв'] = 'булавой';
['булава/пр'] = 'булаве'; ['булава/пр'] = 'булаве';
} }
obj {
-"лама/жр";
nam = 'lam';
canonical = 'лама';
}: dict {
['лама/рд'] = 'ламы';
['лама/дт'] = 'ламе';
['лама/вн'] = 'ламу';
['лама/тв'] = 'ламой';
['лама/пр'] = 'ламе';
}:attr 'animate'
obj {
-"лапа/жр";
nam = 'paw';
canonical = 'лапа';
description = 'Искусственная лапка, свяленная из какой-то серой шерсти.';
oncreate = function()
pn 'Без источника света комната погружается во тьму. (Чтобы отменить последний ход, напишите ОТМЕНА.)'
end;
}: dict {
['лапа/рд'] = 'лапы';
['лапа/дт'] = 'лапе';
['лапа/вн'] = 'лапу';
['лапа/тв'] = 'лапой';
['лапа/пр'] = 'лапе';
}

View file

@ -21,6 +21,7 @@ room {
s.seen = true; s.seen = true;
end end
p 'Это маленькая комнатка, мягко подсвеченная светильниками внутри стен. В углу стоит робот-уборщик. Единственная дверь на юге закрыта ярким голубым щитом.'; p 'Это маленькая комнатка, мягко подсвеченная светильниками внутри стен. В углу стоит робот-уборщик. Единственная дверь на юге закрыта ярким голубым щитом.';
p 'На одной из верхних полок стоит бронзовая статуя.';
end; end;
cant_go = function(s, to) cant_go = function(s, to)
if to == 's_to' then if to == 's_to' then
@ -46,7 +47,7 @@ room {
'polka', 'polka',
'wall' 'wall'
}; };
} }:attr '~light'
obj { obj {
-"щит/мр"; -"щит/мр";
@ -152,10 +153,11 @@ obj {
pn '«ВНИМАНИЕ. ОБНАРУЖЕНА ГРЯЗЬ. НЕОБХОДИМА ИНСПЕКЦИЯ.»'; pn '«ВНИМАНИЕ. ОБНАРУЖЕНА ГРЯЗЬ. НЕОБХОДИМА ИНСПЕКЦИЯ.»';
p 'Робот срывается с места и начинает генеральную уборку.'; p 'Робот срывается с места и начинает генеральную уборку.';
if here():srch('patina') then if here():srch('patina') then
pn 'Он протирает всё вокруг, тщательно счищая слой патины.' pn 'Он тщательно протирает статую Котошелкопряда, счищая слой патины. Наверное, это просто суеверие, но {#you} {#g/чувствуешь,чувствуете} благословление удачи.'
if not _'patina'.scored then if not _'patina'.scored then
_'patina'.scored = true _'patina'.scored = true
givepoint(); givepoint();
_('patina'):remove();
end end
end end
here().dirty = false; here().dirty = false;
@ -416,3 +418,49 @@ obj {
['гнездо/тв'] = 'гнездом'; ['гнездо/тв'] = 'гнездом';
['гнездо/пр'] = 'гнездо'; ['гнездо/пр'] = 'гнездо';
}:attr 'scenery,static' }:attr 'scenery,static'
obj {
-"статуя,бронзовая статуя/жр|котошелкопряд/мр";
nam = 'statue';
canonical = 'котошелкопряд';
found_in = 'pantry';
description = function()
p [[
Бронзовая статуя Котошелкопряда.
{#You} {#g/вспоминаешь,вспоминаете} примету, что если потереть его голову между кошачьими ушами,
он подарит большую удачу.
]];
if here():srch('patina') then
p 'Статуя покрыта зеленоватым слоем патины.';
end
end;
before_Rub = 'Слишком высоко. Не достать.';
before_Touch = 'Слишком высоко. Не достать.';
}: dict {
['статуя/рд'] = 'статуи';
['статуя/дт'] = 'статуе';
['статуя/вн'] = 'статую';
['статуя/тв'] = 'статуей';
['статуя/пр'] = 'статуе';
['котошелкопряд/рд'] = 'котошелкопряда';
['котошелкопряд/дт'] = 'котошелкопряду';
['котошелкопряд/вн'] = 'котошелкопряда';
['котошелкопряд/тв'] = 'котошелкопрядом';
['котошелкопряд/пр'] = 'котошелкопряде';
}:attr 'scenery,static'
obj {
-"лампа/жр";
nam = 'lamp';
canonical = 'лампа';
found_in = 'pantry';
description = 'Светодиодная лампочка над дверью.';
before_Touch = 'Слишком высоко. Не достать.';
before_Rub = 'Слишком высоко. Не достать.';
}: dict {
['лампа/рд'] = 'лампы';
['лампа/дт'] = 'лампе';
['лампа/вн'] = 'лампу';
['лампа/тв'] = 'лампой';
['лампа/пр'] = 'лампе';
}:attr 'scenery,static,light'