//
// Approximate how many turns this group would take to reduce pCity's defense modifier to zero
//
int CvSelectionGroup::getBombardTurns(CvCity* pCity)
{
	PROFILE_FUNC();

	bool bHasBomber = (area()->getNumAIUnits(getOwner(),UNITAI_ATTACK_AIR) > 0);
	bool bIgnoreBuildingDefense = bHasBomber;
	int iTotalBombardRate = (bHasBomber ? 16 : 0);

	CLLNode<IDInfo>* pUnitNode = headUnitNode();
	while (pUnitNode != NULL)
	{
		CvUnit* pLoopUnit = ::getUnit(pUnitNode->m_data);
		pUnitNode = nextUnitNode(pUnitNode);

		if( pLoopUnit->bombardRate() > 0 )
		{
			iTotalBombardRate += pLoopUnit->bombardRate();
			bIgnoreBuildingDefense = (bIgnoreBuildingDefense || pLoopUnit->ignoreBuildingDefense());
		}
	}

	int iBombardTurns = pCity->getDefenseModifier(bIgnoreBuildingDefense);
	if( !bIgnoreBuildingDefense )
	{
		iBombardTurns *= 100;
		iBombardTurns /= std::max(25, (100 - pCity->getBuildingBombardDefense()));
	}
	iBombardTurns /= std::max(8, iTotalBombardRate);

	// added Sephi
	if (iTotalBombardRate==0)
	{
		return -1;
	}

	return iBombardTurns;
}