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
- CustomMods::isAI_SMART_V3()
- CvDiplomacyAI::IsGoingForCultureVictory()
- CvDiplomacyAI::IsGoingForSpaceshipVictory()
- CvEconomicAI::GetBestGreatWorkCity(CvPlot *, GreatWorkType) const
- CvGame::GetGameCulture()
- CvGame::getGameTurn()
- CvGameCulture::GetNumCivsInfluentialForWin() const
- CvGlobals::getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT()
- CvGlobals::getGame()
- CvMilitaryAI::GetNumberCivsAtWarWith() const
- CvPlayer::GetCulture() const
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::GetEconomicAI() const
- CvPlayer::GetMilitaryAI() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::isGoldenAge() const
- CvPlayerCulture::GetNumCivsInfluentialOn() const
- CvPlayerCulture::GetPublicOpinionUnhappiness() const
- CvPlayerTraits::GetGoldenAgeMoveChange() const
- CvPlayerTraits::GetGoldenAgeTourismModifier() const
- CvUnit::getGameTurnCreated() const
- CvUnit::GetGreatWork() const
- CvUnit::plot() const
- EconomicAIHelpers::IsTestStrategy_GS_SpaceshipHomestretch(CvPlayer *)
- PreparingForWar(CvPlayerAI *)