You don't necessarily need an engine, it's really simple. Just make a variable called somethin like keycount starting at 0. Then just increment the number whenever you get a key. Then when you hit a door that's locked:
if (keycount > 0)
{
[Open Door]
}
else
{
[Denied]
}
As simple as that.