Bazaar developer reference

CvPlayerAI::GetDirectiveScientist(CvUnit *)

Defined in
CvPlayerAI.cpp, line 1310
Class
CvPlayerAI
Hook name
CivHooks::CvPlayerAI_GetDirectiveScientist

Hooks

static bool BeforeCvPlayerAI_GetDirectiveScientist(CvPlayerAI* self, CvUnit* arg0, GreatPeopleDirectiveTypes& result);static void AfterCvPlayerAI_GetDirectiveScientist(CvPlayerAI* self, CvUnit* arg0, GreatPeopleDirectiveTypes& result);static GreatPeopleDirectiveTypes ReplaceCvPlayerAI_GetDirectiveScientist(GreatPeopleDirectiveTypes (*original)(CvPlayerAI*, CvUnit*), CvPlayerAI* self, CvUnit* arg0);CivRegisterBefore<CivHooks::CvPlayerAI_GetDirectiveScientist>(host, &BeforeCvPlayerAI_GetDirectiveScientist);CivRegisterAfter<CivHooks::CvPlayerAI_GetDirectiveScientist>(host, &AfterCvPlayerAI_GetDirectiveScientist);CivRegisterReplace<CivHooks::CvPlayerAI_GetDirectiveScientist>(host, &ReplaceCvPlayerAI_GetDirectiveScientist);

Code

1310GreatPeopleDirectiveTypes CvPlayerAI::GetDirectiveScientist(CvUnit* /*pGreatScientist*/)1311{1312	GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;13131314	// If I'm in danger, use great person to get a tech boost1315	if(eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && !IsSafe(this))1316	{1317		eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1318	}13191320#if defined(MOD_AI_SMART_V3)1321	// Go for improvement for third part of estimated game, no matter what.1322	int iDivisor = MOD_AI_SMART_V3 ? 3 : 4;1323	if(eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GC.getGame().getGameTurn() <= ((GC.getGame().getEstimateEndTurn() * 1) / iDivisor))1324#else1325	if(eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GC.getGame().getGameTurn() <= ((GC.getGame().getEstimateEndTurn() * 1) / 4))1326#endif1327	{1328#if defined(MOD_AI_SMART_V3)1329		if(MOD_AI_SMART_V3 || GetDiplomacyAI()->IsGoingForSpaceshipVictory())1330#else1331		if(GetDiplomacyAI()->IsGoingForSpaceshipVictory())1332#endif1333		{1334			eDirective = GREAT_PEOPLE_DIRECTIVE_CONSTRUCT_IMPROVEMENT;1335		}1336	}13371338	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE)1339	{1340		// a tech boost is never bad1341		eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1342	}13431344	return eDirective;1345}

Calls

Called by