VASSALS - confusing behavior

mrdoe

Chieftain
Joined
Jan 1, 2010
Messages
88
So today I was playing on a standard size map. You have JC who's huge and I'm ahead in tech, and I just completely topple Saladin, conquering 4 cities, and JC conquers a minor unimportant city. Sally is unwilling to vassal to me, but VASSALS TO JC MAKING HIM EVEN BIGGER. (ugh snowball effect)
JC, who now has 2 vassals proceeds to reassign every city I got from the war to saladin by way of AP, and at this point I promptly resign because it's just ridiculous.
So does anyone know why Sally would vassal to JC first? I killed ~50 of his troops, and JC kills 2 with 2 macemen and gets a minor city and somehow just gets to vassal him. hmm.
 
I think they prefer to surrender to someone they are on better terms with diplomatically.
 
I've seen it too, me and Shaka fighting against Qin, me taking six cities and killing lots of troops pretty quick (I wanted to do it before he got Rifling), Shaka landing some groups of 2-4 units each on his shores without siege and suiciding them against cities with 125% cultural defense (I had full espionage so I could watch it). Then Qin capitulates to Shaka but wouldn't to me. I wondered about it as well, seemed pretty ridiculous.
 
I think they prefer to surrender to someone they are on better terms with diplomatically.
Nonsense ;)
Ok, I rechecked the code and indeed there is no hard rule vs a civ that doesn't have the biggest war success being able to cap someone, just a bias against it:

From CvTeamAI::AI_surrenderTrade
Code:
		int iTotalPower = GC.getGameINLINE().countTotalCivPower();
		int iAveragePower = iTotalPower / std::max(1, GC.getGameINLINE().countCivTeamsAlive());
		int iMasterPower = GET_TEAM(eTeam).getPower(false);
		int iVassalPower = (getPower(true) * (iPowerMultiplier + iPersonalityModifier / std::max(1, iMembers))) / 100;

		if (isAtWar(eTeam))
		{
			int iTheirSuccess = std::max(10, GET_TEAM(eTeam).AI_getWarSuccess(getID()));
			int iOurSuccess = std::max(10, AI_getWarSuccess(eTeam));
			int iOthersBestSuccess = 0;
			for (int iTeam = 0; iTeam < MAX_CIV_TEAMS; ++iTeam)
			{
				if (iTeam != eTeam && iTeam != getID())
				{
					CvTeam& kLoopTeam = GET_TEAM((TeamTypes)iTeam);

					if (kLoopTeam.isAlive() && kLoopTeam.isAtWar(getID()))
					{
						int iSuccess = kLoopTeam.AI_getWarSuccess(getID());
						if (iSuccess > iOthersBestSuccess)
						{
							iOthersBestSuccess = iSuccess;
						}
					}
				}
			}

			[COLOR="Red"][B]// Discourage capitulation to a team that has not done the most damage
			if (iTheirSuccess < iOthersBestSuccess)
			{
				iOurSuccess += iOthersBestSuccess - iTheirSuccess;
			}[/B][/COLOR]

			iMasterPower = (2 * iMasterPower * iTheirSuccess) / (iTheirSuccess + iOurSuccess);

			if (AI_getWorstEnemy() == eTeam)
			{
				iMasterPower *= 3;
				iMasterPower /= 4;
			}
		}
		else
		{
			if (!GET_TEAM(eTeam).AI_isLandTarget(getID()))
			{
				iMasterPower /= 2;
			}
		}
said in other words, what really matters in a situation like thew OP described is who has more war sucess , as defined in XML like stated here :
It looks like he thinks he's doing better in the war than you are. This check is performed if the power check hasn't denied you already:

Code:
if (AI_getWarSuccess(eTeam) + 4 * GC.getDefineINT("WAR_SUCCESS_CITY_CAPTURING") > GET_TEAM(eTeam).AI_getWarSuccess(getID()))
{
	return DENIAL_JOKING;
}

WAR_SUCCESS_CITY_CAPTURING is 10 by default. The war success numbers just add up the wins and losses of units and cities.

WAR_SUCCESS_DEFENDING: 3
WAR_SUCCESS_ATTACKING: 4
WAR_SUCCESS_UNIT_CAPTURING: 1 (Workers/Settlers)
WAR_SUCCESS_CITY_CAPTURING: 10

So yes, the solution is to take more cities. If you both start out at 0, you can see that it takes 40 success points assuming you win every battle and lose no cities. All losses must be offset by equal gains.
(just for completeness sake, nuke blasts give 10 war success points regardless of how many units the nuke kills ... and units killed in air combat do not count for this, by whatever reason )

Anyway, there is a luck part involved ( as you can see in the code above ) ,so it is not always the person that gathers more war success ( remember, the final war sucess number is not your war sucess vs them but your war sucess vs them minus their war sucess against you ... so if you gather 100 war sucess points and they gather 99, it will be exactly the same as if you had captured a worker without military losses of both sides in this regard ) that is considered by the capitulating AI as the better master
 
So all those suiciding catapults that damage defenders die, so they count towards enemy war success, but don't kill, so they don't contribute to my success?
darn. Usually I will have 50% cats. This might just make my war success 0, then?
 
So all those suiciding catapults that damage defenders die, so they count towards enemy war success, but don't kill, so they don't contribute to my success?
darn. Usually I will have 50% cats. This might just make my war success 0, then?
Or even make they have more war sucess on you than you on them, even if you are taking their cities out ;) This is one of the reasons some civs refuse to capitulate beyond any reasonable standart: the human sacrificed a heap of units to tore their SoD down and the war success won after that was not enough to get to the minimum net 40 to be eligible to be considered as a possible master. There are other reasons, but those are one more stupid than the previous one ( like the average rule or fearing the master enemies ), so I'll refrain of talking about those, otherwise this will become a flame thread :p
 
It's annoying when they vassalize during the war with the next big guy, causing the latter to instantly declare.
 
That is a completely diferent issue.... it only happens when your war target peacefully vassalizes to the "next big guy" ( capitulations force peace ). In there the issue is completely diferently, because it is treated like a trade where the vassal sells itself ... this means that it is modulated, as any trade, by the diplo relations between the two. This never happens if the possible master to be is pissed enough with your war target, or obviously, when it is sharing the war with you ;)
 
That is a completely diferent issue.... it only happens when your war target peacefully vassalizes to the "next big guy" ( capitulations force peace ). In there the issue is completely diferently, because it is treated like a trade where the vassal sells itself ... this means that it is modulated, as any trade, by the diplo relations between the two. This never happens if the possible master to be is pissed enough with your war target, or obviously, when it is sharing the war with you ;)

However you still get to see some fun nonsense like izzy taking a heathen as a vassal or vice versa and declaring on someone pleased :sad:.

Vassals are a great idea that never had its details ironed out.
 
Top Bottom