diff --git a/locations/abandoned.lua b/locations/abandoned.lua index a875037..7be53d2 100644 --- a/locations/abandoned.lua +++ b/locations/abandoned.lua @@ -21,12 +21,10 @@ room { return 'первый робот' end, act = function(s) - if not isduel then - return [[Низкий хромированный фермер, древняя четырёхногая модель. - Он медленно неуклюже передвигал передние ноги, когда переходил к следующей грядке.]] - else - return s.talk() - end + return [[ + Низкий хромированный фермер, древняя четырёхногая модель. + Он медленно неуклюже передвигал передние ноги, когда переходил к следующей грядке. + ]] end, talk = function() walk('robofarmer-dlg') @@ -42,15 +40,11 @@ room { return 'второй робот' end, act = function(s) - if not isduel then - return [[ - Он был похож по строению на робота-дворецкого, но у него не хватало верхней части лица, - а вместо левой ноги стоял импровизированный протез из строительного нанопластика. - Его глаза были очень маленькими для широкого лица; скорее всего, их вставили из какой-нибудь детской куклы. - ]] - else - return s.talk() - end + return [[ + Он был похож по строению на робота-дворецкого, но у него не хватало верхней части лица, + а вместо левой ноги стоял импровизированный протез из строительного нанопластика. + Его глаза были очень маленькими для широкого лица; скорее всего, их вставили из какой-нибудь детской куклы. + ]] end, talk = function() walk('robobutler-dlg') @@ -203,7 +197,7 @@ dlg { function() return "У "..plural('меня', 'нас')..' есть механизм для него.' end, - function() + function() return [[-- У ]]..plural('меня', 'нас')..[[ есть механизм для него.^ -- Предъявите механизм для того, чтобы я произвёл оценку полезности. ]] diff --git a/locations/chos.lua b/locations/chos.lua index 67593d5..7e9dffc 100644 --- a/locations/chos.lua +++ b/locations/chos.lua @@ -35,11 +35,7 @@ room { end end, act = function(s) - if not isduel then - return 'Старушка мирно посапывала, раскачиваясь в гамаке.' - else - return s.talk() - end + return 'Старушка мирно посапывала, раскачиваясь в гамаке.' end, talk = function() return walk('cho_dlg'); end, } @@ -189,7 +185,7 @@ dlg { -- Ну, ремонт идёт за счёт пожизненной гарантии. Но есть одна просьба… хотя нет, забудьте.^^ Она пожала плечами:^^ - + -- Как скажете. ]], next = '#разговор' @@ -432,7 +428,7 @@ dlg { И тут начались выстрелы. После войны вы моментально реагировали на громкий хлопок и металлический «бзынь» в сантиметре от руки. Вы спрятались в кабине, но вам не было видно, что происходит на входе в сарай.^^ - + -- Я говорила вам не чинить этот комбайн!^^ Хотя вам и не надо было смотреть, только лишь считать выстрелы. diff --git a/locations/pavels.lua b/locations/pavels.lua index bccd87f..fde3bed 100644 --- a/locations/pavels.lua +++ b/locations/pavels.lua @@ -20,13 +20,12 @@ room { nam = 'call'; disp = 'домофон'; act = function(s) - if not isduel then - return 'Домофон был включён, хозяин — дома. Достаточно было только поговорить с ним.' - else - return s.talk() - end + return 'Домофон был включён, хозяин — дома. Достаточно было только поговорить с ним.' end; talk = function() + if _('pavels-call').obj:empty() then + return 'Вам нечего сказать.' + end return walk('pavels-call') end; take = function() @@ -47,7 +46,7 @@ room { return false end, act = function() - char.saw_suit = true + char.saw_suit = true local out = [[ Боевой механизированный костюм высотой 2,7 метров, марка РГ-22. Рассчитан на одного пилота. @@ -81,13 +80,7 @@ dlg { nam = 'pavels-call', disp = 'Разговор с домофоном', decor = [[Камера домофона смотрела на вас бесстрастным блеском.]], - enter = function(self) - if empty(self) then - return 'Вам нечего сказать.' - else - return [[-- Кто там? — спросил неприветливый мужской низкий голос.]] - end - end, + enter = [[-- Кто там? — спросил неприветливый мужской низкий голос.]], obj = { { { @@ -100,7 +93,7 @@ dlg { Домофон отключился. Видимо, нет. ]] - end + end }; { '#yours', @@ -475,7 +468,7 @@ dlg { { '#detail', { - cond = function() + cond = function() return (char.saw_suit == true) end, [[ @@ -508,7 +501,7 @@ dlg { { '#general', { - cond = function() + cond = function() return (char.saw_suit == true and char.asked_suit ~= true) end, 'У вас во дворе стоит РГ-22 с тремя независимыми программаторами этого типа. Вы на нём за хлебом ходите?', diff --git a/main3.lua b/main3.lua index 4db8f58..1104fbd 100644 --- a/main3.lua +++ b/main3.lua @@ -4,27 +4,8 @@ require "fmt" require "noinv" declare "isdebug" (false) -declare "isduel" (false) -if not isduel then - require "proxymenu" -else - std.menu_player = std.class ({ - __menu_player_type = true; - new = function(self, v) - if type(v) ~= 'table' then - std.err ("Wrong argument to std.menu_player: "..std.tostr(v), 2) - end - if not v.room then - v.room = 'main' - end - v.invent = std.list {} - return std.player(v) - end; - inventory = function(s) - return s.invent - end; - }, std.player) -end + +require "proxymenu" if isdebug then require "dbg" @@ -76,7 +57,7 @@ room { decor = [[ Вы стояли на окраине Жестианы. Прямая автодорога шла на север. - + Здесь от неё на запад отходил небольшой заезд из булыжника. ]] } diff --git a/tools.lua b/tools.lua index da70dd8..e1d1a9f 100644 --- a/tools.lua +++ b/tools.lua @@ -59,55 +59,53 @@ init = function () end }, me()) char.act = nil - if not isduel then - place( proxy_menu { - disp = function() - if stead.table.maxn(here().obj) > 0 then - return 'ОСМОТРЕТЬ'; - end - return false - end; - acts = { inv = 'act' }; - sources = { scene = true, inv = false }; -- осмотр инвентаря вынесен отдельно - }, me()) + place( proxy_menu { + disp = function() + if stead.table.maxn(here().obj) > 0 then + return 'ОСМОТРЕТЬ'; + end + return false + end; + acts = { inv = 'act' }; + sources = { scene = true, inv = false }; -- осмотр инвентаря вынесен отдельно + }, me()) --[[ - place( proxy_menu { + place( proxy_menu { disp = 'ВЗЯТЬ'; acts = { inv = 'take' }; sources = { scene = true, inv = false }; }, me()) - place( proxy_menu { + place( proxy_menu { disp = 'ВЫБРОСИТЬ'; acts = { inv = 'drop' }; sources = { scene = false, inv = true }; }, me()) - place( proxy_menu { + place( proxy_menu { disp = 'ОТКРЫТЬ'; acts = { inv = 'open' }; sources = { scene = false, inv = true }; }, me()) - place( proxy_menu { + place( proxy_menu { disp = 'ЗАКРЫТЬ'; acts = { inv = 'close' }; sources = { scene = false, inv = true }; }, me()) ]] - place( proxy_menu { - disp = function() - if stead.table.maxn( here().obj ) > 0 then - return 'ГОВОРИТЬ С'; - end - return false - end; - acts = { inv = 'talk' }; - sources = { scene = true, inv = false }; - }, me()) - end + place( proxy_menu { + disp = function() + if stead.table.maxn( here().obj ) > 0 then + return 'ГОВОРИТЬ С'; + end + return false + end; + acts = { inv = 'talk' }; + sources = { scene = true, inv = false }; + }, me()) end game.after_take = function(s, w) take(w) end - + game.after_drop = function(s, w) drop(w) end @@ -218,7 +216,7 @@ changeop = function(name, delta) rawset(char, name, fairadd(rawget(char, name), delta)) end fairadd = function(value, add) - return math.floor(value + (100-value)*(add/100)) + return math.floor(value + (100-value)*(add/100)) end listinv = function() local out = ''