CvPlayerTrade::GetTradeConnectionPolicyValueTimes100(const TradeConnection &, YieldTypes)
- Defined in
- CvTradeClasses.cpp, line 2304
- Class
- CvPlayerTrade
- Hook name
CivHooks::CvPlayerTrade_GetTradeConnectionPolicyValueTimes100
Hooks
static bool BeforeCvPlayerTrade_GetTradeConnectionPolicyValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, int& result);static void AfterCvPlayerTrade_GetTradeConnectionPolicyValueTimes100(CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield, int& result);static int ReplaceCvPlayerTrade_GetTradeConnectionPolicyValueTimes100(int (*original)(CvPlayerTrade*, const TradeConnection&, YieldTypes), CvPlayerTrade* self, const TradeConnection& kTradeConnection, YieldTypes eYield);CivRegisterBefore<CivHooks::CvPlayerTrade_GetTradeConnectionPolicyValueTimes100>(host, &BeforeCvPlayerTrade_GetTradeConnectionPolicyValueTimes100);CivRegisterAfter<CivHooks::CvPlayerTrade_GetTradeConnectionPolicyValueTimes100>(host, &AfterCvPlayerTrade_GetTradeConnectionPolicyValueTimes100);CivRegisterReplace<CivHooks::CvPlayerTrade_GetTradeConnectionPolicyValueTimes100>(host, &ReplaceCvPlayerTrade_GetTradeConnectionPolicyValueTimes100);
Code
2304int CvPlayerTrade::GetTradeConnectionPolicyValueTimes100(const TradeConnection& kTradeConnection, YieldTypes eYield)2305{2306#if !defined(MOD_API_UNIFIED_YIELDS)2307 // unnecessary code to make it compile for now2308 if (eYield != NO_YIELD)2309 {2310 eYield = eYield;2311 }2312#endif23132314 int iValue = 0;23152316#if defined(MOD_API_UNIFIED_YIELDS)2317 CvPlayer& kPlayer = GET_PLAYER(kTradeConnection.m_eOriginOwner);2318 iValue += kPlayer.getTradeRouteYieldChange(kTradeConnection.m_eDomain, eYield) * 100;2319 iValue += kPlayer.GetPlayerTraits()->GetTradeRouteYieldChange(kTradeConnection.m_eDomain, eYield) * 100;23202321 CvCity* pCity = GC.getMap().plot(kTradeConnection.m_iOriginX, kTradeConnection.m_iOriginY)->getPlotCity();2322 ReligionTypes eMajority = pCity->GetCityReligions()->GetReligiousMajority();2323 if(eMajority != NO_RELIGION)2324 {2325 const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eMajority, pCity->getOwner());2326 if(pReligion)2327 {2328 iValue += pReligion->m_Beliefs.GetTradeRouteYieldChange(kTradeConnection.m_eDomain, eYield) * 100;2329 BeliefTypes eSecondaryPantheon = pCity->GetCityReligions()->GetSecondaryReligionPantheonBelief();2330 if (eSecondaryPantheon != NO_BELIEF)2331 {2332 iValue += GC.GetGameBeliefs()->GetEntry(eSecondaryPantheon)->GetTradeRouteYieldChange(kTradeConnection.m_eDomain, eYield) * 100;2333 }2334 }2335 }2336#endif23372338 if (kTradeConnection.m_eConnectionType == TRADE_CONNECTION_INTERNATIONAL)2339 {2340#if defined(MOD_API_UNIFIED_YIELDS)2341 if (eYield == YIELD_GOLD) {2342#endif2343 // domain type bonuses2344 if (kTradeConnection.m_eDomain == DOMAIN_LAND)2345 {2346 iValue += GET_PLAYER(kTradeConnection.m_eOriginOwner).GetPlayerPolicies()->GetNumericModifier(POLICYMOD_LAND_TRADE_GOLD_CHANGE);2347 }2348 else if (kTradeConnection.m_eDomain == DOMAIN_SEA)2349 {2350 iValue += GET_PLAYER(kTradeConnection.m_eOriginOwner).GetPlayerPolicies()->GetNumericModifier(POLICYMOD_SEA_TRADE_GOLD_CHANGE);2351 }23522353 // policy tree bonuses2354 CvPlayerPolicies* pOwnerPlayerPolicies = GET_PLAYER(kTradeConnection.m_eOriginOwner).GetPlayerPolicies();2355 CvPlayerPolicies* pDestPlayerPolicies = GET_PLAYER(kTradeConnection.m_eDestOwner).GetPlayerPolicies();23562357 PolicyBranchTypes eFreedom = (PolicyBranchTypes)GC.getPOLICY_BRANCH_FREEDOM();2358 PolicyBranchTypes eAutocracy = (PolicyBranchTypes)GC.getPOLICY_BRANCH_AUTOCRACY();2359 PolicyBranchTypes eOrder = (PolicyBranchTypes)GC.getPOLICY_BRANCH_ORDER();23602361 bool bBothAutocracy = false;2362 bool bBothOrder = false;2363 bool bBothFreedom = false;2364 if (eAutocracy != NO_POLICY_BRANCH_TYPE)2365 {2366 bBothAutocracy = pOwnerPlayerPolicies->IsPolicyBranchUnlocked(eAutocracy) && pDestPlayerPolicies->IsPolicyBranchUnlocked(eAutocracy);2367 }2368 if (eOrder != NO_POLICY_BRANCH_TYPE)2369 {2370 bBothOrder = pOwnerPlayerPolicies->IsPolicyBranchUnlocked(eOrder) && pDestPlayerPolicies->IsPolicyBranchUnlocked(eOrder);2371 }2372 if (eFreedom != NO_POLICY_BRANCH_TYPE)2373 {2374 bBothFreedom = pOwnerPlayerPolicies->IsPolicyBranchUnlocked(eFreedom) && pDestPlayerPolicies->IsPolicyBranchUnlocked(eFreedom);2375 }2376 2377 if (bBothAutocracy || bBothOrder || bBothFreedom)2378 {2379 iValue += GET_PLAYER(kTradeConnection.m_eOriginOwner).GetPlayerPolicies()->GetNumericModifier(POLICYMOD_SHARED_IDEOLOGY_TRADE_CHANGE) * 100;2380 }23812382 // city state bonus2383 if (GET_PLAYER(kTradeConnection.m_eDestOwner).isMinorCiv())2384 {2385 iValue += GET_PLAYER(kTradeConnection.m_eOriginOwner).GetPlayerPolicies()->GetNumericModifier(POLICYMOD_CITY_STATE_TRADE_CHANGE);2386 }2387#if defined(MOD_API_UNIFIED_YIELDS)2388 }2389#endif2390 }23912392 return iValue;2393}
Calls
- CvBeliefEntry::GetTradeRouteYieldChange(int, int) const
- CvBeliefXMLEntries::GetEntry(int)
- CvCity::GetCityReligions() const
- CvCity::getOwner() const
- CvCityReligions::GetReligiousMajority()
- CvCityReligions::GetSecondaryReligionPantheonBelief()
- CvGame::GetGameReligions()
- CvGameReligions::GetReligion(ReligionTypes, PlayerTypes) const
- CvGlobals::getGame()
- CvGlobals::GetGameBeliefs() const
- CvGlobals::getMap()
- CvGlobals::getPOLICY_BRANCH_AUTOCRACY()
- CvGlobals::getPOLICY_BRANCH_FREEDOM()
- CvGlobals::getPOLICY_BRANCH_ORDER()
- CvMap::plot(int, int) const
- CvPlayer::GetPlayerPolicies() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::getTradeRouteYieldChange(DomainTypes, YieldTypes) const
- CvPlayer::isMinorCiv() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerPolicies::GetNumericModifier(PolicyModifierType)
- CvPlayerPolicies::IsPolicyBranchUnlocked(PolicyBranchTypes) const
- CvPlayerTraits::GetTradeRouteYieldChange(DomainTypes, YieldTypes) const
- CvPlot::getPlotCity() const
- CvReligionBeliefs::GetTradeRouteYieldChange(DomainTypes, YieldTypes) const