protected float cost(Boardable prior, Boardable spot) {
    if (spot == null) return -1 ;
    if (spot == destination) return 0 ;
    float mods = 0 ;
    
    if (client != null) {
      //
      //  TODO:  Stay out of the unfogged areas of hostile bases, and fogged
      //  areas of your own.

      //  If the area or tile has other actors in it, increase the perceived
      //  cost.
      if (spot != client.aboard()) mods += spot.inside().size() * 10 ;
    }
    
    //  Finally, return a value based on pathing difficulties in the terrain-
    final float baseCost = Spacing.distance(prior, spot) ;
    switch (spot.pathType()) {
      case (Tile.PATH_CLEAR  ) : return (1.0f * baseCost) + mods ;
      case (Tile.PATH_ROAD   ) : return (0.5f * baseCost) + mods ;
      case (Tile.PATH_HINDERS) : return (2.0f * baseCost) + mods ;
      default : return baseCost ;
    }
  }