public static double findTerritoryAttackValue(final PlayerID player, final Territory t) {
    final GameData data = ProData.getData();

    final int isEnemyFactory =
        ProMatches.territoryHasInfraFactoryAndIsEnemyLand(player, data).match(t) ? 1 : 0;
    double value = 3 * TerritoryAttachment.getProduction(t) * (isEnemyFactory + 1);
    if (!t.isWater() && t.getOwner().isNull()) {
      final double strength =
          ProBattleUtils.estimateStrength(
              t.getOwner(),
              t,
              new ArrayList<Unit>(t.getUnits().getUnits()),
              new ArrayList<Unit>(),
              false);

      // Estimate TUV swing as number of casualties * cost
      final double TUVSwing = -(strength / 8) * ProData.minCostPerHitPoint;
      value += TUVSwing;
    }
    return value;
  }