Balance patch discussion and goals

To reiterate, the policy function is a vanilla function, it works the same as it did in vanilla civ (and uses the same tooltip expression).
Ok, I have to concede the point of changing the policy, since it does indid work the same as vanilla Tradition opener. But I still think that the description of it should be changed, since the descriptions of it and Monument say the same thing, but the effects are completely different.
 
Last edited:
Ok, I have to concede the point of changing the policy, since it does indid work the same as vanilla Tradition opener. But I still think that the description of it should be changed, since the descriptions of it and Monument say the same thing, but the effects are completely different.

What would you prefer it to say?
 
What would you prefer it to say?
I thought about it, but nothing that could accurately and concisely explain what exactly happens to numbers came to mind. In vanilla they simply wrote "Greatly reduces cost of acquiring new tiles", but I dont know if that explanation is sufficient.
 
If it were to simply reduce the difference between each new member of culture cost progression by 25%, than it would be easier to explain, but it doesn't.
 
At the very least the phrase "Greatly reduces cost of acquiring new tiles" is less misleading then what is currently used.
 
With God of Expanse I didn't notice any "sneakin" points, to me it only reduces cost by 20-30%(I assume because of rounding up or down)

Let me go back to a save game and grab some screen shots.

I also looked into Pantheons.sql and found what I think is God Of Expanse(since its called differently in the file "Religious Settlements") and it says: SET PlotCultureCostModifier = '-20'
Even though game description says 25%

-20! That explains why I had never been able to get the math! It wasn't 25%! Hahah! Thanks you very much mate

Good catch, I'll adjust.

Adjust the 20% or the in-game description/tool tip? :p
Also, many people thought that GoE's "faster border expansion" description meant a different formula is used but "SET PlotCultureCostModifier" is the same as monument's?
Should that be cleared up as well?
 
If it were to simply reduce the difference between each new member of culture cost progression by 25%, than it would be easier to explain, but it doesn't.

Again, I really appreciate your efforts in this and Gazebo for such quick responses.
I am useless at reading codes but I did googled this thread

http://forums.civfanatics.com/threads/the-number-crunching-thread.389702/

Alas, the part about border growth is only:

Border Growth

The cost of a border growth is, with nT the number of tiles already claimed

20 + (10 (nT - 1))^1.1


Does this formula offer insights into where the 25% for Tradition's Sovereignty is applied vs GoE or Angkor?
 
Wow. The last post from that thread was from 2 years ago, and so far as I can tell it wasn't about CBP, so I think its safe to assume that it's irrelevant to the current calculations.
Edit: But I think I did get those results(with rounding down) when I was testing vanilla border growth, so it seems that that formula is at least true for vanilla.
Edit2:Only the starting point of border growth on vanilla is 15. So its wrong to even the current version of vanilla.
 
Last edited:
The function:

Spoiler :
Code:
VALIDATE_OBJECT
    int iCultureThreshold = /*15*/ GC.getCULTURE_COST_FIRST_PLOT();

    float fExponent = /*1.1f*/ GC.getCULTURE_COST_LATER_PLOT_EXPONENT();

    int iPolicyExponentMod = GET_PLAYER(m_eOwner).GetPlotCultureExponentModifier();
    if(iPolicyExponentMod != 0)
    {
        fExponent = fExponent * (float)((100 + iPolicyExponentMod));
        fExponent /= 100.0f;
    }

    int iAdditionalCost = GetJONSCultureLevel() * /*8*/ GC.getCULTURE_COST_LATER_PLOT_MULTIPLIER();
    iAdditionalCost = (int) pow((double) iAdditionalCost, (double)fExponent);

    iCultureThreshold += iAdditionalCost;

    // More expensive for Minors to claim territory
    if(GET_PLAYER(getOwner()).isMinorCiv())
    {
        iCultureThreshold *= /*150*/ GC.getMINOR_CIV_PLOT_CULTURE_COST_MULTIPLIER();
        iCultureThreshold /= 100;
    }

    // Religion modifier
    int iReligionMod = 0;
    ReligionTypes eMajority = GetCityReligions()->GetReligiousMajority();
    if(eMajority != NO_RELIGION)
    {
        const CvReligion* pReligion = GC.getGame().GetGameReligions()->GetReligion(eMajority, getOwner());
        if(pReligion)
        {
            iReligionMod = pReligion->m_Beliefs.GetPlotCultureCostModifier(getOwner());
            BeliefTypes eSecondaryPantheon = GetCityReligions()->GetSecondaryReligionPantheonBelief();
            if (eSecondaryPantheon != NO_BELIEF)
            {
                iReligionMod += GC.GetGameBeliefs()->GetEntry(eSecondaryPantheon)->GetPlotCultureCostModifier();
            }
        }
    }

    // -50 = 50% cost
    int iModifier = GET_PLAYER(getOwner()).GetPlotCultureCostModifier() + m_iPlotCultureCostModifier + iReligionMod;
    if(iModifier != 0)
    {
        iModifier = max(iModifier, /*-85*/ GC.getCULTURE_PLOT_COST_MOD_MINIMUM());    // value cannot reduced by more than 85%
        iCultureThreshold *= (100 + iModifier);
        iCultureThreshold /= 100;
    }

    // Game Speed Mod
    iCultureThreshold *= GC.getGame().getGameSpeedInfo().getCulturePercent();
    iCultureThreshold /= 100;

    // Make the number not be funky
    int iDivisor = /*5*/ GC.getCULTURE_COST_VISIBLE_DIVISOR();
    if(iCultureThreshold > iDivisor * 2)
    {
        iCultureThreshold /= iDivisor;
        iCultureThreshold *= iDivisor;
    }

    return iCultureThreshold;
 
