本文整理汇总了C++中CvAIGrandStrategyXMLEntry类的典型用法代码示例。如果您正苦于以下问题:C++ CvAIGrandStrategyXMLEntry类的具体用法?C++ CvAIGrandStrategyXMLEntry怎么用?C++ CvAIGrandStrategyXMLEntry使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CvAIGrandStrategyXMLEntry类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetPlayer
/// Log GrandStrategy state: what are the Priorities and who is Active?
void CvGrandStrategyAI::LogGrandStrategies(const FStaticVector< int, 5, true, c_eCiv5GameplayDLL >& vModifiedGrandStrategyPriorities)
{
if(GC.getLogging() && GC.getAILogging())
{
CvString strOutBuf;
CvString strBaseString;
CvString strTemp;
CvString playerName;
CvString strDesc;
CvString strLogName;
// Find the name of this civ and city
playerName = GetPlayer()->getCivilizationShortDescription();
// Open the log file
if(GC.getPlayerAndCityAILogSplit())
{
strLogName = "GrandStrategyAI_Log_" + playerName + ".csv";
}
else
{
strLogName = "GrandStrategyAI_Log.csv";
}
FILogFile* pLog;
pLog = LOGFILEMGR.GetLog(strLogName, FILogFile::kDontTimeStamp);
AIGrandStrategyTypes eGrandStrategy;
// Loop through Grand Strategies
for(int iGrandStrategyLoop = 0; iGrandStrategyLoop < GC.getNumAIGrandStrategyInfos(); iGrandStrategyLoop++)
{
// Get the leading info for this line
strBaseString.Format("%03d, ", GC.getGame().getElapsedGameTurns());
strBaseString += playerName + ", ";
eGrandStrategy = (AIGrandStrategyTypes) iGrandStrategyLoop;
// GrandStrategy Info
CvAIGrandStrategyXMLEntry* pEntry = GC.getAIGrandStrategyInfo(eGrandStrategy);
const char* szAIGrandStrategyType = (pEntry != NULL)? pEntry->GetType() : "Unknown Type";
if(GetActiveGrandStrategy() == eGrandStrategy)
{
strTemp.Format("*** %s, %d, %d", szAIGrandStrategyType, GetGrandStrategyPriority(eGrandStrategy), vModifiedGrandStrategyPriorities[eGrandStrategy]);
}
else
{
strTemp.Format("%s, %d, %d", szAIGrandStrategyType, GetGrandStrategyPriority(eGrandStrategy), vModifiedGrandStrategyPriorities[eGrandStrategy]);
}
strOutBuf = strBaseString + strTemp;
pLog->Msg(strOutBuf);
}
}
}
示例2: GetAIGrandStrategies
/// Get the base Priority for a Grand Strategy; these are elements common to ALL Grand Strategies
int CvGrandStrategyAI::GetPersonalityAndGrandStrategy(FlavorTypes eFlavorType)
{
if(m_eActiveGrandStrategy != NO_AIGRANDSTRATEGY)
{
CvAIGrandStrategyXMLEntry* pGrandStrategy = GetAIGrandStrategies()->GetEntry(m_eActiveGrandStrategy);
int iModdedFlavor = pGrandStrategy->GetFlavorModValue(eFlavorType) + m_pPlayer->GetFlavorManager()->GetPersonalityIndividualFlavor(eFlavorType);
iModdedFlavor = max(0,iModdedFlavor);
return iModdedFlavor;
}
return m_pPlayer->GetFlavorManager()->GetPersonalityIndividualFlavor(eFlavorType);
}
示例3: GetAIGrandStrategies
int CvGrandStrategyAI::GetPersonalityAndGrandStrategy(FlavorTypes eFlavorType)
#endif
{
if(m_eActiveGrandStrategy != NO_AIGRANDSTRATEGY)
{
CvAIGrandStrategyXMLEntry* pGrandStrategy = GetAIGrandStrategies()->GetEntry(m_eActiveGrandStrategy);
int iModdedFlavor = pGrandStrategy->GetFlavorModValue(eFlavorType) + m_pPlayer->GetFlavorManager()->GetPersonalityIndividualFlavor(eFlavorType);
iModdedFlavor = max(0,iModdedFlavor);
#if defined(MOD_AI_SMART_V3)
if(MOD_AI_SMART_V3 && bBoostGSMainFlavor && (pGrandStrategy->GetFlavorValue(eFlavorType) > 0))
{
iModdedFlavor = min(10, ((pGrandStrategy->GetFlavorValue(eFlavorType) + iModdedFlavor + 1) / 2));
}
#endif
return iModdedFlavor;
}
return m_pPlayer->GetFlavorManager()->GetPersonalityIndividualFlavor(eFlavorType);
}
示例4: DoGuessOtherPlayersActiveGrandStrategy
/// Runs every turn to try and figure out what other known Players' Grand Strategies are
void CvGrandStrategyAI::DoGuessOtherPlayersActiveGrandStrategy()
{
CvWeightedVector<int, 5, true> vGrandStrategyPriorities;
FStaticVector< int, 5, true, c_eCiv5GameplayDLL > vGrandStrategyPrioritiesForLogging;
GuessConfidenceTypes eGuessConfidence = NO_GUESS_CONFIDENCE_TYPE;
int iGrandStrategiesLoop = 0;
AIGrandStrategyTypes eGrandStrategy = NO_AIGRANDSTRATEGY;
CvAIGrandStrategyXMLEntry* pGrandStrategy = 0;
CvString strGrandStrategyName;
CvTeam& pTeam = GET_TEAM(GetPlayer()->getTeam());
int iMajorLoop = 0;
PlayerTypes eMajor = NO_PLAYER;
int iPriority = 0;
// Establish world Military strength average
int iWorldMilitaryAverage = GC.getGame().GetWorldMilitaryStrengthAverage(GetPlayer()->GetID(), true, true);
// Establish world culture and tourism averages
int iNumPlayersAlive = 0;
int iWorldCultureAverage = 0;
int iWorldTourismAverage = 0;
for(iMajorLoop = 0; iMajorLoop < MAX_MAJOR_CIVS; iMajorLoop++)
{
eMajor = (PlayerTypes) iMajorLoop;
if(GET_PLAYER(eMajor).isAlive())
{
iWorldCultureAverage += GET_PLAYER(eMajor).GetJONSCultureEverGenerated();
iWorldTourismAverage += GET_PLAYER(eMajor).GetCulture()->GetTourism();
iNumPlayersAlive++;
}
}
iWorldCultureAverage /= iNumPlayersAlive;
iWorldTourismAverage /= iNumPlayersAlive;
// Establish world Tech progress average
iNumPlayersAlive = 0;
int iWorldNumTechsAverage = 0;
TeamTypes eTeam;
for(int iTeamLoop = 0; iTeamLoop < MAX_MAJOR_CIVS; iTeamLoop++) // Looping over all MAJOR teams
{
eTeam = (TeamTypes) iTeamLoop;
if(GET_TEAM(eTeam).isAlive())
{
iWorldNumTechsAverage += GET_TEAM(eTeam).GetTeamTechs()->GetNumTechsKnown();
iNumPlayersAlive++;
}
}
iWorldNumTechsAverage /= iNumPlayersAlive;
// Look at every Major we've met
for(iMajorLoop = 0; iMajorLoop < MAX_MAJOR_CIVS; iMajorLoop++)
{
eMajor = (PlayerTypes) iMajorLoop;
if(GET_PLAYER(eMajor).isAlive() && iMajorLoop != GetPlayer()->GetID())
{
if(pTeam.isHasMet(GET_PLAYER(eMajor).getTeam()))
{
for(iGrandStrategiesLoop = 0; iGrandStrategiesLoop < GetAIGrandStrategies()->GetNumAIGrandStrategies(); iGrandStrategiesLoop++)
{
eGrandStrategy = (AIGrandStrategyTypes) iGrandStrategiesLoop;
pGrandStrategy = GetAIGrandStrategies()->GetEntry(iGrandStrategiesLoop);
strGrandStrategyName = (CvString) pGrandStrategy->GetType();
if(strGrandStrategyName == "AIGRANDSTRATEGY_CONQUEST")
{
iPriority = GetGuessOtherPlayerConquestPriority(eMajor, iWorldMilitaryAverage);
}
else if(strGrandStrategyName == "AIGRANDSTRATEGY_CULTURE")
{
iPriority = GetGuessOtherPlayerCulturePriority(eMajor, iWorldCultureAverage, iWorldTourismAverage);
}
else if(strGrandStrategyName == "AIGRANDSTRATEGY_UNITED_NATIONS")
{
iPriority = GetGuessOtherPlayerUnitedNationsPriority(eMajor);
}
else if(strGrandStrategyName == "AIGRANDSTRATEGY_SPACESHIP")
{
iPriority = GetGuessOtherPlayerSpaceshipPriority(eMajor, iWorldNumTechsAverage);
}
vGrandStrategyPriorities.push_back(iGrandStrategiesLoop, iPriority);
vGrandStrategyPrioritiesForLogging.push_back(iPriority);
}
if(vGrandStrategyPriorities.size() > 0)
{
// Add "No Grand Strategy" in case we just don't have enough info to go on
iPriority = /*40*/ GC.getAI_GRAND_STRATEGY_GUESS_NO_CLUE_WEIGHT();
vGrandStrategyPriorities.push_back(NO_AIGRANDSTRATEGY, iPriority);
vGrandStrategyPrioritiesForLogging.push_back(iPriority);
//.........这里部分代码省略.........