I’ve got a quantity that behaves in different ways, depending on stages. Initially the player fills it up, and it only goes in one direction; once filled, it goes in both directions, depending on player performance; and if it drops below a certain threshold, it empties entirely, and returns to the first stage. The idea here is create a binary state for the player, affected by the quantity; either it is empty, and the player needs to fill it; or it has been filled, and the player needs to maintain it. But cramming all this functionality into a single gauge runs contrary to the simplicity of a standard UI element, and the assumptions that underlie it. There are UI design solutions around this, but that’s not something I want to futz around with right now.
Alternate solution: transfer the functionality of the gauge’s second state to a function of gameplay instead. The gauge only fills up, and once full, stays full. But once full, it is targeted by certain attacks from enemies; if those attacks are successful, the gauge is emptied. Players learn that the gauge needs to be protected from a unique threat once full, which is intuitive enough.