Wow. The last post from that thread was from 2 years ago, and so far as I can tell it wasn't about CBP, so I think its safe to assume that it's irrelevant to the current calculations.

Yes, thanks for pointing that out. I had thought that since Gazebo said he didn't touch the vanilla code of calculating border growth, the basic formula would be the same. CBP may have changed some of the numbers (wild guess) for balance, but the base formula should still be the same?

I think the crux would be that fractional exponents ^1.1 in the case of Sovereignty. If this figure (lets assume CBP is still using 1.1) is really what SET PlotCultureExponentModifier = '-25' reduces, then it would become a number less than 1 (0.825 to be exact).
That would produce the kinda huge deduction and slow increase that you had seen in your tests?

For other bonuses, it would be a simple -25% to whatever the costs. How multiple 25% (or 33%) stacks is still a mystery to me though.
PS: If you would be so kind, could you also look up what Divine Rights' code is? The "Double border growth" should be a SET PlotCultureCostModifier = '-50'
 
I LOL'ed when I saw the line "Make the number not be funky" in that function!
But seriously, the rest are gibberish to me. I'm not much use here...

Thanks G, once again
 
Last edited:
If I understood that code correctly(which may not be the case) than I got the following formula
15+(8(nT-1))^1.1
The numbers I got check out with vanilla progression(with rounding up)
Edit:Calculater numbers-15-24.84-36.1-52.9-65.25
Actual vanilla numbers 15-25-40-55-70
 
Last edited:
But with vox populi we start with 20 points for the first tile, so that formula(and code) are wrong(?):undecide:
 
Last edited:
But with vox populi we start with 20 points for the first tile, so that formula(and code) are wrong(?):undecide:

May there is a check to ensure that "(8(nT-1))^1.1" is always at least a non-zero result? With rounding, that would explain the 20.

You cited some numbers in post #210:

exponential progression 20-50-100-160-220-290-365-440-520

These are VP's numbers right?
 
PS: If you would be so kind, could you also look up what Divine Rights' code is? The "Double border growth" should be a SET PlotCultureCostModifier = '-50'
I couldn't find "Divine Rights" in Civilopedia. Is this a vox belief or a vanilla one.Because if its vanilla exclusive I wouldn't be able to find a file with it's description(and even if I did, I wouldn't be able to understand Firaxis code)
 
May there is a check to ensure that "(8(nT-1))^1.1" is always at least a non-zero result? With rounding, that would explain the 20.
I don't know about that, but I've noticed that the minimal cost is indeed 15, so initial 20 is probably equals 15+whatevermodifier
 
I couldn't find "Divine Rights" in Civilopedia. Is this a vox belief or a vanilla one.Because if its vanilla exclusive I wouldn't be able to find a file with it's description(and even if I did, I wouldn't be able to understand Firaxis code)

Apologies, it is "Divine Right" without the "s".
It's a VP Piety policy

Border growth is doubled in cities during Golden Ages and We Love the King Day. Temples generate +1 happiness.
 
Back
Top Bottom