Improved NPC::changeState()