Обновление Lua, обучение
- walk вместо goto, обновление версии Lua - теперь первая комната - это простое обучение, чтобы игрок знал что делать
This commit is contained in:
parent
9e083849df
commit
9ecbb1dbec
13
engine.lua
13
engine.lua
|
@ -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
|
||||
|
|
28
main.lua
28
main.lua
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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'
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue