void CvPlayerAI::AI_doTurnPost() { AI_PERF_FORMAT("AI-perf.csv", ("CvPlayerAI::AI_doTurnPost, Turn %03d, %s", GC.getGame().getElapsedGameTurns(), getCivilizationShortDescription()) ); if(isHuman()) { return; } if(isBarbarian()) { return; } if(isMinorCiv()) { return; } for(int i = 0; i < GC.getNumVictoryInfos(); ++i) { AI_launch((VictoryTypes)i); } ProcessGreatPeople(); GetEspionageAI()->DoTurn(); GetTradeAI()->DoTurn(); }
void CvPlayerAI::AI_doTurnPre() { CvAssertMsg(getPersonalityType() != NO_LEADER, "getPersonalityType() is not expected to be equal with NO_LEADER"); CvAssertMsg(getLeaderType() != NO_LEADER, "getLeaderType() is not expected to be equal with NO_LEADER"); CvAssertMsg(getCivilizationType() != NO_CIVILIZATION, "getCivilizationType() is not expected to be equal with NO_CIVILIZATION"); if(isHuman()) { return; } AI_updateFoundValues(); AI_doResearch(); AI_considerAnnex(); GetPlayerPolicies()->DoPolicyAI(); if(isBarbarian()) { return; } if(isMinorCiv()) { return; } }
void CvPlayerAI::AI_doTurnPost() { if(isHuman()) { return; } if(isBarbarian()) { return; } if(isMinorCiv()) { return; } for(int i = 0; i < GC.getNumVictoryInfos(); ++i) { AI_launch((VictoryTypes)i); } ProcessGreatPeople(); GetEspionageAI()->DoTurn(); }
void CvPlayerAI::AI_doTurnUnitsPre() { GetTacticalAI()->InitializeQueuedAttacks(); if(isHuman()) { return; } if(isBarbarian()) { return; } }
bool CvPlayerAI::AI_captureUnit(UnitTypes, CvPlot* pPlot) { CvCity* pNearestCity; CvAssert(!isHuman()); // Barbs always capture if (isBarbarian()) return true; // we own it if (pPlot->getTeam() == getTeam()) return true; // no man's land - may as well if (pPlot->getTeam() == NO_TEAM) return true; // friendly, sure (okay, this is pretty much just means open borders) if (pPlot->IsFriendlyTerritory(GetID())) return true; // not friendly, but "near" us pNearestCity = GC.getMap().findCity(pPlot->getX(), pPlot->getY(), NO_PLAYER, getTeam()); if (pNearestCity != NULL) { if (plotDistance(pPlot->getX(), pPlot->getY(), pNearestCity->getX(), pNearestCity->getY()) <= 7) return true; } // very near someone we aren't friends with (and far from our nearest city) pNearestCity = GC.getMap().findCity(pPlot->getX(), pPlot->getY()); if (pNearestCity != NULL) { if (plotDistance(pPlot->getX(), pPlot->getY(), pNearestCity->getX(), pNearestCity->getY()) <= 4) return false; } // I'd rather we grab it and run than destroy it return true; }
bool CvPlayerAI::AI_captureUnit(UnitTypes, CvPlot* pPlot) { CvCity* pNearestCity; CvAssert(!isHuman()); // Barbs always capture if (isBarbarian()) return true; if (pPlot->getTeam() == getTeam()) return true; pNearestCity = GC.getMap().findCity(pPlot->getX(), pPlot->getY(), NO_PLAYER, getTeam()); if (pNearestCity != NULL) { if (plotDistance(pPlot->getX(), pPlot->getY(), pNearestCity->getX(), pNearestCity->getY()) <= 4) return true; } return false; }
void CvPlayerAI::AI_doTurnPost() { AI_PERF_FORMAT("AI-perf.csv", ("CvPlayerAI::AI_doTurnPost, Turn %03d, %s", GC.getGame().getElapsedGameTurns(), getCivilizationShortDescription()) ); if(isHuman()) { return; } // EventEngine - v0.1, Snarko // DO NOT pass pEvent to AI_chooseEventOption. The event is deleted when an option has been chosen. int iLoop = 0; for(CvEvent* pEvent = firstEvent(&iLoop, false); pEvent != NULL; pEvent = nextEvent(&iLoop, false)) { AI_chooseEventOption(pEvent->GetID()); } // END EventEngine if(isBarbarian()) { return; } if(isMinorCiv()) { return; } for(int i = 0; i < GC.getNumVictoryInfos(); ++i) { AI_launch((VictoryTypes)i); } ProcessGreatPeople(); GetEspionageAI()->DoTurn(); GetTradeAI()->DoTurn(); }