public static boolean shouldBuild() {
		int factories = UnitCounter.getNumberOfUnits(TerranFactory.getBuildingType());
		int armories = getNumberOfUnits();
		boolean weAreBuilding = Constructing.weAreBuilding(buildingType);

		if (armories == 0
				&& (factories >= 2 && !weAreBuilding
						&& !TechnologyManager.isSiegeModeResearchPossible() || TerranFactory.FORCE_GOLIATHS_INSTEAD_VULTURES)) {
			int numberOfBattleUnits = UnitCounter.getNumberOfBattleUnits();
			if (numberOfBattleUnits >= 12
					|| (TerranFactory.FORCE_GOLIATHS_INSTEAD_VULTURES && numberOfBattleUnits >= 4)) {
				ShouldBuildCache.cacheShouldBuildInfo(buildingType, true);
				return true;
			}
		}

		ShouldBuildCache.cacheShouldBuildInfo(buildingType, false);
		return false;
	}