def advancing(self):
        """A context manager for when time is moving forward one turn at a time.

        When used in LiSE, this means that the game is being simulated.
        It changes how the caching works, making it more efficient.

        """
        if self._forward:
            raise ValueError("Already advancing")
        self._forward = True
        yield
        self._forward = False