diff --git a/engine.lua b/engine.lua index 7de4ace..0b8279a 100644 --- a/engine.lua +++ b/engine.lua @@ -71,14 +71,13 @@ sentence = function(text) text = string.gsub(text, '%^%^', ' newline ') array = string.split(text, " ") objects = {} - j = 1 + local j = 1 for i,v in ipairs(array) do if (table.contains({'colon', 'dot', 'newline', 'opening_bracket', 'closing_bracket', 'space', 'dash', 'exclamation', 'question', 'comma'},v) == false and string.match (v, "%S")) then if(i > 1) then table.insert(objects, j, 'space') j = j + 1 end - print () table.insert(objects, j, word(v)) j = j + 1 else @@ -88,7 +87,7 @@ sentence = function(text) end end end - value = obj{ + local value = obj{ nam = '', dsc = '', obj = objects @@ -140,4 +139,20 @@ function news(v) table.insert(v.obj, table.maxn(v.obj)+1, 'sign_newspaper_1') v = obj(v); return v; +end + +function is_activated(previous, current, room) + for i,v in ipairs(room.obj) do + if v ~= nil then + for j,word in ipairs(v.obj) do + if (word ~= nil) then + if (word._word == previous) then + if (v.obj[j+2]._word == current) then --следующее слово _после пробела_ + return v.obj[j+2]._enabled; + end + end + end + end + end + end end \ No newline at end of file diff --git a/maximov.lua b/maximov.lua index d3fae2b..a539b71 100644 --- a/maximov.lua +++ b/maximov.lua @@ -13,7 +13,34 @@ maximov_1 = room{ } }; +maximov_2 = room{ + nam = 'г. Красноярск -- Почтовый ящик 107.', + dsc = "", + obj = { + sentence("Дорогой Максим!^^"), + vobj("", txtr('Друг.')),newline, + signed, 'sign_maximov_2' + } +}; + sign_maximov_1 = obj{ + nam = 'send', + dsc = txtc(txtu('{ОТПРАВИТЬ}')), + act = function() + local i = 2; + if (is_activated("Уважаемый", "господин", maximov_1) == false) then + table.insert(maximov_2.obj, i, sentence("Я не совсем понял, за кого ты меня принимаешь.^^")) + i = i+1 + end + if (is_activated("господин", "Цветников", maximov_1) == false) then + table.insert(maximov_2.obj, i, sentence("По правде сказать, я не понял, к кому ты обращался. Мы решили, что ты имел в виду Цветникова -- ему и отдали письмо.^^")) + i = i+1 + end + return goto('maximov_2'); + end, +} + +sign_maximov_2 = obj{ nam = 'send', dsc = txtc(txtu('{ОТПРАВИТЬ}')), act = function() diff --git a/newspaper.lua b/newspaper.lua index 019aad9..7843c79 100644 --- a/newspaper.lua +++ b/newspaper.lua @@ -15,11 +15,14 @@ sign_newspaper_1 = obj{ nam = "УТВЕРДИТЬ СТАТЬИ", dsc = txtc("{УТВЕРДИТЬ ВЫДЕЛЕННЫЕ СТАТЬИ, ОТЛОЖИТЬ ОСТАЛЬНЫЕ}"), act = function() - Julia = 0 + local Julia = 0 for i,headline in ipairs(newspaper_1.obj) do if(headline._selected) then Julia = Julia + 1 end end if (Julia==0) then return true end + if (newspaper_1.obj[1]._selected) then + table.insert(newspaper_2.news, table.maxn(newspaper_2.news), 'Старая метла лучше новой метёт') -- здесь нужно что-то гибче + end return goto(newspaper_1.goto) end } @@ -27,7 +30,6 @@ sign_newspaper_1 = obj{ newspaper_2 = news{ nam = 'Передовица газеты «Чеканный час», номер 57', news = { - 'Старая метла лучше новой метёт', 'Кукурузное посмешище', 'Хулиган вышел из клиники: куда денется истребитель врачей?', 'В НИИ Мягких Игрушек обнаружены серьёзные утечки радиации',