Bazaar developer reference

CvPlayerAI::GetDirectiveArtist(CvUnit *)

Defined in
CvPlayerAI.cpp, line 1127
Class
CvPlayerAI
Hook name
CivHooks::CvPlayerAI_GetDirectiveArtist

Hooks

static bool BeforeCvPlayerAI_GetDirectiveArtist(CvPlayerAI* self, CvUnit* pGreatArtist, GreatPeopleDirectiveTypes& result);static void AfterCvPlayerAI_GetDirectiveArtist(CvPlayerAI* self, CvUnit* pGreatArtist, GreatPeopleDirectiveTypes& result);static GreatPeopleDirectiveTypes ReplaceCvPlayerAI_GetDirectiveArtist(GreatPeopleDirectiveTypes (*original)(CvPlayerAI*, CvUnit*), CvPlayerAI* self, CvUnit* pGreatArtist);CivRegisterBefore<CivHooks::CvPlayerAI_GetDirectiveArtist>(host, &BeforeCvPlayerAI_GetDirectiveArtist);CivRegisterAfter<CivHooks::CvPlayerAI_GetDirectiveArtist>(host, &AfterCvPlayerAI_GetDirectiveArtist);CivRegisterReplace<CivHooks::CvPlayerAI_GetDirectiveArtist>(host, &ReplaceCvPlayerAI_GetDirectiveArtist);

Code

1127GreatPeopleDirectiveTypes CvPlayerAI::GetDirectiveArtist(CvUnit* pGreatArtist)1128{1129	GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;11301131	// Defend against ideology pressure if not going for culture win1132	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && !GetDiplomacyAI()->IsGoingForCultureVictory() && GetCulture()->GetPublicOpinionUnhappiness() > 10)1133	{1134		eDirective = GREAT_PEOPLE_DIRECTIVE_GOLDEN_AGE;1135	}11361137	// If prepping for war, Golden Age will build units quickly1138	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && !GetDiplomacyAI()->IsGoingForCultureVictory() && PreparingForWar(this))1139	{1140		eDirective = GREAT_PEOPLE_DIRECTIVE_GOLDEN_AGE;1141	}11421143	// If finishing up spaceship parts, Golden Age will help build those quickly1144	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetDiplomacyAI()->IsGoingForSpaceshipVictory() && EconomicAIHelpers::IsTestStrategy_GS_SpaceshipHomestretch(this))1145	{1146		eDirective = GREAT_PEOPLE_DIRECTIVE_GOLDEN_AGE;1147	}11481149	// If Persia and I'm at war, get a Golden Age going1150	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetPlayerTraits()->GetGoldenAgeMoveChange() > 0 && GetMilitaryAI()->GetNumberCivsAtWarWith() > 1 && !isGoldenAge())1151	{1152		eDirective = GREAT_PEOPLE_DIRECTIVE_GOLDEN_AGE;1153	}11541155	// If Brazil and we're closing in on Culture Victory1156#if defined(MOD_AI_SMART_V3)1157	int iInfluentialOn = MOD_AI_SMART_V3 ? (GC.getGame().GetGameCulture()->GetNumCivsInfluentialForWin() / 4) : 0;1158	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetPlayerTraits()->GetGoldenAgeTourismModifier() > 0 && GetCulture()->GetNumCivsInfluentialOn() > iInfluentialOn)1159#else1160	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetPlayerTraits()->GetGoldenAgeTourismModifier() > 0 && GetCulture()->GetNumCivsInfluentialOn() > 0)1161#endif1162	{1163		eDirective = GREAT_PEOPLE_DIRECTIVE_GOLDEN_AGE;1164	}11651166	// Create Great Work if there is a slot1167	GreatWorkType eGreatWork = pGreatArtist->GetGreatWork();1168	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetEconomicAI()->GetBestGreatWorkCity(pGreatArtist->plot(), eGreatWork))1169	{1170		eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1171	}11721173#if defined(MOD_AI_SMART_V3)1174	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && !isGoldenAge() && (MOD_AI_SMART_V3 || ((GC.getGame().getGameTurn() - pGreatArtist->getGameTurnCreated()) >= (GC.getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT() / 2))))1175#else1176	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && !isGoldenAge())1177#endif1178	{1179		eDirective = GREAT_PEOPLE_DIRECTIVE_GOLDEN_AGE;1180	}11811182	return eDirective;1183}

Calls

Called by