"I think all you need is a simple flag called (say) "rats_fed"... you can test this in code to describe the rats, and a similar test will decide whether your player should be able to get the goodies..."
define synonyms
end define
flag on <rats_fed>
define room <Outside the Tower>
description <You are in a cellar. It is rather dark - though light enough to see (and hear) that the room is full of rather vicious looking rats. |nThere are stairs going up to the ground floor.|n There also seems to be a door to the east.>
beforeturn override if not flag <rats_fed> then {
msg <The Rats won't let you pass>
create exit east <Damp Cellar;Damp Cellar>
else create exit east <Damp Cellar;Storeroom>
}