/// Value of plot for providing hammers int CvCitySiteEvaluator::ComputeProductionValue(CvPlot* pPlot, CvPlayer* pPlayer) { int rtnValue = 0; // From tile yield if(pPlayer == NULL) { rtnValue += pPlot->calculateNatureYield(YIELD_PRODUCTION, NO_TEAM); } else { rtnValue += pPlot->calculateNatureYield(YIELD_PRODUCTION, pPlayer->getTeam()); } // From resource TeamTypes eTeam = NO_TEAM; if(pPlayer != NULL) { eTeam = pPlayer->getTeam(); } ResourceTypes eResource; eResource = pPlot->getResourceType(eTeam); if(eResource != NO_RESOURCE) { rtnValue += GC.getResourceInfo(eResource)->getYieldChange(YIELD_PRODUCTION); CvImprovementEntry* pImprovement = GC.GetGameImprovements()->GetImprovementForResource(eResource); if(pImprovement) { rtnValue += pImprovement->GetImprovementResourceYield(eResource, YIELD_PRODUCTION); } } return rtnValue * m_iFlavorMultiplier[YIELD_PRODUCTION]; }
/// Value of plot for providing gold int CvCitySiteEvaluator::ComputeGoldValue(CvPlot* pPlot, const CvPlayer* pPlayer) { int rtnValue = 0; // From tile yield if(pPlayer == NULL) { rtnValue += pPlot->calculateNatureYield(YIELD_GOLD, NO_PLAYER); } else { rtnValue += pPlot->calculateNatureYield(YIELD_GOLD, pPlayer->GetID()); } // From resource TeamTypes eTeam = NO_TEAM; if(pPlayer != NULL) { eTeam = pPlayer->getTeam(); } ResourceTypes eResource; eResource = pPlot->getResourceType(eTeam); if(eResource != NO_RESOURCE) { //can we build an improvement on this resource? assume we will do it (natural yield is already considered) CvImprovementEntry* pImprovement = GC.GetGameImprovements()->GetImprovementForResource(eResource); if(pImprovement) { rtnValue += pImprovement->GetImprovementResourceYield(eResource, YIELD_GOLD); } } return rtnValue * m_iFlavorMultiplier[YIELD_GOLD]; }