Bazaar developer reference

CvTacticalAI::AssignBarbarianMoves()

Defined in
CvTacticalAI.cpp, line 1933
Class
CvTacticalAI
Hook name
CivHooks::CvTacticalAI_AssignBarbarianMoves

Hooks

static bool BeforeCvTacticalAI_AssignBarbarianMoves(CvTacticalAI* self);static void AfterCvTacticalAI_AssignBarbarianMoves(CvTacticalAI* self);static void ReplaceCvTacticalAI_AssignBarbarianMoves(void (*original)(CvTacticalAI*), CvTacticalAI* self);CivRegisterBefore<CivHooks::CvTacticalAI_AssignBarbarianMoves>(host, &BeforeCvTacticalAI_AssignBarbarianMoves);CivRegisterAfter<CivHooks::CvTacticalAI_AssignBarbarianMoves>(host, &AfterCvTacticalAI_AssignBarbarianMoves);CivRegisterReplace<CivHooks::CvTacticalAI_AssignBarbarianMoves>(host, &ReplaceCvTacticalAI_AssignBarbarianMoves);

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}

Calls

Called by