Separate sprite AI logic from Action execution