Spam
cli_execute("refresh inv") after each turn, then? There really isn't any clean fix aside from Mafia being patched to specifically check globs of blank-out.
I don't believe there's actually a precedent in terms of functionality, since other items that
might be consumed upon use in combat (e.g. rogue swarmer) can just be updated by the next entered combat, so blank-out seems like it'd have to be hardcoded. edit: This is why you can use the run_combat() thingy, but I'm not sure how it plays with script-run combats. Will do some testing.
Also, have_item isn't actually a function built into Mafia. Should be
item_amount($item[glob of blank-out]) > 0. Silly me, was thinking about skills. Probably.
yet another edit: Is it the use of run_combat() for something other than running a combat the part that's tripping you up? It's a "secret" bit of functionality that, whenever called outside a combat, it'll return the last page of combat you saw. So when called unconditionally by a mood, it'll always execute after finishing up whatever combat you were in. But yeah, documented in the
Mafia wiki, although it's not the first thing that jumps out at you.