IronClaymore
Warlord
Just having a bit of a problem with realistic corporations game option. Normally when I find something I don't like I'd change the python or XML file (I don't play multiplayer) and leave it at that, but this is something firmly wedged into the dll.
It's this section of code from CvCity.cpp (copied from the sourceforge.net site):
As far as I can tell, this grabs the influence of an individual corporation presence in a city (from elsewhere in the file), compares it to the average, and if that particular corporation is lacking it's chucked into a random number generator. Rolling badly on the generator purges the corp from the city. Because it's compared to the average, generally about half the corporations are at risk of being purged at any given moment.
(The influence function already includes the effect of taxation/subsidy, so if everyone is running the same civics the effect of these are cancelled out (both iAverageSpread and iSpread are altered to the same degree).)
The problem I'm having in my games is that it's obliterating every corporate presence outside the headquarters. A corp will randomly set up in a city, as desired, stay for a few turns, then disappear. I don't even get the chance to build the special +yield% buildings unless I rush-buy.
It's at its worse with food corps. They join a marginal city that already capped out its food supply, let it grow a couple of sizes, then leave, starving it back to the old size (while increasing the revolution index).Talk about the lack of empathy in a capitalist economy!
It just seems...unrealistic. A city grows to rely on a corporation, only to have it leave within months, despite it having no competition. Perhaps the weighting should be edited, meaning a corporation has to be doing really badly to simply disappear. Or even get rid of the entire section of code, ensuring only civics and hostile takeovers can oust a corporation's presence.
Otherwise, I'm loving realistic corporations. Not having to save up great people for when my tech advances, not building hundreds of executives (most of whom fail their missions anyway), buying all the headquarters off the AI then bankrupting their economies through maintenance costs...mmm, fun.
It's this section of code from CvCity.cpp (copied from the sourceforge.net site):
Spoiler :
//Decay
else
{
//TODO: Should HQ ever relocate?
if (this != GC.getGameINLINE().getHeadquarters((CorporationTypes)iI))
{
iAverageSpread = GC.getGameINLINE().getAverageCorporationInfluence(this, (CorporationTypes)iI);
iSpread = GC.getCorporationInfo((CorporationTypes)iI).getSpread();
iSpread *= getCorporationInfluence((CorporationTypes)iI);
iSpread /= 100;
iSpread *= kOwner.getCorporationInfluence((CorporationTypes)iI);
iSpread /= 100;
int iDiff = iAverageSpread - iSpread;
//Our influence is lower than average
if (iDiff > 0)
{
if (GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("CORPORATION_SPREAD_RAND"), "Corporation Decay") < iDiff)
{
setHasCorporation((CorporationTypes)iI, false, true, false);
break;
}
}
}
}
else
{
//TODO: Should HQ ever relocate?
if (this != GC.getGameINLINE().getHeadquarters((CorporationTypes)iI))
{
iAverageSpread = GC.getGameINLINE().getAverageCorporationInfluence(this, (CorporationTypes)iI);
iSpread = GC.getCorporationInfo((CorporationTypes)iI).getSpread();
iSpread *= getCorporationInfluence((CorporationTypes)iI);
iSpread /= 100;
iSpread *= kOwner.getCorporationInfluence((CorporationTypes)iI);
iSpread /= 100;
int iDiff = iAverageSpread - iSpread;
//Our influence is lower than average
if (iDiff > 0)
{
if (GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("CORPORATION_SPREAD_RAND"), "Corporation Decay") < iDiff)
{
setHasCorporation((CorporationTypes)iI, false, true, false);
break;
}
}
}
}
As far as I can tell, this grabs the influence of an individual corporation presence in a city (from elsewhere in the file), compares it to the average, and if that particular corporation is lacking it's chucked into a random number generator. Rolling badly on the generator purges the corp from the city. Because it's compared to the average, generally about half the corporations are at risk of being purged at any given moment.
(The influence function already includes the effect of taxation/subsidy, so if everyone is running the same civics the effect of these are cancelled out (both iAverageSpread and iSpread are altered to the same degree).)
The problem I'm having in my games is that it's obliterating every corporate presence outside the headquarters. A corp will randomly set up in a city, as desired, stay for a few turns, then disappear. I don't even get the chance to build the special +yield% buildings unless I rush-buy.
It's at its worse with food corps. They join a marginal city that already capped out its food supply, let it grow a couple of sizes, then leave, starving it back to the old size (while increasing the revolution index).Talk about the lack of empathy in a capitalist economy!
It just seems...unrealistic. A city grows to rely on a corporation, only to have it leave within months, despite it having no competition. Perhaps the weighting should be edited, meaning a corporation has to be doing really badly to simply disappear. Or even get rid of the entire section of code, ensuring only civics and hostile takeovers can oust a corporation's presence.
Otherwise, I'm loving realistic corporations. Not having to save up great people for when my tech advances, not building hundreds of executives (most of whom fail their missions anyway), buying all the headquarters off the AI then bankrupting their economies through maintenance costs...mmm, fun.