public Tile bestToImprove(City c)
	{
		//ArrayList<TileEntity> imprTiles = new ArrayList<TileEntity>();
		Tile bestestTile = null; int bestestSum = -1;
		for (Tile t: c.land)
		{
			if (t.improvement != null && t.improvement.name.equals("City"))
				continue;
			//Find the best improvement for this individual tile t
			int bestSum = -1;
			for (String impr: c.owner.techTree.allowedTileImprovements)
			{
				if (!EntityData.allowedTileImprovement(t, impr)) continue;
				double[] yieldBefore = City.staticEval(t), yieldAfter = City.staticEval(t, impr);
				int sum = 0;
				for (int i = 0; i < yieldBefore.length; i++)
					sum += yieldAfter[i] - yieldBefore[i];
				if (sum > bestSum)
					bestSum = sum;
			}
			//See if this tile's best is the best overall of every piece of the city's land
			if (bestSum > bestestSum)
			{
				bestestTile = t;
				bestestSum = bestSum;
			}
		}
		return bestestTile;
	}