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
- CvAIOperation::GetTargetPlot() const
- CvAIOperation::LogOperationSpecialMessage(const CvString &)
- CvArmyAI::GetFirstUnitID()
- CvGlobals::getAILogging()
- CvGlobals::getLogging()
- CvPlayer::getUnit(int)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::getX() const
- CvPlot::getY() const
CvString::CvStringCvString::Format- CvTypes::getMISSION_NUKE()
- CvUnit::canMove() const
- CvUnit::canNukeAt(const CvPlot *, int, int) const
- CvUnit::plot() const
- CvUnit::PushMission(MissionTypes, int, int, int, bool, bool, MissionAITypes, CvPlot *, CvUnit *)