Measuring Garrison Revolution Support

Kraftster

Chieftain
Joined
Sep 24, 2008
Messages
31
Hey all,

Sorry if this has already been covered, I looked for a while and was not able to find it.

I'm having trouble nudging my revolution support past 35%.
My four cities are as follows:
New Amsterdam (12): 85%
Fort Nassau (10): 100%
Fort Orange (10): 54%
New Holland (8): 39%

Now, I was at the point where my food production was allowing for free colonist production pretty quickly, but, I was making all of these new colonists into dragoons or soldiers. Are these garrisoned units affecting my revolution support? If so, when you want to stock up on military units before the declaration, how do you balance this with the fact that new units = stagnant Rev. Support?

My Rev. advisor is fluctuating between 34 -37% support. I've tried to cut back on food surpluses to avoid generating fee colonists since I have a solid military at the moment.

Looking for a little insight. Thanks.
 
People outside of colonies count on the big counter too, soldiers, dragoons, pioneers, etc. Put them in a city to convert them to rebels. :)
 
That's about what I figured. Is there any way to determine whether a particular individual unit has "rebel" status?
 
Ones outside the colony are not rebels. :)

Crude, but it works.
 
By "outside the colony" do you mean "not working a tile or in a building", or "not on a tile where a colony appears", or "not on your culture"?

If you mean the first one, that's not a good idea, IMO. That would penalize you for army size excessively...
 
I mean people not settled in a colony, soldiers, pioneers, etc.
 
That was what I was afraid of. I don't see any reason those folks shouldn't be allowed to be counted as rebels (or better yet, not counted as either)...
 
They are counted because they are your citizens, but they aren't getting any propaganda (bells).

It's like the US troops in Iraq. They "think" they're doing a good job because they do not see the media about what they're doing, but they are still counted as US citizens. ;)
 
What's the gameplay reason ... you know me, I don't give a rat's ass about the 'story' reason. :)
 
They count cuz they are your citizens. No matter what job they are performing.
 
So if you run all of your soldiers (pioneers or whatever) to a city with 100% rebel percentage and fortify them there, will your revolution support rise? Or do the soldiers have to be 'working' in the city? (I sure hope it is not the latter answer)
 
They count cuz they are your citizens. No matter what job they are performing.

This is still not a gameplay reason... ;)

The only thing that makes sense to me is that it's a limitation on actual soldier count - ie, the more soldiers you have the worse of a problem this is, so it's an incentive to have fewer soldiers. I don't know if that's a good thing or not, but we'll see I suppose. :)
 
nbcman:
In the example you give, they won't affect rev amount. They need to join the city.

snoop:
How is it not a gameplay reason? You can't expect new colonists/soldiers straight from Europe to take up arms against their King do you? :lol: You have to convert them to your colonies way of thinking before they'll become a rebel. Otherwise, they're just a Tory. :)
 
A gameplay reason = a reason that it makes the game more fun/better balanced/a better game. Your reason is still a 'role playing' reason, or a 'realism' reason, or a 'story' reason, depending on how you see it. Basically, if you abstract the game to moving different kinds of marbles on a black gameboard (but with the same exact rules), what would the reason be then?
 
Here's ya bloody reason! :p

