Bazaar developer reference

CvAIOperationNukeAttack::ArmyInPosition(CvArmyAI *)

Defined in
CvAIOperation.cpp, line 5612
Class
CvAIOperationNukeAttack
Hook name
CivHooks::CvAIOperationNukeAttack_ArmyInPosition
Overrides
CvAIOperation::ArmyInPosition(CvArmyAI *)

Hooks

static bool BeforeCvAIOperationNukeAttack_ArmyInPosition(CvAIOperationNukeAttack* self, CvArmyAI* pArmy, bool& result);static void AfterCvAIOperationNukeAttack_ArmyInPosition(CvAIOperationNukeAttack* self, CvArmyAI* pArmy, bool& result);static bool ReplaceCvAIOperationNukeAttack_ArmyInPosition(bool (*original)(CvAIOperationNukeAttack*, CvArmyAI*), CvAIOperationNukeAttack* self, CvArmyAI* pArmy);CivRegisterBefore<CivHooks::CvAIOperationNukeAttack_ArmyInPosition>(host, &BeforeCvAIOperationNukeAttack_ArmyInPosition);CivRegisterAfter<CivHooks::CvAIOperationNukeAttack_ArmyInPosition>(host, &AfterCvAIOperationNukeAttack_ArmyInPosition);CivRegisterReplace<CivHooks::CvAIOperationNukeAttack_ArmyInPosition>(host, &ReplaceCvAIOperationNukeAttack_ArmyInPosition);

Code

5612bool CvAIOperationNukeAttack::ArmyInPosition(CvArmyAI* pArmy)5613{5614	CvPlot* pTargetPlot = GetTargetPlot();5615	if(pTargetPlot)5616	{5617		// Now get the nuke5618		int iUnitID = pArmy->GetFirstUnitID();5619		CvUnit* pNuke = NULL;5620		if(iUnitID != -1)5621		{5622			pNuke = GET_PLAYER(m_eOwner).getUnit(iUnitID);5623		}56245625		if(pNuke != NULL)5626		{5627			if(pNuke->canMove() && pNuke->canNukeAt(pNuke->plot(),pTargetPlot->getX(),pTargetPlot->getY()))5628			{5629				pNuke->PushMission(CvTypes::getMISSION_NUKE(), pTargetPlot->getX(), pTargetPlot->getY());5630				if(GC.getLogging() && GC.getAILogging())5631				{5632					CvString strMsg;5633					strMsg.Format("City nuked, At X=%d, At Y=%d", pTargetPlot->getX(), pTargetPlot->getY());5634					LogOperationSpecialMessage(strMsg);5635				}5636				m_eCurrentState = AI_OPERATION_STATE_SUCCESSFUL_FINISH;5637			}5638		}5639	}5640	return true;5641}

Calls

Called by