anchor.diff:            // return so we can wait for it.
             if (actor.needsInput) return gameResult;
   
  -          var action = actor.getAction();
  -          actions.add(action);
  +          _action = actor.getAction();
           } else {
             // This actor doesn't have enough energy yet, so move on to the next.
             stage.actors.advance();
  
positive.code: 
        // If we get here, all pending actions are done, so advance to the next
        // tick until an actor moves.
        while (actions.length == 0) {
          final actor = stage.actors.current;
  
          // If we are still waiting for input for the actor, just return (again).
  
negative.code:         gameResult.madeProgress = true;
  
          if (result.done) {
            if (_action.consumesEnergy) {
              _action.actor.finishTurn(_action);
              stage.actors.advance();
            }
  
            // Refresh every time the hero takes a turn.
            var wasHero = _action.actor == hero;
            _action = null;
            if (wasHero) return gameResult;
          }
  
          if (gameResult.events.length > 0) return gameResult;
  