Yes, liquids are notoriously difficult to handle, and there isn’t a built-in way of duplicating a thing–in general you have to create everything you want in advance, and move them on-stage as necessary. Which might be easier than implementing the liquid as a separate thing. Here’s one way of doing it (for some reason, I had to say “instead of drinking the glass when the glass is empty” etc. rather than the more straightforward “instead of drinking the empty glass”):
[code]Bar is a room. A pitcher of beer is in the bar. The description is “The pitchers here are so enormous that you could hardly drain them.”
A glass is in the bar. The glass can be empty or full. The glass is empty. The description of the glass is “The glass is [if the glass is empty]empty[otherwise]full of beer[end if].”
Understand “beer” or “of beer” as the glass when the glass is full. Understand “empty” as the glass when the glass is empty. Understand “full” as the glass when the glass is full.
After printing the name of the glass when the glass is full: say " of beer".
Instead of inserting the pitcher of beer into the glass when the glass is empty: [this takes care of “put beer in glass”; you’d want to handle more synonyms]
say “You pour beer into the glass.”;
now the glass is full.
Instead of inserting the pitcher of beer into the glass when the glass is full:
say “The glass is already full.”
Instead of drinking the glass when the glass is empty:
say “The glass is empty.”
Instead of drinking the glass when the glass is full:
say “You drain the glass.”;
now the glass is empty.
Instead of drinking the pitcher:
say “You have to put the beer in the glass before you drink it.”
Does the player mean drinking the glass: it is very likely. [so “drink beer” goes to the glass][/code]
Another way of doing it would be to have a full-glass object out of play (or more, if necessary) and swap the full-glass object in for the empty glass when the glass gets filled. Example 378, “Pizza Prince,” gives you a way of making a dispenser like that. And if you don’t want the pitcher to be bottomless, you could keep track of how many times you’ve filled the glass from it and block filling the glass once the pitcher reaches its max count.