Hi Garry,
Looking at the game’s source code, I was intrigued by your curious Fill function in the pen object (fountain pen).
But that’s not the main point: while the potential filling of the pen is supported, its emptying is not.
What’s interesting is that, in this case, the PunyInform library responds “The fountain pen is already empty”, whereas the standard library responds “The fountain pen can’t hold anything”. In both cases, this is not satisfactory for your pen.
I’ve reported the issue to PunyInform.
Regarding your curious Fill function, this might have been simpler:
Fill:
if (second == nothing) {
if (TestScope(ink_bottle))
print "(with the ink from the ink bottle";
else if ((TestScope(water) || TestScope(bubbler))
print "(with the water from the bubbler";
else if (TestScope(pool))
print "(with the water from the swimming pool";
else
"You'll have to tell me what to fill it with.";
print ")^";
}
else if (second ~= ink_bottle or water or pool or bubbler)
"You can't fill the fountain pen with ", (ThatOrThose)second, ".";
"The fountain pen is already full of ink.";
(Edit)