CvPlayerAI::GetDirectiveMusician(CvUnit *)
- Defined in
- CvPlayerAI.cpp, line 1185
- Class
- CvPlayerAI
- Hook name
CivHooks::CvPlayerAI_GetDirectiveMusician
Hooks
static bool BeforeCvPlayerAI_GetDirectiveMusician(CvPlayerAI* self, CvUnit* pGreatMusician, GreatPeopleDirectiveTypes& result);static void AfterCvPlayerAI_GetDirectiveMusician(CvPlayerAI* self, CvUnit* pGreatMusician, GreatPeopleDirectiveTypes& result);static GreatPeopleDirectiveTypes ReplaceCvPlayerAI_GetDirectiveMusician(GreatPeopleDirectiveTypes (*original)(CvPlayerAI*, CvUnit*), CvPlayerAI* self, CvUnit* pGreatMusician);CivRegisterBefore<CivHooks::CvPlayerAI_GetDirectiveMusician>(host, &BeforeCvPlayerAI_GetDirectiveMusician);CivRegisterAfter<CivHooks::CvPlayerAI_GetDirectiveMusician>(host, &AfterCvPlayerAI_GetDirectiveMusician);CivRegisterReplace<CivHooks::CvPlayerAI_GetDirectiveMusician>(host, &ReplaceCvPlayerAI_GetDirectiveMusician);
Code
1185GreatPeopleDirectiveTypes CvPlayerAI::GetDirectiveMusician(CvUnit* pGreatMusician)1186{1187 GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;11881189 // If headed on a concert tour, keep going1190 if (pGreatMusician->getArmyID() != FFreeList::INVALID_INDEX)1191 {1192 eDirective = GREAT_PEOPLE_DIRECTIVE_TOURISM_BLAST;1193 }11941195 // If closing in on a Culture win, go for the Concert Tour1196 if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetDiplomacyAI()->IsGoingForCultureVictory() && GetCulture()->GetNumCivsInfluentialOn() > (GC.getGame().GetGameCulture()->GetNumCivsInfluentialForWin() / 2))1197 { 1198 CvPlot* pTarget = FindBestMusicianTargetPlot(pGreatMusician, true);1199 if(pTarget)1200 {1201 eDirective = GREAT_PEOPLE_DIRECTIVE_TOURISM_BLAST;1202 }1203 }12041205 // Create Great Work if there is a slot1206 GreatWorkType eGreatWork = pGreatMusician->GetGreatWork();1207 if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GetEconomicAI()->GetBestGreatWorkCity(pGreatMusician->plot(), eGreatWork))1208 {1209 eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1210 }1211#if defined(MOD_AI_SMART_V3)1212 else if (MOD_AI_SMART_V3 || ((GC.getGame().getGameTurn() - pGreatMusician->getGameTurnCreated()) >= (GC.getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT() / 2)))1213#else1214 else1215#endif1216 {1217 CvPlot* pTarget = FindBestMusicianTargetPlot(pGreatMusician, true);1218 if(pTarget)1219 {1220 eDirective = GREAT_PEOPLE_DIRECTIVE_TOURISM_BLAST;1221 }1222 }12231224 return eDirective;1225}
Calls
- CustomMods::isAI_SMART_V3()
- CvDiplomacyAI::IsGoingForCultureVictory()
- CvEconomicAI::GetBestGreatWorkCity(CvPlot *, GreatWorkType) const
- CvGame::GetGameCulture()
- CvGame::getGameTurn()
- CvGameCulture::GetNumCivsInfluentialForWin() const
- CvGlobals::getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT()
- CvGlobals::getGame()
- CvPlayer::GetCulture() const
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::GetEconomicAI() const
- CvPlayerAI::FindBestMusicianTargetPlot(CvUnit *, bool)
- CvPlayerCulture::GetNumCivsInfluentialOn() const
- CvUnit::getArmyID() const
- CvUnit::getGameTurnCreated() const
- CvUnit::GetGreatWork() const
- CvUnit::plot() const