protected void adjustRepair(float inc) {
    final int max = maxIntegrity() ;
    integrity += inc ;
    if (integrity < 0) {
      state = STATE_RAZED ;
      ((Element) basis).setAsDestroyed() ;
      integrity = 0 ;
      checkMaintenance() ;
    }
    else if (integrity >= max) {
      if (state == STATE_INSTALL) basis.onCompletion() ;
      if (state != STATE_SALVAGE) state = STATE_INTACT ;
      integrity = max ;
    }
    checkMaintenance() ;
  }