void CvUnitAI::AI_barbAttackMove()
{
PROFILE_FUNC();
if (AI_guardCity(false, true, 1))
{
return;
}
if (plot()->isGoody())
{
if (plot()->plotCount(PUF_isUnitAIType, UNITAI_ATTACK, -1, getOwnerINLINE()) == 1)
{
getGroup()->pushMission(MISSION_SKIP);
return;
}
}
if (GC.getGameINLINE().getSorenRandNum(2, "AI Barb") == 0)
{
if (AI_pillageRange(1))
{
return;
}
}
if (AI_anyAttack(1, 20))
{
return;
}
if (GC.getGameINLINE().isOption(GAMEOPTION_RAGING_BARBARIANS))
{
if (AI_pillageRange(4))
{
return;
}
if (AI_cityAttack(3, 10))
{
return;
}
if (area()->getAreaAIType(getTeam()) == AREAAI_OFFENSIVE)
{
if (AI_targetCity())
{
return;
}
}
}
else if (GC.getGameINLINE().getNumCivCities() > (GC.getGameINLINE().countCivPlayersAlive() * 3))
{
if (AI_cityAttack(1, 15))
{
return;
}
if (AI_pillageRange(3))
{
return;
}
if (AI_cityAttack(2, 10))
{
return;
}
if (area()->getAreaAIType(getTeam()) == AREAAI_OFFENSIVE)
{
if (AI_targetCity())
{
return;
}
}
}
else if (GC.getGameINLINE().getNumCivCities() > (GC.getGameINLINE().countCivPlayersAlive() * 2))
{
if (AI_pillageRange(2))
{
return;
}
if (AI_cityAttack(1, 10))
{
return;
}
}
if (AI_load(UNITAI_ASSAULT_SEA, MISSIONAI_LOAD_ASSAULT, NO_UNITAI, -1, -1, -1, -1, MOVE_SAFE_TERRITORY, 1))
{
return;
}
if (AI_heal())
{
return;
}
if (AI_guardCity(false, true, 2))
{
return;
}
if (AI_patrol())
{
return;
}
if (AI_retreatToCity())
{
return;
}
if (AI_safety())
{
return;
}
getGroup()->pushMission(MISSION_SKIP);
return;
}