CvPlayerAI::GetDirectiveEngineer(CvUnit *)
- Defined in
- CvPlayerAI.cpp, line 1227
- Class
- CvPlayerAI
- Hook name
CivHooks::CvPlayerAI_GetDirectiveEngineer
Hooks
static bool BeforeCvPlayerAI_GetDirectiveEngineer(CvPlayerAI* self, CvUnit* pGreatEngineer, GreatPeopleDirectiveTypes& result);static void AfterCvPlayerAI_GetDirectiveEngineer(CvPlayerAI* self, CvUnit* pGreatEngineer, GreatPeopleDirectiveTypes& result);static GreatPeopleDirectiveTypes ReplaceCvPlayerAI_GetDirectiveEngineer(GreatPeopleDirectiveTypes (*original)(CvPlayerAI*, CvUnit*), CvPlayerAI* self, CvUnit* pGreatEngineer);CivRegisterBefore<CivHooks::CvPlayerAI_GetDirectiveEngineer>(host, &BeforeCvPlayerAI_GetDirectiveEngineer);CivRegisterAfter<CivHooks::CvPlayerAI_GetDirectiveEngineer>(host, &AfterCvPlayerAI_GetDirectiveEngineer);CivRegisterReplace<CivHooks::CvPlayerAI_GetDirectiveEngineer>(host, &ReplaceCvPlayerAI_GetDirectiveEngineer);
Code
1227GreatPeopleDirectiveTypes CvPlayerAI::GetDirectiveEngineer(CvUnit* pGreatEngineer)1228{1229 GreatPeopleDirectiveTypes eDirective = NO_GREAT_PEOPLE_DIRECTIVE_TYPE;12301231 // look for a wonder to rush1232 if(eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE)1233 {1234 int iNextWonderWeight;1235 BuildingTypes eNextWonderDesired = GetWonderProductionAI()->ChooseWonder(false /*bUseAsyncRandom*/, false /*bAdjustForOtherPlayers*/, iNextWonderWeight);1236 if(eNextWonderDesired != NO_BUILDING)1237 {1238 eDirective = GREAT_PEOPLE_DIRECTIVE_USE_POWER;1239 }1240 }12411242 if (eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && GC.getGame().getGameTurn() <= ((GC.getGame().getEstimateEndTurn() * 3) / 4))1243 {1244 if (GetDiplomacyAI()->IsGoingForWorldConquest())1245 {1246 eDirective = GREAT_PEOPLE_DIRECTIVE_CONSTRUCT_IMPROVEMENT;1247 }1248 }12491250 if(eDirective == NO_GREAT_PEOPLE_DIRECTIVE_TYPE && (GC.getGame().getGameTurn() - pGreatEngineer->getGameTurnCreated()) >= GC.getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT())1251 {1252 eDirective = GREAT_PEOPLE_DIRECTIVE_CONSTRUCT_IMPROVEMENT;1253 }12541255 return eDirective;1256}
Calls
- CvDiplomacyAI::IsGoingForWorldConquest()
- CvGame::getEstimateEndTurn() const
- CvGame::getGameTurn()
- CvGlobals::getAI_HOMELAND_GREAT_PERSON_TURNS_TO_WAIT()
- CvGlobals::getGame()
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::GetWonderProductionAI() const
- CvUnit::getGameTurnCreated() const
- CvWonderProductionAI::ChooseWonder(bool, bool, int &)