Ура. Движок для первой половины игры готов.
This commit is contained in:
parent
d0bd54c0bb
commit
9cf08dff23
21
engine.lua
21
engine.lua
|
@ -71,14 +71,13 @@ sentence = function(text)
|
||||||
text = string.gsub(text, '%^%^', ' newline ')
|
text = string.gsub(text, '%^%^', ' newline ')
|
||||||
array = string.split(text, " ")
|
array = string.split(text, " ")
|
||||||
objects = {}
|
objects = {}
|
||||||
j = 1
|
local j = 1
|
||||||
for i,v in ipairs(array) do
|
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 (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
|
if(i > 1) then
|
||||||
table.insert(objects, j, 'space')
|
table.insert(objects, j, 'space')
|
||||||
j = j + 1
|
j = j + 1
|
||||||
end
|
end
|
||||||
print ()
|
|
||||||
table.insert(objects, j, word(v))
|
table.insert(objects, j, word(v))
|
||||||
j = j + 1
|
j = j + 1
|
||||||
else
|
else
|
||||||
|
@ -88,7 +87,7 @@ sentence = function(text)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
value = obj{
|
local value = obj{
|
||||||
nam = '',
|
nam = '',
|
||||||
dsc = '',
|
dsc = '',
|
||||||
obj = objects
|
obj = objects
|
||||||
|
@ -141,3 +140,19 @@ function news(v)
|
||||||
v = obj(v);
|
v = obj(v);
|
||||||
return v;
|
return v;
|
||||||
end
|
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
|
27
maximov.lua
27
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{
|
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',
|
nam = 'send',
|
||||||
dsc = txtc(txtu('{ОТПРАВИТЬ}')),
|
dsc = txtc(txtu('{ОТПРАВИТЬ}')),
|
||||||
act = function()
|
act = function()
|
||||||
|
|
|
@ -15,11 +15,14 @@ sign_newspaper_1 = obj{
|
||||||
nam = "УТВЕРДИТЬ СТАТЬИ",
|
nam = "УТВЕРДИТЬ СТАТЬИ",
|
||||||
dsc = txtc("{УТВЕРДИТЬ ВЫДЕЛЕННЫЕ СТАТЬИ, ОТЛОЖИТЬ ОСТАЛЬНЫЕ}"),
|
dsc = txtc("{УТВЕРДИТЬ ВЫДЕЛЕННЫЕ СТАТЬИ, ОТЛОЖИТЬ ОСТАЛЬНЫЕ}"),
|
||||||
act = function()
|
act = function()
|
||||||
Julia = 0
|
local Julia = 0
|
||||||
for i,headline in ipairs(newspaper_1.obj) do
|
for i,headline in ipairs(newspaper_1.obj) do
|
||||||
if(headline._selected) then Julia = Julia + 1 end
|
if(headline._selected) then Julia = Julia + 1 end
|
||||||
end
|
end
|
||||||
if (Julia==0) then return true 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)
|
return goto(newspaper_1.goto)
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
@ -27,7 +30,6 @@ sign_newspaper_1 = obj{
|
||||||
newspaper_2 = news{
|
newspaper_2 = news{
|
||||||
nam = 'Передовица газеты «Чеканный час», номер 57',
|
nam = 'Передовица газеты «Чеканный час», номер 57',
|
||||||
news = {
|
news = {
|
||||||
'Старая метла лучше новой метёт',
|
|
||||||
'Кукурузное посмешище',
|
'Кукурузное посмешище',
|
||||||
'Хулиган вышел из клиники: куда денется истребитель врачей?',
|
'Хулиган вышел из клиники: куда денется истребитель врачей?',
|
||||||
'В НИИ Мягких Игрушек обнаружены серьёзные утечки радиации',
|
'В НИИ Мягких Игрушек обнаружены серьёзные утечки радиации',
|
||||||
|
|
Loading…
Reference in a new issue