Murky
Deity
One thing that I've been wondeirng about GP is do the techs you have matter at all? For instance if you have Mathematics but few religious/art techs does this help generate Scientist/Engineers over GAs, GMs and GPs?
Murky said:One thing that I've been wondeirng about GP is do the techs you have matter at all? For instance if you have Mathematics but few religious/art techs does this help generate Scientist/Engineers over GAs, GMs and GPs?
VoiceOfUnreason said:Techs have no direct effect; they aren't part of the calculations at all.
Murky said:Does getting a GP by being first to a GPTech effect your GPP in anyway?
Does it make it take longer to get the next GP?
VoiceOfUnreason said:So what? Specialists don't generate any GP points during Anarchy, so its a waste of time... EXCEPT that the specialists do generate source points during Anarchy.
So if you need to dilute the effect of your Artist wonders, during anarchy take all of your citizens off of the tiles, and use them as Science specialists (or whatever sort of GP you would prefer).
Exactly the same trick works during disorder when you capture a city.
Xin Yu said:100 GPP per turn only takes 1 great wonder + 1 small wonder + 7 specialists + national epic, and modifiers of philosophy leader, national epic, pacifism. 7 specialists only requires 3 corns = size 10 city. If you have more wonders then the number of specialists can be reduced further.
Not awfully difficult, at least from the face value.
It appears that the game mechanic has changed in BTS.
CvCity.changeGreatPeopleUnitRate is now called with passed the gp rate.
changeGreatPeopleUnitRate(eGreatPeopleUnit, GC.getBuildingInfo(eBuilding).getGreatPeopleRateChange() * iChange);
Which means that the probabilities of GP points are now based on points where they used to be based on sources.
In other words, where 20 turns of oracle plus 20 turns of scientists used to leave you at 50/50, now you are at 40/60 favoring the scientist.
That's a major change. I don't know if it's better now or if it was better before. It does mean that such small wonders like the Globe Theatre and the National Epic don't ruin your great person farm as badly with great artist influence as before.
On the other hand, it really ruins your choice if you used several engys for a few turns to speed up a building, or several merchants for a quick income.
I guess theres no "better": if you plan ahead, based on the correct formula, you can always get the results you want, one way or another.
It was so that if you used one engineer for 19 turns and then 19 artists during one turn, then the chance of a great engineer was 95% (19 turns with 100% engineer, 1 turn with 100% artist).
From the time that I started looking at this, that wasn't so. The comments you'll find scattered about CFC indicate that many people thought that it had been this way. Maybe it was, once upon a time.
I'm very certain it hasn't been that way since I started paying attention to this code. I don't know for sure when that was, but a quick search shows that was at least a year ago.
Anyway, for the last year and change, the answer has been 50-50.
Once the threshold is reached and a great person is generated, the city "forgets" which types of sources there had been before and starts anew. So if you hire a scientist to produce a great scientist, and after generating that great scientist remove the scientist specialist and hire a priest instead, you will have a 100% chance of getting a great prophet as the next great person, since the city will have forgotten that there had been a great scientist source in the city during the previous cycle.
Does the excess GPP from the previous cycle have a source?
changeBaseGreatPeopleRate(GC.getBuildingInfo(eBuilding).getGreatPeopleRateChange() * iChange);
if (GC.getBuildingInfo(eBuilding).getGreatPeopleUnitClass() != NO_UNITCLASS)
{
eGreatPeopleUnit = ((UnitTypes)(GC.getCivilizationInfo(getCivilizationType()).getCivilizationUnits(GC.getBuildingInfo(eBuilding).getGreatPeopleUnitClass())));
if (eGreatPeopleUnit != NO_UNIT)
{
changeGreatPeopleUnitRate(eGreatPeopleUnit, GC.getBuildingInfo(eBuilding).getGreatPeopleRateChange() * iChange);
}
}
int iTotalGreatPeopleUnitProgress = 0;
for (int iI = 0; iI < GC.getNumUnitInfos(); iI++)
{
iTotalGreatPeopleUnitProgress += getGreatPeopleUnitProgress((UnitTypes)iI);
}
int iGreatPeopleUnitRand = GC.getGameINLINE().getSorenRandNum(iTotalGreatPeopleUnitProgress, "Great Person");
UnitTypes eGreatPeopleUnit = NO_UNIT;
for (int iI = 0; iI < GC.getNumUnitInfos(); iI++)
{
if (iGreatPeopleUnitRand < getGreatPeopleUnitProgress((UnitTypes)iI))
{
eGreatPeopleUnit = ((UnitTypes)iI);
break;
}
else
{
iGreatPeopleUnitRand -= getGreatPeopleUnitProgress((UnitTypes)iI);
}
}
Thus, sources are not just counted by multiplied by their respective value. Hence it works like it shall be naturally expected.
-----
Note: that's the code provided w/ 3.19