Code
1932/// Choose which tactics to run and assign units to it (barbarian version)1933void CvTacticalAI::AssignBarbarianMoves()1934{1935 FStaticVector<CvTacticalMove, 256, true, c_eCiv5GameplayDLL >::iterator it;19361937 // Proceed in priority order1938 for(it = m_MovePriorityList.begin(); it != m_MovePriorityList.end(); it++)1939 {1940 CvTacticalMove move = *it;19411942 AI_PERF_FORMAT("AI-perf-tact.csv", ("Barb Move: %d, Turn %03d, %s", (int)move.m_eMoveType, GC.getGame().getElapsedGameTurns(), m_pPlayer->getCivilizationShortDescription()) );19431944 switch(move.m_eMoveType)1945 {1946 case AI_TACTICAL_BARBARIAN_CAPTURE_CITY:1947 PlotCaptureCityMoves();1948 break;1949 case AI_TACTICAL_BARBARIAN_DAMAGE_CITY:1950 PlotDamageCityMoves();1951 break;1952 case AI_TACTICAL_BARBARIAN_DESTROY_HIGH_PRIORITY_UNIT:1953 PlotDestroyUnitMoves(AI_TACTICAL_TARGET_HIGH_PRIORITY_UNIT, true);1954 break;1955 case AI_TACTICAL_BARBARIAN_DESTROY_MEDIUM_PRIORITY_UNIT:1956 PlotDestroyUnitMoves(AI_TACTICAL_TARGET_MEDIUM_PRIORITY_UNIT, true);1957 break;1958 case AI_TACTICAL_BARBARIAN_DESTROY_LOW_PRIORITY_UNIT:1959 PlotDestroyUnitMoves(AI_TACTICAL_TARGET_LOW_PRIORITY_UNIT, true);1960 break;1961 case AI_TACTICAL_BARBARIAN_MOVE_TO_SAFETY:1962 PlotMovesToSafety(true /*bCombatUnits*/);1963 break;1964 case AI_TACTICAL_BARBARIAN_ATTRIT_HIGH_PRIORITY_UNIT:1965 PlotDestroyUnitMoves(AI_TACTICAL_TARGET_HIGH_PRIORITY_UNIT, false);1966 break;1967 case AI_TACTICAL_BARBARIAN_ATTRIT_MEDIUM_PRIORITY_UNIT:1968 PlotDestroyUnitMoves(AI_TACTICAL_TARGET_MEDIUM_PRIORITY_UNIT, false);1969 break;1970 case AI_TACTICAL_BARBARIAN_ATTRIT_LOW_PRIORITY_UNIT:1971 PlotDestroyUnitMoves(AI_TACTICAL_TARGET_LOW_PRIORITY_UNIT, false);1972 break;1973 case AI_TACTICAL_BARBARIAN_PILLAGE:1974 PlotPillageMoves(AI_TACTICAL_TARGET_IMPROVEMENT_RESOURCE, true/*bFirstPass*/);1975 break;1976 case AI_TACTICAL_BARBARIAN_PILLAGE_CITADEL:1977 PlotPillageMoves(AI_TACTICAL_TARGET_CITADEL, true/*bFirstPass*/);1978 break;1979 case AI_TACTICAL_BARBARIAN_PILLAGE_NEXT_TURN:1980 PlotPillageMoves(AI_TACTICAL_TARGET_CITADEL, false/*bFirstPass*/);1981 PlotPillageMoves(AI_TACTICAL_TARGET_IMPROVEMENT_RESOURCE, false/*bFirstPass*/);1982 break;1983 case AI_TACTICAL_BARBARIAN_PRIORITY_BLOCKADE_RESOURCE:1984// PlotBlockadeImprovementMoves();1985 break;1986 case AI_TACTICAL_BARBARIAN_CIVILIAN_ATTACK:1987 PlotCivilianAttackMoves(AI_TACTICAL_TARGET_VERY_HIGH_PRIORITY_CIVILIAN);1988 PlotCivilianAttackMoves(AI_TACTICAL_TARGET_HIGH_PRIORITY_CIVILIAN);1989 PlotCivilianAttackMoves(AI_TACTICAL_TARGET_MEDIUM_PRIORITY_CIVILIAN);1990 PlotCivilianAttackMoves(AI_TACTICAL_TARGET_LOW_PRIORITY_CIVILIAN);1991 break;1992 case AI_TACTICAL_BARBARIAN_CAMP_DEFENSE:1993 PlotCampDefenseMoves();1994 break;1995 case AI_TACTICAL_BARBARIAN_AGGRESSIVE_MOVE:1996 PlotBarbarianMove(true /*bAggressive*/);1997 break;1998 case AI_TACTICAL_BARBARIAN_PASSIVE_MOVE:1999 PlotBarbarianMove(false /*bAggressive*/);2000 break;2001 case AI_TACTICAL_BARBARIAN_DESPERATE_ATTACK:2002 PlotDestroyUnitMoves(AI_TACTICAL_TARGET_LOW_PRIORITY_UNIT, false, true);2003 break;2004 case AI_TACTICAL_BARBARIAN_ESCORT_CIVILIAN:2005 PlotBarbarianCivilianEscortMove();2006 break;2007 case AI_TACTICAL_BARBARIAN_PLUNDER_TRADE_UNIT:2008 PlotBarbarianPlunderTradeUnitMove(DOMAIN_LAND);2009 PlotBarbarianPlunderTradeUnitMove(DOMAIN_SEA);2010 break;2011 }2012 }20132014 ReviewUnassignedUnits();2015}