public void incValue(float inc) {
    //Include weight, and use it to modify familiarity?
    //
    //  Roll dice matching current relationship against magnitude of event.
    final int numDice = (int) (Math.abs(attitude / ATTITUDE_DIE) + 0.5f) ;
    int roll = 0 ;
    for (int n = numDice ; n-- > 0 ;) roll += Rand.yes() ? 1 : 0 ;
    final float diff = (Math.abs(inc) * MAX_ATTITUDE) - (roll * ATTITUDE_DIE) ;
    //
    //  Raise/lower by half the margin of failure, and increment familiarity
    //  either way.
    if (diff > 0) {
      attitude += (inc > 0) ? (diff / 2) : (diff / -2) ;
      attitude = Visit.clamp(attitude, MIN_ATTITUDE, MAX_ATTITUDE) ;
    }
    familiarity++ ;
  }