Code:
void CvPlayer::doBells()
{
	if (getParent() == NO_PLAYER)
	{
		return;
	}

	int iBellsRate = getYieldRate(YIELD_BELLS);
	if (iBellsRate == 0)
	{
		return;
	}
	//add bells to political points
	for (int i = 0; i < GC.getNumFatherPointInfos(); ++i)
	{
		FatherPointTypes ePointType = (FatherPointTypes) i;
		changeFatherPoints(ePointType, iBellsRate * GC.getFatherPointInfo(ePointType).getYieldPoints(YIELD_BELLS));
	}

	//update revolution unit bells
	if (!isInRevolution())
	{
		changeBellsStored(iBellsRate);
		if (getBellsStored() >= revolutionEuropeUnitThreshold() && iBellsRate > GC.getCivilizationInfo(getCivilizationType()).getFreeYields(YIELD_BELLS))
		{
			changeBellsStored(-revolutionEuropeUnitThreshold());
			setRevolutionEuropeUnitThresholdMultiplier((getRevolutionEuropeUnitThresholdMultiplier() * (100 + GC.getDefineINT("REVOLUTION_EUROPE_UNIT_THRESHOLD_INCREASE"))) / 100);

			if (NO_PLAYER != getParent())
			{
				CvPlayer& kParent = GET_PLAYER(getParent());
				FAssert(kParent.isEurope());

				CvCivilizationInfo& kCivilizationInfo = GC.getCivilizationInfo(kParent.getCivilizationType());
				int iNumFreeUnits = kCivilizationInfo.getNumCivilizationFreeUnits();
				std::vector<int> aiUnitWeights(iNumFreeUnits, 100);
				for (int i = 0; i < iNumFreeUnits; ++i)
				{
					int iUnitClass = kCivilizationInfo.getCivilizationFreeUnitsClass(i);
					UnitTypes eUnit = (UnitTypes) kCivilizationInfo.getCivilizationUnits(iUnitClass);
					if (eUnit == NO_UNIT)
					{
						aiUnitWeights[i] = 0;
					}
					else
					{
						if (GC.getUnitInfo(eUnit).getDomainType() == DOMAIN_SEA)
						{
							aiUnitWeights[i] += std::max(-100, GC.getDefineINT("REVOLUTION_EUROPE_UNIT_SHIP_MODIFIER"));
						}
					}					
				}

				if (iNumFreeUnits > 0)
				{
					int iIndex = GC.getGameINLINE().getSorenRand().pickValue(aiUnitWeights, "Pick Expeditionary force unit");
					int iUnitClass = kCivilizationInfo.getCivilizationFreeUnitsClass(iIndex);
					ProfessionTypes eUnitProfession = (ProfessionTypes) kCivilizationInfo.getCivilizationFreeUnitsProfession(iIndex);
					UnitTypes eUnit = (UnitTypes)kCivilizationInfo.getCivilizationUnits(iUnitClass);
					FAssert(eUnit != NO_UNIT);
					int iNumUnits = std::max(1, getRevolutionEuropeUnitThresholdMultiplier() / 100);
					for (int i = 0; i < iNumUnits; ++i)
					{
						addRevolutionEuropeUnit(eUnit, eUnitProfession);
					}

					const wchar* szUnitName;
					if (eUnitProfession != NO_PROFESSION)
					{
						szUnitName = GC.getProfessionInfo(eUnitProfession).getTextKeyWide();
					}
					else
					{
						szUnitName = GC.getUnitInfo(eUnit).getTextKeyWide();
					}

					CvWString szBuffer = gDLL->getText("TXT_KEY_NEW_EUROPE_ARMY", kParent.getCivilizationShortDescriptionKey(), getCivilizationShortDescriptionKey(), szUnitName, kParent.getCivilizationAdjectiveKey());
					gDLL->getInterfaceIFace()->addMessage(getID(), true, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_UNIT_GREATPEOPLE", MESSAGE_TYPE_INFO, GC.getUnitInfo(eUnit).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_UNIT_TEXT"));
				}
			}
		}
	}
}
 
That's the code to add new units to the REF, not to calculate current rebel percentage, isn't it? Or am I badly misreading that??? (Admittedly it's been a long day at work, and I could well be misreading this badly...)
 
You might be right. I was in a rush. :p

I just saw "doBells" and "!isInRevolution". :)
 
To continue harassing Dale: does this apply only to new military units, or all military units?

For example, let's say I have an ordinary citizen working a tile in a city with 100% rebel sentiment. I then decide to arm that citizen and send him off to fight the Spanish (or Native Americans, or to defend another city). Is that unit still considered 100% rebel, or does it reset because it's not in the city?
 
Top Bottom