If nobody moves your method will enter an infinite loop, because it always finds the first npc in the query, and if that npc is bad, then it recurses forever. Your cpu is probably committing suicide when you run this code lol.
Haven't done this stuff in a while but if you use a predicate (or...