I've been thinking about the muffin tin.
KoLmafia has two properties to track the state of the breakfast counter:
muffinOnOrder - none, blueberry muffin, bran muffin, chocolate chip muffin, earthenware muffin tin
(The last is set when you ascend and we reset properties: if you had a muffin on order, that's not what you will get when you visit the breakfast counter after you ascend.)
_muffinOrderedToday - true or false
Assuming KoLmafia sees all of your interactions with KoL, those should be everything you need.
We decorate the gash with "things you might want to do":
If you have an earthenware muffin tin and nothing on order: "order a muffin at the Breakfast Counter"
If you have a blueberry, bran, or chocolate chip muffin: "order a muffin at the Breakfast Counter"
That last one is problematic, since you probably are full at the gash.
VMF would have the same issue.
It has properties: VMF.EatMuffins and VMF.MuffinToOrder
if the former, as part of consumption, it will (pull and eat) a muffin - if you have one - and then order a new muffin.
If you don't have a muffin and do have an earthenware muffin tin, it will visit the breakfast counter - and pick up and eat a muffin, if one is there - and then order a new muffin.
So, if, you have VMF.EatMuffins - and fullness available - it will order and eat a muffin and then order one for tomorrow.
If one or the other of those is not true, perhaps we should also have VMF.OrderMuffins which will ensure you have a muffin in the oven for tomorrow.
The only issue would be if KoLmafia's properties are incorrect and we think muffinOnOrder is "none", but when we visit the breakfast counter, we are given a muffin and can't/won't eat it.
I'll write up an "Issue" proposing something like that.
KoLmafia has two properties to track the state of the breakfast counter:
muffinOnOrder - none, blueberry muffin, bran muffin, chocolate chip muffin, earthenware muffin tin
(The last is set when you ascend and we reset properties: if you had a muffin on order, that's not what you will get when you visit the breakfast counter after you ascend.)
_muffinOrderedToday - true or false
Assuming KoLmafia sees all of your interactions with KoL, those should be everything you need.
We decorate the gash with "things you might want to do":
If you have an earthenware muffin tin and nothing on order: "order a muffin at the Breakfast Counter"
If you have a blueberry, bran, or chocolate chip muffin: "order a muffin at the Breakfast Counter"
That last one is problematic, since you probably are full at the gash.
VMF would have the same issue.
It has properties: VMF.EatMuffins and VMF.MuffinToOrder
if the former, as part of consumption, it will (pull and eat) a muffin - if you have one - and then order a new muffin.
If you don't have a muffin and do have an earthenware muffin tin, it will visit the breakfast counter - and pick up and eat a muffin, if one is there - and then order a new muffin.
So, if, you have VMF.EatMuffins - and fullness available - it will order and eat a muffin and then order one for tomorrow.
If one or the other of those is not true, perhaps we should also have VMF.OrderMuffins which will ensure you have a muffin in the oven for tomorrow.
The only issue would be if KoLmafia's properties are incorrect and we think muffinOnOrder is "none", but when we visit the breakfast counter, we are given a muffin and can't/won't eat it.
I'll write up an "Issue" proposing something like that.