protected Behaviour getNextStep() {
    if (
      safePoint == null || actor.aboard() == safePoint ||
      safePoint.pathType() == Tile.PATH_BLOCKS
    ) {
      safePoint = nearestHaven(actor, null) ;
      priorityMod *= 0.5f ;
      if (priorityMod < 0.25f) priorityMod = 0 ;
    }
    if (safePoint == null) {
      abortBehaviour() ;
      return null ;
    }
    final Action flees = new Action(
      actor, safePoint,
      this, "actionFlee",
      Action.LOOK, "Fleeing to "
    ) ;
    flees.setProperties(Action.QUICK) ;
    return flees ;
  }