WapSter, делаю игру, а именно чтоб npc когда видел игрока, его параметр тревоги становился true. А в функции где он ходит вперел-назад, проверка , что если true, он делал выстрел интервалами. Чтобы он выстреливал каждые несколько секунд.
Anonymous_toaster, тогда запускай setTimeout один раз, внутри setTimeout проверяй уровень тревоги, в случае false используй clearTimeout в случае true перезапускай setTimeout, а в requestAnimationFrame просто проверяй запущен ли setTimeout, если запущен, то просто повторно не запускай