Обновление Lua, обучение

- walk вместо goto, обновление версии Lua
- теперь первая комната - это простое обучение, чтобы игрок знал что
  делать
This commit is contained in:
Alexander Yakovlev 2015-08-18 22:36:34 +07:00
parent 9e083849df
commit 9ecbb1dbec
5 changed files with 41 additions and 16 deletions

View File

@ -142,12 +142,15 @@ function news(v)
return v;
end
-- Проверка, выключено ли определённое слово в указанной комнате.
-- Параметр room - объект комнаты
-- Возвращает false, если слово выключено.
function is_activated(previous, current, room)
for i,v in ipairs(room.obj) do
for j,word in ipairs(v.obj) do
for i,v in ipairs(room.obj) do -- проверяем каждое предложение в комнате
for j,word in ipairs(v.obj) do -- проверяем каждое слово в предложении
if (previous == nil) then
if (v[1]._word == current) then
return v[1]._enabled
if (word._word == current) then
return word._enabled
else
return nil
end
@ -172,4 +175,4 @@ function is_printed(line, room)
end
end
return nil
end
end

View File

@ -7,7 +7,18 @@ dofile 'engine.lua'
dofile 'maximov.lua'
dofile 'newspaper.lua'
main = room{
main = room {
nam = 'Добро пожаловать.',
dsc = '',
obj = {
vobj('intro1', 'Вы - '),
sentence(txtu("цензор")),
vobj('introdot', '.'),
'got_that'
}
}
intro = room{
nam = 'Почтовый ящик 107. Ул. Елизарова, 76 -- г. Новосибирск, Красный проспект, 23-12',
--_enabled = 0,
--_words = 0,
@ -19,10 +30,21 @@ main = room{
signed, 'sign_main'
}
};
got_that = obj {
nam = 'send',
dsc = function()
if not is_activated(nil, txtu("цензор"), main) then
return '^'..txtc(txtu('{Понял}'))
end
end,
act = function()
return walk('intro');
end,
}
sign_main = obj{
nam = 'send',
dsc = txtc(txtu('{ОТПРАВИТЬ}')),
act = function()
return goto('maximov_1');
return walk('maximov_1');
end,
}
}

View File

@ -49,7 +49,7 @@ sign_maximov_1 = obj{
end
--send("Уважаемый", "господин", "Я не совсем понял, за кого ты меня принимаешь.") --простое условие
end
return goto('maximov_2');
return walk('maximov_2');
end,
}
@ -57,6 +57,6 @@ sign_maximov_2 = obj{
nam = 'send',
dsc = txtc(txtu('{ОТПРАВИТЬ}')),
act = function()
return goto('newspaper_1');
return walk('newspaper_1');
end,
}
}

View File

@ -8,7 +8,7 @@ newspaper_1 = news{
'На самом деле небо -- зелёное',
'О чём думают ангелы. Интервью с епископом Фомой.'
},
goto = 'newspaper_2'
walk = 'newspaper_2'
};
sign_newspaper_1 = obj{
@ -23,7 +23,7 @@ sign_newspaper_1 = obj{
if (is_printed('Дворники осваивают новую технику',newspaper_1)) then
table.insert(newspaper_2.obj, table.maxn(newspaper_2.obj), headline('Старая метла лучше новой метёт'))
end
return goto(newspaper_1.goto)
return walk(newspaper_1.walk)
end
}
@ -36,5 +36,5 @@ newspaper_2 = news{
'Белое небо нашего города',
'Мы -- атеисты! Мэр города выступил с речью в поддержку атеистической молодёжи'
},
goto = 'newspaper_2'
};
walk = 'newspaper_2'
};

View File

@ -69,4 +69,4 @@ menu.button.y = 799
snd.click = theme/click.ogg
;cursor is from http://www.famfamfam.com/lab/icons/silk/
;cursor is from http://www.famfamfam.com/lab/icons/silk/