protected override void NextMove(float deltaTime) { for (int i = moves.Count - 1; i >= 0; i--) { IMove move = moves[i]; move.Issue(); if (move.Update(deltaTime)) { if (lastUsed != null && move != lastUsed) { lastUsed.Close(); } lastUsed = move; return; } } throw new NoMoveCandidatesException(); }