новый раунд тестов!

This commit is contained in:
Alexander Yakovlev 2021-01-06 00:11:11 +07:00
parent 55cd5d2b18
commit 74963ea4af
Signed by: oreolek
GPG key ID: 1CDC4B7820C93BD3
5 changed files with 70 additions and 19 deletions

View file

@ -21,6 +21,15 @@
вырезать В из рукава вырезать В из рукава
вставить руку в робота вставить руку в робота
включить робота включить робота
выключить робота
включить робота
вырезать К из булавки вырезать К из булавки
вырезать Т из щита выйти
юг юг
осмотреть дверь
вырезать Т из щита
осмотреть дверь
вырезать И из щи
съесть щи
выйти
открыть дверь

View file

@ -10,18 +10,22 @@ mp.msg.Open.OPEN = "{#You} {#g/открываешь,открываете} {#firs
mp.msg.Open.CLOSE = "{#You} {#g/закрываешь,закрываете} {#first/вн}." mp.msg.Open.CLOSE = "{#You} {#g/закрываешь,закрываете} {#first/вн}."
mp.msg.Take.HAVE = "У {#you/вн} и так {#firstit} уже есть." mp.msg.Take.HAVE = "У {#you/вн} и так {#firstit} уже есть."
mp.msg.Take.SELF = "{#You} есть у {#you/рд}." mp.msg.Take.SELF = "{#You} есть у {#you/рд}."
mp.msg.Take.TAKE = '{#You} {#g/берёшь,берёте} {#first/вн}.';
mp.msg.Drop.SELF = "У {#you/рд} не хватит ловкости." mp.msg.Drop.SELF = "У {#you/рд} не хватит ловкости."
mp.msg.Insert.INSERT = "{#You} {#g/кладёшь,кладёте} {#first/вн} в {#second/вн}." mp.msg.Insert.INSERT = "{#You} {#g/кладёшь,кладёте} {#first/вн} в {#second/вн}."
mp.msg.PutOn.PUTON = "{#You} {#g/кладёшь,кладёте} {#first/вн} на {#second/вн}." mp.msg.PutOn.PUTON = "{#You} {#g/кладёшь,кладёте} {#first/вн} на {#second/вн}."
mp.msg.SwitchOn.SWITCHON = "{#You} {#g/включаешь,включаете} {#first/вн}." mp.msg.SwitchOn.SWITCHON = "{#You} {#g/включаешь,включаете} {#first/вн}."
mp.msg.SwitchOff.SWITCHOFF = "{#You} {#g/выключаешь,выключаете} {#first/вн}." mp.msg.SwitchOff.SWITCHOFF = "{#You} {#g/выключаешь,выключаете} {#first/вн}."
mp.msg.Sing.SING = "Это лучше оставить оперным певцам." mp.msg.Sing.SING = "Это лучше оставить оперным певцам."
mp.msg.SwitchOn.SWITCHON = "{#You} {#g/включаешь,включаете} {#first/вн}."
mp.msg.Smell.SMELL = "Запах очень забытых вещей." mp.msg.Smell.SMELL = "Запах очень забытых вещей."
mp.msg.Smell.SMELL2 = "Не {#g/волнуйся,волнуйтесь}, у {#you/рд} не пропало чувство запаха. Просто это ничем особенным не пахнет." mp.msg.Smell.SMELL2 = "Не {#g/волнуйся,волнуйтесь}, у {#you/рд} не пропало чувство запаха. Просто это ничем особенным не пахнет."
mp.msg.Taste.TASTE = "Не {#g/волнуйся,волнуйтесь}, у {#you/рд} не пропало чувство вкуса. Просто это не съедобно."; mp.msg.Taste.TASTE = "Не {#g/волнуйся,волнуйтесь}, у {#you/рд} не пропало чувство вкуса. Просто это не съедобно.";
mp.msg.Sleep.SLEEP = "Не спится." mp.msg.Sleep.SLEEP = "Не спится."
mp.msg.Jump.JUMP = "Прыг-скок. Не помогает." mp.msg.Jump.JUMP = "Прыг-скок. Не помогает."
mp.msg.Consult.CONSULT = "{#You} не {#g/находишь,находите} ничего подходящего." mp.msg.Consult.CONSULT = "{#You} не {#g/находишь,находите} ничего подходящего."
mp.msg.Cut.CUT = "Резать {#first/вн} бессмысленно."
mp.msg.Cut.CUT2 = "Резать {#first/вн} {#second/тв} бессмысленно."
local function split(s, sep) local function split(s, sep)
if sep == nil then if sep == nil then
@ -176,12 +180,34 @@ function mp:SetShoot(what, letter)
if newTarget then if newTarget then
what:remove(); what:remove();
put(newTarget, here()); put(newTarget, here());
pn('Вы стреляете в '.. what:noun'вн' ..''..what:it('им')..' вырезается в '..newCanonical..'.'); p('Вы стреляете в '.. what:noun'вн' ..', и '..what:it('им')..' ');
if what:hint'plural' then
p 'вырезаются'
else
p 'вырезается'
end
pn (' в '..newCanonical..'.');
if newTarget.oncreate ~= nil then if newTarget.oncreate ~= nil then
newTarget.oncreate() newTarget.oncreate()
end end
return; return;
end end
return 'Вы стреляете в '.. what:noun'вн' ..' и '..what:it('им')..' мигает в слабом тумане букв «'..newCanonical..'», но затем возвращается в прежнее состояние.'; local retval = ('{#You} {#g/стреляешь,стреляете} в '.. what:noun'вн' .. ' и '..what:it('им')..' ');
if what:hint'plural' then
retval = retval .. 'мигают'
else
retval = retval .. 'мигает'
end
retval = retval .. ' в слабом тумане букв «'..newCanonical..'», но затем ';
if what:hint'plural' then
retval = retval .. 'возвращаются'
else
retval = retval .. 'возвращается'
end
retval = retval .. ' в прежнее состояние.';
return retval;
end end

