CvCitySiteEvaluator::ComputeScienceValue(CvPlot *, CvPlayer *)
- Defined in
- CvSiteEvaluationClasses.cpp, line 919
- Class
- CvCitySiteEvaluator
- Hook name
CivHooks::CvCitySiteEvaluator_ComputeScienceValue
Hooks
static bool BeforeCvCitySiteEvaluator_ComputeScienceValue(CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer, int& result);static void AfterCvCitySiteEvaluator_ComputeScienceValue(CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer, int& result);static int ReplaceCvCitySiteEvaluator_ComputeScienceValue(int (*original)(CvCitySiteEvaluator*, CvPlot*, CvPlayer*), CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::CvCitySiteEvaluator_ComputeScienceValue>(host, &BeforeCvCitySiteEvaluator_ComputeScienceValue);CivRegisterAfter<CivHooks::CvCitySiteEvaluator_ComputeScienceValue>(host, &AfterCvCitySiteEvaluator_ComputeScienceValue);CivRegisterReplace<CivHooks::CvCitySiteEvaluator_ComputeScienceValue>(host, &ReplaceCvCitySiteEvaluator_ComputeScienceValue);
Code
918/// Value of plot for providing science919int CvCitySiteEvaluator::ComputeScienceValue(CvPlot* pPlot, CvPlayer* pPlayer)920{921 int rtnValue = 0;922923 CvAssert(pPlot);924 if(!pPlot) return rtnValue;925926 // From tile yield927 if(pPlayer == NULL)928 {929 rtnValue += pPlot->calculateNatureYield(YIELD_SCIENCE, NO_TEAM);930 }931 else932 {933 rtnValue += pPlot->calculateNatureYield(YIELD_SCIENCE, pPlayer->getTeam());934 }935936 // From resource937 TeamTypes eTeam = NO_TEAM;938 if(pPlayer != NULL)939 {940 eTeam = pPlayer->getTeam();941 }942943 ResourceTypes eResource;944 eResource = pPlot->getResourceType(eTeam);945 if(eResource != NO_RESOURCE)946 {947 rtnValue += GC.getResourceInfo(eResource)->getYieldChange(YIELD_SCIENCE);948949 CvImprovementEntry* pImprovement = GC.GetGameImprovements()->GetImprovementForResource(eResource);950 if(pImprovement)951 {952 rtnValue += pImprovement->GetImprovementResourceYield(eResource, YIELD_SCIENCE);953 }954 }955956 return rtnValue * m_iFlavorMultiplier[YIELD_SCIENCE];957}
Calls
- CvGlobals::GetGameImprovements() const
- CvGlobals::getResourceInfo(ResourceTypes)
- CvImprovementEntry::GetImprovementResourceYield(int, int) const
- CvImprovementXMLEntries::GetImprovementForResource(int)
- CvPlayer::getTeam() const
- CvPlot::calculateNatureYield(YieldTypes, TeamTypes, bool) const
- CvPlot::getResourceType(TeamTypes) const
- CvResourceInfo::getYieldChange(int) const