New badge numbers are always in range

Forces new badge numbers to only tack onto other badges that are in
range AND of the same type. This helps prevent range desyncs from
getting out of control.