diff --git a/autoscript b/autoscript index 82c27fc..ba29ad2 100644 --- a/autoscript +++ b/autoscript @@ -20,3 +20,8 @@ стрелять в рукав вставить руку в робота включить робота +выставить К +стрелять в булавку +выставить Т +стрелять в щит +юг diff --git a/main3.lua b/main3.lua index edb4f0e..8c2f259 100644 --- a/main3.lua +++ b/main3.lua @@ -28,12 +28,21 @@ function set_pic(f) --end end +global { + score = 0, + maxscore = 2 +} game.dsc = '' player.description = "Здесь нет зеркал. Но хотя бы ноги выглядят прекрасно."; set_pic('wall.jpg') pl.plural = false pl.pronouns = 'fem' +function givepoint() + score = score + 1; + pn 'Ваш счёт увеличился на 1 очко.'; +end + dofile('custom_parser.lua') dofile('rooms/end.lua') dofile('rooms/objects.lua') diff --git a/rooms/end.lua b/rooms/end.lua index 7d50bd0..6c43840 100644 --- a/rooms/end.lua +++ b/rooms/end.lua @@ -1,4 +1,8 @@ room { nam = 'end'; - dsc = 'КОНЕЦ'; + title = 'ВЫ ВЫИГРАЛИ'; + dsc = function() + pn 'КОНЕЦ'; + pn('Вы набрали '..score..' очков из '..maxscore..' возможных.'); + end } diff --git a/rooms/objects.lua b/rooms/objects.lua index 1dc6099..66f6540 100644 --- a/rooms/objects.lua +++ b/rooms/objects.lua @@ -49,6 +49,7 @@ obj { obj { -"патина"; canonical = 'патина'; + scored = false; nam = 'patina'; oncreate = function() p 'Блестящие поверхности вокруг начинают покрываться слоем патины.' @@ -74,5 +75,8 @@ obj { -"булава"; canonical = 'булава'; nam = 'bulava'; + oncreate = function() + givepoint() + end; description = 'Холодное оружие. Может пригодиться против… кого-нибудь.'; } diff --git a/rooms/pantry.lua b/rooms/pantry.lua index f9ada69..d658139 100644 --- a/rooms/pantry.lua +++ b/rooms/pantry.lua @@ -72,7 +72,6 @@ obj { obj { -"робот,уборщик"; nam = 'robot'; - alive = false; description = 'У стенки стоит выключенный робот-уборщик. У него два длинных манипулятора-руки и широкие стальные гусеницы.'; before_SwitchOn = function(s) if not (s:srch('battery')) then @@ -83,9 +82,23 @@ obj { p "Робот оживляется, но тут же потухает. Новое сообщение: неисправность руки."; return true; end - s.alive = true; + lifeon('robot'); return "Робот включается и начинает тихо бурчать. Наверное, оценивает чистоту чулана."; 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 = { 'robot_hand', 'button' @@ -103,7 +116,7 @@ obj { nam = 'safe'; dsc = 'Напротив стоит маленький сейф.'; description = function() - p 'Маленький сейф с электронным замком. Кто-то выдернул из него провода и подвёл к пустой выемке. Наверное, ему не хватает питания.'; + p 'Маленький оружейный сейф с электронным замком. Кто-то выдернул из него провода и подвёл к пустой выемке. Наверное, ему не хватает питания.'; return false; end; obj = { @@ -147,7 +160,6 @@ obj { return 'На полу лежит маленькая батарея.'; end; description = 'Сменная батарея для бытовой электроники типа «крона». Одному пылесосу её хватает на тридцать лет.'; - -- BUG: неотключаемое сообщение "Ты помещаешь батарею в ___" before_Insert = function(self, what) if what^'robot' then pn "На панели робота зажигается огонёк. Можно попытаться его включить."; @@ -240,4 +252,10 @@ obj { found_in = 'pantry'; dsc = 'На полу лежит булавка.'; description = 'Швейная безопасная булавка. Ничего примечательного.'; +}: dict { + ['булавка/рд'] = 'булавки'; + ['булавка/дт'] = 'булавке'; + ['булавка/вн'] = 'булавку'; + ['булавка/тв'] = 'булавкой'; + ['булавка/пр'] = 'булавке'; }