Multiple Condition for DifferentialEquations callback

So as it turns out, one can differentiate between up-crossings (negative to positive) and down-crossings (positive to negative). Since I am only interested in up-crossings, I can set up the following to meet my needs:

# Stopping conditions:
condition(u, t, integrator) = u[1] # when x=0
function affect!(integrator)
    # extract counter from the "cache"
    event_num = integrator.p[2]
    # update crossing amount
    event_num += 1
    # if crossings = n_crossings, terminate, else nothing
    event_num == n_cross ? terminate!(integrator) : nothing
    # update the "cache" value
    integrator.p[2] = event_num
end
cb = ContinuousCallback(condition, affect!;
            affect_neg! = nothing)