Bazaar developer reference

CvPlayerAI::GetDirectiveWriter(CvUnit *)

Defined in
CvPlayerAI.cpp, line 1092
Class
CvPlayerAI
Hook name
CivHooks::CvPlayerAI_GetDirectiveWriter

Hooks

static bool BeforeCvPlayerAI_GetDirectiveWriter(CvPlayerAI* self, CvUnit* pGreatWriter, GreatPeopleDirectiveTypes& result);static void AfterCvPlayerAI_GetDirectiveWriter(CvPlayerAI* self, CvUnit* pGreatWriter, GreatPeopleDirectiveTypes& result);static GreatPeopleDirectiveTypes ReplaceCvPlayerAI_GetDirectiveWriter(GreatPeopleDirectiveTypes (*original)(CvPlayerAI*, CvUnit*), CvPlayerAI* self, CvUnit* pGreatWriter);CivRegisterBefore<CivHooks::CvPlayerAI_GetDirectiveWriter>(host, &BeforeCvPlayerAI_GetDirectiveWriter);CivRegisterAfter<CivHooks::CvPlayerAI_GetDirectiveWriter>(host, &AfterCvPlayerAI_GetDirectiveWriter);CivRegisterReplace<CivHooks::CvPlayerAI_GetDirectiveWriter>(host, &ReplaceCvPlayerAI_GetDirectiveWriter);

Code

1092GreatPeopleDirectiveTypes CvPlayerAI::GetDirectiveWriter(CvUnit* pGreatWriter)1093{1094	GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;10951096	// Defend against ideology pressure if not going for culture win1097	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && !GetDiplomacyAI()->IsGoingForCultureVictory() && GetCulture()->GetPublicOpinionUnhappiness() > 10)1098	{1099		eDirective = GREAT_PEOPLE_DIRECTIVE_CULTURE_BLAST;1100	}11011102	// If not going for culture win and a Level 2 or 3 Tenet is available, try to snag it1103	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && !GetDiplomacyAI()->IsGoingForCultureVictory() && GetPlayerPolicies()->CanGetAdvancedTenet())1104	{1105		eDirective = GREAT_PEOPLE_DIRECTIVE_CULTURE_BLAST;1106	}11071108	// Create Great Work if there is a slot1109	GreatWorkType eGreatWork = pGreatWriter->GetGreatWork();1110	if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetEconomicAI()->GetBestGreatWorkCity(pGreatWriter->plot(), eGreatWork))1111	{1112		eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1113	}1114#if defined(MOD_AI_SMART_V3)1115	// AMS: Wait idle for 6 turns until culture blast due to no alternatives, maybe a work slot is built/conquered meanwhile.1116	else if (!MOD_AI_SMART_V3 || ((GC.getGame().getGameTurn() - pGreatWriter->getGameTurnCreated()) >= (GC.getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT() / 2)))1117#else1118	else1119#endif1120	{1121		eDirective = GREAT_PEOPLE_DIRECTIVE_CULTURE_BLAST;1122	}11231124	return eDirective;1125}

Calls

Called by