Друзья! Подскажите, отговорите, укажите путь, пожалуйста.
К примеру есть хеш Состояние.
my $state = {
level => 1,
life => 100,
money => 1234
};
Нужно как-то в БД хранить квесты. Хочу заложить уловия применимости (доступности) квеста. Что-то вроде «если уровень больше 2, а денег больше 1000». И изменения состояния, которое будет в случае success и fail квеста. Тоже что-то вроде «уменьшить денег на 10, прибавить уровень на 2».
Думается, что эти условия квеста и структуру изменений по его выполнению, можно было бы тоже хранить в json в БД, парсить на PgPerlU до преобразования в хеш. А дальше просто «применить».
т.е. хочу хранить подобное (уже развернутый хеш из json):
{
level => '>10',
money => '>=1000'
}
чтобы просто сделать что-то вроде
if (eval "" . $state->{level} . $quest->{level}) {
# в строке условия получится "1 >10", т.е. false (0)
#...
}
Но тогда будет вопрос с выбором всех квестов, доступных для данного состояния игрока. Т.к. в простой селект будет сложно запихнуть такие закидоны. Но, может, на той же хранимой процедуре сделать выборку, скомпоновав текст запроса?...
В общем, кто что думает по этой теме?