pub fn until<S, F, A: Action<S, R>, R>(f: F) -> Until<F, A, R>where F: Fn(&mut NpcCtx<'_>, &mut S) -> Option<A>,