Quote:Ah If the Vassal seeked a master voluntarily then his master joins the war!
So in my game(s) he was forced into vassalage by my ally which resulted in peace and in yours( and others games) they sought a Master to protect them and so the master declared war to save his new vassal.
Right.
Quote:The first report I read about this mentioned an ally which turned to be an enemy guess it was only a peacetime-ally then.
Right.
If the 'ally' was Alexander, then he would have to be FRIENDLY, not even PLEASED is enough to stop him from turning on you, as can be seen from the file CIV4LeaderHeadInfos.xml (in assets/xml/)
Another possible fix is to actually do something more sophisticated with the comparisons of attitudes amongst the various parties.
---
I actually found what I think is another bug with the whole thing. If I am reading the code correctly, then there is no random check, or basically any decision process at all for an AI to decide when to offer itself as a vassal.
As soon as it can, and every turn thereafter, every single AI will automatically ask every civ it can to be its master. AIs are prefered over humans, lower numbered civs are asked first.
I swear I must be missing something, because this cannot be right, but I cannot find it.
Human players are only asked once every CONTACT_PERMANENT_ALLIANCE turns (from the xml), but AI players are asked every turn.
There is not even a check about power that I can find. So if I am reading it correctly, it is just as likely for a powerful civ to become a vassal of a weak civ as the reverse (voluntarily).
However, 10 turns later, it will cancel the deal if it values it as poor. Has anyone seen a lot of vassals happening then canceling 10 turns later? I swear I must be missing something.
AI_considerOffer is called on deals against human players to cancel them if they are no longer good.
getTradeDenial is called on AI vs AI deals to cancel them if they are no longer good.
Both are done on voluntary vassal deals.
But neither call is made, as far as I can see, when the first deal is proposed (or accepted if it is asking a computer AI)
I did not step through the code as it was running, so it is entirely possible I missed something.
-Iustus