CvPlayerPolicies::GetNextPolicyCost()
- Defined in
- CvPolicyClasses.cpp, line 3406
- Class
- CvPlayerPolicies
- Hook name
CivHooks::CvPlayerPolicies_GetNextPolicyCost
Hooks
static bool BeforeCvPlayerPolicies_GetNextPolicyCost(CvPlayerPolicies* self, int& result);static void AfterCvPlayerPolicies_GetNextPolicyCost(CvPlayerPolicies* self, int& result);static int ReplaceCvPlayerPolicies_GetNextPolicyCost(int (*original)(CvPlayerPolicies*), CvPlayerPolicies* self);CivRegisterBefore<CivHooks::CvPlayerPolicies_GetNextPolicyCost>(host, &BeforeCvPlayerPolicies_GetNextPolicyCost);CivRegisterAfter<CivHooks::CvPlayerPolicies_GetNextPolicyCost>(host, &AfterCvPlayerPolicies_GetNextPolicyCost);CivRegisterReplace<CivHooks::CvPlayerPolicies_GetNextPolicyCost>(host, &ReplaceCvPlayerPolicies_GetNextPolicyCost);
Code
3405/// How much will the next policy cost?3406int CvPlayerPolicies::GetNextPolicyCost()3407{3408#if defined(MOD_BUGFIX_DUMMY_POLICIES)3409#if defined(MOD_API_EXTENSIONS)3410 int iNumPolicies = GetNumPoliciesOwned(MOD_BUGFIX_DUMMY_POLICIES, true);3411#else3412 int iNumPolicies = GetNumPoliciesOwned(MOD_BUGFIX_DUMMY_POLICIES);3413#endif3414#else3415#if defined(MOD_API_EXTENSIONS)3416 int iNumPolicies = GetNumPoliciesOwned(true);3417#else3418 int iNumPolicies = GetNumPoliciesOwned();3419#endif3420#endif34213422 // Reduce count by however many free Policies we've had in this game3423 iNumPolicies -= (m_pPlayer->GetNumFreePoliciesEver() - m_pPlayer->GetNumFreePolicies() - m_pPlayer->GetNumFreeTenets());34243425 // Each branch we unlock (after the first) costs us a buy, so add that in; JON: not any more3426 //if (GetNumPolicyBranchesUnlocked() > 0)3427 //{3428 // iNumPolicies += (GetNumPolicyBranchesUnlocked() - 1);3429 //}34303431 int iCost = 0;3432 iCost += (iNumPolicies* /*7*/ GC.getPOLICY_COST_INCREASE_TO_BE_EXPONENTED());34333434 // Exponential cost scaling3435 iCost = (int) pow((double) iCost, (double) /*1.70*/ GC.getPOLICY_COST_EXPONENT());34363437 // Base cost that doesn't get exponent-ed3438 iCost += /*25*/ GC.getBASE_POLICY_COST();34393440 // Mod for City Count3441 int iMod = GC.getMap().getWorldInfo().GetNumCitiesPolicyCostMod(); // Default is 40, gets smaller on larger maps3442 int iPolicyModDiscount = m_pPlayer->GetNumCitiesPolicyCostDiscount();3443 if(iPolicyModDiscount != 0)3444 {3445 iMod = iMod * (100 + iPolicyModDiscount);3446 iMod /= 100;3447 }34483449 int iNumCities = m_pPlayer->GetMaxEffectiveCities();34503451 iMod = (iCost * (iNumCities - 1) * iMod);3452 iMod /= 100;3453 iCost += iMod;34543455 // Policy Cost Mod3456 iCost *= (100 + m_pPlayer->getPolicyCostModifier());3457 iCost /= 100;34583459 // Game Speed Mod3460 iCost *= GC.getGame().getGameSpeedInfo().getCulturePercent();3461 iCost /= 100;34623463 // Handicap Mod3464 iCost *= m_pPlayer->getHandicapInfo().getPolicyPercent();3465 iCost /= 100;34663467 // Make the number nice and even3468 int iDivisor = /*5*/ GC.getPOLICY_COST_VISIBLE_DIVISOR();3469 iCost /= iDivisor;3470 iCost *= iDivisor;34713472 return iCost;3473}
Calls
- CustomMods::isBUGFIX_DUMMY_POLICIES()
- CvGame::getGameSpeedInfo() const
- CvGameSpeedInfo::getCulturePercent() const
- CvGlobals::getBASE_POLICY_COST()
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvGlobals::getPOLICY_COST_EXPONENT()
- CvGlobals::getPOLICY_COST_INCREASE_TO_BE_EXPONENTED()
- CvGlobals::getPOLICY_COST_VISIBLE_DIVISOR()
- CvHandicapInfo::getPolicyPercent() const
- CvMap::getWorldInfo() const
- CvPlayer::getHandicapInfo() const
- CvPlayer::GetMaxEffectiveCities(bool)
- CvPlayer::GetNumCitiesPolicyCostDiscount() const
- CvPlayer::GetNumFreePolicies() const
- CvPlayer::GetNumFreePoliciesEver() const
- CvPlayer::GetNumFreeTenets() const
- CvPlayer::getPolicyCostModifier() const
- CvPlayerPolicies::GetNumPoliciesOwned(bool, bool) const
- CvWorldInfo::GetNumCitiesPolicyCostMod() const
pow