View file

@ -1,5 +1,5 @@
--$Name: Полёт в Петербург$ --$Name: Полёт в Петербург$
--$Version: 1.2.3$ --$Version: 1.2.4$
--$Author:Александр Яковлев$ --$Author:Александр Яковлев$
require "fmt" require "fmt"
@ -29,7 +29,7 @@ end
global { global {
score = 0, score = 0,
maxscore = 2 maxscore = 3
} }
game.dsc = '' game.dsc = ''
player.description = "Здесь нет зеркал. Но хотя бы ноги выглядят прекрасно."; player.description = "Здесь нет зеркал. Но хотя бы ноги выглядят прекрасно.";

View file

@ -18,7 +18,7 @@ obj {
canonical = 'щи'; canonical = 'щи';
nam = 'shi'; nam = 'shi';
description = 'Тарелка с остывшими щами. Выглядит не очень аппетитно.'; description = 'Тарелка с остывшими щами. Выглядит не очень аппетитно.';
} }: attr 'edible'
obj { obj {
-"пластина/жр"; -"пластина/жр";

View file

@ -88,6 +88,10 @@ obj {
inv = function(s) inv = function(s)
return s.letter..'-вырезатель' return s.letter..'-вырезатель'
end; end;
before_Take = function()
p '{#You} {#g/берёшь,берёте} пистолет.';
return false;
end;
before_Shoot = 'Не {#plural/размахивай,размахивайте} этой штукой! Её надо направить во что-то определённое.'; before_Shoot = 'Не {#plural/размахивай,размахивайте} этой штукой! Её надо направить во что-то определённое.';
}: dict { }: dict {
['вырезатель/рд'] = 'вырезателя'; ['вырезатель/рд'] = 'вырезателя';
@ -98,10 +102,16 @@ obj {
}: attr 'essential' }: attr 'essential'
obj { obj {
-"робот,уборщик/мр,ед"; -"робот,уборщик,робот-уборщик/мр,ед";
nam = 'robot'; nam = 'robot';
description = function(s) description = function(s)
p 'У стенки стоит выключенный робот-уборщик. У него '; p 'У стенки стоит ';
if live(s) then
p 'включённый';
else
p 'выключенный';
end
p ' робот-уборщик. У него ';
if not (s:srch('hand')) then if not (s:srch('hand')) then
p 'длинное щупальце как один из манипуляторов, пустое гнездо вместо второго ' p 'длинное щупальце как один из манипуляторов, пустое гнездо вместо второго '
else else
@ -110,6 +120,9 @@ obj {
pn 'и широкие стальные гусеницы.'; pn 'и широкие стальные гусеницы.';
end; end;
before_SwitchOn = function(s) before_SwitchOn = function(s)
if live(s) then
return 'Робот уже включён.';
end
if not (s:srch('battery')) then if not (s:srch('battery')) then
p "Над кнопкой включения загорается сообщение: нет батареи."; p "Над кнопкой включения загорается сообщение: нет батареи.";
return true; return true;
@ -119,8 +132,11 @@ obj {
return true; return true;
end end
lifeon('robot'); lifeon('robot');
return "Робот включается и начинает тихо бурчать. Наверное, оценивает чистоту чулана."; givepoint();
pn "Робот включается и начинает тихо бурчать. Наверное, оценивает чистоту чулана.";
return false;
end; end;
before_SwitchOff = 'Пусть работает, хоть не так одиноко.';
life = function() life = function()
if here().dirty then if here().dirty then
pn '«ВНИМАНИЕ. ОБНАРУЖЕНА ГРЯЗЬ. НЕОБХОДИМА ИНСПЕКЦИЯ.»'; pn '«ВНИМАНИЕ. ОБНАРУЖЕНА ГРЯЗЬ. НЕОБХОДИМА ИНСПЕКЦИЯ.»';
@ -148,7 +164,7 @@ obj {
}: attr 'essential,scenery,open,switchable,container' }: attr 'essential,scenery,open,switchable,container'
obj { obj {
-"сейф/мр"; -"сейф,маленький сейф/мр";
nam = 'safe'; nam = 'safe';
dsc = 'Напротив стоит маленький сейф.'; dsc = 'Напротив стоит маленький сейф.';
before_Close = function(s) before_Close = function(s)
@ -165,15 +181,15 @@ obj {
'letterremover', 'letterremover',
} }
}: dict { }: dict {
['робот/рд'] = 'робота'; ['сейф/рд'] = 'сейфа';
['робот/дт'] = 'роботу'; ['сейф/дт'] = 'сейфу';
['робот/вн'] = 'робота'; ['сейф/вн'] = 'сейфа';
['робот/тв'] = 'роботом'; ['сейф/тв'] = 'сейфом';
['робот/пр'] = 'роботе'; ['сейф/пр'] = 'сейфе';
}: attr 'essential,static,container,openable,locked' }: attr 'essential,static,container,openable,locked'
obj { obj {
-"коробка,коробчонка,коробочка/жр|коробочек/мр"; -"коробка,маленькая коробка,коробчонка,коробочка/жр|коробочек/мр";
nam = 'box'; nam = 'box';
found_in = 'pantry'; found_in = 'pantry';
dsc = 'Возле робота лежит маленькая коробка.'; dsc = 'Возле робота лежит маленькая коробка.';
@ -193,7 +209,7 @@ obj {
}: attr 'container,female,openable'; }: attr 'container,female,openable';
obj { obj {
-"батарея,батарейка/жр"; -"батарея,маленькая батарея,батарейка/жр";
nam = 'battery'; nam = 'battery';
dsc = function(s) dsc = function(s)
if s:inside('box') then if s:inside('box') then
@ -228,7 +244,7 @@ obj {
}: attr 'essential' }: attr 'essential'
obj { obj {
-"кнопкар|выключатель/мр"; -"кнопка,кнопка включения/жр|выключатель/мр";
nam = 'button'; nam = 'button';
description = 'Кнопка включения робота. Ничего примечательного.'; description = 'Кнопка включения робота. Ничего примечательного.';
}: attr 'essential,scenery,switchable' }: attr 'essential,scenery,switchable'
@ -255,7 +271,7 @@ obj {
} }
obj { obj {
-"стенд/мр"; -"пожарный стенд,стенд/мр";
nam = 'stand'; nam = 'stand';
dsc = 'На стене покосился пожарный стенд.'; dsc = 'На стене покосился пожарный стенд.';
canonical = 'стенд'; canonical = 'стенд';