s&box NPC AnimationLayer: sync move/look state, compute move_direction as atan2, broadcast attack triggers