Roippi, this is fantastic! It's very exciting to see the possibility of more accurate predictions for adventuring scripts.
I'm already using this in my local BatMan RE to display the queue in the Adventure Again box, and will be integrating it into ZLib's
has_goal() predictions, especially once it accounts for banished monsters and Olfaction/Creamstaff.
I know mafia tracks monsters banished by both Boris and Jarlsberg's special abilities, as well as the Nanorhino. It doesn't appear to track any of the others, such as Howl of the Alpha or combat items. Temporary banishments like Creepy Grin, Stinkeye, or the cocktail napkin could add counters which include the monster name, but tracking in a preference would probably be better.
Rather than add individual preferences for
every single thing that banishes a monster, perhaps a single preference containing all banished monsters and duration of banishment would be more future-proof? I imagine it would also make it far easier to collate all the banished monsters in order to adjust their appearance rate.
Looking ahead, once banished monsters are accounted for, the function could also add tumbleweed to zones where all monsters have been banished.
One issue to report: Cyrpt mini-bosses are being treated as regular monsters. They should probably have their appearance rate changed to 0 for both versions of the function. If you wanted to be fancy, the queue-savvy version could show it as the only monster in the location if 0 < zone evilness <= 25.