Hooks
static bool BeforeCvMilitaryAI_RequestCityStateAttack(CvMilitaryAI* self, PlayerTypes eEnemy, bool& result);static void AfterCvMilitaryAI_RequestCityStateAttack(CvMilitaryAI* self, PlayerTypes eEnemy, bool& result);static bool ReplaceCvMilitaryAI_RequestCityStateAttack(bool (*original)(CvMilitaryAI*, PlayerTypes), CvMilitaryAI* self, PlayerTypes eEnemy);CivRegisterBefore<CivHooks::CvMilitaryAI_RequestCityStateAttack>(host, &BeforeCvMilitaryAI_RequestCityStateAttack);CivRegisterAfter<CivHooks::CvMilitaryAI_RequestCityStateAttack>(host, &AfterCvMilitaryAI_RequestCityStateAttack);CivRegisterReplace<CivHooks::CvMilitaryAI_RequestCityStateAttack>(host, &ReplaceCvMilitaryAI_RequestCityStateAttack);
Code
658/// Request for an attack on a city state659bool CvMilitaryAI::RequestCityStateAttack(PlayerTypes eEnemy)660{661 CvMilitaryTarget target;662 CvAIOperation* pOperation = 0;663664 target = FindBestAttackTarget(AI_OPERATION_CITY_STATE_ATTACK, eEnemy);665 if(target.m_pTargetCity)666 {667 if(target.m_bAttackBySea)668 {669 if(IsAttackReady(MUFORMATION_CITY_STATE_INVASION, AI_OPERATION_CITY_STATE_NAVAL_ATTACK))670 {671 pOperation = m_pPlayer->addAIOperation(AI_OPERATION_CITY_STATE_NAVAL_ATTACK, eEnemy, target.m_pTargetCity->getArea(), target.m_pTargetCity, target.m_pMusterCity);672 if(pOperation != NULL && !pOperation->ShouldAbort())673 {674 return true;675 }676 }677 else678 {679 m_iNumNavalAttacksRequested++;680 m_eArmyTypeBeingBuilt = (m_iNumLandAttacksRequested > m_iNumNavalAttacksRequested) ? ARMY_TYPE_LAND : ARMY_TYPE_NAVAL_INVASION;681 }682 }683 else684 {685 if(IsAttackReady(MUFORMATION_CITY_STATE_ATTACK_FORCE, AI_OPERATION_CITY_STATE_ATTACK))686 {687 pOperation = m_pPlayer->addAIOperation(AI_OPERATION_CITY_STATE_ATTACK, eEnemy, target.m_pTargetCity->getArea(), target.m_pTargetCity, target.m_pMusterCity);688 if(pOperation != NULL && !pOperation->ShouldAbort())689 {690 return true;691 }692 }693 else694 {695 m_iNumLandAttacksRequested++;696 m_eArmyTypeBeingBuilt = (m_iNumLandAttacksRequested > m_iNumNavalAttacksRequested) ? ARMY_TYPE_LAND : ARMY_TYPE_NAVAL_INVASION;697 }698 }699700 return true;701 }702 return false;703}