Bazaar developer reference

CvMilitaryAI::IsAttackReady(MultiunitFormationTypes, AIOperationTypes) const

Defined in
CvMilitaryAI.cpp, line 3558
Class
CvMilitaryAI
Hook name
CivHooks::CvMilitaryAI_IsAttackReady

Hooks

static bool BeforeCvMilitaryAI_IsAttackReady(const CvMilitaryAI* self, MultiunitFormationTypes eFormation, AIOperationTypes eOperationType, bool& result);static void AfterCvMilitaryAI_IsAttackReady(const CvMilitaryAI* self, MultiunitFormationTypes eFormation, AIOperationTypes eOperationType, bool& result);static bool ReplaceCvMilitaryAI_IsAttackReady(bool (*original)(const CvMilitaryAI*, MultiunitFormationTypes, AIOperationTypes), const CvMilitaryAI* self, MultiunitFormationTypes eFormation, AIOperationTypes eOperationType);CivRegisterBefore<CivHooks::CvMilitaryAI_IsAttackReady>(host, &BeforeCvMilitaryAI_IsAttackReady);CivRegisterAfter<CivHooks::CvMilitaryAI_IsAttackReady>(host, &AfterCvMilitaryAI_IsAttackReady);CivRegisterReplace<CivHooks::CvMilitaryAI_IsAttackReady>(host, &ReplaceCvMilitaryAI_IsAttackReady);

Code

3557/// Do we have the forces at hand for an attack?3558bool CvMilitaryAI::IsAttackReady(MultiunitFormationTypes eFormation, AIOperationTypes eOperationType) const3559{3560	int iOperationID;35613562	// Do we already have an operation of this type that is building units?3563	bool bHasOperationUnderway = m_pPlayer->haveAIOperationOfType(eOperationType, &iOperationID, NO_PLAYER);3564	if (bHasOperationUnderway)3565	{3566		if (m_pPlayer->getAIOperation(iOperationID)->GetOperationState() != AI_OPERATION_STATE_RECRUITING_UNITS)3567		{3568			return false;3569		}3570	}35713572	int iNumRequiredSlots = 0;3573	int iLandReservesUsed = 0;3574	int iFilledSlots = 0;35753576	bool bRequiresNavalMoves = false;3577	if(eFormation == MUFORMATION_NAVAL_INVASION || eFormation == MUFORMATION_NAVAL_SQUADRON || eFormation == MUFORMATION_CITY_STATE_INVASION || eFormation == MUFORMATION_PURE_NAVAL_CITY_ATTACK)3578	{3579		bRequiresNavalMoves = true;3580	}35813582	iFilledSlots = MilitaryAIHelpers::NumberOfFillableSlots(m_pPlayer, eFormation, bRequiresNavalMoves, &iNumRequiredSlots, &iLandReservesUsed);3583	if(iFilledSlots >= iNumRequiredSlots)3584	{3585		return true;3586	}3587	else3588	{3589		return false;3590	}3591}

Calls

Called by