bugged imperialistic in teams?

oyzar

Have quit civ/forums
Joined
Oct 7, 2006
Messages
6,923
Location
Norway
In teams it seems to me both team mates get the imperialistic bonus even though only one actually should get it... Is there any support for this in the code?

Uh, the GG bonus, not the settler bonus, so it is minor but still a bug(kinda like naval combat and great wall?).
 
Hmm, I don't know but I'll do an experiment shortly...
 
I ran a few tests, but didn't quite check this area in detail. Unfortunately my AI team-mate is always too friggen incompetant to do ANYTHING! Ughhhh don't get me even started on how dumb they are.
 
There are a million and a half bugs, posting it there doesn't really do anything afaik... For those playing with AI there are a ton that are more important than this one.. This post was mostly just to inform people about the existence so people know about it and can use it, but also to find out if anyone could bother to check the code to see if there is any support for this(my guess is that the function checks if anyone on the team is imperialistic instead of checking if you are imperialistic...).
 
So i just saw this happen again today. Maybe it only happens within your own borders? Anyone care to check to the code to find out if you get imperialistic bonus in teams under some conditions(either always or just within your borders).
 
CvUnit::changeExperience only checks the attributes of the player who is the owner of the winning/withdrawing unit. However, the code was a bit surprising for me. It appears everybody benefits from a +100% GG-Rate bonus when winning inside one's borders. So the modifiers for the various combinations of imperialistic/borders/GW should look like this:
Code:
Imperialistic	No		Yes	
Borders		Inside	Outside	Inside	Outside
With GW		300	100	400	200
Without GW	200	100	300	200

I've never really payed attention to these numbers and can't verify them right now as I'm away from civ (unfortunately). Could this be the explanation?
 
Indeed. So everyone get free +100% inside their borders?
 
That's what I read from:
Code:
CvUnit::changeExperience:
	int iCombatExperienceMod = 100 + kPlayer.getGreatGeneralRateModifier();
	if (bInBorders)
	{
		iCombatExperienceMod += kPlayer.getDomesticGreatGeneralRateModifier() + kPlayer.getExpInBorderModifier();
	...
	kPlayer.changeCombatExperience((iChange * iCombatExperienceMod) / 100);
	
CvPlayer::getDomesticGreatGeneralRateModifier:
	return (GC.getDefineINT("COMBAT_EXPERIENCE_IN_BORDERS_PERCENT") + m_iDomesticGreatGeneralRateModifier);

Global Defines:
COMBAT_EXPERIENCE_IN_BORDERS_PERCENT = 100
 
This is certainly surprising. I wonder why I haven't seen this mentioned somewhere before? You'd think it'd be a fairly easy thing to spot...
 
The reason all teammates share the Imperialistic bonus is because you share combat experience to get your Great Generals. If you are Imperialistic and you get 44 out of 45* of the experience points necessary to get a Great General, and your teammate is not, but gets the 45th one, your teammate will pop the Great General even though it was your bonus and your fighting that did most of the work.

*number drawn from a hat.
 
The reason all teammates share the Imperialistic bonus is because you share combat experience to get your Great Generals. If you are Imperialistic and you get 44 out of 45* of the experience points necessary to get a Great General, and your teammate is not, but gets the 45th one, your teammate will pop the Great General even though it was your bonus and your fighting that did most of the work.

*number drawn from a hat.

You obviously have no idea how the GG mechanic works in teams, but anyways, read dan's post not mine...
 
You obviously have no idea how the GG mechanic works in teams, but anyways, read dan's post not mine...

oyzar,

Oh wow, you're right. Oops, I've been going about it wrong this whole time. Thanks for pointing that out. :)

I just did some quick testing, and DanF of course is right on.

I, as Asoka (Not Imp), teamed up with Augustus Ceasar (Imp).

When I killed an enemy Warrior outside of my boarders:
  • Unit gained 1 experience
  • Empire gained 1 experience towards a GG

When I killed an enemy Warrior inside my boarders:
  • Unit gained 1 experience
  • Empire gained 2 experience towards a GG


I, as Augustus Ceasar (Imp), teamed up with Asoka (Not Imp).

When I killed an enemy Warrior outsidy my boarders:
  • Unit gained 1 experience
  • Empire gained 2 experience towards a GG

When I killed an enemy Warrior inside my boarders:
  • Unit gained 1 experience
  • Empire gained 3 experience towards a GG

Everything looks fine to me.
 
Top Bottom