Система счёта

This commit is contained in:
Alexander Yakovlev 2020-12-22 21:36:52 +07:00
parent 3ce16f20dc
commit a5ba7501c1
Signed by: oreolek
GPG key ID: 1CDC4B7820C93BD3
5 changed files with 45 additions and 5 deletions

View file

@ -20,3 +20,8 @@
стрелять в рукав стрелять в рукав
вставить руку в робота вставить руку в робота
включить робота включить робота
выставить К
стрелять в булавку
выставить Т
стрелять в щит
юг

View file

@ -28,12 +28,21 @@ function set_pic(f)
--end --end
end end
global {
score = 0,
maxscore = 2
}
game.dsc = '' game.dsc = ''
player.description = "Здесь нет зеркал. Но хотя бы ноги выглядят прекрасно."; player.description = "Здесь нет зеркал. Но хотя бы ноги выглядят прекрасно.";
set_pic('wall.jpg') set_pic('wall.jpg')
pl.plural = false pl.plural = false
pl.pronouns = 'fem' pl.pronouns = 'fem'
function givepoint()
score = score + 1;
pn 'Ваш счёт увеличился на 1 очко.';
end
dofile('custom_parser.lua') dofile('custom_parser.lua')
dofile('rooms/end.lua') dofile('rooms/end.lua')
dofile('rooms/objects.lua') dofile('rooms/objects.lua')

View file

@ -1,4 +1,8 @@
room { room {
nam = 'end'; nam = 'end';
dsc = 'КОНЕЦ'; title = 'ВЫ ВЫИГРАЛИ';
dsc = function()
pn 'КОНЕЦ';
pn('Вы набрали '..score..' очков из '..maxscore..' возможных.');
end
} }

View file

@ -49,6 +49,7 @@ obj {
obj { obj {
-"патина"; -"патина";
canonical = 'патина'; canonical = 'патина';
scored = false;
nam = 'patina'; nam = 'patina';
oncreate = function() oncreate = function()
p 'Блестящие поверхности вокруг начинают покрываться слоем патины.' p 'Блестящие поверхности вокруг начинают покрываться слоем патины.'
@ -74,5 +75,8 @@ obj {
-"булава"; -"булава";
canonical = 'булава'; canonical = 'булава';
nam = 'bulava'; nam = 'bulava';
oncreate = function()
givepoint()
end;
description = 'Холодное оружие. Может пригодиться против… кого-нибудь.'; description = 'Холодное оружие. Может пригодиться против… кого-нибудь.';
} }

View file

@ -72,7 +72,6 @@ obj {
obj { obj {
-"робот,уборщик"; -"робот,уборщик";
nam = 'robot'; nam = 'robot';
alive = false;
description = 'У стенки стоит выключенный робот-уборщик. У него два длинных манипулятора-руки и широкие стальные гусеницы.'; description = 'У стенки стоит выключенный робот-уборщик. У него два длинных манипулятора-руки и широкие стальные гусеницы.';
before_SwitchOn = function(s) before_SwitchOn = function(s)
if not (s:srch('battery')) then if not (s:srch('battery')) then
@ -83,9 +82,23 @@ obj {
p "Робот оживляется, но тут же потухает. Новое сообщение: неисправность руки."; p "Робот оживляется, но тут же потухает. Новое сообщение: неисправность руки.";
return true; return true;
end end
s.alive = true; lifeon('robot');
return "Робот включается и начинает тихо бурчать. Наверное, оценивает чистоту чулана."; return "Робот включается и начинает тихо бурчать. Наверное, оценивает чистоту чулана.";
end; end;
life = function()
if here().dirty then
pn '«ВНИМАНИЕ. ОБНАРУЖЕНА ГРЯЗЬ.»';
p 'Робот срывается с места и начинает генеральную уборку.';
if here():srch('patina') then
pn 'Он протирает всё вокруг, тщательно счищая слой патины.'
if not _'patina'.scored then
_'patina'.scored = true
givepoint();
end
end
here().dirty = false;
end
end;
obj = { obj = {
'robot_hand', 'robot_hand',
'button' 'button'
@ -103,7 +116,7 @@ obj {
nam = 'safe'; nam = 'safe';
dsc = 'Напротив стоит маленький сейф.'; dsc = 'Напротив стоит маленький сейф.';
description = function() description = function()
p 'Маленький сейф с электронным замком. Кто-то выдернул из него провода и подвёл к пустой выемке. Наверное, ему не хватает питания.'; p 'Маленький оружейный сейф с электронным замком. Кто-то выдернул из него провода и подвёл к пустой выемке. Наверное, ему не хватает питания.';
return false; return false;
end; end;
obj = { obj = {
@ -147,7 +160,6 @@ obj {
return 'На полу лежит маленькая батарея.'; return 'На полу лежит маленькая батарея.';
end; end;
description = 'Сменная батарея для бытовой электроники типа «крона». Одному пылесосу её хватает на тридцать лет.'; description = 'Сменная батарея для бытовой электроники типа «крона». Одному пылесосу её хватает на тридцать лет.';
-- BUG: неотключаемое сообщение "Ты помещаешь батарею в ___"
before_Insert = function(self, what) before_Insert = function(self, what)
if what^'robot' then if what^'robot' then
pn "На панели робота зажигается огонёк. Можно попытаться его включить."; pn "На панели робота зажигается огонёк. Можно попытаться его включить.";
@ -240,4 +252,10 @@ obj {
found_in = 'pantry'; found_in = 'pantry';
dsc = 'На полу лежит булавка.'; dsc = 'На полу лежит булавка.';
description = 'Швейная безопасная булавка. Ничего примечательного.'; description = 'Швейная безопасная булавка. Ничего примечательного.';
}: dict {
['булавка/рд'] = 'булавки';
['булавка/дт'] = 'булавке';
['булавка/вн'] = 'булавку';
['булавка/тв'] = 'булавкой';
['булавка/пр'] = 'булавке';
} }